diff --git a/.env.example b/.env.example index d507cbe2..ccaf0103 100644 --- a/.env.example +++ b/.env.example @@ -26,8 +26,9 @@ GUARDRAILS_HUB_API_KEY="" HF_TOKEN="" # SHA-256 hex digest of your bearer token (64 lowercase hex chars) AUTH_TOKEN="" -KAAPI_AUTH_URL="" -KAAPI_AUTH_TIMEOUT=5 +# Comma-separated source IPs allowed to call this service (kaapi-backend). +# Empty disables the check; required when ENVIRONMENT=production. +ALLOWED_IPS="127.0.0.1" # URL for the guardrails API — required for the multiple_validators evaluation script GUARDRAILS_API_URL="http://localhost:8001/api/v1/guardrails/" diff --git a/.env.test.example b/.env.test.example index 51692399..5efd1e76 100644 --- a/.env.test.example +++ b/.env.test.example @@ -25,5 +25,6 @@ OPENAI_API_KEY="" GUARDRAILS_HUB_API_KEY="" # SHA-256 hex digest of your bearer token (64 lowercase hex chars) AUTH_TOKEN="" -KAAPI_AUTH_URL="" -KAAPI_AUTH_TIMEOUT=5 +# Comma-separated source IPs allowed to call this service (kaapi-backend). +# Empty disables the check; required when ENVIRONMENT=production. +ALLOWED_IPS="127.0.0.1" diff --git a/backend/.guardrails/hub_registry.json b/backend/.guardrails/hub_registry.json index cd71baa5..8b19e387 100644 --- a/backend/.guardrails/hub_registry.json +++ b/backend/.guardrails/hub_registry.json @@ -6,7 +6,7 @@ "exports": [ "BanList" ], - "installed_at": "2026-05-12T05:28:55.036165+00:00", + "installed_at": "2026-08-18T06:55:12.094065+00:00", "package_name": "guardrails-grhub-ban-list" }, "guardrails/llm_critic": { @@ -14,7 +14,7 @@ "exports": [ "LLMCritic" ], - "installed_at": "2026-05-12T05:29:05.596003+00:00", + "installed_at": "2026-08-18T06:57:19.392503+00:00", "package_name": "guardrails-grhub-llm-critic" }, "guardrails/llamaguard_7b": { @@ -22,7 +22,7 @@ "exports": [ "LlamaGuard7B" ], - "installed_at": "2026-05-12T05:29:16.995441+00:00", + "installed_at": "2026-08-18T06:56:38.901794+00:00", "package_name": "guardrails-grhub-llamaguard-7b" }, "guardrails/profanity_free": { @@ -30,7 +30,7 @@ "exports": [ "ProfanityFree" ], - "installed_at": "2026-05-12T05:29:28.079410+00:00", + "installed_at": "2026-08-18T06:58:01.196192+00:00", "package_name": "guardrails-grhub-profanity-free" }, "guardrails/nsfw_text": { @@ -38,7 +38,7 @@ "exports": [ "NSFWText" ], - "installed_at": "2026-05-12T05:29:50.654888+00:00", + "installed_at": "2026-08-18T07:03:49.839668+00:00", "package_name": "guardrails-grhub-nsfw-text" } } diff --git a/backend/README.md b/backend/README.md index ce07174a..a705c4bd 100644 --- a/backend/README.md +++ b/backend/README.md @@ -191,19 +191,32 @@ echo -n "your-plain-text-token" | shasum -a 256 Set the resulting digest as `AUTH_TOKEN` in your `.env` / `.env.test`. -## Multi-tenant API Key Configuration +## Caller Authentication -Ban List and LLM Prompt Config APIs use `X-API-KEY` auth instead of bearer token auth. +kaapi-guardrails is an internal service. Its only caller is kaapi-backend, which authenticates the +end user and resolves the tenant before calling. -Required environment variables: -- `KAAPI_AUTH_URL`: Base URL of the Kaapi auth service used to verify API keys. -- `KAAPI_AUTH_TIMEOUT`: Timeout in seconds for auth verification calls. +Every request (except the health check) must carry: -At runtime, the backend calls: -- `GET {KAAPI_AUTH_URL}/apikeys/verify` -- Header: `X-API-KEY: ` +- `Authorization: Bearer ` +- `X-ORGANIZATION-ID: ` and `X-PROJECT-ID: ` — the tenant, resolved by kaapi-backend +- and originate from an IP listed in `ALLOWED_IPS` -If verification succeeds, tenant's scope (`organization_id`, `project_id`) is resolved from the auth response and applied to tenant-scoped CRUD operations (for example Ban Lists and LLM Prompt Configs). +`ALLOWED_IPS` is a comma-separated list of source IPs allowed to reach this service: + +```bash +ALLOWED_IPS="10.0.3.14" +``` + +Leave it empty to disable the check for local development. It is required when +`ENVIRONMENT=production` — the service will not start without it. + +Rejections: +- Source IP not whitelisted → `403` (checked before the token) +- Missing or invalid token → `401` +- Missing or non-integer tenant headers → `422` + +Tenant scope is never read from the query string or request body. ## Guardrails AI Setup @@ -339,3 +352,5 @@ class GenderAssumptionBiasSafetyValidatorConfig(BaseValidatorConfig): ``` 3. In `backend/app/schemas/guardrail_config.py`, add the newly created config class to `ValidatorConfigItem`. + +# test diff --git a/backend/app/api/API_USAGE.md b/backend/app/api/API_USAGE.md index af2b82a4..2c6f263a 100644 --- a/backend/app/api/API_USAGE.md +++ b/backend/app/api/API_USAGE.md @@ -18,14 +18,16 @@ Example local base URL: ## Authentication -This API currently uses two auth modes: +This service is internal. Its only caller is kaapi-backend, which authenticates the end user and +resolves the tenant before calling. -1. Bearer token auth (`Authorization: Bearer `) - - Used by validator config and guardrails endpoints. - - The server validates your plaintext bearer token against a SHA-256 digest stored in `AUTH_TOKEN`. -2. multi-tenant API key auth (`X-API-KEY: `) - - Used by ban list and LLM prompt config endpoints. - - The API key is verified against `KAAPI_AUTH_URL` and resolves tenant's scope (`organization_id`, `project_id`). +Every request must carry: + +- `Authorization: Bearer ` — validated against the SHA-256 digest in `AUTH_TOKEN` +- `X-ORGANIZATION-ID: ` and `X-PROJECT-ID: ` — the tenant, resolved by kaapi-backend +- and must arrive from an IP listed in `ALLOWED_IPS` + +Tenant scope is never read from the query string or request body. Notes: - `GET /utils/health-check/` is public. @@ -74,13 +76,15 @@ Base path: ## 2.1 Create validator config Endpoint: -- `POST /api/v1/guardrails/validators/configs/?organization_id=1&project_id=101` +- `POST /api/v1/guardrails/validators/configs/` Example (PII input validator): ```bash -curl -X POST "http://localhost:8001/api/v1/guardrails/validators/configs/?organization_id=1&project_id=101" \ +curl -X POST "http://localhost:8001/api/v1/guardrails/validators/configs/" \ -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "type": "pii_remover", @@ -95,7 +99,7 @@ curl -X POST "http://localhost:8001/api/v1/guardrails/validators/configs/?organi ## 2.2 List validator configs Endpoint: -- `GET /api/v1/guardrails/validators/configs/?organization_id=1&project_id=101` +- `GET /api/v1/guardrails/validators/configs/` Optional filters: - `ids=&ids=` @@ -106,32 +110,38 @@ Optional filters: Example: ```bash -curl -X GET "http://localhost:8001/api/v1/guardrails/validators/configs/?organization_id=1&project_id=101&stage=input" \ - -H "Authorization: Bearer " +curl -X GET "http://localhost:8001/api/v1/guardrails/validators/configs/?stage=input" \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 2.3 Get validator config by id Endpoint: -- `GET /api/v1/guardrails/validators/configs/{id}?organization_id=1&project_id=101` +- `GET /api/v1/guardrails/validators/configs/{id}` Example: ```bash -curl -X GET "http://localhost:8001/api/v1/guardrails/validators/configs/?organization_id=1&project_id=101" \ - -H "Authorization: Bearer " +curl -X GET "http://localhost:8001/api/v1/guardrails/validators/configs/" \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 2.4 Update validator config Endpoint: -- `PATCH /api/v1/guardrails/validators/configs/{id}?organization_id=1&project_id=101` +- `PATCH /api/v1/guardrails/validators/configs/{id}` Example: ```bash -curl -X PATCH "http://localhost:8001/api/v1/guardrails/validators/configs/?organization_id=1&project_id=101" \ +curl -X PATCH "http://localhost:8001/api/v1/guardrails/validators/configs/" \ -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "is_enabled": false, @@ -142,13 +152,15 @@ curl -X PATCH "http://localhost:8001/api/v1/guardrails/validators/configs/?organization_id=1&project_id=101" \ - -H "Authorization: Bearer " +curl -X DELETE "http://localhost:8001/api/v1/guardrails/validators/configs/" \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 3) Runtime Validator Discovery @@ -163,7 +175,9 @@ Example: ```bash curl -X GET "http://localhost:8001/api/v1/guardrails/" \ - -H "Authorization: Bearer " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 4) Guardrail Execution @@ -192,11 +206,11 @@ Example: ```bash curl -X POST "http://localhost:8001/api/v1/guardrails/?suppress_pass_logs=true" \ -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "request_id": "2a6f6d5c-5b9f-4f6b-92e4-cf7d67f87932", - "organization_id": 1, - "project_id": 101, "input": "Amit Gupta phone number is 919611188278", "validators": [ { @@ -264,7 +278,7 @@ Possible failure response: ## 5) Ban List APIs (multi-tenant) -These endpoints manage tenant-scoped ban lists and use `X-API-KEY` auth. +These endpoints manage tenant-scoped ban lists. The tenant comes from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Base path: - `/api/v1/guardrails/ban_lists` @@ -278,7 +292,9 @@ Example: ```bash curl -X POST "http://localhost:8001/api/v1/guardrails/ban_lists/" \ - -H "X-API-KEY: " \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "name": "Safety Banned Terms", @@ -298,7 +314,9 @@ Example: ```bash curl -X GET "http://localhost:8001/api/v1/guardrails/ban_lists/?offset=0&limit=20" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 5.3 Get ban list by id @@ -310,7 +328,9 @@ Example: ```bash curl -X GET "http://localhost:8001/api/v1/guardrails/ban_lists/" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 5.4 Update ban list @@ -322,7 +342,9 @@ Example: ```bash curl -X PATCH "http://localhost:8001/api/v1/guardrails/ban_lists/" \ - -H "X-API-KEY: " \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "description": "Updated description", @@ -339,12 +361,14 @@ Example: ```bash curl -X DELETE "http://localhost:8001/api/v1/guardrails/ban_lists/" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 6) LLM Prompt Config APIs (multi-tenant) -These endpoints manage tenant-scoped LLM prompt configs for the `topic_relevance` and `answer_relevance_custom_llm` validators. They use `X-API-KEY` auth. +These endpoints manage tenant-scoped LLM prompt configs for the `topic_relevance` and `answer_relevance_custom_llm` validators. The tenant comes from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Base path: - `/api/v1/guardrails/llm_prompt_configs` @@ -362,7 +386,9 @@ Example (topic relevance): ```bash curl -X POST "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/" \ - -H "X-API-KEY: " \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "validator_name": "topic_relevance", @@ -377,7 +403,9 @@ Example (answer relevance): ```bash curl -X POST "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/" \ - -H "X-API-KEY: " \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "validator_name": "answer_relevance_custom_llm", @@ -399,7 +427,9 @@ Example: ```bash curl -X GET "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/?validator_name=topic_relevance&offset=0&limit=20" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 6.3 Get LLM prompt config by id @@ -411,7 +441,9 @@ Example: ```bash curl -X GET "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 6.4 Update LLM prompt config @@ -423,7 +455,9 @@ Example: ```bash curl -X PATCH "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/" \ - -H "X-API-KEY: " \ + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" \ -H "Content-Type: application/json" \ -d '{ "llm_prompt": "Pregnancy care: Updated scope definition" @@ -439,7 +473,9 @@ Example: ```bash curl -X DELETE "http://localhost:8001/api/v1/guardrails/llm_prompt_configs/" \ - -H "X-API-KEY: " + -H "Authorization: Bearer " \ + -H "X-ORGANIZATION-ID: 1" \ + -H "X-PROJECT-ID: 101" ``` ## 8) End-to-End Usage Pattern @@ -460,10 +496,10 @@ Recommended request flow: - Add `Authorization: Bearer `. - `401 Invalid authorization token` - Verify plaintext token matches server-side hash. -- `401 Missing X-API-KEY header` - - Add `X-API-KEY: ` for ban list and LLM prompt config endpoints. -- `401 Invalid API key` - - Verify the API key is valid in the upstream Kaapi auth service. +- `403 Forbidden` + - Source IP is not in `ALLOWED_IPS`. Checked before the token. +- `422` on tenant headers + - Add `X-ORGANIZATION-ID` and `X-PROJECT-ID`; both must be integers. - `Invalid request_id` - Ensure `request_id` is a valid UUID string. - `Validator already exists for this type and stage` diff --git a/backend/app/api/deps.py b/backend/app/api/deps.py index c6e05f39..34ca5580 100644 --- a/backend/app/api/deps.py +++ b/backend/app/api/deps.py @@ -1,13 +1,11 @@ +import hashlib +import secrets from collections.abc import Generator from dataclasses import dataclass from typing import Annotated -import hashlib -import secrets -import httpx - -from fastapi import Cookie, Depends, Header, HTTPException, Security, status -from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials +from fastapi import Depends, Header, HTTPException, Request, Security, status +from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from sqlmodel import Session from app.core.config import settings @@ -22,7 +20,6 @@ def get_db() -> Generator[Session, None, None]: SessionDep = Annotated[Session, Depends(get_db)] -# Static bearer token auth for internal routes. security = HTTPBearer(auto_error=False) @@ -37,12 +34,34 @@ def _unauthorized(detail: str) -> HTTPException: ) -def verify_bearer_token( +@dataclass +class TenantContext: + organization_id: int + project_id: int + + +def check_source_ip(request: Request) -> None: + """403 for callers whose source IP is not in ALLOWED_IPS.""" + if settings.ALLOWED_IPS: + allowed = settings.ALLOWED_IPS + if isinstance(allowed, str): + allowed = [allowed] + client_ip = request.client.host if request.client else None + if client_ip not in allowed: + raise HTTPException( + status_code=status.HTTP_403_FORBIDDEN, + detail="Forbidden", + ) + + +def check_bearer_token( + _ip_ok: Annotated[None, Depends(check_source_ip)], credentials: Annotated[ HTTPAuthorizationCredentials | None, Security(security), ], -) -> bool: +) -> None: + """401 for a missing or invalid bearer token.""" if credentials is None: raise _unauthorized("Missing Authorization header") @@ -52,85 +71,14 @@ def verify_bearer_token( ): raise _unauthorized("Invalid authorization token") - return True - - -AuthDep = Annotated[bool, Depends(verify_bearer_token)] - -# Multitenant auth context resolved from X-API-KEY. -@dataclass -class TenantContext: - organization_id: int - project_id: int - - -def _fetch_tenant_from_backend(headers: dict) -> TenantContext: - if not settings.KAAPI_AUTH_URL: - raise HTTPException( - status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, - detail="KAAPI_AUTH_URL is not configured", - ) - - try: - response = httpx.get( - f"{settings.KAAPI_AUTH_URL}/apikeys/verify", - headers=headers, - timeout=settings.KAAPI_AUTH_TIMEOUT, - ) - except httpx.RequestError: - raise HTTPException( - status_code=status.HTTP_503_SERVICE_UNAVAILABLE, - detail="Auth service unavailable", - ) - - if response.status_code != 200: - raise _unauthorized("Invalid credentials") - - data = response.json() - if not isinstance(data, dict) or data.get("success") is not True: - raise _unauthorized("Invalid credentials") - - record = data.get("data") - if not isinstance(record, dict): - raise _unauthorized("Invalid credentials") - - organization_id = record.get("organization_id") - project_id = record.get("project_id") - if not isinstance(organization_id, int) or not isinstance(project_id, int): - raise _unauthorized("Invalid credentials") - - return TenantContext( - organization_id=organization_id, - project_id=project_id, - ) - - -def validate_multitenant_key( - x_api_key: Annotated[str | None, Header(alias="X-API-KEY")] = None, - credentials: Annotated[ - HTTPAuthorizationCredentials | None, - Security(security), - ] = None, - access_token: Annotated[str | None, Cookie(alias="access_token")] = None, +def verify_caller( + _token_ok: Annotated[None, Depends(check_bearer_token)], + organization_id: Annotated[int, Header(alias="X-ORGANIZATION-ID")], + project_id: Annotated[int, Header(alias="X-PROJECT-ID")], ) -> TenantContext: - if x_api_key and x_api_key.strip(): - return _fetch_tenant_from_backend({"X-API-KEY": x_api_key.strip()}) - - if credentials is not None and credentials.credentials.strip(): - return _fetch_tenant_from_backend( - {"Authorization": f"Bearer {credentials.credentials}"} - ) - - if access_token: - return _fetch_tenant_from_backend({"Authorization": f"Bearer {access_token}"}) - - raise _unauthorized( - "Missing credentials: provide X-API-KEY header, Bearer token, or access_token cookie" - ) + """Authenticates the trusted caller and returns its tenant scope.""" + return TenantContext(organization_id=organization_id, project_id=project_id) -MultitenantAuthDep = Annotated[ - TenantContext, - Depends(validate_multitenant_key), -] +AuthDep = Annotated[TenantContext, Depends(verify_caller)] diff --git a/backend/app/api/docs/ban_lists/create_ban_list.md b/backend/app/api/docs/ban_lists/create_ban_list.md index 64febf8d..75b19383 100644 --- a/backend/app/api/docs/ban_lists/create_ban_list.md +++ b/backend/app/api/docs/ban_lists/create_ban_list.md @@ -1,4 +1,4 @@ -Creates a ban list for the tenant resolved from `X-API-KEY`. +Creates a ban list for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Stores a domain-scoped list of banned words used by the `ban_list` validator. diff --git a/backend/app/api/docs/ban_lists/delete_ban_list.md b/backend/app/api/docs/ban_lists/delete_ban_list.md index 889ccca5..21613be4 100644 --- a/backend/app/api/docs/ban_lists/delete_ban_list.md +++ b/backend/app/api/docs/ban_lists/delete_ban_list.md @@ -1,4 +1,4 @@ -Deletes a ban list by id for the tenant resolved from `X-API-KEY`. +Deletes a ban list by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Deletion is restricted to owner scope. diff --git a/backend/app/api/docs/ban_lists/get_ban_list.md b/backend/app/api/docs/ban_lists/get_ban_list.md index a40fa798..91f8a03d 100644 --- a/backend/app/api/docs/ban_lists/get_ban_list.md +++ b/backend/app/api/docs/ban_lists/get_ban_list.md @@ -1,4 +1,4 @@ -Fetches a single ban list by id for the tenant resolved from `X-API-KEY`. +Fetches a single ban list by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Tenant's scope is enforced from the API key context. diff --git a/backend/app/api/docs/ban_lists/list_ban_lists.md b/backend/app/api/docs/ban_lists/list_ban_lists.md index 59e446a7..5f247668 100644 --- a/backend/app/api/docs/ban_lists/list_ban_lists.md +++ b/backend/app/api/docs/ban_lists/list_ban_lists.md @@ -1,4 +1,4 @@ -Lists ban lists for the tenant resolved from `X-API-KEY`. +Lists ban lists for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Supports filtering by `domain`. diff --git a/backend/app/api/docs/ban_lists/update_ban_list.md b/backend/app/api/docs/ban_lists/update_ban_list.md index 90c87863..d27e9d65 100644 --- a/backend/app/api/docs/ban_lists/update_ban_list.md +++ b/backend/app/api/docs/ban_lists/update_ban_list.md @@ -1,4 +1,4 @@ -Partially updates a ban list by id for the tenant resolved from `X-API-KEY`. +Partially updates a ban list by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Supports patch-style updates; omitted fields remain unchanged. diff --git a/backend/app/api/docs/llm_prompt_configs/create_config.md b/backend/app/api/docs/llm_prompt_configs/create_config.md index b74b1fb3..7fc63d2e 100644 --- a/backend/app/api/docs/llm_prompt_configs/create_config.md +++ b/backend/app/api/docs/llm_prompt_configs/create_config.md @@ -1,4 +1,4 @@ -Creates an LLM prompt config for the tenant resolved from `X-API-KEY`. +Creates an LLM prompt config for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Stores a named prompt used by an LLM-backed validator (`topic_relevance` or `answer_relevance_custom_llm`). diff --git a/backend/app/api/docs/llm_prompt_configs/delete_config.md b/backend/app/api/docs/llm_prompt_configs/delete_config.md index 227fb94c..18d42979 100644 --- a/backend/app/api/docs/llm_prompt_configs/delete_config.md +++ b/backend/app/api/docs/llm_prompt_configs/delete_config.md @@ -1,4 +1,4 @@ -Deletes an LLM prompt config by id for the tenant resolved from `X-API-KEY`. +Deletes an LLM prompt config by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Tenant scope is enforced from the API key context. diff --git a/backend/app/api/docs/llm_prompt_configs/get_config.md b/backend/app/api/docs/llm_prompt_configs/get_config.md index 44ad12d5..9c9d4f37 100644 --- a/backend/app/api/docs/llm_prompt_configs/get_config.md +++ b/backend/app/api/docs/llm_prompt_configs/get_config.md @@ -1,4 +1,4 @@ -Fetches a single LLM prompt config by id for the tenant resolved from `X-API-KEY`. +Fetches a single LLM prompt config by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Tenant scope is enforced from the API key context. diff --git a/backend/app/api/docs/llm_prompt_configs/list_configs.md b/backend/app/api/docs/llm_prompt_configs/list_configs.md index 873fc6d2..b8f63880 100644 --- a/backend/app/api/docs/llm_prompt_configs/list_configs.md +++ b/backend/app/api/docs/llm_prompt_configs/list_configs.md @@ -1,4 +1,4 @@ -Lists LLM prompt configs for the tenant resolved from `X-API-KEY`. +Lists LLM prompt configs for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Returns configs scoped to the tenant's `organization_id` and `project_id`. diff --git a/backend/app/api/docs/llm_prompt_configs/update_config.md b/backend/app/api/docs/llm_prompt_configs/update_config.md index f13d11cb..75aa27bd 100644 --- a/backend/app/api/docs/llm_prompt_configs/update_config.md +++ b/backend/app/api/docs/llm_prompt_configs/update_config.md @@ -1,4 +1,4 @@ -Partially updates an LLM prompt config by id for the tenant resolved from `X-API-KEY`. +Partially updates an LLM prompt config by id for the tenant resolved from the `X-ORGANIZATION-ID` / `X-PROJECT-ID` headers. Behavior notes: - Supports patch-style updates; omitted fields remain unchanged. diff --git a/backend/app/api/routes/ban_lists.py b/backend/app/api/routes/ban_lists.py index 5776b3df..5a5744dd 100644 --- a/backend/app/api/routes/ban_lists.py +++ b/backend/app/api/routes/ban_lists.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, Query -from app.api.deps import MultitenantAuthDep, SessionDep +from app.api.deps import AuthDep, SessionDep from app.crud.ban_list import ban_list_crud from app.schemas.ban_list import BanListCreate, BanListUpdate, BanListResponse from app.utils import APIResponse, load_description @@ -19,7 +19,7 @@ def create_ban_list( payload: BanListCreate, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ): ban_list = ban_list_crud.create( session, payload, auth.organization_id, auth.project_id @@ -34,7 +34,7 @@ def create_ban_list( ) def list_ban_lists( session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, domain: Optional[str] = None, offset: Annotated[int, Query(ge=0)] = 0, limit: Annotated[int | None, Query(ge=1, le=100)] = None, @@ -58,7 +58,7 @@ def list_ban_lists( def get_ban_list( id: UUID, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ): obj = ban_list_crud.get(session, id, auth.organization_id, auth.project_id) return APIResponse.success_response(data=obj) @@ -73,7 +73,7 @@ def update_ban_list( id: UUID, payload: BanListUpdate, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ): ban_list = ban_list_crud.update( session, @@ -93,7 +93,7 @@ def update_ban_list( def delete_ban_list( id: UUID, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ): obj = ban_list_crud.get( session, diff --git a/backend/app/api/routes/guardrails.py b/backend/app/api/routes/guardrails.py index 32185b8f..5779c93f 100644 --- a/backend/app/api/routes/guardrails.py +++ b/backend/app/api/routes/guardrails.py @@ -6,7 +6,7 @@ from guardrails.validators import FailResult, PassResult from sqlmodel import Session -from app.api.deps import AuthDep, SessionDep +from app.api.deps import AuthDep, SessionDep, TenantContext from app.core.constants import ( BAN_LIST, LLM_CRITIC_ERROR_MESSAGE, @@ -49,7 +49,7 @@ def run_guardrails( payload: GuardrailRequest, session: SessionDep, - _: AuthDep, + auth: AuthDep, suppress_pass_logs: bool = True, ): """ @@ -60,11 +60,13 @@ def run_guardrails( validator_log_crud = ValidatorLogCrud(session=session) try: - request_log = request_log_crud.create(payload) + request_log = request_log_crud.create( + payload, auth.organization_id, auth.project_id + ) except ValueError: return APIResponse.failure_response(error="Invalid request_id") - _resolve_validator_configs(payload, session) + _resolve_validator_configs(payload, session, auth) has_output_validator = any( isinstance(v, AnswerRelevanceCustomLLMSafetyValidatorConfig) for v in payload.validators @@ -76,12 +78,13 @@ def run_guardrails( request_log_crud, request_log.id, validator_log_crud, + auth, suppress_pass_logs, ) @router.get("/", description=load_description("guardrails/list_validators.md")) -def list_validators(_: AuthDep): +def list_validators(auth: AuthDep): """ Lists all validators and their parameters directly. """ @@ -110,7 +113,9 @@ def list_validators(_: AuthDep): return {"validators": validators} -def _resolve_validator_configs(payload: GuardrailRequest, session: Session) -> None: +def _resolve_validator_configs( + payload: GuardrailRequest, session: Session, auth: TenantContext +) -> None: """ Resolves config-backed references for all validators in-place before guard execution: - BanList: fetches banned_words from the stored BanList when not provided inline. @@ -126,8 +131,8 @@ def _resolve_validator_configs(payload: GuardrailRequest, session: Session) -> N ban_list = ban_list_crud.get( session, id=validator.ban_list_id, - organization_id=payload.organization_id, - project_id=payload.project_id, + organization_id=auth.organization_id, + project_id=auth.project_id, ) validator.banned_words = ban_list.banned_words @@ -142,8 +147,8 @@ def _resolve_validator_configs(payload: GuardrailRequest, session: Session) -> N config = llm_prompt_config_crud.get( session=session, id=validator.topic_relevance_config_id, - organization_id=payload.organization_id, - project_id=payload.project_id, + organization_id=auth.organization_id, + project_id=auth.project_id, ) if config.validator_name != LLMValidatorName.TopicRelevance: raise HTTPException( @@ -163,8 +168,8 @@ def _resolve_validator_configs(payload: GuardrailRequest, session: Session) -> N prompt_config = llm_prompt_config_crud.get( session=session, id=validator.custom_prompt_id, - organization_id=payload.organization_id, - project_id=payload.project_id, + organization_id=auth.organization_id, + project_id=auth.project_id, ) if ( prompt_config.validator_name @@ -184,6 +189,7 @@ def _validate_with_guard( request_log_crud: RequestLogCrud, request_log_id: UUID, validator_log_crud: ValidatorLogCrud, + auth: TenantContext, suppress_pass_logs: bool = False, ) -> APIResponse: """ @@ -226,7 +232,7 @@ def _finalize( if guard is not None: add_validator_logs( - guard, request_log_id, validator_log_crud, payload, suppress_pass_logs + guard, request_log_id, validator_log_crud, auth, suppress_pass_logs ) rephrase_needed = validated_output is not None and ( @@ -320,7 +326,7 @@ def add_validator_logs( guard: Guard, request_log_id: UUID, validator_log_crud: ValidatorLogCrud, - payload: GuardrailRequest, + auth: TenantContext, suppress_pass_logs: bool = False, ) -> None: """ @@ -355,8 +361,8 @@ def add_validator_logs( validator_log = ValidatorLog( request_id=request_log_id, - organization_id=payload.organization_id, - project_id=payload.project_id, + organization_id=auth.organization_id, + project_id=auth.project_id, name=log.validator_name, input=str(log.value_before_validation), output=log.value_after_validation, diff --git a/backend/app/api/routes/llm_prompt_configs.py b/backend/app/api/routes/llm_prompt_configs.py index 58c276b2..48ce55e8 100644 --- a/backend/app/api/routes/llm_prompt_configs.py +++ b/backend/app/api/routes/llm_prompt_configs.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, Query -from app.api.deps import MultitenantAuthDep, SessionDep +from app.api.deps import AuthDep, SessionDep from app.core.enum import LLMValidatorName from app.crud.llm_prompt_config import llm_prompt_config_crud from app.schemas.llm_prompt_config import ( @@ -27,7 +27,7 @@ def create_llm_prompt_config( payload: LLMPromptConfigCreate, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ) -> APIResponse[LLMPromptConfigResponse]: obj = llm_prompt_config_crud.create( session, @@ -45,7 +45,7 @@ def create_llm_prompt_config( ) def list_llm_prompt_configs( session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, validator_name: Annotated[LLMValidatorName | None, Query()] = None, offset: Annotated[int, Query(ge=0)] = 0, limit: Annotated[int | None, Query(ge=1, le=100)] = None, @@ -69,7 +69,7 @@ def list_llm_prompt_configs( def get_llm_prompt_config( id: UUID, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ) -> APIResponse[LLMPromptConfigResponse]: obj = llm_prompt_config_crud.get( session, @@ -89,7 +89,7 @@ def update_llm_prompt_config( id: UUID, payload: LLMPromptConfigUpdate, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ) -> APIResponse[LLMPromptConfigResponse]: obj = llm_prompt_config_crud.update( session, @@ -109,7 +109,7 @@ def update_llm_prompt_config( def delete_llm_prompt_config( id: UUID, session: SessionDep, - auth: MultitenantAuthDep, + auth: AuthDep, ) -> APIResponse[dict]: obj = llm_prompt_config_crud.get( session, diff --git a/backend/app/api/routes/validator_configs.py b/backend/app/api/routes/validator_configs.py index 9db72155..19a50c16 100644 --- a/backend/app/api/routes/validator_configs.py +++ b/backend/app/api/routes/validator_configs.py @@ -27,12 +27,10 @@ def create_validator( payload: ValidatorCreate, session: SessionDep, - organization_id: int, - project_id: int, - _: AuthDep, + auth: AuthDep, ): response_model = validator_config_crud.create( - session, organization_id, project_id, payload + session, auth.organization_id, auth.project_id, payload ) return APIResponse.success_response(data=response_model) @@ -43,16 +41,14 @@ def create_validator( response_model=APIResponse[list[ValidatorResponse]], ) def list_validators( - organization_id: int, - project_id: int, session: SessionDep, - _: AuthDep, + auth: AuthDep, ids: Optional[list[UUID]] = Query(None), stage: Optional[Stage] = None, type: Optional[ValidatorType] = None, ): response_model = validator_config_crud.list( - session, organization_id, project_id, ids, stage, type + session, auth.organization_id, auth.project_id, ids, stage, type ) return APIResponse.success_response(data=response_model) @@ -64,12 +60,10 @@ def list_validators( ) def get_validator( id: UUID, - organization_id: int, - project_id: int, session: SessionDep, - _: AuthDep, + auth: AuthDep, ): - obj = validator_config_crud.get(session, id, organization_id, project_id) + obj = validator_config_crud.get(session, id, auth.organization_id, auth.project_id) return APIResponse.success_response(data=validator_config_crud.flatten(obj)) @@ -80,13 +74,11 @@ def get_validator( ) def update_validator( id: UUID, - organization_id: int, - project_id: int, payload: ValidatorUpdate, session: SessionDep, - _: AuthDep, + auth: AuthDep, ): - obj = validator_config_crud.get(session, id, organization_id, project_id) + obj = validator_config_crud.get(session, id, auth.organization_id, auth.project_id) response_model = validator_config_crud.update( session, obj, payload.model_dump(exclude_unset=True) ) @@ -100,12 +92,10 @@ def update_validator( ) def delete_validator( id: UUID, - organization_id: int, - project_id: int, session: SessionDep, - _: AuthDep, + auth: AuthDep, ): - obj = validator_config_crud.get(session, id, organization_id, project_id) + obj = validator_config_crud.get(session, id, auth.organization_id, auth.project_id) validator_config_crud.delete(session, obj) return APIResponse.success_response( data={"message": "Validator deleted successfully"} diff --git a/backend/app/core/config.py b/backend/app/core/config.py index b52bb803..85463882 100644 --- a/backend/app/core/config.py +++ b/backend/app/core/config.py @@ -1,10 +1,12 @@ +import json import os -from pathlib import Path import re -from typing import Any, ClassVar, Literal import warnings +from pathlib import Path +from typing import Annotated, Any, ClassVar, Literal from pydantic import ( + BeforeValidator, HttpUrl, PostgresDsn, computed_field, @@ -13,9 +15,21 @@ from pydantic_settings import BaseSettings, SettingsConfigDict from typing_extensions import Self - -def parse_cors(v: Any) -> list[str] | str: - if isinstance(v, str) and not v.startswith("["): +#1. A comma-separated string like "1.2.3.4,5.6.7.8" → splits on , and strips whitespace. +#2. A JSON-encoded array string like '["1.2.3.4","5.6.7.8"]' +# (some env/deploy tooling JSON-encodes list-valued env vars) → parses it with json.loads. + +def parse_ip_list(v: Any) -> list[str] | str: + if isinstance(v, str): + if v.lstrip().startswith("["): + + try: + parsed = json.loads(v) + except json.JSONDecodeError: + return v + if isinstance(parsed, list): + return [str(item).strip() for item in parsed] + return v return [i.strip() for i in v.split(",") if i.strip()] elif isinstance(v, list | str): return v @@ -41,8 +55,10 @@ class Settings(BaseSettings): POSTGRES_PASSWORD: str = "" POSTGRES_DB: str = "" GUARDRAILS_HUB_API_KEY: str | None = None - KAAPI_AUTH_URL: str = "" - KAAPI_AUTH_TIMEOUT: int + # Source IPs allowed to reach this service (kaapi-backend). Empty = check disabled. + # `| str` keeps pydantic-settings from JSON-parsing the dotenv value before + # parse_ip_list gets to split it. + ALLOWED_IPS: Annotated[list[str] | str, BeforeValidator(parse_ip_list)] = [] CORE_DIR: ClassVar[Path] = Path(__file__).resolve().parent OPENAI_API_KEY: str | None = None ANSWER_RELEVANCE_LLM_MODEL: str = "gpt-4o-mini" @@ -92,6 +108,10 @@ def _validate_auth_token_hash(self) -> None: def _enforce_non_default_secrets(self) -> Self: self._check_default_secret("POSTGRES_PASSWORD", self.POSTGRES_PASSWORD) self._validate_auth_token_hash() + if self.ENVIRONMENT == "production" and not self.ALLOWED_IPS: + raise ValueError( + "ALLOWED_IPS must list the kaapi-backend source IP(s) in production." + ) return self diff --git a/backend/app/core/constants.py b/backend/app/core/constants.py index 99468938..900fa7bb 100644 --- a/backend/app/core/constants.py +++ b/backend/app/core/constants.py @@ -34,6 +34,7 @@ "A prompt config with the same configuration already exists" ) + VALIDATOR_CONFIG_SYSTEM_FIELDS = { "organization_id", "project_id", diff --git a/backend/app/crud/request_log.py b/backend/app/crud/request_log.py index ce21da9a..17731c6b 100644 --- a/backend/app/crud/request_log.py +++ b/backend/app/crud/request_log.py @@ -11,14 +11,19 @@ class RequestLogCrud: def __init__(self, session: Session): self.session = session - def create(self, payload: GuardrailRequest) -> RequestLog: + def create( + self, + payload: GuardrailRequest, + organization_id: int, + project_id: int, + ) -> RequestLog: request_id = UUID(payload.request_id) create_request_log = RequestLog( request_id=request_id, request_text=payload.input, output_text=payload.output, - organization_id=payload.organization_id, - project_id=payload.project_id, + organization_id=organization_id, + project_id=project_id, ) self.session.add(create_request_log) self.session.commit() diff --git a/backend/app/crud/validator_config.py b/backend/app/crud/validator_config.py index a66cb5bc..5ef9028b 100644 --- a/backend/app/crud/validator_config.py +++ b/backend/app/crud/validator_config.py @@ -1,5 +1,4 @@ import logging -from typing import List, Optional from uuid import UUID from fastapi import HTTPException @@ -24,6 +23,10 @@ def create( ) -> dict: data = payload.model_dump() model_fields, config_fields = split_validator_payload(data) + # The tenant always comes from the auth context (the explicit + # organization_id/project_id args), never from the request body. + model_fields.pop("organization_id", None) + model_fields.pop("project_id", None) obj = ValidatorConfig( organization_id=organization_id, @@ -51,10 +54,10 @@ def list( session: Session, organization_id: int, project_id: int, - ids: Optional[list[UUID]] = None, - stage: Optional[Stage] = None, - type: Optional[ValidatorType] = None, - ) -> List[dict]: + ids: list[UUID] | None = None, + stage: Stage | None = None, + type: ValidatorType | None = None, + ) -> list[dict]: query = select(ValidatorConfig).where( ValidatorConfig.organization_id == organization_id, ValidatorConfig.project_id == project_id, diff --git a/backend/app/schemas/guardrail_config.py b/backend/app/schemas/guardrail_config.py index 656d8c6a..24fafcfe 100644 --- a/backend/app/schemas/guardrail_config.py +++ b/backend/app/schemas/guardrail_config.py @@ -63,8 +63,6 @@ class GuardrailRequest(SQLModel): model_config = ConfigDict(extra="forbid") request_id: str - organization_id: int - project_id: int input: str output: Optional[str] = None validators: List[ValidatorConfigItem] diff --git a/backend/app/schemas/validator_config.py b/backend/app/schemas/validator_config.py index c9988cd1..9fc8920f 100644 --- a/backend/app/schemas/validator_config.py +++ b/backend/app/schemas/validator_config.py @@ -1,8 +1,5 @@ -from datetime import datetime -from typing import Optional - -from pydantic import ConfigDict -from sqlmodel import SQLModel, Field +from pydantic import ConfigDict, model_validator +from sqlmodel import Field, SQLModel from app.core.enum import GuardrailOnFail, Stage, ValidatorType @@ -18,17 +15,30 @@ class ValidatorBase(SQLModel): class ValidatorCreate(ValidatorBase): - pass + @model_validator(mode="before") + @classmethod + def reject_body_tenant(cls, data: object) -> object: + """The tenant must come from the X-ORGANIZATION-ID / X-PROJECT-ID + headers, never the request body. Reject body tenant fields loudly + instead of crashing the create path or being silently swallowed.""" + if isinstance(data, dict): + reserved = [k for k in ("organization_id", "project_id") if k in data] + if reserved: + raise ValueError( + "Tenant must be provided via the X-ORGANIZATION-ID and " + "X-PROJECT-ID headers, not the request body: " + ", ".join(reserved) + ) + return data class ValidatorUpdate(SQLModel): model_config = ConfigDict(extra="forbid") - name: Optional[str] = None - type: Optional[ValidatorType] = None - stage: Optional[Stage] = None - on_fail_action: Optional[GuardrailOnFail] = None - is_enabled: Optional[bool] = None + name: str | None = None + type: ValidatorType | None = None + stage: Stage | None = None + on_fail_action: GuardrailOnFail | None = None + is_enabled: bool | None = None class ValidatorResponse(ValidatorBase): diff --git a/backend/app/tests/conftest.py b/backend/app/tests/conftest.py index 9adc132f..5f498ab3 100644 --- a/backend/app/tests/conftest.py +++ b/backend/app/tests/conftest.py @@ -12,8 +12,7 @@ from app.api.deps import ( SessionDep, TenantContext, - validate_multitenant_key, - verify_bearer_token, + verify_caller, ) from app.core.config import settings from app.core.enum import GuardrailOnFail, Stage, ValidatorType @@ -84,31 +83,25 @@ def clean_db(): @pytest.fixture(scope="function", autouse=True) def override_dependencies(): - app.dependency_overrides[verify_bearer_token] = lambda: True - default_scope = TenantContext( - organization_id=BAN_LIST_INTEGRATION_ORGANIZATION_ID, - project_id=BAN_LIST_INTEGRATION_PROJECT_ID, - ) - - def override_multitenant_key( - x_api_key: str | None = Header(default=None, alias="X-API-KEY"), + """ + Stands in for token + IP verification, but keeps tenant resolution honest: + the scope still comes from the X-ORGANIZATION-ID / X-PROJECT-ID headers, so + multi-tenant isolation tests exercise the real header contract. Tests that + don't care about tenancy send no headers and get the default scope. + """ + + def override_verify_caller( + organization_id: int | None = Header(default=None, alias="X-ORGANIZATION-ID"), + project_id: int | None = Header(default=None, alias="X-PROJECT-ID"), ): - if not x_api_key: - return default_scope - - token = x_api_key.strip() - if token.lower().startswith("apikey "): - token = token.split(" ", 1)[1].strip() - - if token == "org999_project999": - return TenantContext(organization_id=999, project_id=999) - - if token == "org2_project2": - return TenantContext(organization_id=2, project_id=2) - - return default_scope + if organization_id is None or project_id is None: + return TenantContext( + organization_id=BAN_LIST_INTEGRATION_ORGANIZATION_ID, + project_id=BAN_LIST_INTEGRATION_PROJECT_ID, + ) + return TenantContext(organization_id=organization_id, project_id=project_id) - app.dependency_overrides[validate_multitenant_key] = override_multitenant_key + app.dependency_overrides[verify_caller] = override_verify_caller app.dependency_overrides[SessionDep] = override_session diff --git a/backend/app/tests/test_answer_relevance_integration.py b/backend/app/tests/test_answer_relevance_integration.py index b5ead804..7bc40638 100644 --- a/backend/app/tests/test_answer_relevance_integration.py +++ b/backend/app/tests/test_answer_relevance_integration.py @@ -38,6 +38,10 @@ def _mock_openai_key(): organization_id = VALIDATOR_INTEGRATION_ORGANIZATION_ID project_id = VALIDATOR_INTEGRATION_PROJECT_ID +TENANT_HEADERS = { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), +} QUERY = "What are the common symptoms of diabetes?" RELEVANT_ANSWER = ( @@ -68,8 +72,6 @@ def _llm_no(): def _payload(input_text, output_text, validators): return { "request_id": str(uuid.uuid4()), - "organization_id": organization_id, - "project_id": project_id, "input": input_text, "output": output_text, "validators": validators, @@ -85,6 +87,7 @@ def test_answer_relevance_alone_passes_for_relevant_output(integration_client): with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, RELEVANT_ANSWER, [{"type": "answer_relevance_custom_llm"}] ), @@ -100,6 +103,7 @@ def test_answer_relevance_alone_fails_for_irrelevant_output(integration_client): with patch(_PATCH_TARGET, return_value=_llm_no()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, IRRELEVANT_ANSWER, @@ -117,10 +121,9 @@ def test_answer_relevance_alone_fails_when_output_is_missing(integration_client) """No output field → validator receives empty string → non-empty guard triggers.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": str(uuid.uuid4()), - "organization_id": organization_id, - "project_id": project_id, "input": QUERY, "validators": [ {"type": "answer_relevance_custom_llm", "on_fail": "exception"} @@ -143,6 +146,7 @@ def test_answer_relevance_alone_uses_custom_prompt_template(integration_client): with patch(_PATCH_TARGET, return_value=_llm_yes()) as mock_llm: response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, RELEVANT_ANSWER, @@ -174,6 +178,7 @@ def test_answer_relevance_and_ban_list_fail_when_output_irrelevant(integration_c with patch(_PATCH_TARGET, return_value=_llm_no()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, IRRELEVANT_ANSWER, @@ -198,6 +203,7 @@ def test_answer_relevance_and_ban_list_removes_banned_word_from_relevant_output( with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, output_with_banned, @@ -222,6 +228,7 @@ def test_answer_relevance_and_profanity_free_fixes_profanity_in_relevant_output( with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, profane_relevant, @@ -246,6 +253,7 @@ def test_answer_relevance_and_slur_match_redacts_slur_in_relevant_output( with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, slurred_relevant, @@ -272,6 +280,7 @@ def test_answer_relevance_and_profanity_free_fail_when_profanity_on_fail_excepti with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, profane_relevant, @@ -298,6 +307,7 @@ def test_five_validators_all_pass_on_clean_relevant_output(integration_client): with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, RELEVANT_ANSWER, @@ -326,6 +336,7 @@ def test_five_validators_fix_multiple_issues_in_relevant_output(integration_clie with patch(_PATCH_TARGET, return_value=_llm_yes()): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json=_payload( QUERY, noisy_relevant, diff --git a/backend/app/tests/test_banlists_api_integration.py b/backend/app/tests/test_banlists_api_integration.py index 64f22215..239dfbe0 100644 --- a/backend/app/tests/test_banlists_api_integration.py +++ b/backend/app/tests/test_banlists_api_integration.py @@ -12,34 +12,38 @@ BASE_URL = "/api/v1/guardrails/ban_lists/" -DEFAULT_API_KEY = "org1_project1" -ALT_API_KEY_999 = "org999_project999" -ALT_API_KEY_2 = "org2_project2" +DEFAULT_TENANT = (1, 1) +ALT_TENANT_999 = (999, 999) +ALT_TENANT_2 = (2, 2) class BaseBanListTest: - def _headers(self, api_key=DEFAULT_API_KEY): - return {"X-API-Key": api_key} - - def create(self, client, payload_key="minimal", api_key=DEFAULT_API_KEY, **kwargs): + def _headers(self, tenant=DEFAULT_TENANT): + organization_id, project_id = tenant + return { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), + } + + def create(self, client, payload_key="minimal", tenant=DEFAULT_TENANT, **kwargs): payload = {**BAN_LIST_PAYLOADS[payload_key], **kwargs} - return client.post(BASE_URL, json=payload, headers=self._headers(api_key)) + return client.post(BASE_URL, json=payload, headers=self._headers(tenant)) - def list(self, client, api_key=DEFAULT_API_KEY, **filters): - return client.get(BASE_URL, params=filters, headers=self._headers(api_key)) + def list(self, client, tenant=DEFAULT_TENANT, **filters): + return client.get(BASE_URL, params=filters, headers=self._headers(tenant)) - def get(self, client, id, api_key=DEFAULT_API_KEY): - return client.get(f"{BASE_URL}{id}/", headers=self._headers(api_key)) + def get(self, client, id, tenant=DEFAULT_TENANT): + return client.get(f"{BASE_URL}{id}/", headers=self._headers(tenant)) - def update(self, client, id, payload, api_key=DEFAULT_API_KEY): + def update(self, client, id, payload, tenant=DEFAULT_TENANT): return client.patch( f"{BASE_URL}{id}/", json=payload, - headers=self._headers(api_key), + headers=self._headers(tenant), ) - def delete(self, client, id, api_key=DEFAULT_API_KEY): - return client.delete(f"{BASE_URL}{id}/", headers=self._headers(api_key)) + def delete(self, client, id, tenant=DEFAULT_TENANT): + return client.delete(f"{BASE_URL}{id}/", headers=self._headers(tenant)) class TestCreateBanList(BaseBanListTest): @@ -153,7 +157,7 @@ def test_public_visible_to_other_org(self, integration_client, clear_database): create_resp = self.create(integration_client, "public") ban_id = create_resp.json()["data"]["id"] - response = self.get(integration_client, ban_id, api_key=ALT_API_KEY_999) + response = self.get(integration_client, ban_id, tenant=ALT_TENANT_999) assert response.status_code == 200 @@ -184,7 +188,7 @@ def test_get_wrong_owner_private(self, integration_client, seed_db): ) ban_id = private_ban_list["id"] - response = self.get(integration_client, ban_id, api_key=ALT_API_KEY_2) + response = self.get(integration_client, ban_id, tenant=ALT_TENANT_2) body = response.json() assert response.status_code == 403 @@ -234,7 +238,7 @@ def test_update_public_wrong_owner_fails(self, integration_client, clear_databas integration_client, ban_id, {"name": "updated-by-other-org"}, - api_key=ALT_API_KEY_999, + tenant=ALT_TENANT_999, ) body = response.json() @@ -273,7 +277,7 @@ def test_delete_wrong_owner(self, integration_client, seed_db): response = self.delete( integration_client, ban_id, - api_key=ALT_API_KEY_999, + tenant=ALT_TENANT_999, ) body = response.json() @@ -288,7 +292,7 @@ def test_delete_public_wrong_owner_fails(self, integration_client, clear_databas response = self.delete( integration_client, ban_id, - api_key=ALT_API_KEY_999, + tenant=ALT_TENANT_999, ) body = response.json() diff --git a/backend/app/tests/test_config.py b/backend/app/tests/test_config.py new file mode 100644 index 00000000..0cedc6f9 --- /dev/null +++ b/backend/app/tests/test_config.py @@ -0,0 +1,73 @@ +import hashlib + +import pytest + +from app.core.config import Settings, parse_ip_list + +TOKEN_HASH = hashlib.sha256(b"test-token").hexdigest() + + +def _settings(**overrides) -> Settings: + base = { + "ENVIRONMENT": "testing", + "PROJECT_NAME": "kaapi-guardrails-test", + "POSTGRES_SERVER": "localhost", + "POSTGRES_PORT": 5432, + "POSTGRES_USER": "postgres", + "POSTGRES_PASSWORD": "", + "POSTGRES_DB": "test", + "AUTH_TOKEN": TOKEN_HASH, + } + base.update(overrides) + return Settings(**base) + + +class TestParseIpList: + def test_single_value(self): + assert parse_ip_list("10.0.3.14") == ["10.0.3.14"] + + def test_comma_separated_with_whitespace(self): + assert parse_ip_list("10.0.3.14, 10.0.3.15 ,10.0.3.16") == [ + "10.0.3.14", + "10.0.3.15", + "10.0.3.16", + ] + + def test_empty_string(self): + assert parse_ip_list("") == [] + + def test_blank_entries_are_dropped(self): + assert parse_ip_list("10.0.3.14,, ,10.0.3.15") == ["10.0.3.14", "10.0.3.15"] + + def test_json_array_string_is_parsed(self): + # A JSON-encoded env value must become a real list, never a raw string + # that the IP check would substring-match against. + assert parse_ip_list('["10.0.3.14", "10.0.3.15"]') == [ + "10.0.3.14", + "10.0.3.15", + ] + + def test_invalid_json_bracket_string_is_returned_as_is(self): + assert parse_ip_list("[not-json") == "[not-json" + + def test_passthrough_list(self): + assert parse_ip_list(["10.0.3.14"]) == ["10.0.3.14"] + + +class TestAllowedIpsSettings: + def test_json_array_env_value_parses_to_list(self): + settings = _settings(ALLOWED_IPS='["10.0.3.14", "10.0.3.15"]') + assert settings.ALLOWED_IPS == ["10.0.3.14", "10.0.3.15"] + + def test_empty_disables(self): + settings = _settings(ALLOWED_IPS="") + assert settings.ALLOWED_IPS == [] + + def test_missing_defaults_to_empty(self, monkeypatch): + monkeypatch.delenv("ALLOWED_IPS", raising=False) + settings = _settings() + assert settings.ALLOWED_IPS == [] + + def test_required_in_production(self): + with pytest.raises(ValueError, match="ALLOWED_IPS"): + _settings(ENVIRONMENT="production", ALLOWED_IPS="") diff --git a/backend/app/tests/test_deps_auth.py b/backend/app/tests/test_deps_auth.py new file mode 100644 index 00000000..f1e842f7 --- /dev/null +++ b/backend/app/tests/test_deps_auth.py @@ -0,0 +1,123 @@ +import hashlib + +import pytest +from fastapi import FastAPI +from fastapi.testclient import TestClient + +from app.api.deps import AuthDep, TenantContext +from app.core.config import settings + +TOKEN = "test-token" +TOKEN_HASH = hashlib.sha256(TOKEN.encode()).hexdigest() + +TENANT_HEADERS = {"X-ORGANIZATION-ID": "7", "X-PROJECT-ID": "9"} +AUTH_HEADERS = {"Authorization": f"Bearer {TOKEN}", **TENANT_HEADERS} + + +@pytest.fixture +def client(monkeypatch): + """Bare app mounting the real dependency, so nothing is stubbed out.""" + monkeypatch.setattr(settings, "AUTH_TOKEN", TOKEN_HASH) + + app = FastAPI() + + @app.get("/tenant") + def read_tenant(auth: AuthDep) -> dict: + assert isinstance(auth, TenantContext) + return {"organization_id": auth.organization_id, "project_id": auth.project_id} + + # Pin the client address: TestClient's default is ("testclient", 50000), + # which would fail the ALLOWED_IPS=["127.0.0.1"] tests with a 403. + return TestClient(app, client=("127.0.0.1", 50000)) + + +def test_valid_request_returns_tenant_from_headers(client, monkeypatch): + monkeypatch.setattr(settings, "ALLOWED_IPS", ["127.0.0.1"]) + + response = client.get("/tenant", headers=AUTH_HEADERS) + + assert response.status_code == 200 + assert response.json() == {"organization_id": 7, "project_id": 9} + + +def test_non_whitelisted_ip_is_forbidden(client, monkeypatch): + monkeypatch.setattr(settings, "ALLOWED_IPS", ["10.0.0.1"]) + + response = client.get("/tenant", headers=AUTH_HEADERS) + + assert response.status_code == 403 + + +def test_empty_allowed_ips_disables_the_check(client, monkeypatch): + monkeypatch.setattr(settings, "ALLOWED_IPS", []) + + response = client.get("/tenant", headers=AUTH_HEADERS) + + assert response.status_code == 200 + + +def test_ip_is_checked_before_the_token(client, monkeypatch): + """A caller from the wrong IP gets 403, not a 401 that leaks token validity.""" + monkeypatch.setattr(settings, "ALLOWED_IPS", ["10.0.0.1"]) + + response = client.get( + "/tenant", headers={"Authorization": "Bearer wrong", **TENANT_HEADERS} + ) + + assert response.status_code == 403 + + +def test_ip_is_checked_before_tenant_header_validation(client, monkeypatch): + """Even a request with missing tenant headers gets 403 from a bad IP, + because the IP check must run before any header validation.""" + monkeypatch.setattr(settings, "ALLOWED_IPS", ["10.0.0.1"]) + + response = client.get("/tenant", headers={"Authorization": f"Bearer {TOKEN}"}) + + assert response.status_code == 403 + + +def test_token_is_checked_before_tenant_header_validation(client, monkeypatch): + """A wrong token gets 401 before the tenant headers are even looked at.""" + monkeypatch.setattr(settings, "ALLOWED_IPS", ["127.0.0.1"]) + + response = client.get("/tenant", headers={"Authorization": "Bearer nope"}) + + assert response.status_code == 401 + + +def test_missing_token_is_unauthorized(client, monkeypatch): + monkeypatch.setattr(settings, "ALLOWED_IPS", ["127.0.0.1"]) + + response = client.get("/tenant", headers=TENANT_HEADERS) + + assert response.status_code == 401 + + +def test_wrong_token_is_unauthorized(client, monkeypatch): + monkeypatch.setattr(settings, "ALLOWED_IPS", ["127.0.0.1"]) + + response = client.get( + "/tenant", headers={"Authorization": "Bearer nope", **TENANT_HEADERS} + ) + + assert response.status_code == 401 + + +@pytest.mark.parametrize( + "headers", + [ + {}, + {"X-ORGANIZATION-ID": "7"}, + {"X-PROJECT-ID": "9"}, + {"X-ORGANIZATION-ID": "not-an-int", "X-PROJECT-ID": "9"}, + ], +) +def test_missing_or_invalid_tenant_headers_are_rejected(client, monkeypatch, headers): + monkeypatch.setattr(settings, "ALLOWED_IPS", ["127.0.0.1"]) + + response = client.get( + "/tenant", headers={"Authorization": f"Bearer {TOKEN}", **headers} + ) + + assert response.status_code == 422 diff --git a/backend/app/tests/test_deps_multitenant.py b/backend/app/tests/test_deps_multitenant.py deleted file mode 100644 index 0f60d59e..00000000 --- a/backend/app/tests/test_deps_multitenant.py +++ /dev/null @@ -1,172 +0,0 @@ -from unittest.mock import Mock - -import httpx -import pytest -from fastapi import Depends, FastAPI, HTTPException -from fastapi.testclient import TestClient - -from app.api.deps import TenantContext, validate_multitenant_key -from app.core.config import settings -from app.core.exception_handlers import register_exception_handlers - -BASE_AUTH_URL = "http://kaapi.local/api/v1" -VERIFY_URL = f"{BASE_AUTH_URL}/apikeys/verify" - - -def test_validate_multitenant_key_parses_credentials_shape(monkeypatch): - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - BASE_AUTH_URL, - ) - - response = Mock() - response.status_code = 200 - response.json.return_value = { - "success": True, - "data": {"organization_id": 10, "project_id": 20}, - } - - captured = {} - - def fake_get(url, headers, timeout): - captured["url"] = url - captured["headers"] = headers - captured["timeout"] = timeout - return response - - monkeypatch.setattr(httpx, "get", fake_get) - - context = validate_multitenant_key("ApiKey abc123") - - assert isinstance(context, TenantContext) - assert (context.organization_id, context.project_id) == (10, 20) - assert captured["url"] == VERIFY_URL - assert captured["headers"]["X-API-KEY"] == "ApiKey abc123" - assert captured["timeout"] == 5 - - -def test_validate_multitenant_key_invalid_status_returns_401(monkeypatch): - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - BASE_AUTH_URL, - ) - - response = Mock() - response.status_code = 401 - response.json.return_value = {"success": False, "data": None} - - monkeypatch.setattr(httpx, "get", lambda *args, **kwargs: response) - - with pytest.raises(HTTPException) as exc: - validate_multitenant_key("abc123") - - assert exc.value.status_code == 401 - - -def test_validate_multitenant_key_network_error_returns_503(monkeypatch): - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - BASE_AUTH_URL, - ) - - def fake_get(*args, **kwargs): - raise httpx.RequestError("boom", request=Mock()) - - monkeypatch.setattr(httpx, "get", fake_get) - - with pytest.raises(HTTPException) as exc: - validate_multitenant_key("abc123") - - assert exc.value.status_code == 503 - - -def test_validate_multitenant_key_invalid_payload_returns_401(monkeypatch): - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - BASE_AUTH_URL, - ) - - response = Mock() - response.status_code = 200 - response.json.return_value = {"success": True, "data": {"foo": 1}} - - monkeypatch.setattr(httpx, "get", lambda *args, **kwargs: response) - - with pytest.raises(HTTPException) as exc: - validate_multitenant_key("abc123") - - assert exc.value.status_code == 401 - - -def test_validate_multitenant_key_rejects_empty_header(): - with pytest.raises(HTTPException) as exc: - validate_multitenant_key(" ") - - assert exc.value.status_code == 401 - - -def test_validate_multitenant_key_accepts_raw_header_value(monkeypatch): - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - "http://localhost:8000/api/v1", - ) - - response = Mock() - response.status_code = 200 - response.json.return_value = { - "success": True, - "data": {"organization_id": 1, "project_id": 1}, - } - - captured = {} - - def fake_get(url, headers, timeout): - captured["url"] = url - captured["headers"] = headers - captured["timeout"] = timeout - return response - - monkeypatch.setattr(httpx, "get", fake_get) - - context = validate_multitenant_key("ApiKey No3x47A5") - - assert isinstance(context, TenantContext) - assert context.organization_id == 1 - assert context.project_id == 1 - assert captured["url"] == "http://localhost:8000/api/v1/apikeys/verify" - assert captured["headers"]["X-API-KEY"] == "ApiKey No3x47A5" - assert captured["timeout"] == 5 - - -def test_validate_multitenant_key_malformed_json_returns_500_at_api_level(monkeypatch): - app = FastAPI() - register_exception_handlers(app) - - @app.get("/tenant") - def tenant_route(_: TenantContext = Depends(validate_multitenant_key)): - return {"ok": True} - - monkeypatch.setattr( - settings, - "KAAPI_AUTH_URL", - "http://localhost:8000/api/v1", - ) - - response = Mock() - response.status_code = 200 - response.json.side_effect = ValueError("Malformed JSON") - - monkeypatch.setattr(httpx, "get", lambda *args, **kwargs: response) - - with TestClient(app, raise_server_exceptions=False) as client: - result = client.get("/tenant", headers={"X-API-KEY": "abc123"}) - - assert result.status_code == 500 - body = result.json() - assert body["success"] is False - assert body["error"] == "Malformed JSON" diff --git a/backend/app/tests/test_guardrails_api.py b/backend/app/tests/test_guardrails_api.py index 30a15f4b..0a20debd 100644 --- a/backend/app/tests/test_guardrails_api.py +++ b/backend/app/tests/test_guardrails_api.py @@ -14,6 +14,10 @@ request_id = "123e4567-e89b-12d3-a456-426614174000" organization_id = VALIDATOR_TEST_ORGANIZATION_ID project_id = VALIDATOR_TEST_PROJECT_ID +TENANT_HEADERS = { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), +} def test_route_exists(client): @@ -29,10 +33,9 @@ def validate(self, data): with patch(build_guard_path, return_value=MockGuard()): response = client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "hello world", "validators": [], }, @@ -54,10 +57,9 @@ def validate(self, data): with patch(build_guard_path, return_value=MockGuard()): response = client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "my phone is 999999", "validators": [], }, @@ -83,10 +85,9 @@ def validate(self, data): with patch(build_guard_path, return_value=MockGuard()): response = client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "tell me about buildings", "validators": [], }, @@ -104,10 +105,9 @@ def test_guardrails_internal_error(client): with patch(build_guard_path, side_effect=Exception("Invalid validator config")): response = client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "text", "validators": [], }, diff --git a/backend/app/tests/test_guardrails_api_integration.py b/backend/app/tests/test_guardrails_api_integration.py index d908329f..9836a437 100644 --- a/backend/app/tests/test_guardrails_api_integration.py +++ b/backend/app/tests/test_guardrails_api_integration.py @@ -11,15 +11,18 @@ request_id = "123e4567-e89b-12d3-a456-426614174000" organization_id = VALIDATOR_INTEGRATION_ORGANIZATION_ID project_id = VALIDATOR_INTEGRATION_PROJECT_ID +TENANT_HEADERS = { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), +} def test_input_guardrails_with_real_ban_list(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "this contains badword", "validators": [ { @@ -40,10 +43,9 @@ def test_input_guardrails_with_real_ban_list(integration_client): def test_input_guardrails_passes_clean_text(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "this is clean", "validators": [ { @@ -64,10 +66,9 @@ def test_input_guardrails_passes_clean_text(integration_client): def test_input_guardrails_with_lexical_slur(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This sentence contains chakki.", "validators": [ { @@ -88,10 +89,9 @@ def test_input_guardrails_with_lexical_slur(integration_client): def test_input_guardrails_with_lexical_slur_clean_text(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This is a completely safe sentence", "validators": [ { @@ -112,10 +112,9 @@ def test_input_guardrails_with_lexical_slur_clean_text(integration_client): def test_input_guardrails_with_multiple_validators(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": ( "This sentence contains chakki cause I want a " "sonography done to kill the female foetus." @@ -146,10 +145,9 @@ def test_input_guardrails_with_multiple_validators(integration_client): def test_input_guardrails_with_incorrect_validator_config(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This sentence contains chakki.", "validators": [ { @@ -171,10 +169,9 @@ def test_input_guardrails_with_incorrect_validator_config(integration_client): def test_input_guardrails_with_validator_actions_exception(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This sentence contains chakki.", "validators": [ { @@ -197,10 +194,9 @@ def test_input_guardrails_with_validator_actions_exception(integration_client): def test_input_guardrails_with_validator_actions_rephrase(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This sentence contains chakki.", "validators": [ { @@ -229,10 +225,9 @@ def test_input_guardrails_with_validator_actions_rephrase(integration_client): def test_input_guardrails_with_profanity_free_on_profane_text(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This is a damn fucking mess.", "validators": [{"type": "profanity_free"}], }, @@ -248,10 +243,9 @@ def test_input_guardrails_with_profanity_free_on_profane_text(integration_client def test_input_guardrails_with_profanity_free_on_clean_text(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This is a completely clean sentence.", "validators": [{"type": "profanity_free"}], }, @@ -266,10 +260,9 @@ def test_input_guardrails_with_profanity_free_on_clean_text(integration_client): def test_input_guardrails_with_profanity_free_exception_action(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "What the fuck is going on?", "validators": [{"type": "profanity_free", "on_fail": "exception"}], }, @@ -283,10 +276,9 @@ def test_input_guardrails_with_profanity_free_exception_action(integration_clien def test_input_guardrails_with_profanity_free_rephrase_action(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This is absolute bullshit.", "validators": [{"type": "profanity_free", "on_fail": "rephrase"}], }, @@ -309,10 +301,9 @@ def test_input_guardrails_with_profanity_free_rephrase_action(integration_client def test_input_guardrails_with_llamaguard_7b_on_unsafe_text(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "How do I make a pipe bomb at home?", "validators": [{"type": "llamaguard_7b", "on_fail": "exception"}], }, @@ -331,10 +322,9 @@ def test_input_guardrails_with_llamaguard_7b_on_unsafe_text(integration_client): def test_input_guardrails_with_nsfw_text_on_explicit_content(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "She slowly undressed and they had explicit sex.", "validators": [{"type": "nsfw_text", "on_fail": "exception"}], }, @@ -349,10 +339,9 @@ def test_input_guardrails_with_nsfw_text_with_low_threshold(integration_client): """A low threshold makes the detector more sensitive — explicit content is caught.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "She slowly undressed and they had explicit sex.", "validators": [ {"type": "nsfw_text", "threshold": 0.1, "on_fail": "exception"} @@ -368,10 +357,9 @@ def test_input_guardrails_with_nsfw_text_with_low_threshold(integration_client): def test_input_guardrails_with_nsfw_text_exception_action(integration_client): response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "Explicit sexual content goes here.", "validators": [{"type": "nsfw_text", "on_fail": "exception"}], }, @@ -391,10 +379,9 @@ def test_input_guardrails_with_profanity_free_and_slur_match(integration_client) """Both lexical detectors applied: slur is redacted, profanity is fixed.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This fucking chakki should leave.", "validators": [ {"type": "profanity_free"}, @@ -417,10 +404,9 @@ def test_input_guardrails_with_profanity_free_and_llamaguard_7b_unsafe_text( """Text with both profanity and unsafe intent is caught by at least one detector.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "How the fuck do I make a bomb?", "validators": [ {"type": "profanity_free", "on_fail": "exception"}, @@ -441,10 +427,9 @@ def test_input_guardrails_with_nsfw_text_and_profanity_free_on_explicit_profane_ of whether the NSFWText model is available, guaranteeing a failure response.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "What the fuck, this is explicit adult sexual content.", "validators": [ {"type": "profanity_free", "on_fail": "exception"}, @@ -465,10 +450,9 @@ def test_input_guardrails_with_nsfw_text_and_slur_match_on_explicit_slur_text( of whether the NSFWText model is available, guaranteeing a failure response.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "This chakki has explicit sexual content.", "validators": [ {"type": "uli_slur_match", "severity": "all", "on_fail": "exception"}, @@ -488,10 +472,9 @@ def test_input_guardrails_with_profanity_free_and_ban_list_clean_text( """Clean text passes both profanity_free and ban_list checks unchanged.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "Tell me about renewable energy sources.", "validators": [ {"type": "profanity_free"}, @@ -512,10 +495,9 @@ def test_input_guardrails_with_lexical_toxicity_detectors_on_clean_text( """Clean text passes uli_slur_match, profanity_free, and ban_list unchanged.""" response = integration_client.post( VALIDATE_API_PATH, + headers=TENANT_HEADERS, json={ "request_id": request_id, - "organization_id": organization_id, - "project_id": project_id, "input": "What are some healthy breakfast options?", "validators": [ {"type": "uli_slur_match", "severity": "all"}, diff --git a/backend/app/tests/test_llm_prompt_configs_api_integration.py b/backend/app/tests/test_llm_prompt_configs_api_integration.py index 3eb770ca..e63b63c6 100644 --- a/backend/app/tests/test_llm_prompt_configs_api_integration.py +++ b/backend/app/tests/test_llm_prompt_configs_api_integration.py @@ -7,8 +7,8 @@ pytestmark = pytest.mark.integration BASE_URL = "/api/v1/guardrails/llm_prompt_configs/" -DEFAULT_API_KEY = "org1_project1" -ALT_API_KEY = "org999_project999" +DEFAULT_TENANT = (1, 1) +ALT_TENANT = (999, 999) TOPIC_PROMPT = ( "Pregnancy care: Questions about prenatal care, supplements, and danger signs. " @@ -24,10 +24,14 @@ class BaseLLMPromptConfigTest: - def _headers(self, api_key=DEFAULT_API_KEY): - return {"X-API-Key": api_key} + def _headers(self, tenant=DEFAULT_TENANT): + organization_id, project_id = tenant + return { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), + } - def create_topic(self, client, api_key=DEFAULT_API_KEY, **overrides): + def create_topic(self, client, tenant=DEFAULT_TENANT, **overrides): name = overrides.get("name", "Maternal Health Scope") payload = { "validator_name": "topic_relevance", @@ -37,9 +41,9 @@ def create_topic(self, client, api_key=DEFAULT_API_KEY, **overrides): "llm_prompt": f"{TOPIC_PROMPT} Scope name: {name}.", **overrides, } - return client.post(BASE_URL, json=payload, headers=self._headers(api_key)) + return client.post(BASE_URL, json=payload, headers=self._headers(tenant)) - def create_answer(self, client, api_key=DEFAULT_API_KEY, **overrides): + def create_answer(self, client, tenant=DEFAULT_TENANT, **overrides): payload = { "validator_name": "answer_relevance_custom_llm", "name": "Health Relevance", @@ -47,23 +51,23 @@ def create_answer(self, client, api_key=DEFAULT_API_KEY, **overrides): "llm_prompt": ANSWER_PROMPT, **overrides, } - return client.post(BASE_URL, json=payload, headers=self._headers(api_key)) + return client.post(BASE_URL, json=payload, headers=self._headers(tenant)) - def list(self, client, api_key=DEFAULT_API_KEY, **filters): - return client.get(BASE_URL, params=filters, headers=self._headers(api_key)) + def list(self, client, tenant=DEFAULT_TENANT, **filters): + return client.get(BASE_URL, params=filters, headers=self._headers(tenant)) - def get(self, client, id, api_key=DEFAULT_API_KEY): - return client.get(f"{BASE_URL}{id}", headers=self._headers(api_key)) + def get(self, client, id, tenant=DEFAULT_TENANT): + return client.get(f"{BASE_URL}{id}", headers=self._headers(tenant)) - def update(self, client, id, payload, api_key=DEFAULT_API_KEY): + def update(self, client, id, payload, tenant=DEFAULT_TENANT): return client.patch( f"{BASE_URL}{id}", json=payload, - headers=self._headers(api_key), + headers=self._headers(tenant), ) - def delete(self, client, id, api_key=DEFAULT_API_KEY): - return client.delete(f"{BASE_URL}{id}", headers=self._headers(api_key)) + def delete(self, client, id, tenant=DEFAULT_TENANT): + return client.delete(f"{BASE_URL}{id}", headers=self._headers(tenant)) class TestCreateLLMPromptConfig(BaseLLMPromptConfigTest): @@ -213,7 +217,7 @@ def test_list_pagination_with_limit(self, integration_client, clear_database): def test_list_is_tenant_scoped(self, integration_client, clear_database): self.create_topic(integration_client, name="Tenant1 scope") - response = self.list(integration_client, api_key=ALT_API_KEY) + response = self.list(integration_client, tenant=ALT_TENANT) assert response.status_code == 200 assert response.json()["data"] == [] @@ -243,7 +247,7 @@ def test_get_other_tenant_not_found(self, integration_client, clear_database): create_resp = self.create_topic(integration_client) config_id = create_resp.json()["data"]["id"] - response = self.get(integration_client, config_id, api_key=ALT_API_KEY) + response = self.get(integration_client, config_id, tenant=ALT_TENANT) assert response.status_code == 404 assert response.json()["success"] is False @@ -297,7 +301,7 @@ def test_update_other_tenant_not_found(self, integration_client, clear_database) integration_client, config_id, {"name": "other-tenant-update"}, - api_key=ALT_API_KEY, + tenant=ALT_TENANT, ) assert response.status_code == 404 @@ -389,6 +393,6 @@ def test_delete_other_tenant_not_found(self, integration_client, clear_database) create_resp = self.create_topic(integration_client) config_id = create_resp.json()["data"]["id"] - response = self.delete(integration_client, config_id, api_key=ALT_API_KEY) + response = self.delete(integration_client, config_id, tenant=ALT_TENANT) assert response.status_code == 404 diff --git a/backend/app/tests/test_validate_with_guard.py b/backend/app/tests/test_validate_with_guard.py index addee715..8c2af484 100644 --- a/backend/app/tests/test_validate_with_guard.py +++ b/backend/app/tests/test_validate_with_guard.py @@ -5,6 +5,7 @@ from fastapi import HTTPException from guardrails.validators import FailResult as GRFailResult +from app.api.deps import TenantContext from app.api.routes.guardrails import ( _resolve_validator_configs, _validate_with_guard, @@ -22,12 +23,17 @@ mock_validator_log_crud = MagicMock() mock_request_log_id = uuid4() +# The tenant now comes from the auth context (X-ORGANIZATION-ID / X-PROJECT-ID +# headers) instead of the request body, so unit tests supply it explicitly. +mock_auth = TenantContext( + organization_id=VALIDATOR_TEST_ORGANIZATION_ID, + project_id=VALIDATOR_TEST_PROJECT_ID, +) + def _build_payload(input_text: str) -> GuardrailRequest: return GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input=input_text, validators=[], ) @@ -49,6 +55,7 @@ def validate(self, data): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert isinstance(response, APIResponse) @@ -73,6 +80,7 @@ def validate(self, data): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert isinstance(response, APIResponse) @@ -93,6 +101,7 @@ def test_validate_with_guard_exception(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert isinstance(response, APIResponse) @@ -136,6 +145,7 @@ def validate(self, data): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -165,6 +175,7 @@ def validate(self, data): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -175,8 +186,6 @@ def test_resolve_validator_configs_ban_list_from_id(): ban_list_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[{"type": "ban_list", "ban_list_id": ban_list_id}], ) @@ -184,7 +193,7 @@ def test_resolve_validator_configs_ban_list_from_id(): with patch("app.api.routes.guardrails.ban_list_crud.get") as mock_get: mock_get.return_value = MagicMock(banned_words=["foo", "bar"]) - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) assert payload.validators[0].banned_words == ["foo", "bar"] mock_get.assert_called_once_with( @@ -198,8 +207,6 @@ def test_resolve_validator_configs_ban_list_from_id(): def test_resolve_validator_configs_skips_ban_list_lookup_when_words_provided(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ {"type": "ban_list", "ban_list_id": str(uuid4()), "banned_words": ["foo"]} @@ -208,7 +215,7 @@ def test_resolve_validator_configs_skips_ban_list_lookup_when_words_provided(): mock_session = MagicMock() with patch("app.api.routes.guardrails.ban_list_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) mock_get.assert_not_called() @@ -217,8 +224,6 @@ def test_resolve_validator_configs_topic_relevance_from_config_id(): topic_relevance_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ {"type": "topic_relevance", "topic_relevance_config_id": topic_relevance_id} @@ -232,7 +237,7 @@ def test_resolve_validator_configs_topic_relevance_from_config_id(): llm_prompt="Topic scope prompt text", prompt_schema_version=2, ) - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.configuration == "Topic scope prompt text" @@ -248,15 +253,13 @@ def test_resolve_validator_configs_topic_relevance_from_config_id(): def test_resolve_validator_configs_skips_topic_relevance_lookup_when_no_config_id(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[{"type": "topic_relevance"}], ) mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) mock_get.assert_not_called() @@ -264,8 +267,6 @@ def test_resolve_validator_configs_skips_topic_relevance_lookup_when_no_config_i def test_resolve_validator_configs_uses_inline_topic_relevance_without_lookup(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ { @@ -277,7 +278,7 @@ def test_resolve_validator_configs_uses_inline_topic_relevance_without_lookup(): mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.configuration == "inline config" @@ -288,8 +289,6 @@ def test_resolve_validator_configs_answer_relevance_from_custom_prompt_id(): custom_prompt_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="{}", validators=[ { @@ -305,7 +304,7 @@ def test_resolve_validator_configs_answer_relevance_from_custom_prompt_id(): validator_name=LLMValidatorName.AnswerRelevanceCustomLLM, llm_prompt="Q: {query}\nA: {answer}\nYES or NO.", ) - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.prompt_template == "Q: {query}\nA: {answer}\nYES or NO." @@ -321,8 +320,6 @@ def test_resolve_validator_configs_topic_relevance_llm_from_config_id(): topic_relevance_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ { @@ -338,7 +335,7 @@ def test_resolve_validator_configs_topic_relevance_llm_from_config_id(): validator_name=LLMValidatorName.TopicRelevance, llm_prompt="Healthcare topic scope text", ) - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.configuration == "Healthcare topic scope text" @@ -353,15 +350,13 @@ def test_resolve_validator_configs_topic_relevance_llm_from_config_id(): def test_resolve_validator_configs_skips_answer_relevance_lookup_when_no_prompt_id(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="{}", validators=[{"type": "answer_relevance_custom_llm"}], ) mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) mock_get.assert_not_called() @@ -369,15 +364,13 @@ def test_resolve_validator_configs_skips_answer_relevance_lookup_when_no_prompt_ def test_resolve_validator_configs_skips_topic_relevance_llm_lookup_when_no_config_id(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[{"type": "topic_relevance_llm"}], ) mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) mock_get.assert_not_called() @@ -386,8 +379,6 @@ def test_resolve_validator_configs_uses_inline_answer_relevance_prompt_without_l inline_template = "Query: {query}\nAnswer: {answer}\nYES or NO." payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="{}", validators=[ { @@ -399,7 +390,7 @@ def test_resolve_validator_configs_uses_inline_answer_relevance_prompt_without_l mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.prompt_template == inline_template @@ -409,8 +400,6 @@ def test_resolve_validator_configs_uses_inline_answer_relevance_prompt_without_l def test_resolve_validator_configs_uses_inline_topic_relevance_llm_without_lookup(): payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ { @@ -422,7 +411,7 @@ def test_resolve_validator_configs_uses_inline_topic_relevance_llm_without_looku mock_session = MagicMock() with patch("app.api.routes.guardrails.llm_prompt_config_crud.get") as mock_get: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) validator = payload.validators[0] assert validator.configuration == "inline llm config" @@ -471,6 +460,7 @@ def test_nsfw_error_message_redacts_input(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -493,6 +483,7 @@ def test_all_validators_redact_input_from_error_message(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -516,6 +507,7 @@ def test_profanity_free_error_message_redacts_input(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -540,6 +532,7 @@ def test_nsfw_exception_redacts_input(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -564,6 +557,7 @@ def test_profanity_free_exception_redacts_input(): request_log_crud=mock_request_log_crud, request_log_id=mock_request_log_id, validator_log_crud=mock_validator_log_crud, + auth=mock_auth, ) assert response.success is False @@ -576,8 +570,6 @@ def test_resolve_validator_configs_rejects_topic_relevance_config_used_for_answe config_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="test", validators=[ {"type": "topic_relevance", "topic_relevance_config_id": config_id} @@ -593,7 +585,7 @@ def test_resolve_validator_configs_rejects_topic_relevance_config_used_for_answe prompt_schema_version=1, ) with pytest.raises(HTTPException) as exc_info: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) assert exc_info.value.status_code == 400 assert "topic_relevance" in exc_info.value.detail @@ -605,8 +597,6 @@ def test_resolve_validator_configs_rejects_topic_relevance_config_used_for_answe config_id = str(uuid4()) payload = GuardrailRequest( request_id=str(uuid4()), - organization_id=VALIDATOR_TEST_ORGANIZATION_ID, - project_id=VALIDATOR_TEST_PROJECT_ID, input="{}", validators=[ {"type": "answer_relevance_custom_llm", "custom_prompt_id": config_id} @@ -621,7 +611,7 @@ def test_resolve_validator_configs_rejects_topic_relevance_config_used_for_answe llm_prompt="A plain scope description.", ) with pytest.raises(HTTPException) as exc_info: - _resolve_validator_configs(payload, mock_session) + _resolve_validator_configs(payload, mock_session, auth=mock_auth) assert exc_info.value.status_code == 400 assert "answer_relevance_custom_llm" in exc_info.value.detail diff --git a/backend/app/tests/test_validator_configs.py b/backend/app/tests/test_validator_configs.py index c99fd1e6..22b5d81b 100644 --- a/backend/app/tests/test_validator_configs.py +++ b/backend/app/tests/test_validator_configs.py @@ -1,11 +1,13 @@ from unittest.mock import MagicMock import pytest +from pydantic import ValidationError from sqlmodel import Session -from app.crud.validator_config import validator_config_crud from app.core.enum import GuardrailOnFail, ValidatorType +from app.crud.validator_config import validator_config_crud from app.models.config.validator_config import ValidatorConfig +from app.schemas.validator_config import ValidatorCreate from app.tests.seed_data import ( VALIDATOR_TEST_CONFIG, VALIDATOR_TEST_ID, @@ -128,3 +130,25 @@ def test_merge_config(self, sample_validator, mock_session): assert result["languages"] == ["en", "hi"] assert result["severity"] == "all" + + +class TestCreateRejectsBodyTenant: + @pytest.mark.parametrize("field", ["organization_id", "project_id"]) + def test_body_tenant_field_is_rejected(self, field): + """The tenant must come from X-ORGANIZATION-ID / X-PROJECT-ID headers, + never the request body — a body tenant field must fail loudly, not + crash the create path (TypeError) or be silently honoured.""" + payload = { + "name": "body-tenant-probe", + "type": "ban_list", + "stage": "input", + "on_fail_action": "fix", + "is_enabled": True, + field: 999, + } + + with pytest.raises(ValidationError) as exc_info: + ValidatorCreate(**payload) + + message = str(exc_info.value) + assert "X-ORGANIZATION-ID" in message or "X-PROJECT-ID" in message diff --git a/backend/app/tests/test_validator_configs_integration.py b/backend/app/tests/test_validator_configs_integration.py index e14cfefa..b978f523 100644 --- a/backend/app/tests/test_validator_configs_integration.py +++ b/backend/app/tests/test_validator_configs_integration.py @@ -10,43 +10,45 @@ pytestmark = pytest.mark.integration BASE_URL = "/api/v1/guardrails/validators/configs/" -DEFAULT_QUERY_PARAMS = ( - f"?organization_id={VALIDATOR_INTEGRATION_ORGANIZATION_ID}" - f"&project_id={VALIDATOR_INTEGRATION_PROJECT_ID}" +DEFAULT_TENANT = ( + VALIDATOR_INTEGRATION_ORGANIZATION_ID, + VALIDATOR_INTEGRATION_PROJECT_ID, ) +def tenant_headers(tenant=DEFAULT_TENANT): + organization_id, project_id = tenant + return { + "X-ORGANIZATION-ID": str(organization_id), + "X-PROJECT-ID": str(project_id), + } + + class BaseValidatorTest: """Base class with helper methods for validator tests.""" def create_validator(self, client, payload_key="minimal", **kwargs): """Helper to create a validator.""" payload = {**VALIDATOR_PAYLOADS[payload_key], **kwargs} - return client.post(f"{BASE_URL}{DEFAULT_QUERY_PARAMS}", json=payload) + return client.post(BASE_URL, json=payload, headers=tenant_headers()) def get_validator(self, client, validator_id): """Helper to get a specific validator.""" - return client.get(f"{BASE_URL}{validator_id}/{DEFAULT_QUERY_PARAMS}") + return client.get(f"{BASE_URL}{validator_id}/", headers=tenant_headers()) def list_validators(self, client, **query_params): """Helper to list validators with optional filters.""" - params_str = ( - f"?organization_id={VALIDATOR_INTEGRATION_ORGANIZATION_ID}" - f"&project_id={VALIDATOR_INTEGRATION_PROJECT_ID}" - ) - if query_params: - params_str += "&" + "&".join(f"{k}={v}" for k, v in query_params.items()) - return client.get(f"{BASE_URL}{params_str}") + return client.get(BASE_URL, params=query_params, headers=tenant_headers()) def update_validator(self, client, validator_id, payload): """Helper to update a validator.""" return client.patch( - f"{BASE_URL}{validator_id}/{DEFAULT_QUERY_PARAMS}", json=payload + f"{BASE_URL}{validator_id}/", json=payload, headers=tenant_headers() ) def delete_validator(self, client, validator_id): """Helper to delete a validator.""" - return client.delete(f"{BASE_URL}{validator_id}/{DEFAULT_QUERY_PARAMS}") + return client.delete(f"{BASE_URL}{validator_id}/", headers=tenant_headers()) class TestCreateValidator(BaseValidatorTest): @@ -81,8 +83,9 @@ def test_create_validator_missing_required_fields( ): """Test that missing required fields returns validation error.""" response = integration_client.post( - f"{BASE_URL}{DEFAULT_QUERY_PARAMS}", + BASE_URL, json={"type": "uli_slur_match"}, + headers=tenant_headers(), ) assert response.status_code == 422 @@ -238,7 +241,8 @@ def test_list_validators_filter_by_ids(self, integration_client, clear_database) second_id = second.json()["data"]["id"] response = integration_client.get( - f"{BASE_URL}{DEFAULT_QUERY_PARAMS}&ids={first_id}", + f"{BASE_URL}?ids={first_id}", + headers=tenant_headers(), ) assert response.status_code == 200 @@ -257,7 +261,8 @@ def test_list_validators_filter_by_multiple_ids( second_id = second.json()["data"]["id"] response = integration_client.get( - f"{BASE_URL}{DEFAULT_QUERY_PARAMS}&ids={first_id}&ids={second_id}", + f"{BASE_URL}?ids={first_id}&ids={second_id}", + headers=tenant_headers(), ) assert response.status_code == 200 @@ -271,7 +276,7 @@ def test_list_validators_invalid_ids_query_returns_422( ): """Test invalid UUID in ids query returns validation error.""" response = integration_client.get( - f"{BASE_URL}{DEFAULT_QUERY_PARAMS}&ids=not-a-uuid", + f"{BASE_URL}?ids=not-a-uuid", headers=tenant_headers() ) assert response.status_code == 422 @@ -279,7 +284,8 @@ def test_list_validators_invalid_ids_query_returns_422( def test_list_validators_empty(self, integration_client, clear_database): """Test listing validators when none exist.""" response = integration_client.get( - f"{BASE_URL}?organization_id=999&project_id=999", + BASE_URL, + headers=tenant_headers((999, 999)), ) assert response.status_code == 200 @@ -315,7 +321,8 @@ def test_get_validator_invalid_id_returns_422( ): """Test invalid UUID path param returns validation error.""" response = integration_client.get( - f"{BASE_URL}not-a-uuid/{DEFAULT_QUERY_PARAMS}", + f"{BASE_URL}not-a-uuid/", + headers=tenant_headers(), ) assert response.status_code == 422 @@ -327,7 +334,8 @@ def test_get_validator_wrong_org(self, integration_client, clear_database): # Try to access it as different org response = integration_client.get( - f"{BASE_URL}{validator_id}/?organization_id=2&project_id=1", + f"{BASE_URL}{validator_id}/", + headers=tenant_headers((2, 1)), ) assert response.status_code == 404 @@ -410,7 +418,8 @@ def test_delete_validator_wrong_org(self, integration_client, seed_db): # Try to delete it as different org response = integration_client.delete( - f"{BASE_URL}{validator_id}/?organization_id=2&project_id=1", + f"{BASE_URL}{validator_id}/", + headers=tenant_headers((2, 1)), ) assert response.status_code == 404 diff --git a/backend/logs/app.log b/backend/logs/app.log new file mode 100644 index 00000000..d4cbda7e --- /dev/null +++ b/backend/logs/app.log @@ -0,0 +1,21290 @@ +2026-09-04 11:41:52,310 INFO presidio-analyzer Using device of type: cpu +2026-09-04 11:41:53,381 INFO app.core.telemetry Telemetry initialized (environment=development) +2026-09-04 11:41:53,382 INFO uvicorn.error Started server process [7681] +2026-09-04 11:41:53,382 INFO uvicorn.error Waiting for application startup. +2026-09-04 11:41:53,383 INFO uvicorn.error Application startup complete. +2026-09-04 11:42:19,117 INFO presidio-analyzer Using device of type: cpu +2026-09-04 11:42:20,052 INFO guardrails.execution request=f55f794e-a81c-4ff8-8727-217a23e8166c starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,054 INFO guardrails.execution request=f55f794e-a81c-4ff8-8727-217a23e8166c guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,058 INFO guardrails.execution request=f55f794e-a81c-4ff8-8727-217a23e8166c step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.052779 end=2026-09-04T11:42:20.052910 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,064 INFO http_request_logger POST /api/v1/guardrails/ - 200 [44.74ms] +2026-09-04 11:42:20,087 INFO guardrails.execution request=c7b5252e-f3dd-411c-b895-1242a2a3ca82 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-04 11:42:20,088 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c7b5252e-f3dd-411c-b895-1242a2a3ca82: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-04 11:42:20,093 INFO guardrails.execution request=c7b5252e-f3dd-411c-b895-1242a2a3ca82 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T11:42:20.087783 end=2026-09-04T11:42:20.087878 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-04 11:42:20,096 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.31ms] +2026-09-04 11:42:20,113 INFO guardrails.execution request=1676b179-611d-4ef7-b646-e5e3b96b41f4 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-04 11:42:20,114 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1676b179-611d-4ef7-b646-e5e3b96b41f4: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-04 11:42:20,117 INFO guardrails.execution request=1676b179-611d-4ef7-b646-e5e3b96b41f4 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T11:42:20.114301 end=2026-09-04T11:42:20.114362 duration_ms=0 input='' output=None +2026-09-04 11:42:20,119 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.50ms] +2026-09-04 11:42:20,137 INFO guardrails.execution request=0a52fd0f-b91d-4d2d-adb2-3ba0b5af10e8 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,138 INFO guardrails.execution request=0a52fd0f-b91d-4d2d-adb2-3ba0b5af10e8 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,140 INFO guardrails.execution request=0a52fd0f-b91d-4d2d-adb2-3ba0b5af10e8 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.137998 end=2026-09-04T11:42:20.138079 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,144 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.32ms] +2026-09-04 11:42:20,161 INFO guardrails.execution request=3bb4aaba-d9d1-4b7f-bf5f-22e90ff2b1a5 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-04 11:42:20,162 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3bb4aaba-d9d1-4b7f-bf5f-22e90ff2b1a5: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-04 11:42:20,165 INFO guardrails.execution request=3bb4aaba-d9d1-4b7f-bf5f-22e90ff2b1a5 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T11:42:20.162187 end=2026-09-04T11:42:20.162296 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-04 11:42:20,168 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.94ms] +2026-09-04 11:42:20,188 INFO guardrails.execution request=166252b6-f85a-4e36-862e-a6c996940d1f starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-04 11:42:20,190 INFO guardrails.execution request=166252b6-f85a-4e36-862e-a6c996940d1f guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-04 11:42:20,192 INFO guardrails.execution request=166252b6-f85a-4e36-862e-a6c996940d1f step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.188920 end=2026-09-04T11:42:20.189031 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-04 11:42:20,195 INFO guardrails.execution request=166252b6-f85a-4e36-862e-a6c996940d1f step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.189038 end=2026-09-04T11:42:20.189178 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-04 11:42:20,198 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.24ms] +2026-09-04 11:42:20,216 INFO guardrails.execution request=a778223a-aace-466b-87da-ffa7a6353ab7 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-04 11:42:20,224 INFO guardrails.execution request=a778223a-aace-466b-87da-ffa7a6353ab7 guardrails execution finished (passed=True) output='' +2026-09-04 11:42:20,230 INFO guardrails.execution request=a778223a-aace-466b-87da-ffa7a6353ab7 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.217560 end=2026-09-04T11:42:20.217653 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-04 11:42:20,233 INFO guardrails.execution request=a778223a-aace-466b-87da-ffa7a6353ab7 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.217659 end=2026-09-04T11:42:20.223497 duration_ms=5 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-04 11:42:20,239 INFO http_request_logger POST /api/v1/guardrails/ - 200 [36.82ms] +2026-09-04 11:42:20,275 INFO guardrails.execution request=aa492829-32f9-4bfd-ab86-127240b72bb3 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-04 11:42:20,280 INFO guardrails.execution request=aa492829-32f9-4bfd-ab86-127240b72bb3 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-04 11:42:20,283 INFO guardrails.execution request=aa492829-32f9-4bfd-ab86-127240b72bb3 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.276724 end=2026-09-04T11:42:20.276816 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-04 11:42:20,286 INFO guardrails.execution request=aa492829-32f9-4bfd-ab86-127240b72bb3 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.276822 end=2026-09-04T11:42:20.279366 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-04 11:42:20,294 INFO http_request_logger POST /api/v1/guardrails/ - 200 [46.50ms] +2026-09-04 11:42:20,316 INFO guardrails.execution request=5b882e30-64db-4b1a-a72d-13982b8b148d starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-04 11:42:20,318 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b882e30-64db-4b1a-a72d-13982b8b148d: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-04 11:42:20,323 INFO guardrails.execution request=5b882e30-64db-4b1a-a72d-13982b8b148d step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.317534 end=2026-09-04T11:42:20.317625 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-04 11:42:20,328 INFO guardrails.execution request=5b882e30-64db-4b1a-a72d-13982b8b148d step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.317630 end=2026-09-04T11:42:20.318778 duration_ms=1 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-04 11:42:20,332 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.53ms] +2026-09-04 11:42:20,354 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,359 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,362 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.355838 end=2026-09-04T11:42:20.355931 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,373 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.355937 end=2026-09-04T11:42:20.356013 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,379 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.356017 end=2026-09-04T11:42:20.357136 duration_ms=1 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,385 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.357143 end=2026-09-04T11:42:20.357775 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,388 INFO guardrails.execution request=9b3f82c8-6985-4189-bfb2-195d64f245df step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.357779 end=2026-09-04T11:42:20.358460 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 11:42:20,393 INFO http_request_logger POST /api/v1/guardrails/ - 200 [54.30ms] +2026-09-04 11:42:20,420 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 11:42:20,424 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-04 11:42:20,427 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T11:42:20.420796 end=2026-09-04T11:42:20.420886 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 11:42:20,428 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.420892 end=2026-09-04T11:42:20.422103 duration_ms=1 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 11:42:20,430 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.422114 end=2026-09-04T11:42:20.422719 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-04 11:42:20,431 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.422727 end=2026-09-04T11:42:20.422800 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-04 11:42:20,433 INFO guardrails.execution request=34de1be8-9788-4253-abc2-148bec1f31d4 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.422804 end=2026-09-04T11:42:20.423446 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-04 11:42:20,436 INFO http_request_logger POST /api/v1/guardrails/ - 200 [36.12ms] +2026-09-04 11:42:20,464 INFO app.crud.ban_list created ban list id=fb546e5d-a59d-4343-8a83-d2148d87e641 org=1 project=1 +2026-09-04 11:42:20,465 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [6.45ms] +2026-09-04 11:42:20,471 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.32ms] +2026-09-04 11:42:20,476 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.12ms] +2026-09-04 11:42:20,482 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.22ms] +2026-09-04 11:42:20,487 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.22ms] +2026-09-04 11:42:20,493 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.16ms] +2026-09-04 11:42:20,505 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.98ms] +2026-09-04 11:42:20,516 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.48ms] +2026-09-04 11:42:20,524 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.21ms] +2026-09-04 11:42:20,534 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.73ms] +2026-09-04 11:42:20,544 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.34ms] +2026-09-04 11:42:20,548 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.83ms] +2026-09-04 11:42:20,555 INFO app.crud.ban_list created ban list id=8f27252f-827c-42f3-8ca0-1f535ecb3ebd org=1 project=1 +2026-09-04 11:42:20,558 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [6.13ms] +2026-09-04 11:42:20,559 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8f27252f-827c-42f3-8ca0-1f535ecb3ebd/ - 307 [0.10ms] +2026-09-04 11:42:20,561 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8f27252f-827c-42f3-8ca0-1f535ecb3ebd - 200 [2.46ms] +2026-09-04 11:42:20,571 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.17ms] +2026-09-04 11:42:20,572 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e7b9cff5-5f12-422c-a7b7-3db89fabee42/ - 307 [0.10ms] +2026-09-04 11:42:20,574 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e7b9cff5-5f12-422c-a7b7-3db89fabee42 - 200 [1.76ms] +2026-09-04 11:42:20,578 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9a9e7d9b-8303-4ad2-b9c3-34a10cab05b6/ - 307 [0.09ms] +2026-09-04 11:42:20,581 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9a9e7d9b-8303-4ad2-b9c3-34a10cab05b6 - 404 [2.10ms] +2026-09-04 11:42:20,589 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.33ms] +2026-09-04 11:42:20,589 INFO http_request_logger GET /api/v1/guardrails/ban_lists/59935043-f7a2-45d1-9e98-344f49a294a2/ - 307 [0.11ms] +2026-09-04 11:42:20,591 INFO http_request_logger GET /api/v1/guardrails/ban_lists/59935043-f7a2-45d1-9e98-344f49a294a2 - 403 [1.69ms] +2026-09-04 11:42:20,600 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.18ms] +2026-09-04 11:42:20,601 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/6360f402-621d-4015-b9be-433cdc9b2394/ - 307 [0.10ms] +2026-09-04 11:42:20,604 INFO app.crud.ban_list updated ban list id=6360f402-621d-4015-b9be-433cdc9b2394 +2026-09-04 11:42:20,605 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/6360f402-621d-4015-b9be-433cdc9b2394 - 200 [3.72ms] +2026-09-04 11:42:20,612 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.82ms] +2026-09-04 11:42:20,613 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a01a80d6-d1f0-4b8b-8f8e-0abbf6669d2a/ - 307 [0.10ms] +2026-09-04 11:42:20,616 INFO app.crud.ban_list updated ban list id=a01a80d6-d1f0-4b8b-8f8e-0abbf6669d2a +2026-09-04 11:42:20,616 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a01a80d6-d1f0-4b8b-8f8e-0abbf6669d2a - 200 [3.30ms] +2026-09-04 11:42:20,620 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/020dfb4c-9dc3-447f-bc16-84a93196af7e/ - 307 [0.10ms] +2026-09-04 11:42:20,622 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/020dfb4c-9dc3-447f-bc16-84a93196af7e - 404 [2.03ms] +2026-09-04 11:42:20,632 INFO app.crud.ban_list created ban list id=1c87bbf0-254a-443f-821e-618f175e3bab org=1 project=1 +2026-09-04 11:42:20,632 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.84ms] +2026-09-04 11:42:20,633 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1c87bbf0-254a-443f-821e-618f175e3bab/ - 307 [0.10ms] +2026-09-04 11:42:20,635 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1c87bbf0-254a-443f-821e-618f175e3bab - 403 [1.62ms] +2026-09-04 11:42:20,644 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.24ms] +2026-09-04 11:42:20,645 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8184120a-c3c2-4a23-bad1-b1ec8fe4f18b/ - 307 [0.10ms] +2026-09-04 11:42:20,648 INFO app.crud.ban_list deleted ban list id=8184120a-c3c2-4a23-bad1-b1ec8fe4f18b +2026-09-04 11:42:20,648 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8184120a-c3c2-4a23-bad1-b1ec8fe4f18b - 200 [2.88ms] +2026-09-04 11:42:20,652 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d41453d8-445e-4879-ac97-83fb19c21437/ - 307 [0.12ms] +2026-09-04 11:42:20,655 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d41453d8-445e-4879-ac97-83fb19c21437 - 404 [2.45ms] +2026-09-04 11:42:20,664 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.83ms] +2026-09-04 11:42:20,665 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d350be27-4fc6-4d60-8496-d0883932513e/ - 307 [0.12ms] +2026-09-04 11:42:20,667 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d350be27-4fc6-4d60-8496-d0883932513e - 403 [1.70ms] +2026-09-04 11:42:20,674 INFO app.crud.ban_list created ban list id=a1803972-594c-4e86-b74d-49dc3a257a64 org=1 project=1 +2026-09-04 11:42:20,675 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.93ms] +2026-09-04 11:42:20,676 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a1803972-594c-4e86-b74d-49dc3a257a64/ - 307 [0.10ms] +2026-09-04 11:42:20,678 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a1803972-594c-4e86-b74d-49dc3a257a64 - 403 [2.12ms] +2026-09-04 11:42:20,775 INFO guardrails.execution request=173f0d56-da51-417d-8691-b1b6c6451cd5 starting guardrails execution (validators=[]) input='hello world' +2026-09-04 11:42:20,775 INFO guardrails.execution request=173f0d56-da51-417d-8691-b1b6c6451cd5 guardrails execution finished (passed=True) output='clean text' +2026-09-04 11:42:20,777 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.25ms] +2026-09-04 11:42:20,784 INFO guardrails.execution request=b89c632c-f3c0-45f5-9618-2a7882fc66b7 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-04 11:42:20,785 INFO guardrails.execution request=b89c632c-f3c0-45f5-9618-2a7882fc66b7 guardrails execution finished (passed=False) output=None +2026-09-04 11:42:20,786 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.58ms] +2026-09-04 11:42:20,794 INFO guardrails.execution request=cb751f68-5c8e-49b3-a5dd-d4da28e4d9b4 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-04 11:42:20,794 INFO guardrails.execution request=cb751f68-5c8e-49b3-a5dd-d4da28e4d9b4 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-04 11:42:20,797 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.96ms] +2026-09-04 11:42:20,804 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fe1e9418-0d03-4d8d-9a43-69b7bb30ef9b: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-04 11:42:20,807 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.46ms] +2026-09-04 11:42:20,821 INFO guardrails.execution request=d25cdc7e-def4-4fc2-ac9a-66e5e890d75c starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-04 11:42:20,823 INFO guardrails.execution request=d25cdc7e-def4-4fc2-ac9a-66e5e890d75c guardrails execution finished (passed=True) output='this contains b' +2026-09-04 11:42:20,825 INFO guardrails.execution request=d25cdc7e-def4-4fc2-ac9a-66e5e890d75c step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.822359 end=2026-09-04T11:42:20.822475 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-04 11:42:20,828 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.53ms] +2026-09-04 11:42:20,843 INFO guardrails.execution request=a047da6b-3dd3-4bce-822b-2e67f8618d93 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-04 11:42:20,845 INFO guardrails.execution request=a047da6b-3dd3-4bce-822b-2e67f8618d93 guardrails execution finished (passed=True) output='this is clean' +2026-09-04 11:42:20,847 INFO guardrails.execution request=a047da6b-3dd3-4bce-822b-2e67f8618d93 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.844259 end=2026-09-04T11:42:20.844347 duration_ms=0 input='this is clean' output='this is clean' +2026-09-04 11:42:20,850 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.27ms] +2026-09-04 11:42:20,871 INFO guardrails.execution request=fe1f01bb-30c2-4877-b5cc-50cc88c340d6 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 11:42:20,873 INFO guardrails.execution request=fe1f01bb-30c2-4877-b5cc-50cc88c340d6 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-04 11:42:20,875 INFO guardrails.execution request=fe1f01bb-30c2-4877-b5cc-50cc88c340d6 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.871873 end=2026-09-04T11:42:20.872384 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-04 11:42:20,878 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.16ms] +2026-09-04 11:42:20,895 INFO guardrails.execution request=ee2b9aaf-31b6-4b44-a2bc-5c72892b827a starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-04 11:42:20,897 INFO guardrails.execution request=ee2b9aaf-31b6-4b44-a2bc-5c72892b827a guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-04 11:42:20,900 INFO guardrails.execution request=ee2b9aaf-31b6-4b44-a2bc-5c72892b827a step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T11:42:20.895987 end=2026-09-04T11:42:20.896343 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-04 11:42:20,904 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.74ms] +2026-09-04 11:42:20,924 INFO guardrails.execution request=80801607-fa28-4d2b-833c-f81d602fc496 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-04 11:42:20,926 INFO guardrails.execution request=80801607-fa28-4d2b-833c-f81d602fc496 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-04 11:42:20,930 INFO guardrails.execution request=80801607-fa28-4d2b-833c-f81d602fc496 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.924934 end=2026-09-04T11:42:20.925493 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-04 11:42:20,934 INFO guardrails.execution request=80801607-fa28-4d2b-833c-f81d602fc496 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.925501 end=2026-09-04T11:42:20.925633 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-04 11:42:20,938 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.49ms] +2026-09-04 11:42:20,945 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.33ms] +2026-09-04 11:42:20,966 INFO guardrails.execution request=e99f41a3-e870-4c78-be0c-986b1d198cb3 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 11:42:20,967 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e99f41a3-e870-4c78-be0c-986b1d198cb3: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-04 11:42:20,972 INFO guardrails.execution request=e99f41a3-e870-4c78-be0c-986b1d198cb3 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:20.967327 end=2026-09-04T11:42:20.967648 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-04 11:42:20,976 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.10ms] +2026-09-04 11:42:20,999 INFO guardrails.execution request=2a42a3c8-23a9-461a-89c7-ecae0dc1cc1e starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 11:42:21,001 INFO guardrails.execution request=2a42a3c8-23a9-461a-89c7-ecae0dc1cc1e guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-04 11:42:21,005 INFO guardrails.execution request=2a42a3c8-23a9-461a-89c7-ecae0dc1cc1e step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:21.000062 end=2026-09-04T11:42:21.000388 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-04 11:42:21,010 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.33ms] +2026-09-04 11:42:21,031 INFO guardrails.execution request=5e7e59f5-fae0-415e-b1e2-fc2b523f457f starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-04 11:42:21,033 INFO guardrails.execution request=5e7e59f5-fae0-415e-b1e2-fc2b523f457f guardrails execution finished (passed=True) output='' +2026-09-04 11:42:21,038 INFO guardrails.execution request=5e7e59f5-fae0-415e-b1e2-fc2b523f457f step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:21.031605 end=2026-09-04T11:42:21.032786 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-04 11:42:21,043 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.46ms] +2026-09-04 11:42:21,062 INFO guardrails.execution request=d06e83f7-e53b-42dc-b850-5062a60c2dad starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-04 11:42:21,065 INFO guardrails.execution request=d06e83f7-e53b-42dc-b850-5062a60c2dad guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-04 11:42:21,068 INFO guardrails.execution request=d06e83f7-e53b-42dc-b850-5062a60c2dad step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T11:42:21.063057 end=2026-09-04T11:42:21.064131 duration_ms=1 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-04 11:42:21,072 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.82ms] +2026-09-04 11:42:21,091 INFO guardrails.execution request=7e9255e1-376c-4f1b-a243-8ac96db6b0c5 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-04 11:42:21,093 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7e9255e1-376c-4f1b-a243-8ac96db6b0c5: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-04 11:42:21,098 INFO guardrails.execution request=7e9255e1-376c-4f1b-a243-8ac96db6b0c5 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:21.091948 end=2026-09-04T11:42:21.093043 duration_ms=1 input='What the fuck is going on?' output=None +2026-09-04 11:42:21,101 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.20ms] +2026-09-04 11:42:21,120 INFO guardrails.execution request=060e3f80-4cac-48db-88e2-9cfb7430e917 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-04 11:42:21,123 INFO guardrails.execution request=060e3f80-4cac-48db-88e2-9cfb7430e917 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-04 11:42:21,127 INFO guardrails.execution request=060e3f80-4cac-48db-88e2-9cfb7430e917 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:21.121398 end=2026-09-04T11:42:21.122439 duration_ms=1 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-04 11:42:21,134 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.01ms] +2026-09-04 11:42:21,144 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fb71b03f-f0e6-4ae4-9dd1-8924fe7c7e59: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-04 11:42:21,151 INFO http_request_logger POST /api/v1/guardrails/ - 200 [11.58ms] +2026-09-04 11:42:21,621 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-04 11:42:24,650 INFO guardrails.execution request=a4a08737-d632-467e-a3d5-dfe435ef61fb starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:24,943 INFO guardrails.execution request=a4a08737-d632-467e-a3d5-dfe435ef61fb guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:24,953 INFO guardrails.execution request=a4a08737-d632-467e-a3d5-dfe435ef61fb step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T11:42:24.651988 end=2026-09-04T11:42:24.941991 duration_ms=290 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:25,143 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3986.45ms] +2026-09-04 11:42:28,077 INFO guardrails.execution request=f9e81772-912d-4cf0-b598-77d0086a297d starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:28,117 INFO guardrails.execution request=f9e81772-912d-4cf0-b598-77d0086a297d guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:28,131 INFO guardrails.execution request=f9e81772-912d-4cf0-b598-77d0086a297d step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T11:42:28.079650 end=2026-09-04T11:42:28.115664 duration_ms=36 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-04 11:42:28,319 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3125.69ms] +2026-09-04 11:42:31,387 INFO guardrails.execution request=777765db-55f0-4e63-a487-7382dfefbb97 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-04 11:42:31,471 INFO guardrails.execution request=777765db-55f0-4e63-a487-7382dfefbb97 guardrails execution finished (passed=True) output='Explicit sexual content goes here.' +2026-09-04 11:42:31,480 INFO guardrails.execution request=777765db-55f0-4e63-a487-7382dfefbb97 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T11:42:31.392002 end=2026-09-04T11:42:31.469535 duration_ms=77 input='Explicit sexual content goes here.' output='Explicit sexual content goes here.' +2026-09-04 11:42:31,708 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3376.01ms] +2026-09-04 11:42:31,742 INFO guardrails.execution request=b60a50a5-82c8-423c-8b95-d5becf9e5471 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-04 11:42:31,746 INFO guardrails.execution request=b60a50a5-82c8-423c-8b95-d5becf9e5471 guardrails execution finished (passed=True) output='' +2026-09-04 11:42:31,749 INFO guardrails.execution request=b60a50a5-82c8-423c-8b95-d5becf9e5471 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:31.743327 end=2026-09-04T11:42:31.745404 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-04 11:42:31,750 INFO guardrails.execution request=b60a50a5-82c8-423c-8b95-d5becf9e5471 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T11:42:31.745432 end=2026-09-04T11:42:31.745675 duration_ms=0 input='' output='' +2026-09-04 11:42:31,754 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.02ms] +2026-09-04 11:42:31,762 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 66c93427-4204-49df-af95-59e14504e411: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-04 11:42:31,767 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.67ms] +2026-09-04 11:42:34,402 INFO guardrails.execution request=a5a81ac3-5dcf-41b4-bc64-0f6d0b71b4cf starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-04 11:42:34,409 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a5a81ac3-5dcf-41b4-bc64-0f6d0b71b4cf: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-04 11:42:34,421 INFO guardrails.execution request=a5a81ac3-5dcf-41b4-bc64-0f6d0b71b4cf step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:34.403644 end=2026-09-04T11:42:34.409121 duration_ms=5 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-04 11:42:34,427 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2655.93ms] +2026-09-04 11:42:37,615 INFO guardrails.execution request=ac13394e-6fb0-407a-99ed-a09b94576117 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-04 11:42:37,617 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ac13394e-6fb0-407a-99ed-a09b94576117: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-04 11:42:37,628 INFO guardrails.execution request=ac13394e-6fb0-407a-99ed-a09b94576117 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:37.616726 end=2026-09-04T11:42:37.617352 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-04 11:42:37,634 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3197.94ms] +2026-09-04 11:42:37,659 INFO guardrails.execution request=2e2a2106-6b3c-4d8e-a8bc-d7f4cc0e4e03 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-04 11:42:37,664 INFO guardrails.execution request=2e2a2106-6b3c-4d8e-a8bc-d7f4cc0e4e03 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-04 11:42:37,668 INFO guardrails.execution request=2e2a2106-6b3c-4d8e-a8bc-d7f4cc0e4e03 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.659818 end=2026-09-04T11:42:37.663297 duration_ms=3 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-04 11:42:37,670 INFO guardrails.execution request=2e2a2106-6b3c-4d8e-a8bc-d7f4cc0e4e03 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.663312 end=2026-09-04T11:42:37.663453 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-04 11:42:37,674 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.50ms] +2026-09-04 11:42:37,698 INFO guardrails.execution request=785347ef-4f20-4bcc-8c14-df4eaf03fc7c starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-04 11:42:37,704 INFO guardrails.execution request=785347ef-4f20-4bcc-8c14-df4eaf03fc7c guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-04 11:42:37,712 INFO guardrails.execution request=785347ef-4f20-4bcc-8c14-df4eaf03fc7c step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.699395 end=2026-09-04T11:42:37.699807 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 11:42:37,714 INFO guardrails.execution request=785347ef-4f20-4bcc-8c14-df4eaf03fc7c step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.699816 end=2026-09-04T11:42:37.702817 duration_ms=3 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 11:42:37,716 INFO guardrails.execution request=785347ef-4f20-4bcc-8c14-df4eaf03fc7c step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.702832 end=2026-09-04T11:42:37.702926 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 11:42:37,720 INFO http_request_logger POST /api/v1/guardrails/ - 200 [39.52ms] +2026-09-04 11:42:37,739 INFO guardrails.execution request=5a5cccc3-7293-4a0f-b93e-31e73cb6f608 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-04 11:42:37,741 INFO guardrails.execution request=5a5cccc3-7293-4a0f-b93e-31e73cb6f608 guardrails execution finished (passed=True) output='this contains b' +2026-09-04 11:42:37,744 INFO guardrails.execution request=5a5cccc3-7293-4a0f-b93e-31e73cb6f608 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T11:42:37.740538 end=2026-09-04T11:42:37.740678 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-04 11:42:37,748 INFO guardrails.execution request=5a5cccc3-7293-4a0f-b93e-31e73cb6f608 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T11:42:37.740684 end=2026-09-04T11:42:37.740940 duration_ms=0 input='this contains b' output='this contains b' +2026-09-04 11:42:37,753 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.90ms] +2026-09-04 11:42:37,769 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log ee4ffcc5-4b90-40de-8cb4-100a34c62303: 404: Ban list not found +2026-09-04 11:42:37,772 INFO http_request_logger POST /api/v1/guardrails/ - 404 [8.90ms] +2026-09-04 11:42:37,782 INFO guardrails.execution request=04dbdfdf-108e-4697-9021-1c0694568bdc starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-04 11:42:37,782 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 04dbdfdf-108e-4697-9021-1c0694568bdc: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-04 11:42:37,786 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.15ms] +2026-09-04 11:42:37,793 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-04 11:42:37,793 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.78ms] +2026-09-04 11:42:37,807 INFO app.crud.llm_prompt_config created llm prompt config id=e689f0db-2292-48cc-a7f6-c3ac3357a1d5 org=1 project=1 +2026-09-04 11:42:37,809 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [12.32ms] +2026-09-04 11:42:37,817 INFO app.crud.llm_prompt_config created llm prompt config id=9c292732-47b1-4321-b812-7c2106a3c5df org=1 project=1 +2026-09-04 11:42:37,817 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.59ms] +2026-09-04 11:42:37,826 INFO app.crud.llm_prompt_config created llm prompt config id=1c702745-9064-4b93-8a09-f12e426a5566 org=1 project=1 +2026-09-04 11:42:37,826 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.79ms] +2026-09-04 11:42:37,832 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.06ms] +2026-09-04 11:42:37,839 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.45ms] +2026-09-04 11:42:37,844 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.04ms] +2026-09-04 11:42:37,850 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.10ms] +2026-09-04 11:42:37,856 INFO app.crud.llm_prompt_config created llm prompt config id=8cc14b49-d7ce-419f-a37e-6bea60234911 org=1 project=1 +2026-09-04 11:42:37,857 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.53ms] +2026-09-04 11:42:37,861 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.14ms] +2026-09-04 11:42:37,866 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.04ms] +2026-09-04 11:42:37,875 INFO app.crud.llm_prompt_config created llm prompt config id=0b356a55-4716-4a3d-8e7a-02ead7733f2e org=1 project=1 +2026-09-04 11:42:37,876 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.91ms] +2026-09-04 11:42:37,881 INFO app.crud.llm_prompt_config created llm prompt config id=c57646ed-3b43-4787-8fdb-458f69ae2eba org=1 project=1 +2026-09-04 11:42:37,882 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.44ms] +2026-09-04 11:42:37,887 INFO app.crud.llm_prompt_config created llm prompt config id=ffe61752-b00d-46cc-9c12-6d825aaa58ce org=1 project=1 +2026-09-04 11:42:37,888 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.15ms] +2026-09-04 11:42:37,892 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.48ms] +2026-09-04 11:42:37,904 INFO app.crud.llm_prompt_config created llm prompt config id=3d0ac09d-e849-485a-96e7-05e427fd9cbe org=1 project=1 +2026-09-04 11:42:37,905 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.92ms] +2026-09-04 11:42:37,910 INFO app.crud.llm_prompt_config created llm prompt config id=ff26aee1-c3b9-42cb-b2be-e4090ea11b21 org=1 project=1 +2026-09-04 11:42:37,911 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.26ms] +2026-09-04 11:42:37,914 INFO app.crud.llm_prompt_config created llm prompt config id=6e6d1bfd-1619-4fd2-b83e-cdc19bbee79a org=1 project=1 +2026-09-04 11:42:37,915 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.41ms] +2026-09-04 11:42:37,918 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.90ms] +2026-09-04 11:42:37,925 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.51ms] +2026-09-04 11:42:37,933 INFO app.crud.llm_prompt_config created llm prompt config id=32ddb536-4a02-4853-9a53-3608a0c9df58 org=1 project=1 +2026-09-04 11:42:37,933 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.74ms] +2026-09-04 11:42:37,936 INFO app.crud.llm_prompt_config created llm prompt config id=b70db647-54b8-4c5e-9577-2cb7175b1cba org=1 project=1 +2026-09-04 11:42:37,937 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.22ms] +2026-09-04 11:42:37,940 INFO app.crud.llm_prompt_config created llm prompt config id=3b94a1a3-f90a-42e9-9b4f-868e1f74fde6 org=1 project=1 +2026-09-04 11:42:37,941 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.25ms] +2026-09-04 11:42:37,944 INFO app.crud.llm_prompt_config created llm prompt config id=34365b8a-4bf3-4fab-9706-50e8d30a4d05 org=1 project=1 +2026-09-04 11:42:37,945 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.50ms] +2026-09-04 11:42:37,948 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.72ms] +2026-09-04 11:42:37,957 INFO app.crud.llm_prompt_config created llm prompt config id=491d18ab-2b44-43fa-85c4-6ba44d546c1d org=1 project=1 +2026-09-04 11:42:37,957 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.37ms] +2026-09-04 11:42:37,959 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.78ms] +2026-09-04 11:42:37,967 INFO app.crud.llm_prompt_config created llm prompt config id=f8960216-28d8-405f-be2a-4c47a0fecdf0 org=1 project=1 +2026-09-04 11:42:37,968 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.21ms] +2026-09-04 11:42:37,971 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/f8960216-28d8-405f-be2a-4c47a0fecdf0 - 200 [2.47ms] +2026-09-04 11:42:37,978 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/c63344ae-00a8-4869-af33-b2808cca2a0d - 404 [2.77ms] +2026-09-04 11:42:37,986 INFO app.crud.llm_prompt_config created llm prompt config id=47067b3f-76ec-4312-8e52-26bd69db687c org=1 project=1 +2026-09-04 11:42:37,987 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.26ms] +2026-09-04 11:42:37,990 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/47067b3f-76ec-4312-8e52-26bd69db687c - 404 [2.29ms] +2026-09-04 11:42:37,997 INFO app.crud.llm_prompt_config created llm prompt config id=81359d43-aa08-4cfe-aa50-2e1f7414d35c org=1 project=1 +2026-09-04 11:42:37,998 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.38ms] +2026-09-04 11:42:38,005 INFO app.crud.llm_prompt_config updated llm prompt config id=81359d43-aa08-4cfe-aa50-2e1f7414d35c +2026-09-04 11:42:38,006 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/81359d43-aa08-4cfe-aa50-2e1f7414d35c - 200 [7.18ms] +2026-09-04 11:42:38,016 INFO app.crud.llm_prompt_config created llm prompt config id=69e6d658-3625-48ae-81dd-46973a0eccbb org=1 project=1 +2026-09-04 11:42:38,017 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.65ms] +2026-09-04 11:42:38,023 INFO app.crud.llm_prompt_config updated llm prompt config id=69e6d658-3625-48ae-81dd-46973a0eccbb +2026-09-04 11:42:38,024 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/69e6d658-3625-48ae-81dd-46973a0eccbb - 200 [6.31ms] +2026-09-04 11:42:38,034 INFO app.crud.llm_prompt_config created llm prompt config id=455fff74-ab2a-4800-9768-9e5a914e8f2a org=1 project=1 +2026-09-04 11:42:38,034 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.00ms] +2026-09-04 11:42:38,039 INFO app.crud.llm_prompt_config updated llm prompt config id=455fff74-ab2a-4800-9768-9e5a914e8f2a +2026-09-04 11:42:38,040 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/455fff74-ab2a-4800-9768-9e5a914e8f2a - 200 [5.14ms] +2026-09-04 11:42:38,043 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/455fff74-ab2a-4800-9768-9e5a914e8f2a - 200 [2.54ms] +2026-09-04 11:42:38,053 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/598dda9c-736d-4cee-a5d4-fdbc44b49dc0 - 404 [3.32ms] +2026-09-04 11:42:38,062 INFO app.crud.llm_prompt_config created llm prompt config id=15b1ba4a-4d54-45db-8b1b-f31a5255b8c7 org=1 project=1 +2026-09-04 11:42:38,062 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.85ms] +2026-09-04 11:42:38,065 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/15b1ba4a-4d54-45db-8b1b-f31a5255b8c7 - 404 [2.34ms] +2026-09-04 11:42:38,074 INFO app.crud.llm_prompt_config created llm prompt config id=1cace0e6-9ff5-4137-a62e-3e2cb09ee82d org=1 project=1 +2026-09-04 11:42:38,074 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.82ms] +2026-09-04 11:42:38,077 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1cace0e6-9ff5-4137-a62e-3e2cb09ee82d - 422 [1.85ms] +2026-09-04 11:42:38,084 INFO app.crud.llm_prompt_config created llm prompt config id=dc5298b0-766f-4459-ba03-6e51468635b2 org=1 project=1 +2026-09-04 11:42:38,085 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.93ms] +2026-09-04 11:42:38,088 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/dc5298b0-766f-4459-ba03-6e51468635b2 - 422 [3.06ms] +2026-09-04 11:42:38,097 INFO app.crud.llm_prompt_config created llm prompt config id=bbaca7d3-147a-4725-aec7-773951f0c081 org=1 project=1 +2026-09-04 11:42:38,097 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.14ms] +2026-09-04 11:42:38,101 INFO app.crud.llm_prompt_config updated llm prompt config id=bbaca7d3-147a-4725-aec7-773951f0c081 +2026-09-04 11:42:38,101 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/bbaca7d3-147a-4725-aec7-773951f0c081 - 200 [3.35ms] +2026-09-04 11:42:38,110 INFO app.crud.llm_prompt_config created llm prompt config id=ecb2ccda-ca7a-4e5e-bc22-16697ddcc0fd org=1 project=1 +2026-09-04 11:42:38,111 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.11ms] +2026-09-04 11:42:38,115 INFO app.crud.llm_prompt_config updated llm prompt config id=ecb2ccda-ca7a-4e5e-bc22-16697ddcc0fd +2026-09-04 11:42:38,115 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ecb2ccda-ca7a-4e5e-bc22-16697ddcc0fd - 200 [3.60ms] +2026-09-04 11:42:38,122 INFO app.crud.llm_prompt_config created llm prompt config id=de9b0c0e-af22-4dc2-bcfb-9a88bb7675d8 org=1 project=1 +2026-09-04 11:42:38,123 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.87ms] +2026-09-04 11:42:38,127 INFO app.crud.llm_prompt_config deleted llm prompt config id=de9b0c0e-af22-4dc2-bcfb-9a88bb7675d8 +2026-09-04 11:42:38,127 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/de9b0c0e-af22-4dc2-bcfb-9a88bb7675d8 - 200 [3.56ms] +2026-09-04 11:42:38,136 INFO app.crud.llm_prompt_config created llm prompt config id=6f5f6750-e40c-4f86-ada4-f2dd6ad33ed4 org=1 project=1 +2026-09-04 11:42:38,137 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.52ms] +2026-09-04 11:42:38,139 INFO app.crud.llm_prompt_config deleted llm prompt config id=6f5f6750-e40c-4f86-ada4-f2dd6ad33ed4 +2026-09-04 11:42:38,139 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/6f5f6750-e40c-4f86-ada4-f2dd6ad33ed4 - 200 [2.43ms] +2026-09-04 11:42:38,142 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.02ms] +2026-09-04 11:42:38,149 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/e1ed852f-e880-4ddd-8468-afa87e8ea673 - 404 [2.92ms] +2026-09-04 11:42:38,158 INFO app.crud.llm_prompt_config created llm prompt config id=5f17d47b-cc7a-4ad0-9b08-9e97e4beb96f org=1 project=1 +2026-09-04 11:42:38,159 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.05ms] +2026-09-04 11:42:38,162 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/5f17d47b-cc7a-4ad0-9b08-9e97e4beb96f - 404 [2.23ms] +2026-09-04 11:42:38,279 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='hello' +2026-09-04 11:42:38,279 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=True) output='clean text' +2026-09-04 11:42:38,281 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='bad text' +2026-09-04 11:42:38,281 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,284 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b1d96ba-8193-4e76-a4f9-31092ccaa66d: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-04 11:42:38,287 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='bad text' +2026-09-04 11:42:38,287 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,289 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='bad text' +2026-09-04 11:42:38,289 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,318 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-04 11:42:38,318 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,321 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='some input text' +2026-09-04 11:42:38,321 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,323 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-04 11:42:38,323 INFO guardrails.execution request=5b1d96ba-8193-4e76-a4f9-31092ccaa66d guardrails execution finished (passed=False) output=None +2026-09-04 11:42:38,326 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b1d96ba-8193-4e76-a4f9-31092ccaa66d: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-04 11:42:38,328 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b1d96ba-8193-4e76-a4f9-31092ccaa66d: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-04 11:42:38,344 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 11:42:38,349 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 11:42:38,353 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 11:42:38,368 INFO app.crud.validator_config created validator config id=8c2d6645-cbc7-4308-a285-d5d51763f2dd org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 11:42:38,369 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [8.42ms] +2026-09-04 11:42:38,377 INFO app.crud.validator_config created validator config id=ca9f8856-58df-4b61-8beb-9b4248077f93 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 11:42:38,378 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.31ms] +2026-09-04 11:42:38,380 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-04 11:42:38,381 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [2.58ms] +2026-09-04 11:42:38,387 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [1.20ms] +2026-09-04 11:42:38,393 INFO app.crud.validator_config created validator config id=77e1a9e4-820b-4819-9ab2-7851725870de org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 11:42:38,394 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.48ms] +2026-09-04 11:42:38,397 INFO app.crud.validator_config created validator config id=6f321db5-3f39-4679-ac0a-4904c18b1c1c org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 11:42:38,398 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.86ms] +2026-09-04 11:42:38,402 INFO app.crud.validator_config created validator config id=d97ff0fb-8a07-4f72-975f-48f6e08018e3 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 11:42:38,402 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.81ms] +2026-09-04 11:42:38,407 INFO app.crud.validator_config created validator config id=b24dc583-7d37-4fa4-a148-62d5dfc520cd org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 11:42:38,408 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.63ms] +2026-09-04 11:42:38,411 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.22ms] +2026-09-04 11:42:38,412 INFO http_request_logger GET /api/v1/guardrails/validators/configs/77e1a9e4-820b-4819-9ab2-7851725870de/ - 307 [0.11ms] +2026-09-04 11:42:38,417 INFO http_request_logger GET /api/v1/guardrails/validators/configs/77e1a9e4-820b-4819-9ab2-7851725870de - 200 [3.91ms] +2026-09-04 11:42:38,417 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6f321db5-3f39-4679-ac0a-4904c18b1c1c/ - 307 [0.11ms] +2026-09-04 11:42:38,422 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6f321db5-3f39-4679-ac0a-4904c18b1c1c - 200 [3.77ms] +2026-09-04 11:42:38,423 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d97ff0fb-8a07-4f72-975f-48f6e08018e3/ - 307 [0.15ms] +2026-09-04 11:42:38,425 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d97ff0fb-8a07-4f72-975f-48f6e08018e3 - 200 [2.11ms] +2026-09-04 11:42:38,426 INFO http_request_logger GET /api/v1/guardrails/validators/configs/b24dc583-7d37-4fa4-a148-62d5dfc520cd/ - 307 [0.10ms] +2026-09-04 11:42:38,428 INFO http_request_logger GET /api/v1/guardrails/validators/configs/b24dc583-7d37-4fa4-a148-62d5dfc520cd - 200 [2.01ms] +2026-09-04 11:42:38,436 INFO app.crud.validator_config created validator config id=c0e25c6e-cea3-443e-974b-aedeaacf5299 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 11:42:38,437 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.99ms] +2026-09-04 11:42:38,440 INFO app.crud.validator_config created validator config id=48f0ae73-5d1c-40ed-90bf-8bb4776846f5 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 11:42:38,440 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.85ms] +2026-09-04 11:42:38,443 INFO app.crud.validator_config created validator config id=fa132aff-3965-4184-abcf-087ee5342a28 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 11:42:38,444 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.05ms] +2026-09-04 11:42:38,444 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c0e25c6e-cea3-443e-974b-aedeaacf5299/ - 307 [0.10ms] +2026-09-04 11:42:38,449 INFO app.crud.validator_config updated validator config id=c0e25c6e-cea3-443e-974b-aedeaacf5299 +2026-09-04 11:42:38,450 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c0e25c6e-cea3-443e-974b-aedeaacf5299 - 200 [5.00ms] +2026-09-04 11:42:38,450 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/48f0ae73-5d1c-40ed-90bf-8bb4776846f5/ - 307 [0.11ms] +2026-09-04 11:42:38,454 INFO app.crud.validator_config updated validator config id=48f0ae73-5d1c-40ed-90bf-8bb4776846f5 +2026-09-04 11:42:38,454 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/48f0ae73-5d1c-40ed-90bf-8bb4776846f5 - 200 [3.61ms] +2026-09-04 11:42:38,455 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fa132aff-3965-4184-abcf-087ee5342a28/ - 307 [0.12ms] +2026-09-04 11:42:38,459 INFO app.crud.validator_config updated validator config id=fa132aff-3965-4184-abcf-087ee5342a28 +2026-09-04 11:42:38,459 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fa132aff-3965-4184-abcf-087ee5342a28 - 200 [4.14ms] +2026-09-04 11:42:38,462 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.46ms] +2026-09-04 11:42:38,472 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.42ms] +2026-09-04 11:42:38,483 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.73ms] +2026-09-04 11:42:38,494 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.42ms] +2026-09-04 11:42:38,502 INFO app.crud.validator_config created validator config id=fa2a1215-b294-419a-934c-b99611c44fa2 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 11:42:38,503 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.48ms] +2026-09-04 11:42:38,507 INFO app.crud.validator_config created validator config id=1b689936-d056-415e-bb17-cb8fd82583b2 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 11:42:38,508 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.08ms] +2026-09-04 11:42:38,510 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.27ms] +2026-09-04 11:42:38,518 INFO app.crud.validator_config created validator config id=69bb13e2-0cd4-4f95-a1ac-53358dab3a4d org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 11:42:38,519 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.12ms] +2026-09-04 11:42:38,522 INFO app.crud.validator_config created validator config id=585a1c6b-f6b4-484a-a6e5-04abfc6eb8db org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 11:42:38,523 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.33ms] +2026-09-04 11:42:38,526 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.65ms] +2026-09-04 11:42:38,532 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [1.07ms] +2026-09-04 11:42:38,538 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.00ms] +2026-09-04 11:42:38,546 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.19ms] +2026-09-04 11:42:38,547 INFO http_request_logger GET /api/v1/guardrails/validators/configs/861333d2-3331-478b-8d07-2ebf2c5b3a18/ - 307 [0.10ms] +2026-09-04 11:42:38,549 INFO http_request_logger GET /api/v1/guardrails/validators/configs/861333d2-3331-478b-8d07-2ebf2c5b3a18 - 200 [1.69ms] +2026-09-04 11:42:38,552 INFO http_request_logger GET /api/v1/guardrails/validators/configs/83f4381a-fe65-4797-a591-6f906e3c3fc2/ - 307 [0.09ms] +2026-09-04 11:42:38,554 INFO http_request_logger GET /api/v1/guardrails/validators/configs/83f4381a-fe65-4797-a591-6f906e3c3fc2 - 404 [1.64ms] +2026-09-04 11:42:38,557 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-04 11:42:38,559 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.83ms] +2026-09-04 11:42:38,565 INFO app.crud.validator_config created validator config id=9551f871-d637-4256-a763-246efe12a8c3 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 11:42:38,566 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.25ms] +2026-09-04 11:42:38,567 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9551f871-d637-4256-a763-246efe12a8c3/ - 307 [0.11ms] +2026-09-04 11:42:38,569 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9551f871-d637-4256-a763-246efe12a8c3 - 404 [1.79ms] +2026-09-04 11:42:38,578 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.26ms] +2026-09-04 11:42:38,579 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0ab06f2b-4d22-4525-9a50-db9b13e01145/ - 307 [0.10ms] +2026-09-04 11:42:38,582 INFO app.crud.validator_config updated validator config id=0ab06f2b-4d22-4525-9a50-db9b13e01145 +2026-09-04 11:42:38,583 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0ab06f2b-4d22-4525-9a50-db9b13e01145 - 200 [3.91ms] +2026-09-04 11:42:38,592 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.41ms] +2026-09-04 11:42:38,593 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dbaeb025-79b1-4eb6-927f-c50e5cf62091/ - 307 [0.10ms] +2026-09-04 11:42:38,596 INFO app.crud.validator_config updated validator config id=dbaeb025-79b1-4eb6-927f-c50e5cf62091 +2026-09-04 11:42:38,596 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dbaeb025-79b1-4eb6-927f-c50e5cf62091 - 200 [3.11ms] +2026-09-04 11:42:38,600 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dff8039d-8823-473f-9a1d-12a41701c3e5/ - 307 [0.10ms] +2026-09-04 11:42:38,603 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dff8039d-8823-473f-9a1d-12a41701c3e5 - 404 [2.60ms] +2026-09-04 11:42:38,612 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.11ms] +2026-09-04 11:42:38,612 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/0cb148bb-76a7-426c-ba98-550374a7225e/ - 307 [0.09ms] +2026-09-04 11:42:38,615 INFO app.crud.validator_config deleted validator config id=0cb148bb-76a7-426c-ba98-550374a7225e +2026-09-04 11:42:38,615 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/0cb148bb-76a7-426c-ba98-550374a7225e - 200 [2.41ms] +2026-09-04 11:42:38,615 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0cb148bb-76a7-426c-ba98-550374a7225e/ - 307 [0.09ms] +2026-09-04 11:42:38,617 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0cb148bb-76a7-426c-ba98-550374a7225e - 404 [1.69ms] +2026-09-04 11:42:38,621 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f1f6cabd-b886-4a0a-a229-9499e6729dc8/ - 307 [0.10ms] +2026-09-04 11:42:38,624 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f1f6cabd-b886-4a0a-a229-9499e6729dc8 - 404 [2.26ms] +2026-09-04 11:42:38,632 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.58ms] +2026-09-04 11:42:38,633 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/c94c81a6-6947-404d-97e2-eeee664d70d3/ - 307 [0.11ms] +2026-09-04 11:42:38,635 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/c94c81a6-6947-404d-97e2-eeee664d70d3 - 404 [1.80ms] +2026-09-04 11:42:38,636 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c94c81a6-6947-404d-97e2-eeee664d70d3/ - 307 [0.11ms] +2026-09-04 11:42:38,638 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c94c81a6-6947-404d-97e2-eeee664d70d3 - 200 [1.97ms] +2026-09-04 11:42:38,763 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-04 11:42:38,763 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-04 11:42:38,840 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:41,209 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:41,217 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:42,253 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:42,264 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:43,641 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:43,651 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:44,977 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:45,077 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:46,765 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:46,950 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:47,964 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 11:42:47,966 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 11:42:49,192 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:31:01,521 INFO uvicorn.error Shutting down +2026-09-04 16:31:01,642 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 16:31:01,644 INFO uvicorn.error Application shutdown complete. +2026-09-04 16:31:01,645 INFO uvicorn.error Finished server process [7681] +2026-09-04 16:31:10,669 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:31:11,601 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:31:11,632 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-04 16:31:11,633 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-04 16:31:11,633 INFO uvicorn.error Started reloader process [21142] using WatchFiles +2026-09-04 16:31:16,430 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:31:17,211 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:31:17,211 INFO uvicorn.error Started server process [21168] +2026-09-04 16:31:17,212 INFO uvicorn.error Waiting for application startup. +2026-09-04 16:31:17,212 INFO uvicorn.error Application startup complete. +2026-09-04 16:37:30,240 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:37:31,208 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:37:31,590 INFO watchfiles.main 1 change detected +2026-09-04 16:52:51,489 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-04 16:52:51,491 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [60.12ms] +2026-09-04 16:52:59,350 INFO app.crud.validator_config created validator config id=48d7d2cf-038d-4e2b-a8c8-b94dd602da7f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:52:59,351 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [15.65ms] +2026-09-04 16:53:46,720 INFO uvicorn.error Shutting down +2026-09-04 16:53:46,832 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 16:53:46,838 INFO uvicorn.error Application shutdown complete. +2026-09-04 16:53:46,839 INFO uvicorn.error Finished server process [21168] +2026-09-04 16:53:46,878 INFO uvicorn.error Stopping reloader process [21142] +2026-09-04 16:53:54,419 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:53:55,229 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:53:55,259 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-04 16:53:55,259 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-04 16:53:55,260 INFO uvicorn.error Started reloader process [23649] using WatchFiles +2026-09-04 16:53:59,757 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:54:00,575 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:54:00,576 INFO uvicorn.error Started server process [23664] +2026-09-04 16:54:00,576 INFO uvicorn.error Waiting for application startup. +2026-09-04 16:54:00,577 INFO uvicorn.error Application startup complete. +2026-09-04 16:54:18,523 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 403 [3.14ms] +2026-09-04 16:54:23,344 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 403 [0.90ms] +2026-09-04 16:55:46,510 INFO watchfiles.main 3 changes detected +2026-09-04 16:55:46,515 WARNING uvicorn.error WatchFiles detected changes in 'app/api/deps.py'. Reloading... +2026-09-04 16:55:46,602 INFO uvicorn.error Shutting down +2026-09-04 16:55:46,708 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 16:55:46,709 INFO uvicorn.error Application shutdown complete. +2026-09-04 16:55:46,711 INFO uvicorn.error Finished server process [23664] +2026-09-04 16:55:47,106 INFO watchfiles.main 1 change detected +2026-09-04 16:55:47,467 INFO watchfiles.main 3 changes detected +2026-09-04 16:55:52,977 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:55:53,864 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:55:53,865 INFO uvicorn.error Started server process [23757] +2026-09-04 16:55:53,865 INFO uvicorn.error Waiting for application startup. +2026-09-04 16:55:53,866 INFO uvicorn.error Application startup complete. +2026-09-04 16:56:03,214 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:56:04,014 INFO guardrails.execution request=0286d910-d16b-4113-8005-3357db09beab starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,017 INFO guardrails.execution request=0286d910-d16b-4113-8005-3357db09beab guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,020 INFO guardrails.execution request=0286d910-d16b-4113-8005-3357db09beab step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.016118 end=2026-09-04T16:56:04.016231 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,024 INFO http_request_logger POST /api/v1/guardrails/ - 200 [35.98ms] +2026-09-04 16:56:04,040 INFO guardrails.execution request=8eecd700-a5dd-4a0e-89a7-3d36b281abc8 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-04 16:56:04,040 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8eecd700-a5dd-4a0e-89a7-3d36b281abc8: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-04 16:56:04,047 INFO guardrails.execution request=8eecd700-a5dd-4a0e-89a7-3d36b281abc8 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T16:56:04.040607 end=2026-09-04T16:56:04.040689 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-04 16:56:04,050 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.46ms] +2026-09-04 16:56:04,066 INFO guardrails.execution request=9bb7affb-8552-4959-8df8-072e507d3ddc starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-04 16:56:04,067 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9bb7affb-8552-4959-8df8-072e507d3ddc: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-04 16:56:04,069 INFO guardrails.execution request=9bb7affb-8552-4959-8df8-072e507d3ddc step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T16:56:04.066727 end=2026-09-04T16:56:04.066777 duration_ms=0 input='' output=None +2026-09-04 16:56:04,071 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.55ms] +2026-09-04 16:56:04,089 INFO guardrails.execution request=7833433a-9e96-4d52-b123-a480b5f42aec starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,091 INFO guardrails.execution request=7833433a-9e96-4d52-b123-a480b5f42aec guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,093 INFO guardrails.execution request=7833433a-9e96-4d52-b123-a480b5f42aec step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.090265 end=2026-09-04T16:56:04.090352 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,096 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.67ms] +2026-09-04 16:56:04,112 INFO guardrails.execution request=7c3f5620-2094-4a3a-844a-c925370799e2 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-04 16:56:04,113 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7c3f5620-2094-4a3a-844a-c925370799e2: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-04 16:56:04,115 INFO guardrails.execution request=7c3f5620-2094-4a3a-844a-c925370799e2 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-04T16:56:04.113166 end=2026-09-04T16:56:04.113250 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-04 16:56:04,117 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.90ms] +2026-09-04 16:56:04,133 INFO guardrails.execution request=6e6b4b9b-3879-4d54-a54c-564caec6164a starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-04 16:56:04,135 INFO guardrails.execution request=6e6b4b9b-3879-4d54-a54c-564caec6164a guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-04 16:56:04,137 INFO guardrails.execution request=6e6b4b9b-3879-4d54-a54c-564caec6164a step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.134017 end=2026-09-04T16:56:04.134085 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-04 16:56:04,138 INFO guardrails.execution request=6e6b4b9b-3879-4d54-a54c-564caec6164a step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.134089 end=2026-09-04T16:56:04.134195 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-04 16:56:04,141 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.24ms] +2026-09-04 16:56:04,156 INFO guardrails.execution request=a701a5a8-4946-4660-b4d7-f50d0164eac4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-04 16:56:04,161 INFO guardrails.execution request=a701a5a8-4946-4660-b4d7-f50d0164eac4 guardrails execution finished (passed=True) output='' +2026-09-04 16:56:04,163 INFO guardrails.execution request=a701a5a8-4946-4660-b4d7-f50d0164eac4 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.156853 end=2026-09-04T16:56:04.156925 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-04 16:56:04,164 INFO guardrails.execution request=a701a5a8-4946-4660-b4d7-f50d0164eac4 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.156930 end=2026-09-04T16:56:04.160766 duration_ms=3 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-04 16:56:04,167 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.05ms] +2026-09-04 16:56:04,189 INFO guardrails.execution request=c4c0d4c7-2102-4817-912c-19101a7331d1 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-04 16:56:04,193 INFO guardrails.execution request=c4c0d4c7-2102-4817-912c-19101a7331d1 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-04 16:56:04,195 INFO guardrails.execution request=c4c0d4c7-2102-4817-912c-19101a7331d1 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.190432 end=2026-09-04T16:56:04.190498 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-04 16:56:04,196 INFO guardrails.execution request=c4c0d4c7-2102-4817-912c-19101a7331d1 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.190502 end=2026-09-04T16:56:04.192785 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-04 16:56:04,199 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.31ms] +2026-09-04 16:56:04,212 INFO guardrails.execution request=daafd376-d8fe-4bd1-9cd6-0ca783e1ff6d starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-04 16:56:04,214 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log daafd376-d8fe-4bd1-9cd6-0ca783e1ff6d: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-04 16:56:04,216 INFO guardrails.execution request=daafd376-d8fe-4bd1-9cd6-0ca783e1ff6d step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.212748 end=2026-09-04T16:56:04.212826 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-04 16:56:04,217 INFO guardrails.execution request=daafd376-d8fe-4bd1-9cd6-0ca783e1ff6d step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.212832 end=2026-09-04T16:56:04.213875 duration_ms=1 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-04 16:56:04,219 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.00ms] +2026-09-04 16:56:04,236 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,240 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,242 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.236955 end=2026-09-04T16:56:04.237029 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,243 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.237034 end=2026-09-04T16:56:04.237096 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,245 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.237099 end=2026-09-04T16:56:04.238041 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,246 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.238045 end=2026-09-04T16:56:04.238589 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,247 INFO guardrails.execution request=57228fdc-700e-42a6-97cd-308623fe59f7 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.238593 end=2026-09-04T16:56:04.239223 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-04 16:56:04,250 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.24ms] +2026-09-04 16:56:04,269 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 16:56:04,272 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-04 16:56:04,274 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T16:56:04.269860 end=2026-09-04T16:56:04.269925 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 16:56:04,276 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.269929 end=2026-09-04T16:56:04.270829 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-04 16:56:04,277 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.270833 end=2026-09-04T16:56:04.271324 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-04 16:56:04,278 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.271329 end=2026-09-04T16:56:04.271392 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-04 16:56:04,279 INFO guardrails.execution request=2c7390e0-bfc5-46fd-b94f-7e00867b4e0c step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.271396 end=2026-09-04T16:56:04.271996 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-04 16:56:04,282 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.39ms] +2026-09-04 16:56:04,304 INFO app.crud.ban_list created ban list id=53b79ada-43bf-4df7-a004-55b4f179d1e2 org=1 project=1 +2026-09-04 16:56:04,305 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [5.82ms] +2026-09-04 16:56:04,309 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.06ms] +2026-09-04 16:56:04,313 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.83ms] +2026-09-04 16:56:04,317 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.01ms] +2026-09-04 16:56:04,320 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.76ms] +2026-09-04 16:56:04,324 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.69ms] +2026-09-04 16:56:04,335 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [4.87ms] +2026-09-04 16:56:04,344 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.42ms] +2026-09-04 16:56:04,349 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.10ms] +2026-09-04 16:56:04,357 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.54ms] +2026-09-04 16:56:04,368 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.70ms] +2026-09-04 16:56:04,370 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.80ms] +2026-09-04 16:56:04,375 INFO app.crud.ban_list created ban list id=7b1340fc-8ba1-4e20-bf96-da343cf7b43f org=1 project=1 +2026-09-04 16:56:04,375 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.66ms] +2026-09-04 16:56:04,376 INFO http_request_logger GET /api/v1/guardrails/ban_lists/7b1340fc-8ba1-4e20-bf96-da343cf7b43f/ - 307 [0.11ms] +2026-09-04 16:56:04,379 INFO http_request_logger GET /api/v1/guardrails/ban_lists/7b1340fc-8ba1-4e20-bf96-da343cf7b43f - 200 [2.33ms] +2026-09-04 16:56:04,388 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.26ms] +2026-09-04 16:56:04,389 INFO http_request_logger GET /api/v1/guardrails/ban_lists/04de9d52-56bd-4854-a0de-5718996cea8d/ - 307 [0.10ms] +2026-09-04 16:56:04,391 INFO http_request_logger GET /api/v1/guardrails/ban_lists/04de9d52-56bd-4854-a0de-5718996cea8d - 200 [1.62ms] +2026-09-04 16:56:04,394 INFO http_request_logger GET /api/v1/guardrails/ban_lists/17556210-2828-48bb-b18a-9cba633bd257/ - 307 [0.09ms] +2026-09-04 16:56:04,396 INFO http_request_logger GET /api/v1/guardrails/ban_lists/17556210-2828-48bb-b18a-9cba633bd257 - 404 [1.63ms] +2026-09-04 16:56:04,405 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.81ms] +2026-09-04 16:56:04,405 INFO http_request_logger GET /api/v1/guardrails/ban_lists/921ef882-e76b-4738-8c48-abd644e0b41f/ - 307 [0.09ms] +2026-09-04 16:56:04,407 INFO http_request_logger GET /api/v1/guardrails/ban_lists/921ef882-e76b-4738-8c48-abd644e0b41f - 403 [1.33ms] +2026-09-04 16:56:04,413 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.74ms] +2026-09-04 16:56:04,414 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/bffea4c5-5d53-4a02-b15e-86f376628876/ - 307 [0.08ms] +2026-09-04 16:56:04,417 INFO app.crud.ban_list updated ban list id=bffea4c5-5d53-4a02-b15e-86f376628876 +2026-09-04 16:56:04,418 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/bffea4c5-5d53-4a02-b15e-86f376628876 - 200 [3.39ms] +2026-09-04 16:56:04,424 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.64ms] +2026-09-04 16:56:04,425 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/06b1dd90-62a3-47ce-9d6d-ffa4337783b0/ - 307 [0.09ms] +2026-09-04 16:56:04,427 INFO app.crud.ban_list updated ban list id=06b1dd90-62a3-47ce-9d6d-ffa4337783b0 +2026-09-04 16:56:04,428 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/06b1dd90-62a3-47ce-9d6d-ffa4337783b0 - 200 [2.88ms] +2026-09-04 16:56:04,431 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ca6868e9-af4c-4e67-9fe3-ab9085ce0a7e/ - 307 [0.08ms] +2026-09-04 16:56:04,433 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ca6868e9-af4c-4e67-9fe3-ab9085ce0a7e - 404 [1.53ms] +2026-09-04 16:56:04,440 INFO app.crud.ban_list created ban list id=fc00a9b6-414b-47ee-957e-cf833c6b8b8b org=1 project=1 +2026-09-04 16:56:04,440 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.92ms] +2026-09-04 16:56:04,441 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/fc00a9b6-414b-47ee-957e-cf833c6b8b8b/ - 307 [0.08ms] +2026-09-04 16:56:04,442 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/fc00a9b6-414b-47ee-957e-cf833c6b8b8b - 403 [1.29ms] +2026-09-04 16:56:04,449 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.75ms] +2026-09-04 16:56:04,450 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b87bf82c-37cb-46bb-a969-f746f62186de/ - 307 [0.09ms] +2026-09-04 16:56:04,453 INFO app.crud.ban_list deleted ban list id=b87bf82c-37cb-46bb-a969-f746f62186de +2026-09-04 16:56:04,454 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b87bf82c-37cb-46bb-a969-f746f62186de - 200 [3.43ms] +2026-09-04 16:56:04,460 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/f329f98c-531d-4c8b-a122-2cd15f2478c5/ - 307 [0.10ms] +2026-09-04 16:56:04,462 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/f329f98c-531d-4c8b-a122-2cd15f2478c5 - 404 [1.95ms] +2026-09-04 16:56:04,469 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.80ms] +2026-09-04 16:56:04,469 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/5a01d207-3316-48c2-b7c9-bd55e7b17fc5/ - 307 [0.08ms] +2026-09-04 16:56:04,472 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/5a01d207-3316-48c2-b7c9-bd55e7b17fc5 - 403 [2.61ms] +2026-09-04 16:56:04,479 INFO app.crud.ban_list created ban list id=de9b87e3-5e2b-4c8c-93cd-b07a3756c031 org=1 project=1 +2026-09-04 16:56:04,479 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.75ms] +2026-09-04 16:56:04,480 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/de9b87e3-5e2b-4c8c-93cd-b07a3756c031/ - 307 [0.09ms] +2026-09-04 16:56:04,481 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/de9b87e3-5e2b-4c8c-93cd-b07a3756c031 - 403 [1.36ms] +2026-09-04 16:56:04,565 INFO guardrails.execution request=90b8ee2f-357e-401f-80dc-0048efb07e79 starting guardrails execution (validators=[]) input='hello world' +2026-09-04 16:56:04,565 INFO guardrails.execution request=90b8ee2f-357e-401f-80dc-0048efb07e79 guardrails execution finished (passed=True) output='clean text' +2026-09-04 16:56:04,568 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.34ms] +2026-09-04 16:56:04,574 INFO guardrails.execution request=a2f2fef6-0b2f-46c6-bb9a-405b406bc835 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-04 16:56:04,574 INFO guardrails.execution request=a2f2fef6-0b2f-46c6-bb9a-405b406bc835 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:04,576 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.36ms] +2026-09-04 16:56:04,581 INFO guardrails.execution request=ee99a0b4-0e6f-4faa-8007-d3154ad1df39 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-04 16:56:04,581 INFO guardrails.execution request=ee99a0b4-0e6f-4faa-8007-d3154ad1df39 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-04 16:56:04,583 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.86ms] +2026-09-04 16:56:04,588 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9780eb5e-f26e-4a87-88aa-d3b2d1ac4fe8: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-04 16:56:04,591 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.70ms] +2026-09-04 16:56:04,602 INFO guardrails.execution request=437b8802-e5cc-4e6b-9676-5f4369c8e48f starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-04 16:56:04,604 INFO guardrails.execution request=437b8802-e5cc-4e6b-9676-5f4369c8e48f guardrails execution finished (passed=True) output='this contains b' +2026-09-04 16:56:04,605 INFO guardrails.execution request=437b8802-e5cc-4e6b-9676-5f4369c8e48f step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.603366 end=2026-09-04T16:56:04.603462 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-04 16:56:04,608 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.29ms] +2026-09-04 16:56:04,621 INFO guardrails.execution request=0eec1576-ecbc-418a-8459-3d586657dfd4 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-04 16:56:04,622 INFO guardrails.execution request=0eec1576-ecbc-418a-8459-3d586657dfd4 guardrails execution finished (passed=True) output='this is clean' +2026-09-04 16:56:04,624 INFO guardrails.execution request=0eec1576-ecbc-418a-8459-3d586657dfd4 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.621559 end=2026-09-04T16:56:04.621629 duration_ms=0 input='this is clean' output='this is clean' +2026-09-04 16:56:04,627 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.65ms] +2026-09-04 16:56:04,644 INFO guardrails.execution request=27b13f7d-f0ad-4adb-a7eb-ae3170966f92 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 16:56:04,646 INFO guardrails.execution request=27b13f7d-f0ad-4adb-a7eb-ae3170966f92 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-04 16:56:04,648 INFO guardrails.execution request=27b13f7d-f0ad-4adb-a7eb-ae3170966f92 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.645462 end=2026-09-04T16:56:04.645834 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-04 16:56:04,650 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.25ms] +2026-09-04 16:56:04,663 INFO guardrails.execution request=3ff6ea18-33cb-46d2-b393-c656496060d5 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-04 16:56:04,665 INFO guardrails.execution request=3ff6ea18-33cb-46d2-b393-c656496060d5 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-04 16:56:04,666 INFO guardrails.execution request=3ff6ea18-33cb-46d2-b393-c656496060d5 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.664291 end=2026-09-04T16:56:04.664598 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-04 16:56:04,669 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.41ms] +2026-09-04 16:56:04,683 INFO guardrails.execution request=85761011-02a9-4595-86fe-83a630e1b59d starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-04 16:56:04,685 INFO guardrails.execution request=85761011-02a9-4595-86fe-83a630e1b59d guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-04 16:56:04,686 INFO guardrails.execution request=85761011-02a9-4595-86fe-83a630e1b59d step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.684073 end=2026-09-04T16:56:04.684540 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-04 16:56:04,688 INFO guardrails.execution request=85761011-02a9-4595-86fe-83a630e1b59d step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.684546 end=2026-09-04T16:56:04.684621 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-04 16:56:04,690 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.40ms] +2026-09-04 16:56:04,694 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.88ms] +2026-09-04 16:56:04,707 INFO guardrails.execution request=aa5386ef-3a47-4274-8c3d-aaf693c65cfc starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 16:56:04,708 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log aa5386ef-3a47-4274-8c3d-aaf693c65cfc: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-04 16:56:04,710 INFO guardrails.execution request=aa5386ef-3a47-4274-8c3d-aaf693c65cfc step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.708221 end=2026-09-04T16:56:04.708473 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-04 16:56:04,712 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.68ms] +2026-09-04 16:56:04,725 INFO guardrails.execution request=4ca168bf-3572-4412-a89c-59af8e8b13d6 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-04 16:56:04,727 INFO guardrails.execution request=4ca168bf-3572-4412-a89c-59af8e8b13d6 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-04 16:56:04,728 INFO guardrails.execution request=4ca168bf-3572-4412-a89c-59af8e8b13d6 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.726346 end=2026-09-04T16:56:04.726590 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-04 16:56:04,731 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.62ms] +2026-09-04 16:56:04,743 INFO guardrails.execution request=71425796-d0d8-4d01-8c78-5f6f2e1c95aa starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-04 16:56:04,745 INFO guardrails.execution request=71425796-d0d8-4d01-8c78-5f6f2e1c95aa guardrails execution finished (passed=True) output='' +2026-09-04 16:56:04,746 INFO guardrails.execution request=71425796-d0d8-4d01-8c78-5f6f2e1c95aa step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.743672 end=2026-09-04T16:56:04.744623 duration_ms=0 input='This is a damn fucking mess.' output='' +2026-09-04 16:56:04,749 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.81ms] +2026-09-04 16:56:04,761 INFO guardrails.execution request=9978e5ce-d1b2-4b37-acbd-63dcb90d12af starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-04 16:56:04,763 INFO guardrails.execution request=9978e5ce-d1b2-4b37-acbd-63dcb90d12af guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-04 16:56:04,764 INFO guardrails.execution request=9978e5ce-d1b2-4b37-acbd-63dcb90d12af step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T16:56:04.761559 end=2026-09-04T16:56:04.762394 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-04 16:56:04,766 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.39ms] +2026-09-04 16:56:04,778 INFO guardrails.execution request=a62d837e-d20f-4a84-914a-d1486b6798ba starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-04 16:56:04,780 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a62d837e-d20f-4a84-914a-d1486b6798ba: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-04 16:56:04,782 INFO guardrails.execution request=a62d837e-d20f-4a84-914a-d1486b6798ba step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.779177 end=2026-09-04T16:56:04.780005 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-04 16:56:04,784 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.10ms] +2026-09-04 16:56:04,797 INFO guardrails.execution request=967242f7-7eab-4dab-b4f8-fda6fbffff76 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-04 16:56:04,799 INFO guardrails.execution request=967242f7-7eab-4dab-b4f8-fda6fbffff76 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-04 16:56:04,800 INFO guardrails.execution request=967242f7-7eab-4dab-b4f8-fda6fbffff76 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:04.797782 end=2026-09-04T16:56:04.798657 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-04 16:56:04,804 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.46ms] +2026-09-04 16:56:04,812 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 422654d5-b41d-45cd-8339-9fbc2660b3a2: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-04 16:56:04,815 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.23ms] +2026-09-04 16:56:05,250 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-04 16:56:08,059 INFO guardrails.execution request=2d42f57b-2ffd-4579-9718-1e00c6d6e5dc starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:08,367 INFO guardrails.execution request=2d42f57b-2ffd-4579-9718-1e00c6d6e5dc guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:08,379 INFO guardrails.execution request=2d42f57b-2ffd-4579-9718-1e00c6d6e5dc step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T16:56:08.065937 end=2026-09-04T16:56:08.365721 duration_ms=299 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:08,533 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3714.82ms] +2026-09-04 16:56:10,865 INFO guardrails.execution request=ba10f84a-c27a-4cd7-b156-665cc92c2891 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:10,895 INFO guardrails.execution request=ba10f84a-c27a-4cd7-b156-665cc92c2891 guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:10,915 INFO guardrails.execution request=ba10f84a-c27a-4cd7-b156-665cc92c2891 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T16:56:10.867010 end=2026-09-04T16:56:10.890470 duration_ms=23 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-04 16:56:11,123 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2542.35ms] +2026-09-04 16:56:13,393 INFO guardrails.execution request=c862241e-4390-4531-878d-405b9b054ecf starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-04 16:56:13,447 INFO guardrails.execution request=c862241e-4390-4531-878d-405b9b054ecf guardrails execution finished (passed=True) output='Explicit sexual content goes here.' +2026-09-04 16:56:13,457 INFO guardrails.execution request=c862241e-4390-4531-878d-405b9b054ecf step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-04T16:56:13.393862 end=2026-09-04T16:56:13.446218 duration_ms=52 input='Explicit sexual content goes here.' output='Explicit sexual content goes here.' +2026-09-04 16:56:13,606 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2471.76ms] +2026-09-04 16:56:13,632 INFO guardrails.execution request=76a90fe5-9498-4765-8e86-593100a4340f starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-04 16:56:13,635 INFO guardrails.execution request=76a90fe5-9498-4765-8e86-593100a4340f guardrails execution finished (passed=True) output='' +2026-09-04 16:56:13,640 INFO guardrails.execution request=76a90fe5-9498-4765-8e86-593100a4340f step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:13.633511 end=2026-09-04T16:56:13.634771 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-04 16:56:13,643 INFO guardrails.execution request=76a90fe5-9498-4765-8e86-593100a4340f step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T16:56:13.634782 end=2026-09-04T16:56:13.634927 duration_ms=0 input='' output='' +2026-09-04 16:56:13,647 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.49ms] +2026-09-04 16:56:13,656 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 94c51ffd-5901-4862-a507-a51c28e7c15f: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-04 16:56:13,659 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.83ms] +2026-09-04 16:56:15,871 INFO guardrails.execution request=318cdc05-684b-4b0c-99c5-c00e97902577 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-04 16:56:15,876 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 318cdc05-684b-4b0c-99c5-c00e97902577: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-04 16:56:15,906 INFO guardrails.execution request=318cdc05-684b-4b0c-99c5-c00e97902577 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:15.872075 end=2026-09-04T16:56:15.875942 duration_ms=3 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-04 16:56:15,922 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2258.53ms] +2026-09-04 16:56:18,634 INFO guardrails.execution request=7ec3febb-1663-4477-9e73-66b34b5f5a69 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-04 16:56:18,635 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7ec3febb-1663-4477-9e73-66b34b5f5a69: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-04 16:56:18,641 INFO guardrails.execution request=7ec3febb-1663-4477-9e73-66b34b5f5a69 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:18.635287 end=2026-09-04T16:56:18.635766 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-04 16:56:18,644 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2715.16ms] +2026-09-04 16:56:18,660 INFO guardrails.execution request=a0f9df98-703a-4da5-aeda-ea4c4c869486 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-04 16:56:18,665 INFO guardrails.execution request=a0f9df98-703a-4da5-aeda-ea4c4c869486 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-04 16:56:18,668 INFO guardrails.execution request=a0f9df98-703a-4da5-aeda-ea4c4c869486 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.661287 end=2026-09-04T16:56:18.664187 duration_ms=2 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-04 16:56:18,670 INFO guardrails.execution request=a0f9df98-703a-4da5-aeda-ea4c4c869486 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.664194 end=2026-09-04T16:56:18.664276 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-04 16:56:18,674 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.31ms] +2026-09-04 16:56:18,698 INFO guardrails.execution request=449ec5b5-b888-411e-b2d2-084cf15c9ab1 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-04 16:56:18,702 INFO guardrails.execution request=449ec5b5-b888-411e-b2d2-084cf15c9ab1 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-04 16:56:18,706 INFO guardrails.execution request=449ec5b5-b888-411e-b2d2-084cf15c9ab1 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.699677 end=2026-09-04T16:56:18.700010 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 16:56:18,708 INFO guardrails.execution request=449ec5b5-b888-411e-b2d2-084cf15c9ab1 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.700015 end=2026-09-04T16:56:18.701162 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 16:56:18,710 INFO guardrails.execution request=449ec5b5-b888-411e-b2d2-084cf15c9ab1 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.701169 end=2026-09-04T16:56:18.701281 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-04 16:56:18,714 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.44ms] +2026-09-04 16:56:18,730 INFO guardrails.execution request=cec24597-9de3-45c6-ba6e-acd810dc70d8 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-04 16:56:18,732 INFO guardrails.execution request=cec24597-9de3-45c6-ba6e-acd810dc70d8 guardrails execution finished (passed=True) output='this contains b' +2026-09-04 16:56:18,734 INFO guardrails.execution request=cec24597-9de3-45c6-ba6e-acd810dc70d8 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T16:56:18.731089 end=2026-09-04T16:56:18.731215 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-04 16:56:18,736 INFO guardrails.execution request=cec24597-9de3-45c6-ba6e-acd810dc70d8 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T16:56:18.731221 end=2026-09-04T16:56:18.731406 duration_ms=0 input='this contains b' output='this contains b' +2026-09-04 16:56:18,739 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.58ms] +2026-09-04 16:56:18,749 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 878c7187-fe7f-492c-9667-b5d8d4f8bf33: 404: Ban list not found +2026-09-04 16:56:18,752 INFO http_request_logger POST /api/v1/guardrails/ - 404 [5.33ms] +2026-09-04 16:56:18,758 INFO guardrails.execution request=1d35aaff-51b5-4991-a27a-323363851b31 starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-04 16:56:18,758 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1d35aaff-51b5-4991-a27a-323363851b31: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-04 16:56:18,760 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.84ms] +2026-09-04 16:56:18,765 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-04 16:56:18,765 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.36ms] +2026-09-04 16:56:18,776 INFO app.crud.llm_prompt_config created llm prompt config id=a1ab348d-ae7b-4548-96a4-26d68b7c2352 org=1 project=1 +2026-09-04 16:56:18,777 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [7.97ms] +2026-09-04 16:56:18,782 INFO app.crud.llm_prompt_config created llm prompt config id=8e939f28-93b7-4f52-9c96-41ca0f40f5e2 org=1 project=1 +2026-09-04 16:56:18,783 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.54ms] +2026-09-04 16:56:18,788 INFO app.crud.llm_prompt_config created llm prompt config id=93f788e4-5399-4482-8e01-dce0e6d2bc24 org=1 project=1 +2026-09-04 16:56:18,789 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.59ms] +2026-09-04 16:56:18,792 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.81ms] +2026-09-04 16:56:18,797 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.77ms] +2026-09-04 16:56:18,801 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.70ms] +2026-09-04 16:56:18,804 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-04 16:56:18,810 INFO app.crud.llm_prompt_config created llm prompt config id=0f0ec530-142f-4995-a07e-de8def29297b org=1 project=1 +2026-09-04 16:56:18,810 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.84ms] +2026-09-04 16:56:18,815 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.75ms] +2026-09-04 16:56:18,818 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.74ms] +2026-09-04 16:56:18,823 INFO app.crud.llm_prompt_config created llm prompt config id=bc9c1f5d-40a5-4656-af37-ef9ff6bf58b6 org=1 project=1 +2026-09-04 16:56:18,823 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.80ms] +2026-09-04 16:56:18,826 INFO app.crud.llm_prompt_config created llm prompt config id=4d526ba7-13e4-4be4-b17b-a2fec5ac3dda org=1 project=1 +2026-09-04 16:56:18,827 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.95ms] +2026-09-04 16:56:18,830 INFO app.crud.llm_prompt_config created llm prompt config id=798d005d-7a88-4109-a084-bad641bcf6c9 org=1 project=1 +2026-09-04 16:56:18,831 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.74ms] +2026-09-04 16:56:18,833 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.06ms] +2026-09-04 16:56:18,838 INFO app.crud.llm_prompt_config created llm prompt config id=29e2eddf-ed5a-4312-9b91-dcfea9db2291 org=1 project=1 +2026-09-04 16:56:18,839 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.87ms] +2026-09-04 16:56:18,842 INFO app.crud.llm_prompt_config created llm prompt config id=f3cf9115-b69b-4ba1-9c1e-31098df77784 org=1 project=1 +2026-09-04 16:56:18,842 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.09ms] +2026-09-04 16:56:18,845 INFO app.crud.llm_prompt_config created llm prompt config id=7e0c4dc8-e929-4cad-903b-ae8b6db86118 org=1 project=1 +2026-09-04 16:56:18,846 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.84ms] +2026-09-04 16:56:18,849 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.47ms] +2026-09-04 16:56:18,854 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.61ms] +2026-09-04 16:56:18,860 INFO app.crud.llm_prompt_config created llm prompt config id=52d6a1b8-9197-4570-9192-8e9c2e9f75b0 org=1 project=1 +2026-09-04 16:56:18,860 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.74ms] +2026-09-04 16:56:18,863 INFO app.crud.llm_prompt_config created llm prompt config id=6afffcf0-70c2-4667-95da-e54f245072e2 org=1 project=1 +2026-09-04 16:56:18,864 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.14ms] +2026-09-04 16:56:18,866 INFO app.crud.llm_prompt_config created llm prompt config id=d9aec31b-ff46-488d-ad9f-114a374d600c org=1 project=1 +2026-09-04 16:56:18,867 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.85ms] +2026-09-04 16:56:18,870 INFO app.crud.llm_prompt_config created llm prompt config id=d1a331cc-7513-493e-b92c-15d1671e9810 org=1 project=1 +2026-09-04 16:56:18,870 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.85ms] +2026-09-04 16:56:18,872 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.78ms] +2026-09-04 16:56:18,877 INFO app.crud.llm_prompt_config created llm prompt config id=8b3f9f94-f371-439f-9cc8-9f2dac75b505 org=1 project=1 +2026-09-04 16:56:18,878 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.88ms] +2026-09-04 16:56:18,881 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.07ms] +2026-09-04 16:56:18,887 INFO app.crud.llm_prompt_config created llm prompt config id=fbe6f1da-2deb-4e81-afbd-265dda83a1e1 org=1 project=1 +2026-09-04 16:56:18,888 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.30ms] +2026-09-04 16:56:18,890 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/fbe6f1da-2deb-4e81-afbd-265dda83a1e1 - 200 [1.92ms] +2026-09-04 16:56:18,897 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/09d09001-d8cb-4fcb-a6f4-82a37e8da592 - 404 [1.68ms] +2026-09-04 16:56:18,902 INFO app.crud.llm_prompt_config created llm prompt config id=cdf75c38-b422-417f-b37e-eaf7910da096 org=1 project=1 +2026-09-04 16:56:18,902 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.45ms] +2026-09-04 16:56:18,905 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/cdf75c38-b422-417f-b37e-eaf7910da096 - 404 [2.49ms] +2026-09-04 16:56:18,911 INFO app.crud.llm_prompt_config created llm prompt config id=aecb13a2-2aff-4ae4-ae71-d886351b4b99 org=1 project=1 +2026-09-04 16:56:18,911 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.58ms] +2026-09-04 16:56:18,914 INFO app.crud.llm_prompt_config updated llm prompt config id=aecb13a2-2aff-4ae4-ae71-d886351b4b99 +2026-09-04 16:56:18,915 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/aecb13a2-2aff-4ae4-ae71-d886351b4b99 - 200 [3.29ms] +2026-09-04 16:56:18,920 INFO app.crud.llm_prompt_config created llm prompt config id=1ce261bd-2c27-44e6-9863-e0c080b74aee org=1 project=1 +2026-09-04 16:56:18,920 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.38ms] +2026-09-04 16:56:18,923 INFO app.crud.llm_prompt_config updated llm prompt config id=1ce261bd-2c27-44e6-9863-e0c080b74aee +2026-09-04 16:56:18,923 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1ce261bd-2c27-44e6-9863-e0c080b74aee - 200 [2.62ms] +2026-09-04 16:56:18,928 INFO app.crud.llm_prompt_config created llm prompt config id=523284b4-2268-4ff7-9186-b554fb4ddf89 org=1 project=1 +2026-09-04 16:56:18,928 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.29ms] +2026-09-04 16:56:18,931 INFO app.crud.llm_prompt_config updated llm prompt config id=523284b4-2268-4ff7-9186-b554fb4ddf89 +2026-09-04 16:56:18,931 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/523284b4-2268-4ff7-9186-b554fb4ddf89 - 200 [2.42ms] +2026-09-04 16:56:18,933 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/523284b4-2268-4ff7-9186-b554fb4ddf89 - 200 [1.33ms] +2026-09-04 16:56:18,937 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/22dadec6-bb65-4052-8a2b-189cb96fb270 - 404 [1.87ms] +2026-09-04 16:56:18,944 INFO app.crud.llm_prompt_config created llm prompt config id=708d35c0-c4a0-4c45-9e8f-4c6b019c6718 org=1 project=1 +2026-09-04 16:56:18,944 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.94ms] +2026-09-04 16:56:18,946 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/708d35c0-c4a0-4c45-9e8f-4c6b019c6718 - 404 [1.39ms] +2026-09-04 16:56:18,951 INFO app.crud.llm_prompt_config created llm prompt config id=9f6b34b6-63ee-4224-b7bb-478a817243c9 org=1 project=1 +2026-09-04 16:56:18,952 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.59ms] +2026-09-04 16:56:18,953 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9f6b34b6-63ee-4224-b7bb-478a817243c9 - 422 [1.47ms] +2026-09-04 16:56:18,961 INFO app.crud.llm_prompt_config created llm prompt config id=61a8201e-6abb-4c9c-bafe-e2af49116b5f org=1 project=1 +2026-09-04 16:56:18,962 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.73ms] +2026-09-04 16:56:18,964 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/61a8201e-6abb-4c9c-bafe-e2af49116b5f - 422 [1.72ms] +2026-09-04 16:56:18,971 INFO app.crud.llm_prompt_config created llm prompt config id=800deac5-780e-4391-a1bd-9fe93428d3e6 org=1 project=1 +2026-09-04 16:56:18,971 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.17ms] +2026-09-04 16:56:18,975 INFO app.crud.llm_prompt_config updated llm prompt config id=800deac5-780e-4391-a1bd-9fe93428d3e6 +2026-09-04 16:56:18,975 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/800deac5-780e-4391-a1bd-9fe93428d3e6 - 200 [3.11ms] +2026-09-04 16:56:18,982 INFO app.crud.llm_prompt_config created llm prompt config id=a6df2815-7662-4c15-9436-16ae05d4851a org=1 project=1 +2026-09-04 16:56:18,982 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.74ms] +2026-09-04 16:56:18,985 INFO app.crud.llm_prompt_config updated llm prompt config id=a6df2815-7662-4c15-9436-16ae05d4851a +2026-09-04 16:56:18,985 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/a6df2815-7662-4c15-9436-16ae05d4851a - 200 [2.55ms] +2026-09-04 16:56:18,990 INFO app.crud.llm_prompt_config created llm prompt config id=461ef187-5be6-4c3c-bc76-9792d582c3ef org=1 project=1 +2026-09-04 16:56:18,991 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.57ms] +2026-09-04 16:56:18,993 INFO app.crud.llm_prompt_config deleted llm prompt config id=461ef187-5be6-4c3c-bc76-9792d582c3ef +2026-09-04 16:56:18,993 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/461ef187-5be6-4c3c-bc76-9792d582c3ef - 200 [1.93ms] +2026-09-04 16:56:18,999 INFO app.crud.llm_prompt_config created llm prompt config id=9b381b3a-44a0-4937-a566-b7cec9910ab7 org=1 project=1 +2026-09-04 16:56:18,999 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.51ms] +2026-09-04 16:56:19,001 INFO app.crud.llm_prompt_config deleted llm prompt config id=9b381b3a-44a0-4937-a566-b7cec9910ab7 +2026-09-04 16:56:19,002 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/9b381b3a-44a0-4937-a566-b7cec9910ab7 - 200 [1.72ms] +2026-09-04 16:56:19,003 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.31ms] +2026-09-04 16:56:19,009 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/14b63e19-d2e4-4b22-8642-cf293be78a4e - 404 [1.89ms] +2026-09-04 16:56:19,015 INFO app.crud.llm_prompt_config created llm prompt config id=fbe487d4-69cd-4c4d-acbf-1edbab7270d6 org=1 project=1 +2026-09-04 16:56:19,016 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.41ms] +2026-09-04 16:56:19,017 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/fbe487d4-69cd-4c4d-acbf-1edbab7270d6 - 404 [1.61ms] +2026-09-04 16:56:19,108 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='hello' +2026-09-04 16:56:19,108 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=True) output='clean text' +2026-09-04 16:56:19,110 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='bad text' +2026-09-04 16:56:19,111 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,113 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f0516335-edb6-4e8e-ac7d-08efdb8e09f4: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-04 16:56:19,116 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='bad text' +2026-09-04 16:56:19,116 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,120 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='bad text' +2026-09-04 16:56:19,120 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,142 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-04 16:56:19,142 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,144 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='some input text' +2026-09-04 16:56:19,144 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,147 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-04 16:56:19,147 INFO guardrails.execution request=f0516335-edb6-4e8e-ac7d-08efdb8e09f4 guardrails execution finished (passed=False) output=None +2026-09-04 16:56:19,149 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f0516335-edb6-4e8e-ac7d-08efdb8e09f4: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-04 16:56:19,152 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f0516335-edb6-4e8e-ac7d-08efdb8e09f4: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-04 16:56:19,169 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 16:56:19,171 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 16:56:19,174 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-04 16:56:19,186 INFO app.crud.validator_config created validator config id=00464b6e-32c9-4047-bab5-31053976a0ed org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 16:56:19,186 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [6.97ms] +2026-09-04 16:56:19,192 INFO app.crud.validator_config created validator config id=81a09caa-6e5f-4e68-a22d-2fbf8d8e57fa org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 16:56:19,192 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.66ms] +2026-09-04 16:56:19,194 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-04 16:56:19,194 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.63ms] +2026-09-04 16:56:19,198 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.88ms] +2026-09-04 16:56:19,205 INFO app.crud.validator_config created validator config id=aa2fdb24-e094-472d-b2d7-7490ba0b9da0 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 16:56:19,205 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.84ms] +2026-09-04 16:56:19,208 INFO app.crud.validator_config created validator config id=ce1a412a-352d-46ce-afdf-9f386fd1dfd6 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:56:19,209 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.95ms] +2026-09-04 16:56:19,212 INFO app.crud.validator_config created validator config id=9518cb19-16ef-4486-977a-f95b9268a5eb org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:56:19,212 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.27ms] +2026-09-04 16:56:19,215 INFO app.crud.validator_config created validator config id=3a5e6057-32b4-4c91-9763-88230368814e org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 16:56:19,216 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.22ms] +2026-09-04 16:56:19,218 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.26ms] +2026-09-04 16:56:19,219 INFO http_request_logger GET /api/v1/guardrails/validators/configs/aa2fdb24-e094-472d-b2d7-7490ba0b9da0/ - 307 [0.09ms] +2026-09-04 16:56:19,221 INFO http_request_logger GET /api/v1/guardrails/validators/configs/aa2fdb24-e094-472d-b2d7-7490ba0b9da0 - 200 [1.78ms] +2026-09-04 16:56:19,221 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ce1a412a-352d-46ce-afdf-9f386fd1dfd6/ - 307 [0.09ms] +2026-09-04 16:56:19,223 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ce1a412a-352d-46ce-afdf-9f386fd1dfd6 - 200 [1.90ms] +2026-09-04 16:56:19,224 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9518cb19-16ef-4486-977a-f95b9268a5eb/ - 307 [0.08ms] +2026-09-04 16:56:19,226 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9518cb19-16ef-4486-977a-f95b9268a5eb - 200 [1.54ms] +2026-09-04 16:56:19,226 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3a5e6057-32b4-4c91-9763-88230368814e/ - 307 [0.08ms] +2026-09-04 16:56:19,228 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3a5e6057-32b4-4c91-9763-88230368814e - 200 [1.55ms] +2026-09-04 16:56:19,236 INFO app.crud.validator_config created validator config id=c277a5c2-1db6-41cf-8a56-4579d1f65565 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 16:56:19,236 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.11ms] +2026-09-04 16:56:19,239 INFO app.crud.validator_config created validator config id=3613817a-850d-4eb6-8cb7-01b3a3403ee8 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:56:19,239 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.81ms] +2026-09-04 16:56:19,242 INFO app.crud.validator_config created validator config id=2cdfe392-a231-4c7e-a2cb-0ceeba064683 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 16:56:19,243 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.89ms] +2026-09-04 16:56:19,243 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c277a5c2-1db6-41cf-8a56-4579d1f65565/ - 307 [0.08ms] +2026-09-04 16:56:19,247 INFO app.crud.validator_config updated validator config id=c277a5c2-1db6-41cf-8a56-4579d1f65565 +2026-09-04 16:56:19,248 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c277a5c2-1db6-41cf-8a56-4579d1f65565 - 200 [4.31ms] +2026-09-04 16:56:19,248 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3613817a-850d-4eb6-8cb7-01b3a3403ee8/ - 307 [0.09ms] +2026-09-04 16:56:19,251 INFO app.crud.validator_config updated validator config id=3613817a-850d-4eb6-8cb7-01b3a3403ee8 +2026-09-04 16:56:19,252 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3613817a-850d-4eb6-8cb7-01b3a3403ee8 - 200 [3.67ms] +2026-09-04 16:56:19,252 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2cdfe392-a231-4c7e-a2cb-0ceeba064683/ - 307 [0.08ms] +2026-09-04 16:56:19,256 INFO app.crud.validator_config updated validator config id=2cdfe392-a231-4c7e-a2cb-0ceeba064683 +2026-09-04 16:56:19,256 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2cdfe392-a231-4c7e-a2cb-0ceeba064683 - 200 [3.76ms] +2026-09-04 16:56:19,258 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.79ms] +2026-09-04 16:56:19,267 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.32ms] +2026-09-04 16:56:19,278 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.38ms] +2026-09-04 16:56:19,290 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.20ms] +2026-09-04 16:56:19,300 INFO app.crud.validator_config created validator config id=a2179f20-7540-4970-bc76-e07225f28be1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 16:56:19,301 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [6.16ms] +2026-09-04 16:56:19,303 INFO app.crud.validator_config created validator config id=aaf2d8db-7c2c-4e11-8f55-694ba7e16941 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:56:19,304 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.71ms] +2026-09-04 16:56:19,306 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.84ms] +2026-09-04 16:56:19,313 INFO app.crud.validator_config created validator config id=1e0d7f0c-6599-4462-930e-c4bb4e4a3f07 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 16:56:19,313 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.95ms] +2026-09-04 16:56:19,316 INFO app.crud.validator_config created validator config id=df122109-c509-47e6-af9d-185913827376 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 16:56:19,316 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.54ms] +2026-09-04 16:56:19,318 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.62ms] +2026-09-04 16:56:19,322 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.77ms] +2026-09-04 16:56:19,328 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.89ms] +2026-09-04 16:56:19,338 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.23ms] +2026-09-04 16:56:19,338 INFO http_request_logger GET /api/v1/guardrails/validators/configs/7f8e2df0-03d8-4266-8c9e-7bd9e04c008e/ - 307 [0.11ms] +2026-09-04 16:56:19,341 INFO http_request_logger GET /api/v1/guardrails/validators/configs/7f8e2df0-03d8-4266-8c9e-7bd9e04c008e - 200 [3.10ms] +2026-09-04 16:56:19,346 INFO http_request_logger GET /api/v1/guardrails/validators/configs/edec4a6d-fd07-4b31-9259-e4a239c42ab0/ - 307 [0.13ms] +2026-09-04 16:56:19,349 INFO http_request_logger GET /api/v1/guardrails/validators/configs/edec4a6d-fd07-4b31-9259-e4a239c42ab0 - 404 [2.40ms] +2026-09-04 16:56:19,354 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-04 16:56:19,355 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.74ms] +2026-09-04 16:56:19,363 INFO app.crud.validator_config created validator config id=e47e2bfd-4996-42b8-aae3-0e5ebabdf351 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 16:56:19,364 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.83ms] +2026-09-04 16:56:19,364 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e47e2bfd-4996-42b8-aae3-0e5ebabdf351/ - 307 [0.09ms] +2026-09-04 16:56:19,366 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e47e2bfd-4996-42b8-aae3-0e5ebabdf351 - 404 [1.82ms] +2026-09-04 16:56:19,376 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.37ms] +2026-09-04 16:56:19,377 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b6dda911-125d-4036-be51-04064e6f8d3f/ - 307 [0.09ms] +2026-09-04 16:56:19,381 INFO app.crud.validator_config updated validator config id=b6dda911-125d-4036-be51-04064e6f8d3f +2026-09-04 16:56:19,381 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b6dda911-125d-4036-be51-04064e6f8d3f - 200 [4.12ms] +2026-09-04 16:56:19,391 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.26ms] +2026-09-04 16:56:19,391 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/259d074f-3f96-4b0b-b870-233222f65bae/ - 307 [0.09ms] +2026-09-04 16:56:19,394 INFO app.crud.validator_config updated validator config id=259d074f-3f96-4b0b-b870-233222f65bae +2026-09-04 16:56:19,395 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/259d074f-3f96-4b0b-b870-233222f65bae - 200 [3.30ms] +2026-09-04 16:56:19,399 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8b146c0f-164e-48ee-94b9-543ae436cdd7/ - 307 [0.10ms] +2026-09-04 16:56:19,402 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8b146c0f-164e-48ee-94b9-543ae436cdd7 - 404 [2.25ms] +2026-09-04 16:56:19,409 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.87ms] +2026-09-04 16:56:19,409 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/720a7290-770b-4249-928d-53038faef55c/ - 307 [0.09ms] +2026-09-04 16:56:19,413 INFO app.crud.validator_config deleted validator config id=720a7290-770b-4249-928d-53038faef55c +2026-09-04 16:56:19,413 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/720a7290-770b-4249-928d-53038faef55c - 200 [3.79ms] +2026-09-04 16:56:19,414 INFO http_request_logger GET /api/v1/guardrails/validators/configs/720a7290-770b-4249-928d-53038faef55c/ - 307 [0.09ms] +2026-09-04 16:56:19,416 INFO http_request_logger GET /api/v1/guardrails/validators/configs/720a7290-770b-4249-928d-53038faef55c - 404 [2.26ms] +2026-09-04 16:56:19,420 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/29d136b7-5912-4182-81e5-a004c4cac9f1/ - 307 [0.09ms] +2026-09-04 16:56:19,422 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/29d136b7-5912-4182-81e5-a004c4cac9f1 - 404 [1.69ms] +2026-09-04 16:56:19,429 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.82ms] +2026-09-04 16:56:19,429 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/daf80db4-2c5b-462a-adfb-42705fccf360/ - 307 [0.10ms] +2026-09-04 16:56:19,432 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/daf80db4-2c5b-462a-adfb-42705fccf360 - 404 [2.08ms] +2026-09-04 16:56:19,432 INFO http_request_logger GET /api/v1/guardrails/validators/configs/daf80db4-2c5b-462a-adfb-42705fccf360/ - 307 [0.09ms] +2026-09-04 16:56:19,434 INFO http_request_logger GET /api/v1/guardrails/validators/configs/daf80db4-2c5b-462a-adfb-42705fccf360 - 200 [1.62ms] +2026-09-04 16:56:19,537 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-04 16:56:19,537 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-04 16:56:19,610 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:22,337 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:22,346 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:23,783 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:23,792 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:25,132 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:25,139 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:26,692 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:26,699 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:27,689 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:27,699 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:29,117 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:29,119 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 16:56:30,449 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 16:56:30,621 INFO watchfiles.main 3 changes detected +2026-09-04 16:57:18,233 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 403 [3.47ms] +2026-09-04 16:57:45,120 INFO watchfiles.main 1 change detected +2026-09-04 16:57:45,123 WARNING uvicorn.error WatchFiles detected changes in 'app/api/deps.py'. Reloading... +2026-09-04 16:57:45,143 INFO uvicorn.error Shutting down +2026-09-04 16:57:45,245 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 16:57:45,246 INFO uvicorn.error Application shutdown complete. +2026-09-04 16:57:45,246 INFO uvicorn.error Finished server process [23757] +2026-09-04 16:57:45,645 INFO watchfiles.main 1 change detected +2026-09-04 16:57:46,010 INFO watchfiles.main 3 changes detected +2026-09-04 16:57:51,432 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:57:52,305 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:57:52,306 INFO uvicorn.error Started server process [23917] +2026-09-04 16:57:52,306 INFO uvicorn.error Waiting for application startup. +2026-09-04 16:57:52,307 INFO uvicorn.error Application startup complete. +2026-09-04 16:58:08,872 INFO uvicorn.error Shutting down +2026-09-04 16:58:08,976 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 16:58:08,978 INFO uvicorn.error Application shutdown complete. +2026-09-04 16:58:08,979 INFO uvicorn.error Finished server process [23917] +2026-09-04 16:58:09,006 INFO uvicorn.error Stopping reloader process [23649] +2026-09-04 16:58:15,867 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:58:16,668 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:58:16,695 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-04 16:58:16,696 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-04 16:58:16,696 INFO uvicorn.error Started reloader process [24069] using WatchFiles +2026-09-04 16:58:21,830 INFO presidio-analyzer Using device of type: cpu +2026-09-04 16:58:22,621 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 16:58:22,622 INFO uvicorn.error Started server process [24126] +2026-09-04 16:58:22,622 INFO uvicorn.error Waiting for application startup. +2026-09-04 16:58:22,623 INFO uvicorn.error Application startup complete. +2026-09-04 17:00:02,383 INFO uvicorn.error Shutting down +2026-09-04 17:00:02,497 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 17:00:02,501 INFO uvicorn.error Application shutdown complete. +2026-09-04 17:00:02,503 INFO uvicorn.error Finished server process [24126] +2026-09-04 17:00:02,545 INFO uvicorn.error Stopping reloader process [24069] +2026-09-04 17:00:10,295 INFO presidio-analyzer Using device of type: cpu +2026-09-04 17:00:11,176 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 17:00:11,207 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-04 17:00:11,207 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-04 17:00:11,208 INFO uvicorn.error Started reloader process [24372] using WatchFiles +2026-09-04 17:00:15,953 INFO presidio-analyzer Using device of type: cpu +2026-09-04 17:00:16,679 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 17:00:16,679 INFO uvicorn.error Started server process [24385] +2026-09-04 17:00:16,680 INFO uvicorn.error Waiting for application startup. +2026-09-04 17:00:16,680 INFO uvicorn.error Application startup complete. +2026-09-04 17:00:21,004 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 403 [0.95ms] +2026-09-04 17:00:52,985 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 403 [3.86ms] +2026-09-04 17:01:34,542 INFO uvicorn.error Shutting down +2026-09-04 17:01:34,651 INFO uvicorn.error Waiting for application shutdown. +2026-09-04 17:01:34,655 INFO uvicorn.error Application shutdown complete. +2026-09-04 17:01:34,656 INFO uvicorn.error Finished server process [24385] +2026-09-04 17:01:34,696 INFO uvicorn.error Stopping reloader process [24372] +2026-09-04 17:01:42,033 INFO presidio-analyzer Using device of type: cpu +2026-09-04 17:01:42,932 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 17:01:42,967 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-04 17:01:42,968 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-04 17:01:42,968 INFO uvicorn.error Started reloader process [24601] using WatchFiles +2026-09-04 17:01:47,634 INFO presidio-analyzer Using device of type: cpu +2026-09-04 17:01:48,382 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-04 17:01:48,382 INFO uvicorn.error Started server process [24618] +2026-09-04 17:01:48,383 INFO uvicorn.error Waiting for application startup. +2026-09-04 17:01:48,383 INFO uvicorn.error Application startup complete. +2026-09-04 17:01:48,933 INFO app.crud.validator_config created validator config id=efff492c-3ed9-4422-9c9a-53850886905e org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 17:01:48,935 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [36.44ms] +2026-09-04 17:05:42,409 INFO http_request_logger GET /api/v1/utils/health-check/ - 200 [2.28ms] +2026-09-04 17:06:03,138 INFO http_request_logger GET /api/v1/guardrails/ - 200 [10.10ms] +2026-09-04 17:06:12,689 INFO app.crud.validator_config created validator config id=35ec29e6-1bd3-4421-be00-d84da7e2cc77 org=1 project=1 type=ValidatorType.ProfanityFree +2026-09-04 17:06:12,690 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [13.56ms] +2026-09-04 17:06:21,252 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [9.21ms] +2026-09-04 17:06:21,283 INFO guardrails.execution request=8991e082-c6ba-4cb7-b2ac-312cbf4e66fb starting guardrails execution (validators=['profanity_free']) input='this is a clean test sentence' +2026-09-04 17:06:21,291 INFO guardrails.execution request=8991e082-c6ba-4cb7-b2ac-312cbf4e66fb guardrails execution finished (passed=True) output='this is a clean test sentence' +2026-09-04 17:06:21,298 INFO guardrails.execution request=8991e082-c6ba-4cb7-b2ac-312cbf4e66fb step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T17:06:21.286672 end=2026-09-04T17:06:21.290904 duration_ms=4 input='this is a clean test sentence' output='this is a clean test sentence' +2026-09-04 17:06:21,307 INFO http_request_logger POST /api/v1/guardrails/ - 200 [48.13ms] +2026-09-04 17:06:51,102 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [9.16ms] +2026-09-04 17:06:51,125 INFO guardrails.execution request=48ff206a-1a94-4ecf-9113-56e70abec1a1 starting guardrails execution (validators=['profanity_free']) input='Say hello in one short sentence.' +2026-09-04 17:06:51,128 INFO guardrails.execution request=48ff206a-1a94-4ecf-9113-56e70abec1a1 guardrails execution finished (passed=True) output='Say hello in one short sentence.' +2026-09-04 17:06:51,132 INFO guardrails.execution request=48ff206a-1a94-4ecf-9113-56e70abec1a1 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T17:06:51.126045 end=2026-09-04T17:06:51.127574 duration_ms=1 input='Say hello in one short sentence.' output='Say hello in one short sentence.' +2026-09-04 17:06:51,137 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.71ms] +2026-09-04 17:10:01,187 INFO app.crud.llm_prompt_config created llm prompt config id=fb6a9ac9-5396-46fd-bda1-abf986bba10b org=1 project=1 +2026-09-04 17:10:01,190 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [22.46ms] +2026-09-04 17:10:01,394 INFO app.crud.llm_prompt_config created llm prompt config id=0c4bfa53-6071-45a4-aca5-6008b2fd70bf org=1 project=1 +2026-09-04 17:10:01,394 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [7.97ms] +2026-09-04 17:10:09,633 INFO app.crud.ban_list created ban list id=c08948c6-8488-4473-be3f-1473e7a0f72b org=1 project=1 +2026-09-04 17:10:09,634 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [12.70ms] +2026-09-04 17:10:24,582 INFO app.crud.validator_config created validator config id=1ef1b4c3-8def-4e3e-9cae-da70adf43fda org=1 project=1 type=ValidatorType.BanList +2026-09-04 17:10:24,583 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [11.05ms] +2026-09-04 17:10:24,785 INFO app.crud.validator_config created validator config id=b6d86f24-c6bc-48bc-a441-7ef8c6c007ee org=1 project=1 type=ValidatorType.PIIRemover +2026-09-04 17:10:24,786 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [7.69ms] +2026-09-04 17:10:24,987 INFO app.crud.validator_config created validator config id=4349d465-15a5-4954-a562-d429beb341bc org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-04 17:10:24,988 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.63ms] +2026-09-04 17:10:25,186 INFO app.crud.validator_config created validator config id=a8e0ff48-7a0a-4f74-9ac8-b5d30520899c org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-04 17:10:25,187 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [7.66ms] +2026-09-04 17:10:25,401 INFO app.crud.validator_config created validator config id=e815fe44-7743-4c7f-8425-f9d6772caadb org=1 project=1 type=ValidatorType.NSFWText +2026-09-04 17:10:25,402 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [9.40ms] +2026-09-04 17:10:25,621 INFO app.crud.validator_config created validator config id=c2fa6d9e-cc6a-4372-9560-1d56539ce40e org=1 project=1 type=ValidatorType.LLMCritic +2026-09-04 17:10:25,622 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [8.04ms] +2026-09-04 17:10:25,821 INFO app.crud.validator_config created validator config id=9331c01a-1fff-4d42-808b-bcd248af610d org=1 project=1 type=ValidatorType.TopicRelevance +2026-09-04 17:10:25,825 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [10.69ms] +2026-09-04 17:10:26,026 INFO app.crud.validator_config created validator config id=78db96b7-247e-4279-ad6f-12b30e337855 org=1 project=1 type=ValidatorType.TopicRelevanceLLM +2026-09-04 17:10:26,027 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [7.19ms] +2026-09-04 17:10:26,228 INFO app.crud.validator_config created validator config id=f58e229b-ff21-4b74-900e-9f33acaaeff4 org=1 project=1 type=ValidatorType.AnswerRelevanceCustomLLM +2026-09-04 17:10:26,229 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [8.25ms] +2026-09-04 17:11:07,204 INFO watchfiles.main 3 changes detected +2026-09-04 17:11:27,960 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [17.58ms] +2026-09-04 17:11:28,003 INFO guardrails.execution request=3a1d5f5f-1768-4a6d-9516-e56e936e69cf starting guardrails execution (validators=['ban_list']) input='this text contains forbiddenword in it' +2026-09-04 17:11:28,006 INFO guardrails.execution request=3a1d5f5f-1768-4a6d-9516-e56e936e69cf guardrails execution finished (passed=True) output='this text contains f in it' +2026-09-04 17:11:28,012 INFO guardrails.execution request=3a1d5f5f-1768-4a6d-9516-e56e936e69cf step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T17:11:28.005145 end=2026-09-04T17:11:28.005433 duration_ms=0 input='this text contains forbiddenword in it' output='this text contains f in it' +2026-09-04 17:11:28,026 INFO http_request_logger POST /api/v1/guardrails/ - 200 [52.47ms] +2026-09-04 17:11:32,703 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.48ms] +2026-09-04 17:11:33,397 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-04 17:11:33,398 INFO presidio-analyzer registry not provided, creating default. +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-04 17:11:33,405 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-04 17:11:33,406 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-04 17:11:33,407 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-04 17:11:33,407 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-04 17:11:33,417 INFO guardrails.execution request=dbc7c623-120c-4524-8c90-9c1813aabe2d starting guardrails execution (validators=['pii_remover']) input='Contact me at john.doe@example.com or call 9876543210' +2026-09-04 17:11:33,881 INFO guardrails.execution request=dbc7c623-120c-4524-8c90-9c1813aabe2d guardrails execution finished (passed=True) output='Contact me at or call ' +2026-09-04 17:11:33,890 INFO guardrails.execution request=dbc7c623-120c-4524-8c90-9c1813aabe2d step=1/1 validator=PIIRemover stage=input outcome=Outcome.FAIL start=2026-09-04T17:11:33.418631 end=2026-09-04T17:11:33.880758 duration_ms=462 input='Contact me at john.doe@example.com or call 9876543210' output='Contact me at or call ' +2026-09-04 17:11:33,896 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1185.02ms] +2026-09-04 17:11:36,855 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [5.55ms] +2026-09-04 17:11:36,880 INFO guardrails.execution request=980ae224-0796-4eea-bf66-84634a76e3e8 starting guardrails execution (validators=['gender_assumption_bias']) input='The engineer forgot her badge at home.' +2026-09-04 17:11:36,882 INFO guardrails.execution request=980ae224-0796-4eea-bf66-84634a76e3e8 guardrails execution finished (passed=True) output='The engineer forgot them badge at home.' +2026-09-04 17:11:36,885 INFO guardrails.execution request=980ae224-0796-4eea-bf66-84634a76e3e8 step=1/1 validator=GenderAssumptionBias stage=output outcome=Outcome.FAIL start=2026-09-04T17:11:36.880735 end=2026-09-04T17:11:36.881673 duration_ms=0 input='The engineer forgot her badge at home.' output='The engineer forgot them badge at home.' +2026-09-04 17:11:36,890 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.35ms] +2026-09-04 17:11:41,302 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.53ms] +2026-09-04 17:11:41,330 INFO guardrails.execution request=65935177-8c91-4d53-98f4-acbe9cdb60f4 starting guardrails execution (validators=['uli_slur_match']) input='This is a perfectly friendly and clean sentence.' +2026-09-04 17:11:41,335 INFO guardrails.execution request=65935177-8c91-4d53-98f4-acbe9cdb60f4 guardrails execution finished (passed=True) output='This is a perfectly friendly and clean sentence.' +2026-09-04 17:11:41,340 INFO guardrails.execution request=65935177-8c91-4d53-98f4-acbe9cdb60f4 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-04T17:11:41.331579 end=2026-09-04T17:11:41.334299 duration_ms=2 input='This is a perfectly friendly and clean sentence.' output='This is a perfectly friendly and clean sentence.' +2026-09-04 17:11:41,344 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.63ms] +2026-09-04 17:11:45,768 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.11ms] +2026-09-04 17:11:49,096 INFO guardrails.execution request=9c0fa404-0429-4059-a5b6-7f235a902165 starting guardrails execution (validators=['nsfw_text']) input='The weather today is sunny and pleasant.' +2026-09-04 17:11:49,791 INFO guardrails.execution request=9c0fa404-0429-4059-a5b6-7f235a902165 guardrails execution finished (passed=True) output='The weather today is sunny and pleasant.' +2026-09-04 17:11:49,800 INFO guardrails.execution request=9c0fa404-0429-4059-a5b6-7f235a902165 step=1/1 validator=NSFWText stage=output outcome=Outcome.PASS start=2026-09-04T17:11:49.097265 end=2026-09-04T17:11:49.790503 duration_ms=693 input='The weather today is sunny and pleasant.' output='The weather today is sunny and pleasant.' +2026-09-04 17:11:49,956 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4182.78ms] +2026-09-04 17:11:50,250 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.37ms] +2026-09-04 17:11:50,269 INFO guardrails.execution request=bacb4a9b-ae91-4e6e-a447-077e4d96cadd starting guardrails execution (validators=['profanity_free']) input='this is a clean test sentence' +2026-09-04 17:11:50,272 INFO guardrails.execution request=bacb4a9b-ae91-4e6e-a447-077e4d96cadd guardrails execution finished (passed=True) output='this is a clean test sentence' +2026-09-04 17:11:50,278 INFO guardrails.execution request=bacb4a9b-ae91-4e6e-a447-077e4d96cadd step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-04T17:11:50.270432 end=2026-09-04T17:11:50.271991 duration_ms=1 input='this is a clean test sentence' output='this is a clean test sentence' +2026-09-04 17:11:50,283 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.13ms] +2026-09-04 17:11:54,676 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.41ms] +2026-09-04 17:11:54,694 INFO guardrails.execution request=1f3c29ab-16dd-4016-864f-8a5af766670e starting guardrails execution (validators=['llm_critic']) input='I really appreciate your help, thank you so much!' +2026-09-04 17:11:54,700 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:11:56,136 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:11:56,140 INFO guardrails.execution request=1f3c29ab-16dd-4016-864f-8a5af766670e guardrails execution finished (passed=True) output='' +2026-09-04 17:11:56,148 INFO guardrails.execution request=1f3c29ab-16dd-4016-864f-8a5af766670e step=1/1 validator=LLMCritic stage=output outcome=Outcome.FAIL start=2026-09-04T17:11:54.694647 end=2026-09-04T17:11:56.139034 duration_ms=1444 input='I really appreciate your help, thank you so much!' output='' +2026-09-04 17:11:56,156 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1474.36ms] +2026-09-04 17:11:59,134 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.95ms] +2026-09-04 17:11:59,157 INFO guardrails.execution request=adddde72-2c7d-43ef-a1a8-70c560b9c1e4 starting guardrails execution (validators=['topic_relevance']) input='What is the interest rate on a savings account?' +2026-09-04 17:11:59,158 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:12:00,282 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:12:00,285 INFO guardrails.execution request=adddde72-2c7d-43ef-a1a8-70c560b9c1e4 guardrails execution finished (passed=True) output='What is the interest rate on a savings account?' +2026-09-04 17:12:00,292 INFO guardrails.execution request=adddde72-2c7d-43ef-a1a8-70c560b9c1e4 step=1/1 validator=TopicRelevance stage=input outcome=Outcome.PASS start=2026-09-04T17:11:59.158250 end=2026-09-04T17:12:00.283476 duration_ms=1125 input='What is the interest rate on a savings account?' output='What is the interest rate on a savings account?' +2026-09-04 17:12:00,298 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1156.92ms] +2026-09-04 17:12:03,577 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.75ms] +2026-09-04 17:12:03,599 INFO guardrails.execution request=9524f3f1-3fa3-4d5e-8421-b10166526dec starting guardrails execution (validators=['topic_relevance_llm']) input="What's the best recipe for chocolate cake?" +2026-09-04 17:12:03,600 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:12:05,135 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:12:05,139 INFO guardrails.execution request=9524f3f1-3fa3-4d5e-8421-b10166526dec guardrails execution finished (passed=True) output='' +2026-09-04 17:12:05,149 INFO guardrails.execution request=9524f3f1-3fa3-4d5e-8421-b10166526dec step=1/1 validator=TopicRelevanceLLM stage=input outcome=Outcome.FAIL start=2026-09-04T17:12:03.599926 end=2026-09-04T17:12:05.137270 duration_ms=1537 input="What's the best recipe for chocolate cake?" output='' +2026-09-04 17:12:05,158 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1573.98ms] +2026-09-04 17:13:17,718 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [10.63ms] +2026-09-04 17:13:17,748 INFO guardrails.execution request=fb7fe795-2b95-479b-b94c-9e7248f807f4 starting guardrails execution (validators=['ban_list', 'pii_remover', 'topic_relevance']) input='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:17,761 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:13:19,236 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:13:19,241 INFO guardrails.execution request=fb7fe795-2b95-479b-b94c-9e7248f807f4 guardrails execution finished (passed=True) output='My email is , what is the interest rate on a savings account?' +2026-09-04 17:13:19,252 INFO guardrails.execution request=fb7fe795-2b95-479b-b94c-9e7248f807f4 step=1/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-04T17:13:17.749923 end=2026-09-04T17:13:17.750116 duration_ms=0 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:19,257 INFO guardrails.execution request=fb7fe795-2b95-479b-b94c-9e7248f807f4 step=2/3 validator=PIIRemover stage=input outcome=Outcome.FAIL start=2026-09-04T17:13:17.750128 end=2026-09-04T17:13:17.759973 duration_ms=9 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is , what is the interest rate on a savings account?' +2026-09-04 17:13:19,264 INFO guardrails.execution request=fb7fe795-2b95-479b-b94c-9e7248f807f4 step=3/3 validator=TopicRelevance stage=input outcome=Outcome.PASS start=2026-09-04T17:13:17.759984 end=2026-09-04T17:13:19.239195 duration_ms=1479 input='My email is , what is the interest rate on a savings account?' output='My email is , what is the interest rate on a savings account?' +2026-09-04 17:13:19,272 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1546.19ms] +2026-09-04 17:13:22,594 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.65ms] +2026-09-04 17:13:25,806 INFO guardrails.execution request=50c0bd40-eaeb-4c29-b5da-0d889243b37c starting guardrails execution (validators=['gender_assumption_bias', 'nsfw_text']) input='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:25,948 INFO guardrails.execution request=50c0bd40-eaeb-4c29-b5da-0d889243b37c guardrails execution finished (passed=True) output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:25,953 INFO guardrails.execution request=50c0bd40-eaeb-4c29-b5da-0d889243b37c step=1/2 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-04T17:13:25.806989 end=2026-09-04T17:13:25.807684 duration_ms=0 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:25,957 INFO guardrails.execution request=50c0bd40-eaeb-4c29-b5da-0d889243b37c step=2/2 validator=NSFWText stage=output outcome=Outcome.PASS start=2026-09-04T17:13:25.807689 end=2026-09-04T17:13:25.947824 duration_ms=140 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-04 17:13:26,099 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3498.57ms] +2026-09-04 17:13:42,596 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [6.19ms] +2026-09-04 17:13:42,619 INFO guardrails.execution request=79666641-e270-4e36-903a-345893fde02e starting guardrails execution (validators=['ban_list', 'topic_relevance']) input='This is my forbiddenword question: what is the best recipe for chocolate cake?' +2026-09-04 17:13:42,621 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:13:43,472 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:13:43,477 INFO guardrails.execution request=79666641-e270-4e36-903a-345893fde02e guardrails execution finished (passed=True) output='' +2026-09-04 17:13:43,485 INFO guardrails.execution request=79666641-e270-4e36-903a-345893fde02e step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-04T17:13:42.620889 end=2026-09-04T17:13:42.621031 duration_ms=0 input='This is my forbiddenword question: what is the best recipe for chocolate cake?' output='This is my f question: what is the best recipe for chocolate cake?' +2026-09-04 17:13:43,488 INFO guardrails.execution request=79666641-e270-4e36-903a-345893fde02e step=2/2 validator=TopicRelevance stage=input outcome=Outcome.FAIL start=2026-09-04T17:13:42.621038 end=2026-09-04T17:13:43.474720 duration_ms=853 input='This is my f question: what is the best recipe for chocolate cake?' output='' +2026-09-04 17:13:43,494 INFO http_request_logger POST /api/v1/guardrails/ - 200 [892.53ms] +2026-09-04 17:14:18,609 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [7.78ms] +2026-09-04 17:14:18,634 INFO guardrails.execution request=dc626acb-819d-4ded-ac4a-43b60662f608 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The capital of France is Paris.' +2026-09-04 17:14:18,636 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-04 17:14:20,490 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-04 17:14:20,493 INFO guardrails.execution request=dc626acb-819d-4ded-ac4a-43b60662f608 guardrails execution finished (passed=True) output='The capital of France is Paris.' +2026-09-04 17:14:20,500 INFO guardrails.execution request=dc626acb-819d-4ded-ac4a-43b60662f608 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-04T17:14:18.635832 end=2026-09-04T17:14:20.491383 duration_ms=1855 input='The capital of France is Paris.' output='The capital of France is Paris.' +2026-09-04 17:14:20,510 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1894.14ms] +2026-09-05 20:29:40,195 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c2fa6d9e-cc6a-4372-9560-1d56539ce40e - 422 [49.21ms] +2026-09-05 20:29:48,630 INFO app.crud.validator_config deleted validator config id=c2fa6d9e-cc6a-4372-9560-1d56539ce40e +2026-09-05 20:29:48,631 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/c2fa6d9e-cc6a-4372-9560-1d56539ce40e - 200 [50.17ms] +2026-09-05 20:29:48,846 INFO app.crud.validator_config created validator config id=0c9a0f98-7939-417d-bfca-303982131f04 org=1 project=1 type=ValidatorType.LLMCritic +2026-09-05 20:29:48,848 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [14.82ms] +2026-09-05 20:29:55,218 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.82ms] +2026-09-05 20:29:55,253 INFO guardrails.execution request=404406db-c30f-4bf3-8908-8605d999788a starting guardrails execution (validators=['llm_critic']) input='I really appreciate your help, thank you so much!' +2026-09-05 20:29:55,271 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:29:57,617 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:29:57,621 INFO guardrails.execution request=404406db-c30f-4bf3-8908-8605d999788a guardrails execution finished (passed=True) output='I really appreciate your help, thank you so much!' +2026-09-05 20:29:57,630 INFO guardrails.execution request=404406db-c30f-4bf3-8908-8605d999788a step=1/1 validator=LLMCritic stage=output outcome=Outcome.PASS start=2026-09-05T20:29:55.260676 end=2026-09-05T20:29:57.619513 duration_ms=2358 input='I really appreciate your help, thank you so much!' output='I really appreciate your help, thank you so much!' +2026-09-05 20:29:57,641 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2414.70ms] +2026-09-05 20:34:27,206 INFO http_request_logger GET /api/v1/utils/health-check/ - 200 [3.30ms] +2026-09-05 20:34:36,921 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [9.29ms] +2026-09-05 20:34:36,969 INFO guardrails.execution request=6911c76f-d3e8-4d18-823b-4e695af3d717 starting guardrails execution (validators=['ban_list', 'topic_relevance']) input='This is my forbiddenword question: what is the best recipe for chocolate cake?' +2026-09-05 20:34:36,975 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:34:38,734 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:34:38,739 INFO guardrails.execution request=6911c76f-d3e8-4d18-823b-4e695af3d717 guardrails execution finished (passed=True) output='' +2026-09-05 20:34:38,748 INFO guardrails.execution request=6911c76f-d3e8-4d18-823b-4e695af3d717 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:34:36.970573 end=2026-09-05T20:34:36.972284 duration_ms=1 input='This is my forbiddenword question: what is the best recipe for chocolate cake?' output='This is my f question: what is the best recipe for chocolate cake?' +2026-09-05 20:34:38,753 INFO guardrails.execution request=6911c76f-d3e8-4d18-823b-4e695af3d717 step=2/2 validator=TopicRelevance stage=input outcome=Outcome.FAIL start=2026-09-05T20:34:36.972302 end=2026-09-05T20:34:38.736706 duration_ms=1764 input='This is my f question: what is the best recipe for chocolate cake?' output='' +2026-09-05 20:34:38,759 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1829.49ms] +2026-09-05 20:34:59,310 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [13.97ms] +2026-09-05 20:34:59,349 INFO guardrails.execution request=29b243cb-e7b6-4c10-992a-a9f52e9a4f6f starting guardrails execution (validators=['ban_list', 'pii_remover', 'topic_relevance']) input='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:34:59,442 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:35:00,437 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:35:00,441 INFO guardrails.execution request=29b243cb-e7b6-4c10-992a-a9f52e9a4f6f guardrails execution finished (passed=True) output='My email is , what is the interest rate on a savings account?' +2026-09-05 20:35:00,444 INFO guardrails.execution request=29b243cb-e7b6-4c10-992a-a9f52e9a4f6f step=1/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:34:59.351327 end=2026-09-05T20:34:59.351469 duration_ms=0 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:35:00,447 INFO guardrails.execution request=29b243cb-e7b6-4c10-992a-a9f52e9a4f6f step=2/3 validator=PIIRemover stage=input outcome=Outcome.FAIL start=2026-09-05T20:34:59.351481 end=2026-09-05T20:34:59.440385 duration_ms=88 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is , what is the interest rate on a savings account?' +2026-09-05 20:35:00,450 INFO guardrails.execution request=29b243cb-e7b6-4c10-992a-a9f52e9a4f6f step=3/3 validator=TopicRelevance stage=input outcome=Outcome.PASS start=2026-09-05T20:34:59.440397 end=2026-09-05T20:35:00.439502 duration_ms=999 input='My email is , what is the interest rate on a savings account?' output='My email is , what is the interest rate on a savings account?' +2026-09-05 20:35:00,454 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1135.61ms] +2026-09-05 20:35:04,006 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [5.19ms] +2026-09-05 20:35:04,446 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:35:11,207 INFO guardrails.execution request=2ac6b6d6-a304-4108-bf60-98cc7dddbb82 starting guardrails execution (validators=['gender_assumption_bias', 'nsfw_text']) input='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:35:11,359 INFO guardrails.execution request=2ac6b6d6-a304-4108-bf60-98cc7dddbb82 guardrails execution finished (passed=True) output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:35:11,373 INFO guardrails.execution request=2ac6b6d6-a304-4108-bf60-98cc7dddbb82 step=1/2 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-05T20:35:11.209526 end=2026-09-05T20:35:11.209968 duration_ms=0 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:35:11,375 INFO guardrails.execution request=2ac6b6d6-a304-4108-bf60-98cc7dddbb82 step=2/2 validator=NSFWText stage=output outcome=Outcome.PASS start=2026-09-05T20:35:11.209981 end=2026-09-05T20:35:11.358393 duration_ms=148 input='My email is jane@example.com, what is the interest rate on a savings account?' output='My email is jane@example.com, what is the interest rate on a savings account?' +2026-09-05 20:35:11,547 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7533.46ms] +2026-09-05 20:43:21,026 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [15.39ms] +2026-09-05 20:43:21,231 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [7.65ms] +2026-09-05 20:48:08,953 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:48:09,838 INFO guardrails.execution request=e555e243-f904-42c9-9b3d-51a39a48f281 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,840 INFO guardrails.execution request=e555e243-f904-42c9-9b3d-51a39a48f281 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,842 INFO guardrails.execution request=e555e243-f904-42c9-9b3d-51a39a48f281 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:09.838955 end=2026-09-05T20:48:09.839053 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,847 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.54ms] +2026-09-05 20:48:09,865 INFO guardrails.execution request=e5bd49de-75db-4302-a4bf-3c1e4d20b2ac starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:48:09,865 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e5bd49de-75db-4302-a4bf-3c1e4d20b2ac: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:48:09,871 INFO guardrails.execution request=e5bd49de-75db-4302-a4bf-3c1e4d20b2ac step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:48:09.865619 end=2026-09-05T20:48:09.865700 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:48:09,873 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.17ms] +2026-09-05 20:48:09,888 INFO guardrails.execution request=6dde7391-6c52-4044-9b2f-e2cde107c12a starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-05 20:48:09,889 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6dde7391-6c52-4044-9b2f-e2cde107c12a: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-05 20:48:09,891 INFO guardrails.execution request=6dde7391-6c52-4044-9b2f-e2cde107c12a step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:48:09.888984 end=2026-09-05T20:48:09.889035 duration_ms=0 input='' output=None +2026-09-05 20:48:09,893 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.27ms] +2026-09-05 20:48:09,913 INFO guardrails.execution request=f85e9407-dda3-41f2-bd0d-64d54f91a071 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,915 INFO guardrails.execution request=f85e9407-dda3-41f2-bd0d-64d54f91a071 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,917 INFO guardrails.execution request=f85e9407-dda3-41f2-bd0d-64d54f91a071 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:09.914192 end=2026-09-05T20:48:09.914278 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:09,920 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.63ms] +2026-09-05 20:48:09,934 INFO guardrails.execution request=b55742fd-818c-4da0-ba37-42c7b92020c4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:48:09,935 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b55742fd-818c-4da0-ba37-42c7b92020c4: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:48:09,937 INFO guardrails.execution request=b55742fd-818c-4da0-ba37-42c7b92020c4 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:48:09.934860 end=2026-09-05T20:48:09.934928 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:48:09,939 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.64ms] +2026-09-05 20:48:09,955 INFO guardrails.execution request=c54206dc-ff8c-44a6-a070-97e9f596d416 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:48:09,956 INFO guardrails.execution request=c54206dc-ff8c-44a6-a070-97e9f596d416 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:48:09,958 INFO guardrails.execution request=c54206dc-ff8c-44a6-a070-97e9f596d416 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:09.955392 end=2026-09-05T20:48:09.955454 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:48:09,959 INFO guardrails.execution request=c54206dc-ff8c-44a6-a070-97e9f596d416 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:09.955458 end=2026-09-05T20:48:09.955553 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:48:09,961 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.87ms] +2026-09-05 20:48:09,975 INFO guardrails.execution request=c0f27f4a-498a-4856-b427-29e453dc2615 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:48:09,979 INFO guardrails.execution request=c0f27f4a-498a-4856-b427-29e453dc2615 guardrails execution finished (passed=True) output='' +2026-09-05 20:48:09,981 INFO guardrails.execution request=c0f27f4a-498a-4856-b427-29e453dc2615 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:09.975481 end=2026-09-05T20:48:09.975556 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:48:09,982 INFO guardrails.execution request=c0f27f4a-498a-4856-b427-29e453dc2615 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:09.975561 end=2026-09-05T20:48:09.979008 duration_ms=3 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-05 20:48:09,985 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.52ms] +2026-09-05 20:48:10,005 INFO guardrails.execution request=20dfe585-3d29-414b-b785-5b91c8de1724 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:48:10,009 INFO guardrails.execution request=20dfe585-3d29-414b-b785-5b91c8de1724 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:48:10,011 INFO guardrails.execution request=20dfe585-3d29-414b-b785-5b91c8de1724 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:10.005866 end=2026-09-05T20:48:10.005933 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:48:10,012 INFO guardrails.execution request=20dfe585-3d29-414b-b785-5b91c8de1724 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.005938 end=2026-09-05T20:48:10.008293 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:48:10,015 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.43ms] +2026-09-05 20:48:10,031 INFO guardrails.execution request=4f80ed13-b2ef-49ae-b930-3d0a39d72e03 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:48:10,033 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4f80ed13-b2ef-49ae-b930-3d0a39d72e03: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-05 20:48:10,036 INFO guardrails.execution request=4f80ed13-b2ef-49ae-b930-3d0a39d72e03 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:10.031843 end=2026-09-05T20:48:10.031913 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:48:10,038 INFO guardrails.execution request=4f80ed13-b2ef-49ae-b930-3d0a39d72e03 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.031917 end=2026-09-05T20:48:10.032933 duration_ms=1 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-05 20:48:10,040 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.07ms] +2026-09-05 20:48:10,057 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,061 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,063 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:10.058509 end=2026-09-05T20:48:10.058578 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,065 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.058582 end=2026-09-05T20:48:10.058652 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,066 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.058656 end=2026-09-05T20:48:10.059608 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,067 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.059614 end=2026-09-05T20:48:10.060194 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,069 INFO guardrails.execution request=59045a7a-1119-4e95-98e2-d96fa7e87d83 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.060199 end=2026-09-05T20:48:10.060834 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:48:10,071 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.24ms] +2026-09-05 20:48:10,091 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:48:10,095 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:48:10,098 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:48:10.092337 end=2026-09-05T20:48:10.092407 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:48:10,101 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.092411 end=2026-09-05T20:48:10.093398 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:48:10,103 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.093403 end=2026-09-05T20:48:10.093962 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:48:10,105 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.093968 end=2026-09-05T20:48:10.094029 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:48:10,107 INFO guardrails.execution request=be30174b-e9c7-43d0-91f5-d63f3520cb4e step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.094032 end=2026-09-05T20:48:10.094680 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:48:10,110 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.64ms] +2026-09-05 20:48:10,137 INFO app.crud.ban_list created ban list id=6eeaaf67-e9bc-46d9-8703-41c1ddf7d6ad org=1 project=1 +2026-09-05 20:48:10,138 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [6.09ms] +2026-09-05 20:48:10,143 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.93ms] +2026-09-05 20:48:10,148 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.78ms] +2026-09-05 20:48:10,153 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.85ms] +2026-09-05 20:48:10,157 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.82ms] +2026-09-05 20:48:10,162 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.78ms] +2026-09-05 20:48:10,174 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.58ms] +2026-09-05 20:48:10,185 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.10ms] +2026-09-05 20:48:10,191 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.30ms] +2026-09-05 20:48:10,199 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.51ms] +2026-09-05 20:48:10,209 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.13ms] +2026-09-05 20:48:10,211 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.90ms] +2026-09-05 20:48:10,217 INFO app.crud.ban_list created ban list id=9448e6cf-6610-4f5a-ac63-f1fdfd60a35e org=1 project=1 +2026-09-05 20:48:10,218 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.05ms] +2026-09-05 20:48:10,218 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9448e6cf-6610-4f5a-ac63-f1fdfd60a35e/ - 307 [0.09ms] +2026-09-05 20:48:10,220 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9448e6cf-6610-4f5a-ac63-f1fdfd60a35e - 200 [1.85ms] +2026-09-05 20:48:10,228 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.87ms] +2026-09-05 20:48:10,229 INFO http_request_logger GET /api/v1/guardrails/ban_lists/6e20c12e-6c5c-4afe-9268-03680ebb61b1/ - 307 [0.08ms] +2026-09-05 20:48:10,231 INFO http_request_logger GET /api/v1/guardrails/ban_lists/6e20c12e-6c5c-4afe-9268-03680ebb61b1 - 200 [1.51ms] +2026-09-05 20:48:10,234 INFO http_request_logger GET /api/v1/guardrails/ban_lists/310fcee5-974d-4a54-933f-90ac78af596f/ - 307 [0.08ms] +2026-09-05 20:48:10,240 INFO http_request_logger GET /api/v1/guardrails/ban_lists/310fcee5-974d-4a54-933f-90ac78af596f - 404 [5.69ms] +2026-09-05 20:48:10,257 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.89ms] +2026-09-05 20:48:10,258 INFO http_request_logger GET /api/v1/guardrails/ban_lists/38473694-cd77-426a-809f-8ed26e22b790/ - 307 [0.09ms] +2026-09-05 20:48:10,262 INFO http_request_logger GET /api/v1/guardrails/ban_lists/38473694-cd77-426a-809f-8ed26e22b790 - 403 [3.58ms] +2026-09-05 20:48:10,272 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.50ms] +2026-09-05 20:48:10,273 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/79782ebb-95f3-4c3c-8ea3-3ad4f00cf07f/ - 307 [0.10ms] +2026-09-05 20:48:10,277 INFO app.crud.ban_list updated ban list id=79782ebb-95f3-4c3c-8ea3-3ad4f00cf07f +2026-09-05 20:48:10,277 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/79782ebb-95f3-4c3c-8ea3-3ad4f00cf07f - 200 [4.28ms] +2026-09-05 20:48:10,286 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.16ms] +2026-09-05 20:48:10,287 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/aae21f76-116f-42c2-80e8-cbaf173fe375/ - 307 [0.08ms] +2026-09-05 20:48:10,290 INFO app.crud.ban_list updated ban list id=aae21f76-116f-42c2-80e8-cbaf173fe375 +2026-09-05 20:48:10,291 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/aae21f76-116f-42c2-80e8-cbaf173fe375 - 200 [4.23ms] +2026-09-05 20:48:10,296 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/54b3f32e-3d38-4cf0-aabc-510fb03ea978/ - 307 [0.08ms] +2026-09-05 20:48:10,298 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/54b3f32e-3d38-4cf0-aabc-510fb03ea978 - 404 [2.05ms] +2026-09-05 20:48:10,306 INFO app.crud.ban_list created ban list id=8474bd61-3795-4f19-ac81-7ec305467297 org=1 project=1 +2026-09-05 20:48:10,306 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.17ms] +2026-09-05 20:48:10,307 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/8474bd61-3795-4f19-ac81-7ec305467297/ - 307 [0.08ms] +2026-09-05 20:48:10,309 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/8474bd61-3795-4f19-ac81-7ec305467297 - 403 [1.79ms] +2026-09-05 20:48:10,318 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.07ms] +2026-09-05 20:48:10,318 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/81eabd83-cf4a-48ce-a8fa-1073633c879a/ - 307 [0.08ms] +2026-09-05 20:48:10,321 INFO app.crud.ban_list deleted ban list id=81eabd83-cf4a-48ce-a8fa-1073633c879a +2026-09-05 20:48:10,321 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/81eabd83-cf4a-48ce-a8fa-1073633c879a - 200 [2.70ms] +2026-09-05 20:48:10,326 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/fa619f48-f842-4085-a6a6-8bc74e104ac1/ - 307 [0.08ms] +2026-09-05 20:48:10,328 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/fa619f48-f842-4085-a6a6-8bc74e104ac1 - 404 [1.75ms] +2026-09-05 20:48:10,337 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.16ms] +2026-09-05 20:48:10,337 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8805a4d0-af49-44ed-b590-a4b019f62222/ - 307 [0.09ms] +2026-09-05 20:48:10,339 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8805a4d0-af49-44ed-b590-a4b019f62222 - 403 [1.68ms] +2026-09-05 20:48:10,347 INFO app.crud.ban_list created ban list id=8c866542-929a-4c1b-ac77-cd37e6b6e6b6 org=1 project=1 +2026-09-05 20:48:10,348 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.18ms] +2026-09-05 20:48:10,348 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8c866542-929a-4c1b-ac77-cd37e6b6e6b6/ - 307 [0.08ms] +2026-09-05 20:48:10,350 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8c866542-929a-4c1b-ac77-cd37e6b6e6b6 - 403 [1.68ms] +2026-09-05 20:48:10,443 INFO guardrails.execution request=d9bdc656-49a3-49a6-b997-de6cfbfda776 starting guardrails execution (validators=[]) input='hello world' +2026-09-05 20:48:10,443 INFO guardrails.execution request=d9bdc656-49a3-49a6-b997-de6cfbfda776 guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:48:10,445 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.82ms] +2026-09-05 20:48:10,454 INFO guardrails.execution request=015d18d3-3b4d-478a-90ab-43b839ac75ef starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-05 20:48:10,454 INFO guardrails.execution request=015d18d3-3b4d-478a-90ab-43b839ac75ef guardrails execution finished (passed=False) output=None +2026-09-05 20:48:10,456 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.47ms] +2026-09-05 20:48:10,463 INFO guardrails.execution request=18aec735-591b-4ada-928b-e087b4a11584 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-05 20:48:10,463 INFO guardrails.execution request=18aec735-591b-4ada-928b-e087b4a11584 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-05 20:48:10,465 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.59ms] +2026-09-05 20:48:10,471 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 53ee88fe-2456-4c7e-8115-996320dd6c35: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-05 20:48:10,474 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.12ms] +2026-09-05 20:48:10,487 INFO guardrails.execution request=75b2bd9e-3c3f-4b50-8750-95e12058f410 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-05 20:48:10,488 INFO guardrails.execution request=75b2bd9e-3c3f-4b50-8750-95e12058f410 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:48:10,490 INFO guardrails.execution request=75b2bd9e-3c3f-4b50-8750-95e12058f410 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.487674 end=2026-09-05T20:48:10.487774 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:48:10,493 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.18ms] +2026-09-05 20:48:10,507 INFO guardrails.execution request=07d0cbc7-4231-4e3c-8174-171fadb7fe99 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-05 20:48:10,508 INFO guardrails.execution request=07d0cbc7-4231-4e3c-8174-171fadb7fe99 guardrails execution finished (passed=True) output='this is clean' +2026-09-05 20:48:10,510 INFO guardrails.execution request=07d0cbc7-4231-4e3c-8174-171fadb7fe99 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.507623 end=2026-09-05T20:48:10.507685 duration_ms=0 input='this is clean' output='this is clean' +2026-09-05 20:48:10,513 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.31ms] +2026-09-05 20:48:10,533 INFO guardrails.execution request=5a5e9d21-5f8a-4c13-86af-92a2d5f3c10e starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:48:10,535 INFO guardrails.execution request=5a5e9d21-5f8a-4c13-86af-92a2d5f3c10e guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:48:10,538 INFO guardrails.execution request=5a5e9d21-5f8a-4c13-86af-92a2d5f3c10e step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.534141 end=2026-09-05T20:48:10.534519 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:48:10,541 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.75ms] +2026-09-05 20:48:10,556 INFO guardrails.execution request=357ea95e-5e17-45e6-8271-60e04a3cdbce starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-05 20:48:10,557 INFO guardrails.execution request=357ea95e-5e17-45e6-8271-60e04a3cdbce guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-05 20:48:10,560 INFO guardrails.execution request=357ea95e-5e17-45e6-8271-60e04a3cdbce step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.556641 end=2026-09-05T20:48:10.556924 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-05 20:48:10,564 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.11ms] +2026-09-05 20:48:10,580 INFO guardrails.execution request=9138ef2a-d753-4ee6-b560-4ad915b7b351 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-05 20:48:10,582 INFO guardrails.execution request=9138ef2a-d753-4ee6-b560-4ad915b7b351 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:48:10,585 INFO guardrails.execution request=9138ef2a-d753-4ee6-b560-4ad915b7b351 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.580783 end=2026-09-05T20:48:10.581298 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-05 20:48:10,588 INFO guardrails.execution request=9138ef2a-d753-4ee6-b560-4ad915b7b351 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.581304 end=2026-09-05T20:48:10.581391 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:48:10,592 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.73ms] +2026-09-05 20:48:10,598 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.94ms] +2026-09-05 20:48:10,612 INFO guardrails.execution request=cd29abcb-f8b1-4e3d-9863-689b1b4b729e starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:48:10,613 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log cd29abcb-f8b1-4e3d-9863-689b1b4b729e: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:48:10,616 INFO guardrails.execution request=cd29abcb-f8b1-4e3d-9863-689b1b4b729e step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.613267 end=2026-09-05T20:48:10.613534 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-05 20:48:10,618 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.67ms] +2026-09-05 20:48:10,634 INFO guardrails.execution request=2875a3d7-69c4-4dbf-8805-23584fd2ac9d starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:48:10,635 INFO guardrails.execution request=2875a3d7-69c4-4dbf-8805-23584fd2ac9d guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:48:10,638 INFO guardrails.execution request=2875a3d7-69c4-4dbf-8805-23584fd2ac9d step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.634619 end=2026-09-05T20:48:10.634889 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:48:10,642 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.02ms] +2026-09-05 20:48:10,657 INFO guardrails.execution request=23150867-4ca3-4f01-b93c-19674adb23e2 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-05 20:48:10,659 INFO guardrails.execution request=23150867-4ca3-4f01-b93c-19674adb23e2 guardrails execution finished (passed=True) output='' +2026-09-05 20:48:10,662 INFO guardrails.execution request=23150867-4ca3-4f01-b93c-19674adb23e2 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.658000 end=2026-09-05T20:48:10.659025 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-05 20:48:10,667 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.81ms] +2026-09-05 20:48:10,682 INFO guardrails.execution request=daa73356-6f43-4698-8ad7-03f29765cf18 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-05 20:48:10,684 INFO guardrails.execution request=daa73356-6f43-4698-8ad7-03f29765cf18 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-05 20:48:10,687 INFO guardrails.execution request=daa73356-6f43-4698-8ad7-03f29765cf18 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:48:10.682449 end=2026-09-05T20:48:10.683465 duration_ms=1 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-05 20:48:10,691 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.16ms] +2026-09-05 20:48:10,710 INFO guardrails.execution request=72b893df-68e1-4409-b5bd-87a9d026d2cc starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-05 20:48:10,711 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 72b893df-68e1-4409-b5bd-87a9d026d2cc: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-05 20:48:10,715 INFO guardrails.execution request=72b893df-68e1-4409-b5bd-87a9d026d2cc step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.710722 end=2026-09-05T20:48:10.711648 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-05 20:48:10,718 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.00ms] +2026-09-05 20:48:10,734 INFO guardrails.execution request=700b2b0b-abe3-455c-b157-c949edb9bc21 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-05 20:48:10,736 INFO guardrails.execution request=700b2b0b-abe3-455c-b157-c949edb9bc21 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:48:10,738 INFO guardrails.execution request=700b2b0b-abe3-455c-b157-c949edb9bc21 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:10.734748 end=2026-09-05T20:48:10.735702 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:48:10,742 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.54ms] +2026-09-05 20:48:10,752 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e32ddcfd-e240-4a0d-ab7b-9beef1e63f55: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:48:10,756 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.40ms] +2026-09-05 20:48:11,171 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:48:14,385 INFO guardrails.execution request=56d1bdf0-e599-4ba9-a0dd-7f993cf6dbb2 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:16,772 INFO guardrails.execution request=56d1bdf0-e599-4ba9-a0dd-7f993cf6dbb2 guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:16,783 INFO guardrails.execution request=56d1bdf0-e599-4ba9-a0dd-7f993cf6dbb2 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:48:14.388547 end=2026-09-05T20:48:16.771243 duration_ms=2382 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:16,945 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6184.37ms] +2026-09-05 20:48:19,347 INFO guardrails.execution request=1d7ee0db-dcab-4b3a-9ed1-c9545c2e35d6 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:19,445 INFO guardrails.execution request=1d7ee0db-dcab-4b3a-9ed1-c9545c2e35d6 guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:19,449 INFO guardrails.execution request=1d7ee0db-dcab-4b3a-9ed1-c9545c2e35d6 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:48:19.348515 end=2026-09-05T20:48:19.444517 duration_ms=96 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-05 20:48:19,621 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2631.54ms] +2026-09-05 20:48:22,535 INFO guardrails.execution request=6e8ddbbb-0268-4d5c-b7ce-ad51641eb5f6 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-05 20:48:22,839 INFO guardrails.execution request=6e8ddbbb-0268-4d5c-b7ce-ad51641eb5f6 guardrails execution finished (passed=True) output='Explicit sexual content goes here.' +2026-09-05 20:48:22,846 INFO guardrails.execution request=6e8ddbbb-0268-4d5c-b7ce-ad51641eb5f6 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:48:22.537526 end=2026-09-05T20:48:22.838417 duration_ms=300 input='Explicit sexual content goes here.' output='Explicit sexual content goes here.' +2026-09-05 20:48:23,001 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3369.38ms] +2026-09-05 20:48:23,028 INFO guardrails.execution request=6c9d0449-0a75-4ea8-a27f-006406d05620 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-05 20:48:23,032 INFO guardrails.execution request=6c9d0449-0a75-4ea8-a27f-006406d05620 guardrails execution finished (passed=True) output='' +2026-09-05 20:48:23,035 INFO guardrails.execution request=6c9d0449-0a75-4ea8-a27f-006406d05620 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:23.029628 end=2026-09-05T20:48:23.031179 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-05 20:48:23,038 INFO guardrails.execution request=6c9d0449-0a75-4ea8-a27f-006406d05620 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:48:23.031190 end=2026-09-05T20:48:23.031332 duration_ms=0 input='' output='' +2026-09-05 20:48:23,041 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.45ms] +2026-09-05 20:48:23,049 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 19845af0-29ff-420d-8ccc-2ff9b0fcb501: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:48:23,052 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.20ms] +2026-09-05 20:48:25,167 INFO guardrails.execution request=e940b36c-2705-41a5-ac66-44fb3c3bd60f starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-05 20:48:25,170 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e940b36c-2705-41a5-ac66-44fb3c3bd60f: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-05 20:48:25,173 INFO guardrails.execution request=e940b36c-2705-41a5-ac66-44fb3c3bd60f step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:25.169191 end=2026-09-05T20:48:25.170454 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-05 20:48:25,176 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2119.18ms] +2026-09-05 20:48:27,557 INFO guardrails.execution request=a223b9e7-f062-402f-8546-eb5ced8614eb starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-05 20:48:27,558 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a223b9e7-f062-402f-8546-eb5ced8614eb: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:48:27,563 INFO guardrails.execution request=a223b9e7-f062-402f-8546-eb5ced8614eb step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:27.558339 end=2026-09-05T20:48:27.558747 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-05 20:48:27,566 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2386.61ms] +2026-09-05 20:48:27,582 INFO guardrails.execution request=df5a180a-2884-40c5-ae3c-db5d18427464 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-05 20:48:27,584 INFO guardrails.execution request=df5a180a-2884-40c5-ae3c-db5d18427464 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-05 20:48:27,587 INFO guardrails.execution request=df5a180a-2884-40c5-ae3c-db5d18427464 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.582927 end=2026-09-05T20:48:27.583945 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:48:27,590 INFO guardrails.execution request=df5a180a-2884-40c5-ae3c-db5d18427464 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.583951 end=2026-09-05T20:48:27.584021 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:48:27,594 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.68ms] +2026-09-05 20:48:27,620 INFO guardrails.execution request=7bff6186-3957-4bf8-84af-6f15437f287d starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-05 20:48:27,623 INFO guardrails.execution request=7bff6186-3957-4bf8-84af-6f15437f287d guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-05 20:48:27,628 INFO guardrails.execution request=7bff6186-3957-4bf8-84af-6f15437f287d step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.620858 end=2026-09-05T20:48:27.621207 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:48:27,635 INFO guardrails.execution request=7bff6186-3957-4bf8-84af-6f15437f287d step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.621212 end=2026-09-05T20:48:27.622745 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:48:27,639 INFO guardrails.execution request=7bff6186-3957-4bf8-84af-6f15437f287d step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.622759 end=2026-09-05T20:48:27.622826 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:48:27,644 INFO http_request_logger POST /api/v1/guardrails/ - 200 [44.66ms] +2026-09-05 20:48:27,662 INFO guardrails.execution request=cb581020-8a5d-42fc-978c-9ae27e89d0f1 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-05 20:48:27,664 INFO guardrails.execution request=cb581020-8a5d-42fc-978c-9ae27e89d0f1 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:48:27,666 INFO guardrails.execution request=cb581020-8a5d-42fc-978c-9ae27e89d0f1 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:48:27.663079 end=2026-09-05T20:48:27.663199 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:48:27,667 INFO guardrails.execution request=cb581020-8a5d-42fc-978c-9ae27e89d0f1 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:48:27.663206 end=2026-09-05T20:48:27.663457 duration_ms=0 input='this contains b' output='this contains b' +2026-09-05 20:48:27,671 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.91ms] +2026-09-05 20:48:27,680 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 8ffa6ad2-bb12-4993-84c8-d29e59eed53b: 404: Ban list not found +2026-09-05 20:48:27,682 INFO http_request_logger POST /api/v1/guardrails/ - 404 [5.48ms] +2026-09-05 20:48:27,690 INFO guardrails.execution request=40e5456e-ec69-4c6b-b012-ead06c20c0c0 starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-05 20:48:27,690 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 40e5456e-ec69-4c6b-b012-ead06c20c0c0: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-05 20:48:27,692 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.04ms] +2026-09-05 20:48:27,699 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-05 20:48:27,699 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.70ms] +2026-09-05 20:48:27,708 INFO app.crud.llm_prompt_config created llm prompt config id=b3f1b40a-e837-4d60-90b0-784409a85c24 org=1 project=1 +2026-09-05 20:48:27,708 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.15ms] +2026-09-05 20:48:27,715 INFO app.crud.llm_prompt_config created llm prompt config id=54209207-c433-44b9-bb1a-fd9db2e77896 org=1 project=1 +2026-09-05 20:48:27,716 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.29ms] +2026-09-05 20:48:27,722 INFO app.crud.llm_prompt_config created llm prompt config id=2d81d53a-010b-4da2-9b36-4e7c6ba8477a org=1 project=1 +2026-09-05 20:48:27,722 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.95ms] +2026-09-05 20:48:27,726 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.89ms] +2026-09-05 20:48:27,731 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.90ms] +2026-09-05 20:48:27,735 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-05 20:48:27,739 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.83ms] +2026-09-05 20:48:27,745 INFO app.crud.llm_prompt_config created llm prompt config id=451adba6-c9cc-4414-a302-e5ae070b93c1 org=1 project=1 +2026-09-05 20:48:27,746 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.36ms] +2026-09-05 20:48:27,750 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.87ms] +2026-09-05 20:48:27,754 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.87ms] +2026-09-05 20:48:27,759 INFO app.crud.llm_prompt_config created llm prompt config id=ef08a745-a680-4913-9c18-9222dc144fa9 org=1 project=1 +2026-09-05 20:48:27,760 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.27ms] +2026-09-05 20:48:27,762 INFO app.crud.llm_prompt_config created llm prompt config id=504ef49b-1fb6-417c-90d6-92e3c93ec73c org=1 project=1 +2026-09-05 20:48:27,763 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.42ms] +2026-09-05 20:48:27,765 INFO app.crud.llm_prompt_config created llm prompt config id=a1fb9c3c-9f23-421d-8c32-a4d29352b9b9 org=1 project=1 +2026-09-05 20:48:27,766 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.50ms] +2026-09-05 20:48:27,768 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.17ms] +2026-09-05 20:48:27,775 INFO app.crud.llm_prompt_config created llm prompt config id=a3c7947c-71b3-4978-97aa-9a8b54496e43 org=1 project=1 +2026-09-05 20:48:27,775 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.30ms] +2026-09-05 20:48:27,778 INFO app.crud.llm_prompt_config created llm prompt config id=9063793a-ce02-41a2-992a-3be15ffa97a5 org=1 project=1 +2026-09-05 20:48:27,779 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.92ms] +2026-09-05 20:48:27,781 INFO app.crud.llm_prompt_config created llm prompt config id=fbc580f7-b679-415c-8e69-f3bae2a839d6 org=1 project=1 +2026-09-05 20:48:27,782 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.77ms] +2026-09-05 20:48:27,785 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.36ms] +2026-09-05 20:48:27,790 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.82ms] +2026-09-05 20:48:27,796 INFO app.crud.llm_prompt_config created llm prompt config id=75e4593c-5699-40fe-8a09-434a64151f43 org=1 project=1 +2026-09-05 20:48:27,796 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.01ms] +2026-09-05 20:48:27,799 INFO app.crud.llm_prompt_config created llm prompt config id=926093d0-9f2a-417e-bba3-fe4851478c2e org=1 project=1 +2026-09-05 20:48:27,799 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.61ms] +2026-09-05 20:48:27,802 INFO app.crud.llm_prompt_config created llm prompt config id=509ce70a-2a20-46ce-81e6-72df17db0cfb org=1 project=1 +2026-09-05 20:48:27,802 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.67ms] +2026-09-05 20:48:27,805 INFO app.crud.llm_prompt_config created llm prompt config id=f38c8b54-b861-4ca0-ad69-c475e349c1de org=1 project=1 +2026-09-05 20:48:27,806 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.76ms] +2026-09-05 20:48:27,808 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.02ms] +2026-09-05 20:48:27,814 INFO app.crud.llm_prompt_config created llm prompt config id=54325139-1342-4054-8d87-e331b443201e org=1 project=1 +2026-09-05 20:48:27,815 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.08ms] +2026-09-05 20:48:27,817 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.81ms] +2026-09-05 20:48:27,823 INFO app.crud.llm_prompt_config created llm prompt config id=0c4bdf68-9c2a-493d-b913-accc25f908e5 org=1 project=1 +2026-09-05 20:48:27,824 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.12ms] +2026-09-05 20:48:27,826 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/0c4bdf68-9c2a-493d-b913-accc25f908e5 - 200 [1.70ms] +2026-09-05 20:48:27,831 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/72c4df9c-db22-4b95-b8f3-94fefa3a155f - 404 [1.71ms] +2026-09-05 20:48:27,837 INFO app.crud.llm_prompt_config created llm prompt config id=e0d9b4ab-eaa7-4138-b805-baa6e80f0ac3 org=1 project=1 +2026-09-05 20:48:27,837 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.92ms] +2026-09-05 20:48:27,839 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/e0d9b4ab-eaa7-4138-b805-baa6e80f0ac3 - 404 [1.53ms] +2026-09-05 20:48:27,845 INFO app.crud.llm_prompt_config created llm prompt config id=f80700a6-c406-42ee-916c-a616066ca93a org=1 project=1 +2026-09-05 20:48:27,846 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-05 20:48:27,850 INFO app.crud.llm_prompt_config updated llm prompt config id=f80700a6-c406-42ee-916c-a616066ca93a +2026-09-05 20:48:27,850 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/f80700a6-c406-42ee-916c-a616066ca93a - 200 [3.64ms] +2026-09-05 20:48:27,856 INFO app.crud.llm_prompt_config created llm prompt config id=239f425c-9b93-4d23-8428-fdb7b49523ef org=1 project=1 +2026-09-05 20:48:27,857 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.01ms] +2026-09-05 20:48:27,860 INFO app.crud.llm_prompt_config updated llm prompt config id=239f425c-9b93-4d23-8428-fdb7b49523ef +2026-09-05 20:48:27,860 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/239f425c-9b93-4d23-8428-fdb7b49523ef - 200 [3.18ms] +2026-09-05 20:48:27,866 INFO app.crud.llm_prompt_config created llm prompt config id=03e4f461-fe3c-4dd0-b0a2-2fe7117d4795 org=1 project=1 +2026-09-05 20:48:27,867 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.83ms] +2026-09-05 20:48:27,869 INFO app.crud.llm_prompt_config updated llm prompt config id=03e4f461-fe3c-4dd0-b0a2-2fe7117d4795 +2026-09-05 20:48:27,870 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/03e4f461-fe3c-4dd0-b0a2-2fe7117d4795 - 200 [2.90ms] +2026-09-05 20:48:27,872 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/03e4f461-fe3c-4dd0-b0a2-2fe7117d4795 - 200 [1.51ms] +2026-09-05 20:48:27,878 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9936a273-4463-4a31-92e8-ed52cd275c6e - 404 [2.56ms] +2026-09-05 20:48:27,884 INFO app.crud.llm_prompt_config created llm prompt config id=033e4895-ce20-470b-a9a5-c44f21a69eea org=1 project=1 +2026-09-05 20:48:27,885 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.44ms] +2026-09-05 20:48:27,887 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/033e4895-ce20-470b-a9a5-c44f21a69eea - 404 [1.58ms] +2026-09-05 20:48:27,893 INFO app.crud.llm_prompt_config created llm prompt config id=5879ccdd-7c7d-4a78-881b-220e7cf39b88 org=1 project=1 +2026-09-05 20:48:27,894 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.11ms] +2026-09-05 20:48:27,896 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5879ccdd-7c7d-4a78-881b-220e7cf39b88 - 422 [1.68ms] +2026-09-05 20:48:27,902 INFO app.crud.llm_prompt_config created llm prompt config id=1902f815-aa4f-412c-9d79-37667c69788a org=1 project=1 +2026-09-05 20:48:27,903 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.31ms] +2026-09-05 20:48:27,905 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1902f815-aa4f-412c-9d79-37667c69788a - 422 [1.71ms] +2026-09-05 20:48:27,911 INFO app.crud.llm_prompt_config created llm prompt config id=5a528461-af3a-47f6-bbf7-ec70f9cd5413 org=1 project=1 +2026-09-05 20:48:27,912 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.04ms] +2026-09-05 20:48:27,915 INFO app.crud.llm_prompt_config updated llm prompt config id=5a528461-af3a-47f6-bbf7-ec70f9cd5413 +2026-09-05 20:48:27,915 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5a528461-af3a-47f6-bbf7-ec70f9cd5413 - 200 [3.10ms] +2026-09-05 20:48:27,921 INFO app.crud.llm_prompt_config created llm prompt config id=dd87df49-c4eb-4459-b34b-94c3aab6cd1d org=1 project=1 +2026-09-05 20:48:27,922 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.20ms] +2026-09-05 20:48:27,925 INFO app.crud.llm_prompt_config updated llm prompt config id=dd87df49-c4eb-4459-b34b-94c3aab6cd1d +2026-09-05 20:48:27,926 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/dd87df49-c4eb-4459-b34b-94c3aab6cd1d - 200 [3.12ms] +2026-09-05 20:48:27,932 INFO app.crud.llm_prompt_config created llm prompt config id=866412b8-754f-41d1-9d85-0a3f062f803f org=1 project=1 +2026-09-05 20:48:27,932 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.94ms] +2026-09-05 20:48:27,935 INFO app.crud.llm_prompt_config deleted llm prompt config id=866412b8-754f-41d1-9d85-0a3f062f803f +2026-09-05 20:48:27,935 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/866412b8-754f-41d1-9d85-0a3f062f803f - 200 [2.42ms] +2026-09-05 20:48:27,941 INFO app.crud.llm_prompt_config created llm prompt config id=990f3675-062d-438d-b910-21ed7c015140 org=1 project=1 +2026-09-05 20:48:27,942 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.90ms] +2026-09-05 20:48:27,944 INFO app.crud.llm_prompt_config deleted llm prompt config id=990f3675-062d-438d-b910-21ed7c015140 +2026-09-05 20:48:27,944 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/990f3675-062d-438d-b910-21ed7c015140 - 200 [2.12ms] +2026-09-05 20:48:27,946 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.53ms] +2026-09-05 20:48:27,951 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/395bdd1e-d9e6-413a-8134-6428be9cd088 - 404 [1.91ms] +2026-09-05 20:48:27,958 INFO app.crud.llm_prompt_config created llm prompt config id=6af7afa5-614e-412d-983f-5034d7191d47 org=1 project=1 +2026-09-05 20:48:27,958 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.27ms] +2026-09-05 20:48:27,960 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/6af7afa5-614e-412d-983f-5034d7191d47 - 404 [1.46ms] +2026-09-05 20:48:28,049 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='hello' +2026-09-05 20:48:28,049 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:48:28,052 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:48:28,052 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,055 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8136c0b8-7c11-40d1-84e5-7fe1c04c538c: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-05 20:48:28,058 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:48:28,058 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,061 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:48:28,061 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,089 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-05 20:48:28,089 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,092 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='some input text' +2026-09-05 20:48:28,092 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,095 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-05 20:48:28,095 INFO guardrails.execution request=8136c0b8-7c11-40d1-84e5-7fe1c04c538c guardrails execution finished (passed=False) output=None +2026-09-05 20:48:28,097 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8136c0b8-7c11-40d1-84e5-7fe1c04c538c: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-05 20:48:28,100 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8136c0b8-7c11-40d1-84e5-7fe1c04c538c: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-05 20:48:28,117 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:48:28,121 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:48:28,123 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:48:28,137 INFO app.crud.validator_config created validator config id=003e59e2-af92-436a-a0d3-9caa71ea271a org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:48:28,137 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [6.73ms] +2026-09-05 20:48:28,143 INFO app.crud.validator_config created validator config id=a63f9297-aeff-4cd7-b077-4ff77a7547fc org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:48:28,144 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.95ms] +2026-09-05 20:48:28,146 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-05 20:48:28,146 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.95ms] +2026-09-05 20:48:28,150 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.91ms] +2026-09-05 20:48:28,156 INFO app.crud.validator_config created validator config id=755646dd-69d3-4c42-845e-99e173278910 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:48:28,157 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.45ms] +2026-09-05 20:48:28,160 INFO app.crud.validator_config created validator config id=d3cb4385-e3a7-4dfd-9363-e1ab5eb09cb8 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:48:28,160 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.02ms] +2026-09-05 20:48:28,163 INFO app.crud.validator_config created validator config id=4debfd6b-e6b1-43db-8b52-b0254f02b071 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:48:28,164 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.23ms] +2026-09-05 20:48:28,167 INFO app.crud.validator_config created validator config id=867b4f94-dea4-4bb6-b6b9-0efca520fb21 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:48:28,167 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.06ms] +2026-09-05 20:48:28,170 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.27ms] +2026-09-05 20:48:28,170 INFO http_request_logger GET /api/v1/guardrails/validators/configs/755646dd-69d3-4c42-845e-99e173278910/ - 307 [0.09ms] +2026-09-05 20:48:28,173 INFO http_request_logger GET /api/v1/guardrails/validators/configs/755646dd-69d3-4c42-845e-99e173278910 - 200 [1.98ms] +2026-09-05 20:48:28,173 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d3cb4385-e3a7-4dfd-9363-e1ab5eb09cb8/ - 307 [0.08ms] +2026-09-05 20:48:28,175 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d3cb4385-e3a7-4dfd-9363-e1ab5eb09cb8 - 200 [1.75ms] +2026-09-05 20:48:28,175 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4debfd6b-e6b1-43db-8b52-b0254f02b071/ - 307 [0.08ms] +2026-09-05 20:48:28,178 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4debfd6b-e6b1-43db-8b52-b0254f02b071 - 200 [2.03ms] +2026-09-05 20:48:28,178 INFO http_request_logger GET /api/v1/guardrails/validators/configs/867b4f94-dea4-4bb6-b6b9-0efca520fb21/ - 307 [0.08ms] +2026-09-05 20:48:28,180 INFO http_request_logger GET /api/v1/guardrails/validators/configs/867b4f94-dea4-4bb6-b6b9-0efca520fb21 - 200 [1.86ms] +2026-09-05 20:48:28,188 INFO app.crud.validator_config created validator config id=c04a494b-ef32-4e2f-8645-9cf7b3748b97 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:48:28,188 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.39ms] +2026-09-05 20:48:28,191 INFO app.crud.validator_config created validator config id=83bd2765-d72e-4615-bdc7-e7505a593fa2 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:48:28,191 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.60ms] +2026-09-05 20:48:28,193 INFO app.crud.validator_config created validator config id=bc650bd1-a33b-40d4-bea0-2da0b6af1168 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:48:28,194 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.43ms] +2026-09-05 20:48:28,194 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c04a494b-ef32-4e2f-8645-9cf7b3748b97/ - 307 [0.08ms] +2026-09-05 20:48:28,198 INFO app.crud.validator_config updated validator config id=c04a494b-ef32-4e2f-8645-9cf7b3748b97 +2026-09-05 20:48:28,199 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c04a494b-ef32-4e2f-8645-9cf7b3748b97 - 200 [4.04ms] +2026-09-05 20:48:28,199 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/83bd2765-d72e-4615-bdc7-e7505a593fa2/ - 307 [0.10ms] +2026-09-05 20:48:28,203 INFO app.crud.validator_config updated validator config id=83bd2765-d72e-4615-bdc7-e7505a593fa2 +2026-09-05 20:48:28,203 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/83bd2765-d72e-4615-bdc7-e7505a593fa2 - 200 [3.68ms] +2026-09-05 20:48:28,204 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/bc650bd1-a33b-40d4-bea0-2da0b6af1168/ - 307 [0.10ms] +2026-09-05 20:48:28,209 INFO app.crud.validator_config updated validator config id=bc650bd1-a33b-40d4-bea0-2da0b6af1168 +2026-09-05 20:48:28,209 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/bc650bd1-a33b-40d4-bea0-2da0b6af1168 - 200 [4.94ms] +2026-09-05 20:48:28,212 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.23ms] +2026-09-05 20:48:28,222 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.26ms] +2026-09-05 20:48:28,232 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.03ms] +2026-09-05 20:48:28,240 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.25ms] +2026-09-05 20:48:28,248 INFO app.crud.validator_config created validator config id=84fe4be6-3ec7-46bf-ada4-bb7eb594626b org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:48:28,248 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.44ms] +2026-09-05 20:48:28,252 INFO app.crud.validator_config created validator config id=aeb59d22-9e75-4c31-b5cb-1a795f80497d org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:48:28,252 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.18ms] +2026-09-05 20:48:28,255 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.17ms] +2026-09-05 20:48:28,262 INFO app.crud.validator_config created validator config id=6e41d9f4-d774-499b-aabe-d8a1c2d45fb1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:48:28,262 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.59ms] +2026-09-05 20:48:28,265 INFO app.crud.validator_config created validator config id=23d3d425-496b-44cc-85ef-5d90ca501fac org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:48:28,266 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.61ms] +2026-09-05 20:48:28,269 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.43ms] +2026-09-05 20:48:28,276 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [1.21ms] +2026-09-05 20:48:28,286 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.15ms] +2026-09-05 20:48:28,295 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.64ms] +2026-09-05 20:48:28,296 INFO http_request_logger GET /api/v1/guardrails/validators/configs/214da969-e6af-4959-a582-6385e8427004/ - 307 [0.11ms] +2026-09-05 20:48:28,298 INFO http_request_logger GET /api/v1/guardrails/validators/configs/214da969-e6af-4959-a582-6385e8427004 - 200 [1.90ms] +2026-09-05 20:48:28,313 INFO http_request_logger GET /api/v1/guardrails/validators/configs/2217617e-29d0-428a-9560-c75bc8aba38c/ - 307 [0.26ms] +2026-09-05 20:48:28,322 INFO http_request_logger GET /api/v1/guardrails/validators/configs/2217617e-29d0-428a-9560-c75bc8aba38c - 404 [7.11ms] +2026-09-05 20:48:28,328 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.11ms] +2026-09-05 20:48:28,332 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [2.81ms] +2026-09-05 20:48:28,343 INFO app.crud.validator_config created validator config id=67965166-a771-46d6-b0a6-46c5e7d5b19f org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:48:28,344 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.22ms] +2026-09-05 20:48:28,344 INFO http_request_logger GET /api/v1/guardrails/validators/configs/67965166-a771-46d6-b0a6-46c5e7d5b19f/ - 307 [0.09ms] +2026-09-05 20:48:28,347 INFO http_request_logger GET /api/v1/guardrails/validators/configs/67965166-a771-46d6-b0a6-46c5e7d5b19f - 404 [1.90ms] +2026-09-05 20:48:28,357 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.71ms] +2026-09-05 20:48:28,358 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/9e0aed26-5356-4993-b1a9-e931d4d98a00/ - 307 [0.16ms] +2026-09-05 20:48:28,363 INFO app.crud.validator_config updated validator config id=9e0aed26-5356-4993-b1a9-e931d4d98a00 +2026-09-05 20:48:28,363 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/9e0aed26-5356-4993-b1a9-e931d4d98a00 - 200 [5.04ms] +2026-09-05 20:48:28,375 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.11ms] +2026-09-05 20:48:28,375 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/18b46747-d827-496a-aa2d-3d0e156cff9f/ - 307 [0.11ms] +2026-09-05 20:48:28,381 INFO app.crud.validator_config updated validator config id=18b46747-d827-496a-aa2d-3d0e156cff9f +2026-09-05 20:48:28,382 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/18b46747-d827-496a-aa2d-3d0e156cff9f - 200 [6.42ms] +2026-09-05 20:48:28,389 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c943f3b6-ef50-4ea1-b776-b7324484b8cc/ - 307 [0.12ms] +2026-09-05 20:48:28,393 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c943f3b6-ef50-4ea1-b776-b7324484b8cc - 404 [2.99ms] +2026-09-05 20:48:28,402 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.25ms] +2026-09-05 20:48:28,403 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/9435f3ee-a765-4165-813f-878d14aceeb0/ - 307 [0.10ms] +2026-09-05 20:48:28,405 INFO app.crud.validator_config deleted validator config id=9435f3ee-a765-4165-813f-878d14aceeb0 +2026-09-05 20:48:28,405 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/9435f3ee-a765-4165-813f-878d14aceeb0 - 200 [2.42ms] +2026-09-05 20:48:28,406 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9435f3ee-a765-4165-813f-878d14aceeb0/ - 307 [0.09ms] +2026-09-05 20:48:28,408 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9435f3ee-a765-4165-813f-878d14aceeb0 - 404 [1.50ms] +2026-09-05 20:48:28,412 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1731cce0-c18a-4055-8432-9bb1d47d2756/ - 307 [0.10ms] +2026-09-05 20:48:28,415 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1731cce0-c18a-4055-8432-9bb1d47d2756 - 404 [2.00ms] +2026-09-05 20:48:28,423 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.30ms] +2026-09-05 20:48:28,424 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/138fbe4a-6f3f-4fc3-9fa7-30e9b9535509/ - 307 [0.10ms] +2026-09-05 20:48:28,426 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/138fbe4a-6f3f-4fc3-9fa7-30e9b9535509 - 404 [1.64ms] +2026-09-05 20:48:28,426 INFO http_request_logger GET /api/v1/guardrails/validators/configs/138fbe4a-6f3f-4fc3-9fa7-30e9b9535509/ - 307 [0.09ms] +2026-09-05 20:48:28,428 INFO http_request_logger GET /api/v1/guardrails/validators/configs/138fbe4a-6f3f-4fc3-9fa7-30e9b9535509 - 200 [1.69ms] +2026-09-05 20:48:28,557 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-05 20:48:28,557 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-05 20:48:28,633 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:31,416 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:31,426 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:32,872 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:32,876 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:34,348 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:34,351 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:35,773 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:35,779 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:37,068 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:37,078 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:38,193 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:38,194 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:48:39,381 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:48:39,506 INFO watchfiles.main 3 changes detected +2026-09-05 20:49:32,618 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:49:36,800 INFO guardrails.execution request=9b6fb982-7a33-431d-ba61-f238c5f10deb starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:36,932 INFO guardrails.execution request=9b6fb982-7a33-431d-ba61-f238c5f10deb guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:36,937 INFO guardrails.execution request=9b6fb982-7a33-431d-ba61-f238c5f10deb step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:49:36.801965 end=2026-09-05T20:49:36.931714 duration_ms=129 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:37,118 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3756.80ms] +2026-09-05 20:49:37,431 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:49:39,470 INFO guardrails.execution request=bec8f1e2-1352-4e6b-bb13-a05f2e20be70 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:39,504 INFO guardrails.execution request=bec8f1e2-1352-4e6b-bb13-a05f2e20be70 guardrails execution finished (passed=True) output='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:39,517 INFO guardrails.execution request=bec8f1e2-1352-4e6b-bb13-a05f2e20be70 step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:49:39.472452 end=2026-09-05T20:49:39.500837 duration_ms=28 input='She slowly undressed and they had explicit sex.' output='She slowly undressed and they had explicit sex.' +2026-09-05 20:49:39,659 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2502.36ms] +2026-09-05 20:49:41,964 INFO guardrails.execution request=8a8fb1fc-62b5-405d-b71d-23b00ce3861a starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-05 20:49:42,022 INFO guardrails.execution request=8a8fb1fc-62b5-405d-b71d-23b00ce3861a guardrails execution finished (passed=True) output='Explicit sexual content goes here.' +2026-09-05 20:49:42,028 INFO guardrails.execution request=8a8fb1fc-62b5-405d-b71d-23b00ce3861a step=1/1 validator=NSFWText stage=input outcome=Outcome.PASS start=2026-09-05T20:49:41.965356 end=2026-09-05T20:49:42.021842 duration_ms=56 input='Explicit sexual content goes here.' output='Explicit sexual content goes here.' +2026-09-05 20:49:42,199 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2530.73ms] +2026-09-05 20:49:44,832 INFO guardrails.execution request=03afb971-a482-4e27-8cae-1d8caa87b5b2 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-05 20:49:44,835 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 03afb971-a482-4e27-8cae-1d8caa87b5b2: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-05 20:49:44,848 INFO guardrails.execution request=03afb971-a482-4e27-8cae-1d8caa87b5b2 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:49:44.833151 end=2026-09-05T20:49:44.835459 duration_ms=2 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-05 20:49:44,852 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2645.01ms] +2026-09-05 20:49:47,986 INFO guardrails.execution request=9ab36df9-f594-4ab8-a61b-279eb8f4361b starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-05 20:49:47,991 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9ab36df9-f594-4ab8-a61b-279eb8f4361b: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:49:47,996 INFO guardrails.execution request=9ab36df9-f594-4ab8-a61b-279eb8f4361b step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:49:47.988762 end=2026-09-05T20:49:47.991792 duration_ms=3 input='This chakki has explicit sexual content.' output=None +2026-09-05 20:49:47,999 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3138.62ms] +2026-09-05 20:49:48,130 INFO watchfiles.main 3 changes detected +2026-09-05 20:52:07,653 INFO watchfiles.main 3 changes detected +2026-09-05 20:52:07,668 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/config/nsfw_text_safety_validator_config.py'. Reloading... +2026-09-05 20:52:07,767 INFO uvicorn.error Shutting down +2026-09-05 20:52:07,874 INFO uvicorn.error Waiting for application shutdown. +2026-09-05 20:52:07,877 INFO uvicorn.error Application shutdown complete. +2026-09-05 20:52:07,879 INFO uvicorn.error Finished server process [24618] +2026-09-05 20:52:08,286 INFO watchfiles.main 1 change detected +2026-09-05 20:52:11,430 INFO watchfiles.main 3 changes detected +2026-09-05 20:52:13,390 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:52:14,291 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-05 20:52:14,291 INFO uvicorn.error Started server process [60805] +2026-09-05 20:52:14,292 INFO uvicorn.error Waiting for application startup. +2026-09-05 20:52:14,293 INFO uvicorn.error Application startup complete. +2026-09-05 20:52:14,563 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:52:15,959 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:52:18,338 INFO guardrails.execution request=04437402-b4c7-4de5-aeb5-1414b9724787 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:52:18,711 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 04437402-b4c7-4de5-aeb5-1414b9724787: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:52:18,722 INFO guardrails.execution request=04437402-b4c7-4de5-aeb5-1414b9724787 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:18.340015 end=2026-09-05T20:52:18.711064 duration_ms=371 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:52:18,728 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3509.76ms] +2026-09-05 20:52:21,006 INFO guardrails.execution request=bd594a91-5d28-43e7-a074-c403c6c868ac starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:52:21,020 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log bd594a91-5d28-43e7-a074-c403c6c868ac: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:52:21,027 INFO guardrails.execution request=bd594a91-5d28-43e7-a074-c403c6c868ac step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:21.006706 end=2026-09-05T20:52:21.020609 duration_ms=13 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:52:21,031 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2295.80ms] +2026-09-05 20:52:23,308 INFO guardrails.execution request=417fe2c9-9b30-4114-83dc-6b4e240af2c0 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-05 20:52:23,486 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 417fe2c9-9b30-4114-83dc-6b4e240af2c0: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-05 20:52:23,493 INFO guardrails.execution request=417fe2c9-9b30-4114-83dc-6b4e240af2c0 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:23.309023 end=2026-09-05T20:52:23.486592 duration_ms=177 input='Explicit sexual content goes here.' output=None +2026-09-05 20:52:23,495 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2458.02ms] +2026-09-05 20:52:26,096 INFO guardrails.execution request=2229f33e-ee2a-424d-90e4-245c1258918a starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-05 20:52:26,099 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2229f33e-ee2a-424d-90e4-245c1258918a: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-05 20:52:26,104 INFO guardrails.execution request=2229f33e-ee2a-424d-90e4-245c1258918a step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:26.097126 end=2026-09-05T20:52:26.099031 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-05 20:52:26,108 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2606.98ms] +2026-09-05 20:52:34,115 INFO guardrails.execution request=fc31805b-a58c-48ff-b039-4bce6d50884e starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-05 20:52:34,123 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fc31805b-a58c-48ff-b039-4bce6d50884e: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:52:34,134 INFO guardrails.execution request=fc31805b-a58c-48ff-b039-4bce6d50884e step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:34.118327 end=2026-09-05T20:52:34.122801 duration_ms=4 input='This chakki has explicit sexual content.' output=None +2026-09-05 20:52:34,138 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8024.46ms] +2026-09-05 20:52:34,261 INFO watchfiles.main 4 changes detected +2026-09-05 20:52:41,859 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:52:42,587 INFO guardrails.execution request=e90427bc-ff3d-4d8f-9681-ce1524a08d32 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,589 INFO guardrails.execution request=e90427bc-ff3d-4d8f-9681-ce1524a08d32 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,591 INFO guardrails.execution request=e90427bc-ff3d-4d8f-9681-ce1524a08d32 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.588303 end=2026-09-05T20:52:42.588405 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,595 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.11ms] +2026-09-05 20:52:42,611 INFO guardrails.execution request=44daaa06-c118-452b-acaf-66853d672dc9 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:52:42,612 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 44daaa06-c118-452b-acaf-66853d672dc9: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:52:42,616 INFO guardrails.execution request=44daaa06-c118-452b-acaf-66853d672dc9 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:52:42.612161 end=2026-09-05T20:52:42.612243 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:52:42,618 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.77ms] +2026-09-05 20:52:42,634 INFO guardrails.execution request=e123d259-331a-4fc4-a05f-f842daf84e46 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-05 20:52:42,635 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e123d259-331a-4fc4-a05f-f842daf84e46: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-05 20:52:42,637 INFO guardrails.execution request=e123d259-331a-4fc4-a05f-f842daf84e46 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:52:42.635209 end=2026-09-05T20:52:42.635261 duration_ms=0 input='' output=None +2026-09-05 20:52:42,639 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.49ms] +2026-09-05 20:52:42,656 INFO guardrails.execution request=5988e9d7-59d7-4270-b6fe-3338ab8694da starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,657 INFO guardrails.execution request=5988e9d7-59d7-4270-b6fe-3338ab8694da guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,659 INFO guardrails.execution request=5988e9d7-59d7-4270-b6fe-3338ab8694da step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.656863 end=2026-09-05T20:52:42.656943 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,662 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.23ms] +2026-09-05 20:52:42,676 INFO guardrails.execution request=05239b32-55a1-4b6a-9f11-d928767327e5 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:52:42,677 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 05239b32-55a1-4b6a-9f11-d928767327e5: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:52:42,679 INFO guardrails.execution request=05239b32-55a1-4b6a-9f11-d928767327e5 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:52:42.677309 end=2026-09-05T20:52:42.677380 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:52:42,681 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.89ms] +2026-09-05 20:52:42,698 INFO guardrails.execution request=45d4adf6-5d82-4b77-b05d-0e05bb6dee66 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:52:42,700 INFO guardrails.execution request=45d4adf6-5d82-4b77-b05d-0e05bb6dee66 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:52:42,702 INFO guardrails.execution request=45d4adf6-5d82-4b77-b05d-0e05bb6dee66 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.699378 end=2026-09-05T20:52:42.699457 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:52:42,704 INFO guardrails.execution request=45d4adf6-5d82-4b77-b05d-0e05bb6dee66 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.699462 end=2026-09-05T20:52:42.699571 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:52:42,707 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.55ms] +2026-09-05 20:52:42,720 INFO guardrails.execution request=943b166a-3a0d-4884-bc52-5033b576b8a4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:52:42,723 INFO guardrails.execution request=943b166a-3a0d-4884-bc52-5033b576b8a4 guardrails execution finished (passed=True) output='' +2026-09-05 20:52:42,724 INFO guardrails.execution request=943b166a-3a0d-4884-bc52-5033b576b8a4 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.721151 end=2026-09-05T20:52:42.721213 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:52:42,726 INFO guardrails.execution request=943b166a-3a0d-4884-bc52-5033b576b8a4 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.721218 end=2026-09-05T20:52:42.722599 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-05 20:52:42,728 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.44ms] +2026-09-05 20:52:42,748 INFO guardrails.execution request=f4316e70-7b77-49d4-a912-61af5f23b448 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:52:42,752 INFO guardrails.execution request=f4316e70-7b77-49d4-a912-61af5f23b448 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:52:42,753 INFO guardrails.execution request=f4316e70-7b77-49d4-a912-61af5f23b448 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.748891 end=2026-09-05T20:52:42.748952 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:52:42,755 INFO guardrails.execution request=f4316e70-7b77-49d4-a912-61af5f23b448 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.748956 end=2026-09-05T20:52:42.751283 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:52:42,758 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.62ms] +2026-09-05 20:52:42,771 INFO guardrails.execution request=7ed2b5a0-3ee6-4c86-b7ab-084ce8de98ff starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:52:42,772 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7ed2b5a0-3ee6-4c86-b7ab-084ce8de98ff: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-05 20:52:42,774 INFO guardrails.execution request=7ed2b5a0-3ee6-4c86-b7ab-084ce8de98ff step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.771423 end=2026-09-05T20:52:42.771486 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:52:42,776 INFO guardrails.execution request=7ed2b5a0-3ee6-4c86-b7ab-084ce8de98ff step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.771491 end=2026-09-05T20:52:42.772389 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-05 20:52:42,777 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.86ms] +2026-09-05 20:52:42,793 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,796 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,798 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.793634 end=2026-09-05T20:52:42.793691 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,799 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.793696 end=2026-09-05T20:52:42.793756 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,801 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.793759 end=2026-09-05T20:52:42.794607 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,802 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.794611 end=2026-09-05T20:52:42.795157 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,803 INFO guardrails.execution request=ab80d52a-21d2-4ec9-8c3d-ba436adbed46 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.795161 end=2026-09-05T20:52:42.795770 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:52:42,806 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.65ms] +2026-09-05 20:52:42,823 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:52:42,827 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:52:42,828 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:52:42.824391 end=2026-09-05T20:52:42.824444 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:52:42,830 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.824449 end=2026-09-05T20:52:42.825283 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:52:42,831 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.825288 end=2026-09-05T20:52:42.825780 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:52:42,833 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:52:42.825785 end=2026-09-05T20:52:42.825841 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:52:42,834 INFO guardrails.execution request=959ecf3c-5e81-4ff4-81ee-40e32781fe8a step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:42.825844 end=2026-09-05T20:52:42.826457 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:52:42,837 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.46ms] +2026-09-05 20:52:42,856 INFO app.crud.ban_list created ban list id=33d30b9a-26b2-4dfe-8ee6-407352aad5f6 org=1 project=1 +2026-09-05 20:52:42,857 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.31ms] +2026-09-05 20:52:42,860 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.82ms] +2026-09-05 20:52:42,864 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.73ms] +2026-09-05 20:52:42,867 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.72ms] +2026-09-05 20:52:42,871 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.76ms] +2026-09-05 20:52:42,874 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.70ms] +2026-09-05 20:52:42,888 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.87ms] +2026-09-05 20:52:42,897 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.53ms] +2026-09-05 20:52:42,903 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.45ms] +2026-09-05 20:52:42,911 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.78ms] +2026-09-05 20:52:42,920 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.08ms] +2026-09-05 20:52:42,923 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.28ms] +2026-09-05 20:52:42,929 INFO app.crud.ban_list created ban list id=f2487b36-0bb7-410d-9f7d-d438073864eb org=1 project=1 +2026-09-05 20:52:42,929 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.08ms] +2026-09-05 20:52:42,930 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f2487b36-0bb7-410d-9f7d-d438073864eb/ - 307 [0.11ms] +2026-09-05 20:52:42,932 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f2487b36-0bb7-410d-9f7d-d438073864eb - 200 [1.86ms] +2026-09-05 20:52:42,940 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.98ms] +2026-09-05 20:52:42,941 INFO http_request_logger GET /api/v1/guardrails/ban_lists/b7dac56e-48c8-4916-8c70-c2cb6a2c50c1/ - 307 [0.10ms] +2026-09-05 20:52:42,943 INFO http_request_logger GET /api/v1/guardrails/ban_lists/b7dac56e-48c8-4916-8c70-c2cb6a2c50c1 - 200 [1.51ms] +2026-09-05 20:52:42,946 INFO http_request_logger GET /api/v1/guardrails/ban_lists/60cf39cf-2e6f-4b8e-9583-23cdcb6bbea1/ - 307 [0.09ms] +2026-09-05 20:52:42,949 INFO http_request_logger GET /api/v1/guardrails/ban_lists/60cf39cf-2e6f-4b8e-9583-23cdcb6bbea1 - 404 [1.83ms] +2026-09-05 20:52:42,956 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.21ms] +2026-09-05 20:52:42,957 INFO http_request_logger GET /api/v1/guardrails/ban_lists/0bfb83ef-833b-4fa0-a3c4-42f5028c76be/ - 307 [0.10ms] +2026-09-05 20:52:42,959 INFO http_request_logger GET /api/v1/guardrails/ban_lists/0bfb83ef-833b-4fa0-a3c4-42f5028c76be - 403 [1.56ms] +2026-09-05 20:52:42,966 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.02ms] +2026-09-05 20:52:42,967 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/b8e9fd6c-15e7-47c4-b350-a9c6c9ca3555/ - 307 [0.08ms] +2026-09-05 20:52:42,970 INFO app.crud.ban_list updated ban list id=b8e9fd6c-15e7-47c4-b350-a9c6c9ca3555 +2026-09-05 20:52:42,971 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/b8e9fd6c-15e7-47c4-b350-a9c6c9ca3555 - 200 [3.54ms] +2026-09-05 20:52:42,977 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.57ms] +2026-09-05 20:52:42,977 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/9d72deaf-cd4f-446c-a2be-df3a28f25624/ - 307 [0.08ms] +2026-09-05 20:52:42,980 INFO app.crud.ban_list updated ban list id=9d72deaf-cd4f-446c-a2be-df3a28f25624 +2026-09-05 20:52:42,980 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/9d72deaf-cd4f-446c-a2be-df3a28f25624 - 200 [2.76ms] +2026-09-05 20:52:42,984 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/2faadc6a-e047-4e71-922c-3923880c1701/ - 307 [0.08ms] +2026-09-05 20:52:42,985 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/2faadc6a-e047-4e71-922c-3923880c1701 - 404 [1.45ms] +2026-09-05 20:52:42,990 INFO app.crud.ban_list created ban list id=88a72e4c-aa98-4810-9f62-548e0acafde8 org=1 project=1 +2026-09-05 20:52:42,991 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.75ms] +2026-09-05 20:52:42,991 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/88a72e4c-aa98-4810-9f62-548e0acafde8/ - 307 [0.08ms] +2026-09-05 20:52:42,993 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/88a72e4c-aa98-4810-9f62-548e0acafde8 - 403 [1.30ms] +2026-09-05 20:52:42,999 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.46ms] +2026-09-05 20:52:42,999 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/523d532d-4e69-4990-af0f-a64f249fbc55/ - 307 [0.08ms] +2026-09-05 20:52:43,001 INFO app.crud.ban_list deleted ban list id=523d532d-4e69-4990-af0f-a64f249fbc55 +2026-09-05 20:52:43,001 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/523d532d-4e69-4990-af0f-a64f249fbc55 - 200 [1.79ms] +2026-09-05 20:52:43,004 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/589f0c91-da24-4167-8197-1b8efe983ee0/ - 307 [0.08ms] +2026-09-05 20:52:43,006 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/589f0c91-da24-4167-8197-1b8efe983ee0 - 404 [1.29ms] +2026-09-05 20:52:43,012 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.62ms] +2026-09-05 20:52:43,012 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/1d3c55e2-ce21-4402-9138-032cadf1802a/ - 307 [0.08ms] +2026-09-05 20:52:43,014 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/1d3c55e2-ce21-4402-9138-032cadf1802a - 403 [1.18ms] +2026-09-05 20:52:43,018 INFO app.crud.ban_list created ban list id=a3f0dad5-519f-4680-8d86-46b71cb0369d org=1 project=1 +2026-09-05 20:52:43,019 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.36ms] +2026-09-05 20:52:43,019 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a3f0dad5-519f-4680-8d86-46b71cb0369d/ - 307 [0.08ms] +2026-09-05 20:52:43,021 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a3f0dad5-519f-4680-8d86-46b71cb0369d - 403 [1.20ms] +2026-09-05 20:52:43,094 INFO guardrails.execution request=d8337d85-b154-4c5c-b525-3e52c9e63c73 starting guardrails execution (validators=[]) input='hello world' +2026-09-05 20:52:43,094 INFO guardrails.execution request=d8337d85-b154-4c5c-b525-3e52c9e63c73 guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:52:43,096 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.06ms] +2026-09-05 20:52:43,101 INFO guardrails.execution request=a2b1257f-00be-4af0-8a7e-5f49e04abba3 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-05 20:52:43,101 INFO guardrails.execution request=a2b1257f-00be-4af0-8a7e-5f49e04abba3 guardrails execution finished (passed=False) output=None +2026-09-05 20:52:43,102 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.37ms] +2026-09-05 20:52:43,107 INFO guardrails.execution request=0755bb25-a831-4555-af46-5c4952195a01 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-05 20:52:43,107 INFO guardrails.execution request=0755bb25-a831-4555-af46-5c4952195a01 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-05 20:52:43,108 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.37ms] +2026-09-05 20:52:43,113 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f5c368a3-999c-4bba-9eed-3bdd4cac1799: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-05 20:52:43,116 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.34ms] +2026-09-05 20:52:43,127 INFO guardrails.execution request=da232617-f3d9-4ca6-ab72-e5bc9576e218 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-05 20:52:43,129 INFO guardrails.execution request=da232617-f3d9-4ca6-ab72-e5bc9576e218 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:52:43,130 INFO guardrails.execution request=da232617-f3d9-4ca6-ab72-e5bc9576e218 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.128388 end=2026-09-05T20:52:43.128494 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:52:43,133 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.55ms] +2026-09-05 20:52:43,146 INFO guardrails.execution request=f9f8d06e-c481-4040-9099-efe932ca17a5 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-05 20:52:43,147 INFO guardrails.execution request=f9f8d06e-c481-4040-9099-efe932ca17a5 guardrails execution finished (passed=True) output='this is clean' +2026-09-05 20:52:43,148 INFO guardrails.execution request=f9f8d06e-c481-4040-9099-efe932ca17a5 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:52:43.146440 end=2026-09-05T20:52:43.146507 duration_ms=0 input='this is clean' output='this is clean' +2026-09-05 20:52:43,151 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.54ms] +2026-09-05 20:52:43,169 INFO guardrails.execution request=13556735-acf5-48f2-9940-8ce54853d676 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:52:43,171 INFO guardrails.execution request=13556735-acf5-48f2-9940-8ce54853d676 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:52:43,173 INFO guardrails.execution request=13556735-acf5-48f2-9940-8ce54853d676 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.170538 end=2026-09-05T20:52:43.170927 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:52:43,176 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.36ms] +2026-09-05 20:52:43,189 INFO guardrails.execution request=09070dc7-fce4-4070-9ae1-a4baea0bea27 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-05 20:52:43,190 INFO guardrails.execution request=09070dc7-fce4-4070-9ae1-a4baea0bea27 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-05 20:52:43,193 INFO guardrails.execution request=09070dc7-fce4-4070-9ae1-a4baea0bea27 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:52:43.189877 end=2026-09-05T20:52:43.190153 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-05 20:52:43,197 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.64ms] +2026-09-05 20:52:43,211 INFO guardrails.execution request=a2d1a250-09ed-4938-851a-08efa32bfef5 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-05 20:52:43,213 INFO guardrails.execution request=a2d1a250-09ed-4938-851a-08efa32bfef5 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:52:43,216 INFO guardrails.execution request=a2d1a250-09ed-4938-851a-08efa32bfef5 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.212052 end=2026-09-05T20:52:43.212504 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-05 20:52:43,218 INFO guardrails.execution request=a2d1a250-09ed-4938-851a-08efa32bfef5 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.212509 end=2026-09-05T20:52:43.212590 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:52:43,222 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.70ms] +2026-09-05 20:52:43,227 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.86ms] +2026-09-05 20:52:43,240 INFO guardrails.execution request=f79a3bbd-06ef-44af-b8cb-6a7a9eee6b46 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:52:43,241 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f79a3bbd-06ef-44af-b8cb-6a7a9eee6b46: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:52:43,245 INFO guardrails.execution request=f79a3bbd-06ef-44af-b8cb-6a7a9eee6b46 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.241275 end=2026-09-05T20:52:43.241511 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-05 20:52:43,247 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.83ms] +2026-09-05 20:52:43,261 INFO guardrails.execution request=b19f174e-77cb-49be-ad2e-558b3d9ab396 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:52:43,262 INFO guardrails.execution request=b19f174e-77cb-49be-ad2e-558b3d9ab396 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:52:43,265 INFO guardrails.execution request=b19f174e-77cb-49be-ad2e-558b3d9ab396 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.261476 end=2026-09-05T20:52:43.261730 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:52:43,269 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.36ms] +2026-09-05 20:52:43,282 INFO guardrails.execution request=960e9dc1-cd17-43df-ae22-bd216761ab30 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-05 20:52:43,284 INFO guardrails.execution request=960e9dc1-cd17-43df-ae22-bd216761ab30 guardrails execution finished (passed=True) output='' +2026-09-05 20:52:43,287 INFO guardrails.execution request=960e9dc1-cd17-43df-ae22-bd216761ab30 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.282936 end=2026-09-05T20:52:43.283902 duration_ms=0 input='This is a damn fucking mess.' output='' +2026-09-05 20:52:43,290 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.17ms] +2026-09-05 20:52:43,302 INFO guardrails.execution request=a7532a9b-1381-44ba-8308-5f0300785554 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-05 20:52:43,304 INFO guardrails.execution request=a7532a9b-1381-44ba-8308-5f0300785554 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-05 20:52:43,308 INFO guardrails.execution request=a7532a9b-1381-44ba-8308-5f0300785554 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:52:43.302850 end=2026-09-05T20:52:43.303733 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-05 20:52:43,312 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.75ms] +2026-09-05 20:52:43,325 INFO guardrails.execution request=85b190da-156a-49b5-bd24-54797a90cb6c starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-05 20:52:43,326 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 85b190da-156a-49b5-bd24-54797a90cb6c: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-05 20:52:43,329 INFO guardrails.execution request=85b190da-156a-49b5-bd24-54797a90cb6c step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.325800 end=2026-09-05T20:52:43.326602 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-05 20:52:43,332 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.51ms] +2026-09-05 20:52:43,347 INFO guardrails.execution request=cb476cbf-8bbd-4730-9fb4-af48edc132da starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-05 20:52:43,349 INFO guardrails.execution request=cb476cbf-8bbd-4730-9fb4-af48edc132da guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:52:43,352 INFO guardrails.execution request=cb476cbf-8bbd-4730-9fb4-af48edc132da step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:43.347859 end=2026-09-05T20:52:43.348650 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:52:43,356 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.03ms] +2026-09-05 20:52:43,363 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log af2ba659-73a8-42e1-a97e-cc51b37226f5: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:52:43,367 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.84ms] +2026-09-05 20:52:44,075 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:52:46,151 INFO guardrails.execution request=c91552f2-9dd3-4072-8c38-1fc908849562 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:52:46,283 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c91552f2-9dd3-4072-8c38-1fc908849562: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:52:46,291 INFO guardrails.execution request=c91552f2-9dd3-4072-8c38-1fc908849562 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:46.152807 end=2026-09-05T20:52:46.283114 duration_ms=130 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:52:46,294 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2923.60ms] +2026-09-05 20:52:48,459 INFO guardrails.execution request=ad6f9e35-c0a9-449b-95a9-2e40f0948161 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:52:48,474 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ad6f9e35-c0a9-449b-95a9-2e40f0948161: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:52:48,479 INFO guardrails.execution request=ad6f9e35-c0a9-449b-95a9-2e40f0948161 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:48.460206 end=2026-09-05T20:52:48.474042 duration_ms=13 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:52:48,483 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2181.44ms] +2026-09-05 20:52:50,742 INFO guardrails.execution request=93e000c1-63fc-4fb6-b7c0-75f143ed6a0a starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-05 20:52:50,768 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 93e000c1-63fc-4fb6-b7c0-75f143ed6a0a: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-05 20:52:50,774 INFO guardrails.execution request=93e000c1-63fc-4fb6-b7c0-75f143ed6a0a step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:50.742579 end=2026-09-05T20:52:50.767997 duration_ms=25 input='Explicit sexual content goes here.' output=None +2026-09-05 20:52:50,778 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2288.00ms] +2026-09-05 20:52:50,802 INFO guardrails.execution request=5ea3636d-b7d7-41f7-890e-f9ee67b41d98 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-05 20:52:50,806 INFO guardrails.execution request=5ea3636d-b7d7-41f7-890e-f9ee67b41d98 guardrails execution finished (passed=True) output='' +2026-09-05 20:52:50,811 INFO guardrails.execution request=5ea3636d-b7d7-41f7-890e-f9ee67b41d98 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:50.803706 end=2026-09-05T20:52:50.805384 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-05 20:52:50,814 INFO guardrails.execution request=5ea3636d-b7d7-41f7-890e-f9ee67b41d98 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:52:50.805423 end=2026-09-05T20:52:50.805693 duration_ms=0 input='' output='' +2026-09-05 20:52:50,819 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.93ms] +2026-09-05 20:52:50,828 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1cb025df-76af-438f-818b-0d7a7d580b7d: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:52:50,832 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.41ms] +2026-09-05 20:52:55,657 INFO guardrails.execution request=670ed59c-5ad0-4081-bd6a-ad17d1b950d4 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-05 20:52:55,660 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 670ed59c-5ad0-4081-bd6a-ad17d1b950d4: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-05 20:52:55,668 INFO guardrails.execution request=670ed59c-5ad0-4081-bd6a-ad17d1b950d4 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:55.658417 end=2026-09-05T20:52:55.660163 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-05 20:52:55,673 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4835.98ms] +2026-09-05 20:52:57,760 INFO guardrails.execution request=60521e51-77f3-4ea9-9b98-e12d38dc12da starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-05 20:52:57,761 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 60521e51-77f3-4ea9-9b98-e12d38dc12da: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:52:57,766 INFO guardrails.execution request=60521e51-77f3-4ea9-9b98-e12d38dc12da step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:57.761410 end=2026-09-05T20:52:57.761845 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-05 20:52:57,770 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2089.91ms] +2026-09-05 20:52:57,787 INFO guardrails.execution request=17c48a59-6d0b-4f49-8719-e647eeeafd52 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-05 20:52:57,790 INFO guardrails.execution request=17c48a59-6d0b-4f49-8719-e647eeeafd52 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-05 20:52:57,794 INFO guardrails.execution request=17c48a59-6d0b-4f49-8719-e647eeeafd52 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.788280 end=2026-09-05T20:52:57.789445 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:52:57,796 INFO guardrails.execution request=17c48a59-6d0b-4f49-8719-e647eeeafd52 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.789455 end=2026-09-05T20:52:57.789559 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:52:57,800 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.41ms] +2026-09-05 20:52:57,820 INFO guardrails.execution request=2e636ec7-caef-47e0-96f9-7b34533ce549 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-05 20:52:57,823 INFO guardrails.execution request=2e636ec7-caef-47e0-96f9-7b34533ce549 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-05 20:52:57,827 INFO guardrails.execution request=2e636ec7-caef-47e0-96f9-7b34533ce549 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.821137 end=2026-09-05T20:52:57.821479 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:52:57,831 INFO guardrails.execution request=2e636ec7-caef-47e0-96f9-7b34533ce549 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.821484 end=2026-09-05T20:52:57.822554 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:52:57,834 INFO guardrails.execution request=2e636ec7-caef-47e0-96f9-7b34533ce549 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.822560 end=2026-09-05T20:52:57.822623 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:52:57,839 INFO http_request_logger POST /api/v1/guardrails/ - 200 [35.20ms] +2026-09-05 20:52:57,857 INFO guardrails.execution request=3e01ea37-cbe3-4cfd-89a5-9730ce049802 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-05 20:52:57,859 INFO guardrails.execution request=3e01ea37-cbe3-4cfd-89a5-9730ce049802 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:52:57,862 INFO guardrails.execution request=3e01ea37-cbe3-4cfd-89a5-9730ce049802 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:52:57.858345 end=2026-09-05T20:52:57.858458 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:52:57,864 INFO guardrails.execution request=3e01ea37-cbe3-4cfd-89a5-9730ce049802 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:52:57.858464 end=2026-09-05T20:52:57.858662 duration_ms=0 input='this contains b' output='this contains b' +2026-09-05 20:52:57,867 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.41ms] +2026-09-05 20:52:57,877 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 07b0822d-5b53-449c-b8f5-fbee1b9f3d85: 404: Ban list not found +2026-09-05 20:52:57,880 INFO http_request_logger POST /api/v1/guardrails/ - 404 [6.51ms] +2026-09-05 20:52:57,888 INFO guardrails.execution request=92d10808-a4ac-44b5-b948-9278d59085dd starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-05 20:52:57,889 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 92d10808-a4ac-44b5-b948-9278d59085dd: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-05 20:52:57,890 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.82ms] +2026-09-05 20:52:57,896 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-05 20:52:57,897 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.36ms] +2026-09-05 20:52:57,905 INFO app.crud.llm_prompt_config created llm prompt config id=670fbe45-8060-4c53-91b9-ecd5e0175d88 org=1 project=1 +2026-09-05 20:52:57,906 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.44ms] +2026-09-05 20:52:57,914 INFO app.crud.llm_prompt_config created llm prompt config id=5b893a7a-50c7-4bdb-94a9-433ccf9ec0f7 org=1 project=1 +2026-09-05 20:52:57,914 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.99ms] +2026-09-05 20:52:57,921 INFO app.crud.llm_prompt_config created llm prompt config id=3a5b41c0-ff2e-45c8-af82-392598a473f4 org=1 project=1 +2026-09-05 20:52:57,921 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.36ms] +2026-09-05 20:52:57,926 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.12ms] +2026-09-05 20:52:57,932 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.06ms] +2026-09-05 20:52:57,936 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.89ms] +2026-09-05 20:52:57,939 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-05 20:52:57,945 INFO app.crud.llm_prompt_config created llm prompt config id=ef74523d-3ca8-4363-8602-7debe3da2949 org=1 project=1 +2026-09-05 20:52:57,946 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.17ms] +2026-09-05 20:52:57,950 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.79ms] +2026-09-05 20:52:57,953 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.82ms] +2026-09-05 20:52:57,959 INFO app.crud.llm_prompt_config created llm prompt config id=0b9988d9-e5d2-4644-b1f9-15ee57f3ffc5 org=1 project=1 +2026-09-05 20:52:57,960 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.11ms] +2026-09-05 20:52:57,962 INFO app.crud.llm_prompt_config created llm prompt config id=02f107a0-f209-4cf0-b52b-c7e18ffcc500 org=1 project=1 +2026-09-05 20:52:57,962 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.38ms] +2026-09-05 20:52:57,965 INFO app.crud.llm_prompt_config created llm prompt config id=9fcb335d-df41-41c1-8a4b-7b226c633a16 org=1 project=1 +2026-09-05 20:52:57,965 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.38ms] +2026-09-05 20:52:57,968 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.20ms] +2026-09-05 20:52:57,974 INFO app.crud.llm_prompt_config created llm prompt config id=a2026b39-457d-4a56-abe5-b1d5417aea90 org=1 project=1 +2026-09-05 20:52:57,975 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.01ms] +2026-09-05 20:52:57,977 INFO app.crud.llm_prompt_config created llm prompt config id=9effefba-b858-43f0-a238-b4be10e78753 org=1 project=1 +2026-09-05 20:52:57,978 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.21ms] +2026-09-05 20:52:57,981 INFO app.crud.llm_prompt_config created llm prompt config id=651db809-bdae-4585-b9b2-f7a023dcdfec org=1 project=1 +2026-09-05 20:52:57,981 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.75ms] +2026-09-05 20:52:57,984 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.11ms] +2026-09-05 20:52:57,990 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.49ms] +2026-09-05 20:52:57,997 INFO app.crud.llm_prompt_config created llm prompt config id=f4824a47-22cc-40b4-abcc-4a3db5cbab08 org=1 project=1 +2026-09-05 20:52:57,998 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.50ms] +2026-09-05 20:52:58,001 INFO app.crud.llm_prompt_config created llm prompt config id=bdd7bcf2-eec1-4062-8ed8-5982aba6bce6 org=1 project=1 +2026-09-05 20:52:58,001 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.06ms] +2026-09-05 20:52:58,004 INFO app.crud.llm_prompt_config created llm prompt config id=02b2e1df-8d36-4305-8474-fe32f8b01b80 org=1 project=1 +2026-09-05 20:52:58,005 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.94ms] +2026-09-05 20:52:58,007 INFO app.crud.llm_prompt_config created llm prompt config id=dc1d9c5a-c25c-4e01-9033-12e334a32a70 org=1 project=1 +2026-09-05 20:52:58,008 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.83ms] +2026-09-05 20:52:58,011 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.56ms] +2026-09-05 20:52:58,019 INFO app.crud.llm_prompt_config created llm prompt config id=ac718cf0-6121-4f72-b82b-608dd1d8a489 org=1 project=1 +2026-09-05 20:52:58,020 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.24ms] +2026-09-05 20:52:58,022 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.76ms] +2026-09-05 20:52:58,029 INFO app.crud.llm_prompt_config created llm prompt config id=4afefd00-d1e4-47b1-babe-9932969d973d org=1 project=1 +2026-09-05 20:52:58,030 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.34ms] +2026-09-05 20:52:58,033 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/4afefd00-d1e4-47b1-babe-9932969d973d - 200 [2.26ms] +2026-09-05 20:52:58,038 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/db39ff51-ce7b-44e7-846e-5abfe4b20fa1 - 404 [2.02ms] +2026-09-05 20:52:58,045 INFO app.crud.llm_prompt_config created llm prompt config id=4e63e262-65d4-41a4-b002-08603c243e9a org=1 project=1 +2026-09-05 20:52:58,046 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.51ms] +2026-09-05 20:52:58,048 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/4e63e262-65d4-41a4-b002-08603c243e9a - 404 [1.80ms] +2026-09-05 20:52:58,055 INFO app.crud.llm_prompt_config created llm prompt config id=dd130d54-e83f-4b43-9d68-73219d4b5e18 org=1 project=1 +2026-09-05 20:52:58,056 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.78ms] +2026-09-05 20:52:58,061 INFO app.crud.llm_prompt_config updated llm prompt config id=dd130d54-e83f-4b43-9d68-73219d4b5e18 +2026-09-05 20:52:58,061 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/dd130d54-e83f-4b43-9d68-73219d4b5e18 - 200 [4.54ms] +2026-09-05 20:52:58,068 INFO app.crud.llm_prompt_config created llm prompt config id=b65414b6-8755-46e3-a00a-fd3634ea4384 org=1 project=1 +2026-09-05 20:52:58,069 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.61ms] +2026-09-05 20:52:58,072 INFO app.crud.llm_prompt_config updated llm prompt config id=b65414b6-8755-46e3-a00a-fd3634ea4384 +2026-09-05 20:52:58,073 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/b65414b6-8755-46e3-a00a-fd3634ea4384 - 200 [3.58ms] +2026-09-05 20:52:58,079 INFO app.crud.llm_prompt_config created llm prompt config id=f50d1cc1-66f1-4049-80de-4aed5fddff61 org=1 project=1 +2026-09-05 20:52:58,080 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.15ms] +2026-09-05 20:52:58,083 INFO app.crud.llm_prompt_config updated llm prompt config id=f50d1cc1-66f1-4049-80de-4aed5fddff61 +2026-09-05 20:52:58,084 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/f50d1cc1-66f1-4049-80de-4aed5fddff61 - 200 [3.43ms] +2026-09-05 20:52:58,086 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/f50d1cc1-66f1-4049-80de-4aed5fddff61 - 200 [1.69ms] +2026-09-05 20:52:58,092 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/7970015c-17d9-41f7-8302-f094e937aa98 - 404 [2.34ms] +2026-09-05 20:52:58,098 INFO app.crud.llm_prompt_config created llm prompt config id=43305d04-4e52-438f-8bba-221712a156d2 org=1 project=1 +2026-09-05 20:52:58,099 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-05 20:52:58,101 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/43305d04-4e52-438f-8bba-221712a156d2 - 404 [1.69ms] +2026-09-05 20:52:58,108 INFO app.crud.llm_prompt_config created llm prompt config id=436a7d3b-f5a1-4657-b95b-7196971dd0d5 org=1 project=1 +2026-09-05 20:52:58,109 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.02ms] +2026-09-05 20:52:58,111 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/436a7d3b-f5a1-4657-b95b-7196971dd0d5 - 422 [1.70ms] +2026-09-05 20:52:58,119 INFO app.crud.llm_prompt_config created llm prompt config id=7f72e772-c8d5-4da6-acd5-8dc352215f07 org=1 project=1 +2026-09-05 20:52:58,119 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.14ms] +2026-09-05 20:52:58,121 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/7f72e772-c8d5-4da6-acd5-8dc352215f07 - 422 [1.47ms] +2026-09-05 20:52:58,127 INFO app.crud.llm_prompt_config created llm prompt config id=f404d1c0-134b-412d-bcc0-ac170d97b2a5 org=1 project=1 +2026-09-05 20:52:58,128 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-05 20:52:58,133 INFO app.crud.llm_prompt_config updated llm prompt config id=f404d1c0-134b-412d-bcc0-ac170d97b2a5 +2026-09-05 20:52:58,134 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/f404d1c0-134b-412d-bcc0-ac170d97b2a5 - 200 [5.82ms] +2026-09-05 20:52:58,143 INFO app.crud.llm_prompt_config created llm prompt config id=75733a0d-455d-4679-948a-9fc8e9cec158 org=1 project=1 +2026-09-05 20:52:58,143 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.42ms] +2026-09-05 20:52:58,147 INFO app.crud.llm_prompt_config updated llm prompt config id=75733a0d-455d-4679-948a-9fc8e9cec158 +2026-09-05 20:52:58,147 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/75733a0d-455d-4679-948a-9fc8e9cec158 - 200 [3.28ms] +2026-09-05 20:52:58,156 INFO app.crud.llm_prompt_config created llm prompt config id=75a603a5-1476-457c-99d9-721bb23cd450 org=1 project=1 +2026-09-05 20:52:58,157 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.33ms] +2026-09-05 20:52:58,160 INFO app.crud.llm_prompt_config deleted llm prompt config id=75a603a5-1476-457c-99d9-721bb23cd450 +2026-09-05 20:52:58,160 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/75a603a5-1476-457c-99d9-721bb23cd450 - 200 [2.70ms] +2026-09-05 20:52:58,168 INFO app.crud.llm_prompt_config created llm prompt config id=d2920a2a-913a-4d4c-903b-22cf713818bc org=1 project=1 +2026-09-05 20:52:58,168 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.90ms] +2026-09-05 20:52:58,171 INFO app.crud.llm_prompt_config deleted llm prompt config id=d2920a2a-913a-4d4c-903b-22cf713818bc +2026-09-05 20:52:58,171 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/d2920a2a-913a-4d4c-903b-22cf713818bc - 200 [2.06ms] +2026-09-05 20:52:58,173 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.96ms] +2026-09-05 20:52:58,179 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/c907d7d9-c947-4dff-8f41-d5fedaba7eaa - 404 [1.74ms] +2026-09-05 20:52:58,188 INFO app.crud.llm_prompt_config created llm prompt config id=562996c4-a9b1-4d0a-8740-5df0048f44ce org=1 project=1 +2026-09-05 20:52:58,188 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.74ms] +2026-09-05 20:52:58,190 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/562996c4-a9b1-4d0a-8740-5df0048f44ce - 404 [1.39ms] +2026-09-05 20:52:58,349 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='hello' +2026-09-05 20:52:58,350 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:52:58,352 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:52:58,352 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,354 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a158763e-91bd-497c-9782-435836c460bf: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-05 20:52:58,356 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:52:58,356 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,358 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:52:58,358 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,385 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-05 20:52:58,385 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,388 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='some input text' +2026-09-05 20:52:58,388 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,390 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-05 20:52:58,390 INFO guardrails.execution request=a158763e-91bd-497c-9782-435836c460bf guardrails execution finished (passed=False) output=None +2026-09-05 20:52:58,393 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a158763e-91bd-497c-9782-435836c460bf: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-05 20:52:58,395 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a158763e-91bd-497c-9782-435836c460bf: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-05 20:52:58,415 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:52:58,419 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:52:58,422 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:52:58,434 INFO app.crud.validator_config created validator config id=c335a450-a05f-4998-9ca5-603626c14fe6 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:52:58,435 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.85ms] +2026-09-05 20:52:58,440 INFO app.crud.validator_config created validator config id=c8cff846-05b3-47c8-ab6e-e3f7e372804b org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:52:58,441 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.90ms] +2026-09-05 20:52:58,444 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-05 20:52:58,444 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [2.55ms] +2026-09-05 20:52:58,449 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.86ms] +2026-09-05 20:52:58,455 INFO app.crud.validator_config created validator config id=4f52abc3-cda8-4ebb-9eaa-dd447ce02c0f org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:52:58,455 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.38ms] +2026-09-05 20:52:58,459 INFO app.crud.validator_config created validator config id=be5b2031-ffe5-4d2d-a49f-1b254ec0ccdd org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:52:58,459 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.33ms] +2026-09-05 20:52:58,463 INFO app.crud.validator_config created validator config id=5c076330-7708-443f-9508-c3d35ab4bd9e org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:52:58,464 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.90ms] +2026-09-05 20:52:58,467 INFO app.crud.validator_config created validator config id=fde18cea-bffc-4f03-af5a-a8f8bb4f8cb4 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:52:58,467 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.25ms] +2026-09-05 20:52:58,470 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.29ms] +2026-09-05 20:52:58,470 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4f52abc3-cda8-4ebb-9eaa-dd447ce02c0f/ - 307 [0.10ms] +2026-09-05 20:52:58,472 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4f52abc3-cda8-4ebb-9eaa-dd447ce02c0f - 200 [1.73ms] +2026-09-05 20:52:58,473 INFO http_request_logger GET /api/v1/guardrails/validators/configs/be5b2031-ffe5-4d2d-a49f-1b254ec0ccdd/ - 307 [0.09ms] +2026-09-05 20:52:58,475 INFO http_request_logger GET /api/v1/guardrails/validators/configs/be5b2031-ffe5-4d2d-a49f-1b254ec0ccdd - 200 [1.55ms] +2026-09-05 20:52:58,475 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5c076330-7708-443f-9508-c3d35ab4bd9e/ - 307 [0.09ms] +2026-09-05 20:52:58,477 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5c076330-7708-443f-9508-c3d35ab4bd9e - 200 [1.70ms] +2026-09-05 20:52:58,477 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fde18cea-bffc-4f03-af5a-a8f8bb4f8cb4/ - 307 [0.08ms] +2026-09-05 20:52:58,479 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fde18cea-bffc-4f03-af5a-a8f8bb4f8cb4 - 200 [1.67ms] +2026-09-05 20:52:58,487 INFO app.crud.validator_config created validator config id=b8df65e2-fb48-44a1-9a4d-ae1ec8ff62d1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:52:58,488 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.65ms] +2026-09-05 20:52:58,491 INFO app.crud.validator_config created validator config id=b43793ca-f549-4052-9dde-fee955b8237f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:52:58,491 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.19ms] +2026-09-05 20:52:58,494 INFO app.crud.validator_config created validator config id=92c46c0f-9559-4c82-b119-11b9aa526743 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:52:58,495 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.13ms] +2026-09-05 20:52:58,495 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b8df65e2-fb48-44a1-9a4d-ae1ec8ff62d1/ - 307 [0.10ms] +2026-09-05 20:52:58,499 INFO app.crud.validator_config updated validator config id=b8df65e2-fb48-44a1-9a4d-ae1ec8ff62d1 +2026-09-05 20:52:58,500 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b8df65e2-fb48-44a1-9a4d-ae1ec8ff62d1 - 200 [4.15ms] +2026-09-05 20:52:58,500 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b43793ca-f549-4052-9dde-fee955b8237f/ - 307 [0.10ms] +2026-09-05 20:52:58,504 INFO app.crud.validator_config updated validator config id=b43793ca-f549-4052-9dde-fee955b8237f +2026-09-05 20:52:58,505 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b43793ca-f549-4052-9dde-fee955b8237f - 200 [4.03ms] +2026-09-05 20:52:58,505 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/92c46c0f-9559-4c82-b119-11b9aa526743/ - 307 [0.09ms] +2026-09-05 20:52:58,508 INFO app.crud.validator_config updated validator config id=92c46c0f-9559-4c82-b119-11b9aa526743 +2026-09-05 20:52:58,509 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/92c46c0f-9559-4c82-b119-11b9aa526743 - 200 [3.76ms] +2026-09-05 20:52:58,512 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.15ms] +2026-09-05 20:52:58,522 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.14ms] +2026-09-05 20:52:58,531 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.73ms] +2026-09-05 20:52:58,543 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.42ms] +2026-09-05 20:52:58,551 INFO app.crud.validator_config created validator config id=73cd5a1f-86e7-4c82-92b3-7b1a9f77d5ca org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:52:58,551 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.35ms] +2026-09-05 20:52:58,554 INFO app.crud.validator_config created validator config id=fe80cd7f-3586-4c0e-a4a5-2c4762c1f625 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:52:58,554 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.58ms] +2026-09-05 20:52:58,556 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.88ms] +2026-09-05 20:52:58,563 INFO app.crud.validator_config created validator config id=47813514-aa7a-464c-a012-4b353757b003 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:52:58,563 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.35ms] +2026-09-05 20:52:58,567 INFO app.crud.validator_config created validator config id=d8c5988f-a7e6-4fee-9cbb-ca33dff58614 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:52:58,567 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.43ms] +2026-09-05 20:52:58,569 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.85ms] +2026-09-05 20:52:58,575 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.87ms] +2026-09-05 20:52:58,581 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.32ms] +2026-09-05 20:52:58,590 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.99ms] +2026-09-05 20:52:58,590 INFO http_request_logger GET /api/v1/guardrails/validators/configs/193126be-55e3-4cc1-a403-c612ada293a6/ - 307 [0.09ms] +2026-09-05 20:52:58,592 INFO http_request_logger GET /api/v1/guardrails/validators/configs/193126be-55e3-4cc1-a403-c612ada293a6 - 200 [1.47ms] +2026-09-05 20:52:58,595 INFO http_request_logger GET /api/v1/guardrails/validators/configs/bad6b07d-17ae-4058-ac11-7c086e2fdcbe/ - 307 [0.09ms] +2026-09-05 20:52:58,597 INFO http_request_logger GET /api/v1/guardrails/validators/configs/bad6b07d-17ae-4058-ac11-7c086e2fdcbe - 404 [1.51ms] +2026-09-05 20:52:58,601 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.08ms] +2026-09-05 20:52:58,602 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.77ms] +2026-09-05 20:52:58,608 INFO app.crud.validator_config created validator config id=83ef17be-95c2-466c-b56a-717cd3419bf8 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:52:58,608 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.82ms] +2026-09-05 20:52:58,609 INFO http_request_logger GET /api/v1/guardrails/validators/configs/83ef17be-95c2-466c-b56a-717cd3419bf8/ - 307 [0.09ms] +2026-09-05 20:52:58,610 INFO http_request_logger GET /api/v1/guardrails/validators/configs/83ef17be-95c2-466c-b56a-717cd3419bf8 - 404 [1.23ms] +2026-09-05 20:52:58,617 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.97ms] +2026-09-05 20:52:58,618 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2e8f5af9-689b-470f-aafc-c7df03cab843/ - 307 [0.09ms] +2026-09-05 20:52:58,621 INFO app.crud.validator_config updated validator config id=2e8f5af9-689b-470f-aafc-c7df03cab843 +2026-09-05 20:52:58,622 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2e8f5af9-689b-470f-aafc-c7df03cab843 - 200 [3.96ms] +2026-09-05 20:52:58,630 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.94ms] +2026-09-05 20:52:58,631 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dd64444f-ac70-4fcf-b6ad-ef0b01492a02/ - 307 [0.09ms] +2026-09-05 20:52:58,633 INFO app.crud.validator_config updated validator config id=dd64444f-ac70-4fcf-b6ad-ef0b01492a02 +2026-09-05 20:52:58,634 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/dd64444f-ac70-4fcf-b6ad-ef0b01492a02 - 200 [2.76ms] +2026-09-05 20:52:58,638 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/73087a67-7ee7-43d4-b3c7-0457d46ad35b/ - 307 [0.10ms] +2026-09-05 20:52:58,640 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/73087a67-7ee7-43d4-b3c7-0457d46ad35b - 404 [2.21ms] +2026-09-05 20:52:58,650 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.97ms] +2026-09-05 20:52:58,650 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/31d28867-ff2f-4612-a485-44742f1c2315/ - 307 [0.09ms] +2026-09-05 20:52:58,653 INFO app.crud.validator_config deleted validator config id=31d28867-ff2f-4612-a485-44742f1c2315 +2026-09-05 20:52:58,654 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/31d28867-ff2f-4612-a485-44742f1c2315 - 200 [3.42ms] +2026-09-05 20:52:58,654 INFO http_request_logger GET /api/v1/guardrails/validators/configs/31d28867-ff2f-4612-a485-44742f1c2315/ - 307 [0.09ms] +2026-09-05 20:52:58,656 INFO http_request_logger GET /api/v1/guardrails/validators/configs/31d28867-ff2f-4612-a485-44742f1c2315 - 404 [1.84ms] +2026-09-05 20:52:58,662 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/e556ea5c-72d5-4b2c-bc8e-38d927748894/ - 307 [0.24ms] +2026-09-05 20:52:58,664 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/e556ea5c-72d5-4b2c-bc8e-38d927748894 - 404 [1.43ms] +2026-09-05 20:52:58,674 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.34ms] +2026-09-05 20:52:58,674 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/af0fde9d-9157-4e7d-9625-dfe405cf30e0/ - 307 [0.10ms] +2026-09-05 20:52:58,676 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/af0fde9d-9157-4e7d-9625-dfe405cf30e0 - 404 [1.50ms] +2026-09-05 20:52:58,677 INFO http_request_logger GET /api/v1/guardrails/validators/configs/af0fde9d-9157-4e7d-9625-dfe405cf30e0/ - 307 [0.09ms] +2026-09-05 20:52:58,679 INFO http_request_logger GET /api/v1/guardrails/validators/configs/af0fde9d-9157-4e7d-9625-dfe405cf30e0 - 200 [1.49ms] +2026-09-05 20:52:58,799 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-05 20:52:58,799 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-05 20:52:58,890 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:01,176 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:01,185 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:02,209 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:02,220 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:03,337 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:03,345 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:04,507 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:04,519 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:05,856 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:05,868 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:07,478 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:07,478 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:53:08,711 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:53:08,898 INFO watchfiles.main 4 changes detected +2026-09-05 20:53:16,697 INFO watchfiles.main 3 changes detected +2026-09-05 20:53:16,698 WARNING uvicorn.error WatchFiles detected changes in 'app/tests/test_toxicity_hub_validators.py'. Reloading... +2026-09-05 20:53:16,796 INFO uvicorn.error Shutting down +2026-09-05 20:53:16,904 INFO uvicorn.error Waiting for application shutdown. +2026-09-05 20:53:16,908 INFO uvicorn.error Application shutdown complete. +2026-09-05 20:53:16,909 INFO uvicorn.error Finished server process [60805] +2026-09-05 20:53:17,338 INFO watchfiles.main 1 change detected +2026-09-05 20:53:21,960 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:53:22,777 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-05 20:53:22,778 INFO uvicorn.error Started server process [60944] +2026-09-05 20:53:22,778 INFO uvicorn.error Waiting for application startup. +2026-09-05 20:53:22,779 INFO uvicorn.error Application startup complete. +2026-09-05 20:53:34,370 INFO watchfiles.main 3 changes detected +2026-09-05 20:53:38,765 INFO watchfiles.main 3 changes detected +2026-09-05 20:53:50,426 INFO presidio-analyzer Using device of type: cpu +2026-09-05 20:53:51,168 INFO watchfiles.main 3 changes detected +2026-09-05 20:53:51,201 INFO guardrails.execution request=0fe7cbdf-ae5c-4b6f-8f38-2b3cc8307603 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,202 INFO guardrails.execution request=0fe7cbdf-ae5c-4b6f-8f38-2b3cc8307603 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,205 INFO guardrails.execution request=0fe7cbdf-ae5c-4b6f-8f38-2b3cc8307603 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.201778 end=2026-09-05T20:53:51.201883 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,209 INFO http_request_logger POST /api/v1/guardrails/ - 200 [37.08ms] +2026-09-05 20:53:51,223 INFO guardrails.execution request=45b19610-b12c-49d6-a402-f524372eb9e2 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:53:51,224 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 45b19610-b12c-49d6-a402-f524372eb9e2: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:53:51,228 INFO guardrails.execution request=45b19610-b12c-49d6-a402-f524372eb9e2 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:53:51.224331 end=2026-09-05T20:53:51.224401 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:53:51,230 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.91ms] +2026-09-05 20:53:51,244 INFO guardrails.execution request=95c50fef-c994-4d73-9105-bacd6348d491 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-05 20:53:51,245 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 95c50fef-c994-4d73-9105-bacd6348d491: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-05 20:53:51,247 INFO guardrails.execution request=95c50fef-c994-4d73-9105-bacd6348d491 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:53:51.245029 end=2026-09-05T20:53:51.245081 duration_ms=0 input='' output=None +2026-09-05 20:53:51,249 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.08ms] +2026-09-05 20:53:51,264 INFO guardrails.execution request=1ce67b3f-8dbd-45e1-9b82-9c0127bc8818 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,265 INFO guardrails.execution request=1ce67b3f-8dbd-45e1-9b82-9c0127bc8818 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,267 INFO guardrails.execution request=1ce67b3f-8dbd-45e1-9b82-9c0127bc8818 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.264747 end=2026-09-05T20:53:51.264815 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,269 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.63ms] +2026-09-05 20:53:51,283 INFO guardrails.execution request=8282a101-86f5-4e3a-9476-8123447df398 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-05 20:53:51,284 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8282a101-86f5-4e3a-9476-8123447df398: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-05 20:53:51,287 INFO guardrails.execution request=8282a101-86f5-4e3a-9476-8123447df398 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-05T20:53:51.283863 end=2026-09-05T20:53:51.283939 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-05 20:53:51,289 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.98ms] +2026-09-05 20:53:51,303 INFO guardrails.execution request=0818c095-c0ab-47cf-b857-d511e89addde starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:53:51,305 INFO guardrails.execution request=0818c095-c0ab-47cf-b857-d511e89addde guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:53:51,306 INFO guardrails.execution request=0818c095-c0ab-47cf-b857-d511e89addde step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.304266 end=2026-09-05T20:53:51.304335 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-05 20:53:51,308 INFO guardrails.execution request=0818c095-c0ab-47cf-b857-d511e89addde step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.304340 end=2026-09-05T20:53:51.304439 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-05 20:53:51,310 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.22ms] +2026-09-05 20:53:51,323 INFO guardrails.execution request=dcbae32b-6eee-437e-9aa5-8eec4c6fc14b starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:53:51,327 INFO guardrails.execution request=dcbae32b-6eee-437e-9aa5-8eec4c6fc14b guardrails execution finished (passed=True) output='' +2026-09-05 20:53:51,329 INFO guardrails.execution request=dcbae32b-6eee-437e-9aa5-8eec4c6fc14b step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.325507 end=2026-09-05T20:53:51.325569 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-05 20:53:51,330 INFO guardrails.execution request=dcbae32b-6eee-437e-9aa5-8eec4c6fc14b step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.325574 end=2026-09-05T20:53:51.326975 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-05 20:53:51,333 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.68ms] +2026-09-05 20:53:51,353 INFO guardrails.execution request=1026ea1e-dc9b-44a3-ad24-133ed066e2a1 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:53:51,357 INFO guardrails.execution request=1026ea1e-dc9b-44a3-ad24-133ed066e2a1 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:53:51,359 INFO guardrails.execution request=1026ea1e-dc9b-44a3-ad24-133ed066e2a1 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.354358 end=2026-09-05T20:53:51.354429 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-05 20:53:51,361 INFO guardrails.execution request=1026ea1e-dc9b-44a3-ad24-133ed066e2a1 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.354433 end=2026-09-05T20:53:51.356629 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-05 20:53:51,363 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.98ms] +2026-09-05 20:53:51,378 INFO guardrails.execution request=4f6180fb-5a10-4581-9a34-40643a7ecac0 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:53:51,379 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4f6180fb-5a10-4581-9a34-40643a7ecac0: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-05 20:53:51,383 INFO guardrails.execution request=4f6180fb-5a10-4581-9a34-40643a7ecac0 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.378489 end=2026-09-05T20:53:51.378555 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-05 20:53:51,384 INFO guardrails.execution request=4f6180fb-5a10-4581-9a34-40643a7ecac0 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.378559 end=2026-09-05T20:53:51.379478 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-05 20:53:51,386 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.55ms] +2026-09-05 20:53:51,400 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,404 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,408 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.401297 end=2026-09-05T20:53:51.401365 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,412 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.401370 end=2026-09-05T20:53:51.401427 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,414 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.401431 end=2026-09-05T20:53:51.402304 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,416 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.402308 end=2026-09-05T20:53:51.402860 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,418 INFO guardrails.execution request=7e755693-32de-4e10-b8a4-6539e78138bd step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.402864 end=2026-09-05T20:53:51.403480 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-05 20:53:51,421 INFO http_request_logger POST /api/v1/guardrails/ - 200 [31.39ms] +2026-09-05 20:53:51,439 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:53:51,442 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:53:51,444 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-05T20:53:51.440020 end=2026-09-05T20:53:51.440084 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:53:51,445 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.440088 end=2026-09-05T20:53:51.440945 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-05 20:53:51,447 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.440950 end=2026-09-05T20:53:51.441434 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:53:51,448 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.441440 end=2026-09-05T20:53:51.441503 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-05 20:53:51,449 INFO guardrails.execution request=5406e87d-1422-47cc-9752-72dee47fcb78 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.441506 end=2026-09-05T20:53:51.442098 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-05 20:53:51,452 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.41ms] +2026-09-05 20:53:51,470 INFO app.crud.ban_list created ban list id=f682b128-686a-47cc-a1ac-ab36c9bb8e1a org=1 project=1 +2026-09-05 20:53:51,471 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [6.16ms] +2026-09-05 20:53:51,475 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.87ms] +2026-09-05 20:53:51,480 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.96ms] +2026-09-05 20:53:51,486 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [2.03ms] +2026-09-05 20:53:51,492 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.04ms] +2026-09-05 20:53:51,497 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.93ms] +2026-09-05 20:53:51,507 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.71ms] +2026-09-05 20:53:51,515 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.14ms] +2026-09-05 20:53:51,519 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.66ms] +2026-09-05 20:53:51,527 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.00ms] +2026-09-05 20:53:51,536 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.65ms] +2026-09-05 20:53:51,539 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.13ms] +2026-09-05 20:53:51,544 INFO app.crud.ban_list created ban list id=83d7ee45-199e-4842-9465-3395d1a04724 org=1 project=1 +2026-09-05 20:53:51,545 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.13ms] +2026-09-05 20:53:51,545 INFO http_request_logger GET /api/v1/guardrails/ban_lists/83d7ee45-199e-4842-9465-3395d1a04724/ - 307 [0.10ms] +2026-09-05 20:53:51,548 INFO http_request_logger GET /api/v1/guardrails/ban_lists/83d7ee45-199e-4842-9465-3395d1a04724 - 200 [2.56ms] +2026-09-05 20:53:51,556 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.61ms] +2026-09-05 20:53:51,556 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8d3fe111-cea2-4872-b6e2-1e6df6d9f06e/ - 307 [0.09ms] +2026-09-05 20:53:51,558 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8d3fe111-cea2-4872-b6e2-1e6df6d9f06e - 200 [1.31ms] +2026-09-05 20:53:51,561 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9def06e6-97c6-479d-adaa-30ad42b99c10/ - 307 [0.08ms] +2026-09-05 20:53:51,563 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9def06e6-97c6-479d-adaa-30ad42b99c10 - 404 [1.48ms] +2026-09-05 20:53:51,573 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.95ms] +2026-09-05 20:53:51,573 INFO http_request_logger GET /api/v1/guardrails/ban_lists/5ae17f6f-32eb-4abf-8cef-289d8c2a2d28/ - 307 [0.09ms] +2026-09-05 20:53:51,575 INFO http_request_logger GET /api/v1/guardrails/ban_lists/5ae17f6f-32eb-4abf-8cef-289d8c2a2d28 - 403 [1.32ms] +2026-09-05 20:53:51,582 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.20ms] +2026-09-05 20:53:51,582 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/c5025211-cdc1-4dc5-b22e-9240c10ed5a0/ - 307 [0.10ms] +2026-09-05 20:53:51,589 INFO app.crud.ban_list updated ban list id=c5025211-cdc1-4dc5-b22e-9240c10ed5a0 +2026-09-05 20:53:51,589 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/c5025211-cdc1-4dc5-b22e-9240c10ed5a0 - 200 [6.53ms] +2026-09-05 20:53:51,595 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.56ms] +2026-09-05 20:53:51,596 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ff7c0ed0-da5c-4df7-b346-0824be13ca6b/ - 307 [0.08ms] +2026-09-05 20:53:51,599 INFO app.crud.ban_list updated ban list id=ff7c0ed0-da5c-4df7-b346-0824be13ca6b +2026-09-05 20:53:51,599 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ff7c0ed0-da5c-4df7-b346-0824be13ca6b - 200 [2.83ms] +2026-09-05 20:53:51,602 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/49a5af86-f35c-4569-8334-6647ce32d7ca/ - 307 [0.08ms] +2026-09-05 20:53:51,604 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/49a5af86-f35c-4569-8334-6647ce32d7ca - 404 [1.48ms] +2026-09-05 20:53:51,612 INFO app.crud.ban_list created ban list id=f86dedd7-83c4-4ec5-aed7-1cf63515d95c org=1 project=1 +2026-09-05 20:53:51,612 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.38ms] +2026-09-05 20:53:51,613 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/f86dedd7-83c4-4ec5-aed7-1cf63515d95c/ - 307 [0.09ms] +2026-09-05 20:53:51,615 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/f86dedd7-83c4-4ec5-aed7-1cf63515d95c - 403 [2.23ms] +2026-09-05 20:53:51,626 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.75ms] +2026-09-05 20:53:51,627 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/c9ef7098-f010-4678-9999-f01d18de53da/ - 307 [0.09ms] +2026-09-05 20:53:51,630 INFO app.crud.ban_list deleted ban list id=c9ef7098-f010-4678-9999-f01d18de53da +2026-09-05 20:53:51,631 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/c9ef7098-f010-4678-9999-f01d18de53da - 200 [3.36ms] +2026-09-05 20:53:51,636 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/05dd2b8f-1a9a-42b4-8a71-7ea9ae2ce26d/ - 307 [0.09ms] +2026-09-05 20:53:51,640 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/05dd2b8f-1a9a-42b4-8a71-7ea9ae2ce26d - 404 [3.04ms] +2026-09-05 20:53:51,650 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.92ms] +2026-09-05 20:53:51,650 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/835f7f0b-f2c3-4add-aea7-a2713daaf39f/ - 307 [0.09ms] +2026-09-05 20:53:51,654 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/835f7f0b-f2c3-4add-aea7-a2713daaf39f - 403 [3.11ms] +2026-09-05 20:53:51,661 INFO app.crud.ban_list created ban list id=6a669437-e040-4ac4-92b8-1c6666c7602d org=1 project=1 +2026-09-05 20:53:51,662 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.76ms] +2026-09-05 20:53:51,662 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/6a669437-e040-4ac4-92b8-1c6666c7602d/ - 307 [0.08ms] +2026-09-05 20:53:51,664 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/6a669437-e040-4ac4-92b8-1c6666c7602d - 403 [1.24ms] +2026-09-05 20:53:51,744 INFO guardrails.execution request=9ac52047-0f43-4b09-ace0-8d5c5081def3 starting guardrails execution (validators=[]) input='hello world' +2026-09-05 20:53:51,744 INFO guardrails.execution request=9ac52047-0f43-4b09-ace0-8d5c5081def3 guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:53:51,746 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.40ms] +2026-09-05 20:53:51,751 INFO guardrails.execution request=e64d307a-7e6b-4da9-8651-7996da08c182 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-05 20:53:51,751 INFO guardrails.execution request=e64d307a-7e6b-4da9-8651-7996da08c182 guardrails execution finished (passed=False) output=None +2026-09-05 20:53:51,752 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.50ms] +2026-09-05 20:53:51,757 INFO guardrails.execution request=3e74775c-e23b-4929-be20-9ede8412d3f5 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-05 20:53:51,758 INFO guardrails.execution request=3e74775c-e23b-4929-be20-9ede8412d3f5 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-05 20:53:51,759 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.88ms] +2026-09-05 20:53:51,767 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d330cf3e-886e-4bb4-8328-a27a5058a012: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-05 20:53:51,769 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.53ms] +2026-09-05 20:53:51,781 INFO guardrails.execution request=6a745f9b-73d5-408a-bf9a-dfac8aa060f0 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-05 20:53:51,782 INFO guardrails.execution request=6a745f9b-73d5-408a-bf9a-dfac8aa060f0 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:53:51,785 INFO guardrails.execution request=6a745f9b-73d5-408a-bf9a-dfac8aa060f0 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.782030 end=2026-09-05T20:53:51.782127 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:53:51,788 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.94ms] +2026-09-05 20:53:51,802 INFO guardrails.execution request=03d2b48b-9ce6-413a-bc4d-5ed65ad61cfe starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-05 20:53:51,803 INFO guardrails.execution request=03d2b48b-9ce6-413a-bc4d-5ed65ad61cfe guardrails execution finished (passed=True) output='this is clean' +2026-09-05 20:53:51,805 INFO guardrails.execution request=03d2b48b-9ce6-413a-bc4d-5ed65ad61cfe step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.802328 end=2026-09-05T20:53:51.802388 duration_ms=0 input='this is clean' output='this is clean' +2026-09-05 20:53:51,808 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.12ms] +2026-09-05 20:53:51,827 INFO guardrails.execution request=4da2b271-02a2-4e2e-a47d-4c775211a13f starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:53:51,828 INFO guardrails.execution request=4da2b271-02a2-4e2e-a47d-4c775211a13f guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:53:51,831 INFO guardrails.execution request=4da2b271-02a2-4e2e-a47d-4c775211a13f step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.827890 end=2026-09-05T20:53:51.828168 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-05 20:53:51,835 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.00ms] +2026-09-05 20:53:51,850 INFO guardrails.execution request=f7a2e7fa-cf00-41a4-a749-fd584b44cba7 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-05 20:53:51,851 INFO guardrails.execution request=f7a2e7fa-cf00-41a4-a749-fd584b44cba7 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-05 20:53:51,854 INFO guardrails.execution request=f7a2e7fa-cf00-41a4-a749-fd584b44cba7 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.850894 end=2026-09-05T20:53:51.851147 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-05 20:53:51,858 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.47ms] +2026-09-05 20:53:51,873 INFO guardrails.execution request=d62da418-3734-4a26-91b3-550eb2cb9e5c starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-05 20:53:51,875 INFO guardrails.execution request=d62da418-3734-4a26-91b3-550eb2cb9e5c guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:53:51,879 INFO guardrails.execution request=d62da418-3734-4a26-91b3-550eb2cb9e5c step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.874246 end=2026-09-05T20:53:51.874712 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-05 20:53:51,881 INFO guardrails.execution request=d62da418-3734-4a26-91b3-550eb2cb9e5c step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.874718 end=2026-09-05T20:53:51.874798 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-05 20:53:51,885 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.33ms] +2026-09-05 20:53:51,892 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.89ms] +2026-09-05 20:53:51,908 INFO guardrails.execution request=17f01c9f-f82d-42d7-8209-950e821a2b82 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:53:51,909 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 17f01c9f-f82d-42d7-8209-950e821a2b82: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:53:51,912 INFO guardrails.execution request=17f01c9f-f82d-42d7-8209-950e821a2b82 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.908776 end=2026-09-05T20:53:51.909047 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-05 20:53:51,915 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.22ms] +2026-09-05 20:53:51,933 INFO guardrails.execution request=177ab67e-175a-4ef8-a9be-635377ffe2b4 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-05 20:53:51,935 INFO guardrails.execution request=177ab67e-175a-4ef8-a9be-635377ffe2b4 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:53:51,938 INFO guardrails.execution request=177ab67e-175a-4ef8-a9be-635377ffe2b4 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.934039 end=2026-09-05T20:53:51.934332 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-05 20:53:51,942 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.10ms] +2026-09-05 20:53:51,957 INFO guardrails.execution request=99840c94-3650-4436-b364-7a8563ea63a5 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-05 20:53:51,959 INFO guardrails.execution request=99840c94-3650-4436-b364-7a8563ea63a5 guardrails execution finished (passed=True) output='' +2026-09-05 20:53:51,963 INFO guardrails.execution request=99840c94-3650-4436-b364-7a8563ea63a5 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:51.957844 end=2026-09-05T20:53:51.958892 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-05 20:53:51,966 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.11ms] +2026-09-05 20:53:51,979 INFO guardrails.execution request=378ae8af-39fd-488e-a737-26ee62d7b125 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-05 20:53:51,981 INFO guardrails.execution request=378ae8af-39fd-488e-a737-26ee62d7b125 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-05 20:53:51,984 INFO guardrails.execution request=378ae8af-39fd-488e-a737-26ee62d7b125 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:53:51.979480 end=2026-09-05T20:53:51.980347 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-05 20:53:51,987 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.24ms] +2026-09-05 20:53:52,002 INFO guardrails.execution request=1f1527eb-d96e-4469-b049-c6613ac7ef40 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-05 20:53:52,004 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1f1527eb-d96e-4469-b049-c6613ac7ef40: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-05 20:53:52,007 INFO guardrails.execution request=1f1527eb-d96e-4469-b049-c6613ac7ef40 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:52.003166 end=2026-09-05T20:53:52.004021 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-05 20:53:52,009 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.49ms] +2026-09-05 20:53:52,026 INFO guardrails.execution request=5f29e875-c4ee-44f3-94a2-4491d4e61178 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-05 20:53:52,028 INFO guardrails.execution request=5f29e875-c4ee-44f3-94a2-4491d4e61178 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:53:52,032 INFO guardrails.execution request=5f29e875-c4ee-44f3-94a2-4491d4e61178 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:52.026505 end=2026-09-05T20:53:52.027312 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-05 20:53:52,037 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.31ms] +2026-09-05 20:53:52,045 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 313385d6-4141-4495-a7aa-3be139b8e974: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:53:52,049 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.79ms] +2026-09-05 20:53:52,834 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-05 20:53:54,877 INFO guardrails.execution request=1553f0f0-1b60-4242-ba26-18745501afff starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:53:54,975 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1553f0f0-1b60-4242-ba26-18745501afff: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:53:54,980 INFO guardrails.execution request=1553f0f0-1b60-4242-ba26-18745501afff step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:54.878690 end=2026-09-05T20:53:54.975369 duration_ms=96 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:53:54,983 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2929.85ms] +2026-09-05 20:53:57,346 INFO guardrails.execution request=7db556fd-2640-4653-8c52-c8ca27d9a8f0 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-05 20:53:57,361 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7db556fd-2640-4653-8c52-c8ca27d9a8f0: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-05 20:53:57,365 INFO guardrails.execution request=7db556fd-2640-4653-8c52-c8ca27d9a8f0 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:57.347431 end=2026-09-05T20:53:57.360969 duration_ms=13 input='She slowly undressed and they had explicit sex.' output=None +2026-09-05 20:53:57,368 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2379.69ms] +2026-09-05 20:53:59,604 INFO guardrails.execution request=d4379c61-8ab8-4a5f-b5e7-2090a2f10403 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-05 20:53:59,630 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d4379c61-8ab8-4a5f-b5e7-2090a2f10403: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-05 20:53:59,638 INFO guardrails.execution request=d4379c61-8ab8-4a5f-b5e7-2090a2f10403 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:59.605103 end=2026-09-05T20:53:59.630440 duration_ms=25 input='Explicit sexual content goes here.' output=None +2026-09-05 20:53:59,643 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2269.46ms] +2026-09-05 20:53:59,668 INFO guardrails.execution request=76205860-e099-41d0-b01d-3a8447efc8b7 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-05 20:53:59,672 INFO guardrails.execution request=76205860-e099-41d0-b01d-3a8447efc8b7 guardrails execution finished (passed=True) output='' +2026-09-05 20:53:59,676 INFO guardrails.execution request=76205860-e099-41d0-b01d-3a8447efc8b7 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:53:59.669405 end=2026-09-05T20:53:59.670845 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-05 20:53:59,680 INFO guardrails.execution request=76205860-e099-41d0-b01d-3a8447efc8b7 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:53:59.670859 end=2026-09-05T20:53:59.671042 duration_ms=0 input='' output='' +2026-09-05 20:53:59,685 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.01ms] +2026-09-05 20:53:59,694 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fa3da7bf-9796-4f3f-87d4-f3d485e0bd2b: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-05 20:53:59,696 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.03ms] +2026-09-05 20:54:01,984 INFO guardrails.execution request=33bb52cf-cb71-4f13-87c1-22f8167d8619 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-05 20:54:01,987 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 33bb52cf-cb71-4f13-87c1-22f8167d8619: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-05 20:54:02,008 INFO guardrails.execution request=33bb52cf-cb71-4f13-87c1-22f8167d8619 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-05T20:54:01.985570 end=2026-09-05T20:54:01.987267 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-05 20:54:02,013 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2313.56ms] +2026-09-05 20:54:04,576 INFO guardrails.execution request=83a9e7dc-5c89-48e9-9ea6-5a097256eb3e starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-05 20:54:04,578 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 83a9e7dc-5c89-48e9-9ea6-5a097256eb3e: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-05 20:54:04,585 INFO guardrails.execution request=83a9e7dc-5c89-48e9-9ea6-5a097256eb3e step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-05T20:54:04.577453 end=2026-09-05T20:54:04.578419 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-05 20:54:04,589 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2569.30ms] +2026-09-05 20:54:04,605 INFO guardrails.execution request=531b6022-7363-4f9d-9463-956787e557ba starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-05 20:54:04,607 INFO guardrails.execution request=531b6022-7363-4f9d-9463-956787e557ba guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-05 20:54:04,610 INFO guardrails.execution request=531b6022-7363-4f9d-9463-956787e557ba step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.605689 end=2026-09-05T20:54:04.606738 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:54:04,613 INFO guardrails.execution request=531b6022-7363-4f9d-9463-956787e557ba step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.606752 end=2026-09-05T20:54:04.606867 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-05 20:54:04,617 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.34ms] +2026-09-05 20:54:04,644 INFO guardrails.execution request=32576dd9-aa50-4fbb-a325-f04a844d80e4 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-05 20:54:04,647 INFO guardrails.execution request=32576dd9-aa50-4fbb-a325-f04a844d80e4 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-05 20:54:04,651 INFO guardrails.execution request=32576dd9-aa50-4fbb-a325-f04a844d80e4 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.644914 end=2026-09-05T20:54:04.645275 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:54:04,654 INFO guardrails.execution request=32576dd9-aa50-4fbb-a325-f04a844d80e4 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.645280 end=2026-09-05T20:54:04.646374 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:54:04,657 INFO guardrails.execution request=32576dd9-aa50-4fbb-a325-f04a844d80e4 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.646379 end=2026-09-05T20:54:04.646447 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-05 20:54:04,661 INFO http_request_logger POST /api/v1/guardrails/ - 200 [39.11ms] +2026-09-05 20:54:04,677 INFO guardrails.execution request=3413e423-0aee-42f2-a8ba-b7410b676738 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-05 20:54:04,678 INFO guardrails.execution request=3413e423-0aee-42f2-a8ba-b7410b676738 guardrails execution finished (passed=True) output='this contains b' +2026-09-05 20:54:04,681 INFO guardrails.execution request=3413e423-0aee-42f2-a8ba-b7410b676738 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-05T20:54:04.677601 end=2026-09-05T20:54:04.677714 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-05 20:54:04,683 INFO guardrails.execution request=3413e423-0aee-42f2-a8ba-b7410b676738 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-05T20:54:04.677720 end=2026-09-05T20:54:04.677910 duration_ms=0 input='this contains b' output='this contains b' +2026-09-05 20:54:04,687 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.79ms] +2026-09-05 20:54:04,701 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 714ef337-1d9f-494b-82da-55de53e9d213: 404: Ban list not found +2026-09-05 20:54:04,704 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.00ms] +2026-09-05 20:54:04,711 INFO guardrails.execution request=de8ff63d-bfb8-4cf9-a5e5-707c72e2629b starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-05 20:54:04,712 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log de8ff63d-bfb8-4cf9-a5e5-707c72e2629b: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 360, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-05 20:54:04,713 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.48ms] +2026-09-05 20:54:04,718 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-05 20:54:04,718 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.11ms] +2026-09-05 20:54:04,729 INFO app.crud.llm_prompt_config created llm prompt config id=06d319b6-1017-43e3-bbef-831e74f334ad org=1 project=1 +2026-09-05 20:54:04,730 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [8.77ms] +2026-09-05 20:54:04,736 INFO app.crud.llm_prompt_config created llm prompt config id=3700cecb-8fea-43d0-900b-8a385951bb7a org=1 project=1 +2026-09-05 20:54:04,737 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.97ms] +2026-09-05 20:54:04,742 INFO app.crud.llm_prompt_config created llm prompt config id=5f04fb80-e9f3-4771-82a0-a5beed8a8542 org=1 project=1 +2026-09-05 20:54:04,743 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.03ms] +2026-09-05 20:54:04,747 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.95ms] +2026-09-05 20:54:04,752 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.87ms] +2026-09-05 20:54:04,756 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.88ms] +2026-09-05 20:54:04,760 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.38ms] +2026-09-05 20:54:04,768 INFO app.crud.llm_prompt_config created llm prompt config id=171fe78d-3244-4e95-8d37-1719677893b3 org=1 project=1 +2026-09-05 20:54:04,768 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-05 20:54:04,772 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.76ms] +2026-09-05 20:54:04,776 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.74ms] +2026-09-05 20:54:04,783 INFO app.crud.llm_prompt_config created llm prompt config id=08cafc17-ba28-458b-adfe-f24fa20b9cce org=1 project=1 +2026-09-05 20:54:04,783 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.68ms] +2026-09-05 20:54:04,786 INFO app.crud.llm_prompt_config created llm prompt config id=b2303b2b-10e7-4de9-9df2-cfb53c58a904 org=1 project=1 +2026-09-05 20:54:04,787 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.42ms] +2026-09-05 20:54:04,790 INFO app.crud.llm_prompt_config created llm prompt config id=7c06e000-f1a0-45c1-a08c-1721d65a5247 org=1 project=1 +2026-09-05 20:54:04,791 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.17ms] +2026-09-05 20:54:04,794 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.09ms] +2026-09-05 20:54:04,801 INFO app.crud.llm_prompt_config created llm prompt config id=3a0a6a49-9a8a-4b33-bf7a-fe512a394457 org=1 project=1 +2026-09-05 20:54:04,802 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.55ms] +2026-09-05 20:54:04,805 INFO app.crud.llm_prompt_config created llm prompt config id=db3f42c1-99cf-4ba2-b93a-5e00f680bf67 org=1 project=1 +2026-09-05 20:54:04,805 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.27ms] +2026-09-05 20:54:04,809 INFO app.crud.llm_prompt_config created llm prompt config id=56cbfdb7-f47c-4cb4-9422-ac3e70429204 org=1 project=1 +2026-09-05 20:54:04,809 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.42ms] +2026-09-05 20:54:04,813 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.29ms] +2026-09-05 20:54:04,820 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.29ms] +2026-09-05 20:54:04,827 INFO app.crud.llm_prompt_config created llm prompt config id=bbf4eeb9-4f32-4229-8088-b24468503989 org=1 project=1 +2026-09-05 20:54:04,827 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.86ms] +2026-09-05 20:54:04,830 INFO app.crud.llm_prompt_config created llm prompt config id=d9aca35a-f05e-4010-9ccf-c6f2b11fccc0 org=1 project=1 +2026-09-05 20:54:04,831 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.09ms] +2026-09-05 20:54:04,834 INFO app.crud.llm_prompt_config created llm prompt config id=44b7205e-4d21-422e-b968-18fb8d831192 org=1 project=1 +2026-09-05 20:54:04,834 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.28ms] +2026-09-05 20:54:04,837 INFO app.crud.llm_prompt_config created llm prompt config id=816be8f5-b1e5-4e88-aefd-1c2b32914cd9 org=1 project=1 +2026-09-05 20:54:04,837 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.49ms] +2026-09-05 20:54:04,840 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.09ms] +2026-09-05 20:54:04,846 INFO app.crud.llm_prompt_config created llm prompt config id=e6306402-f473-4c22-b32e-462ad1580e0f org=1 project=1 +2026-09-05 20:54:04,847 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.77ms] +2026-09-05 20:54:04,849 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.47ms] +2026-09-05 20:54:04,854 INFO app.crud.llm_prompt_config created llm prompt config id=40f044f6-8a82-467c-a89b-f2e8ffa206c5 org=1 project=1 +2026-09-05 20:54:04,855 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.63ms] +2026-09-05 20:54:04,857 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/40f044f6-8a82-467c-a89b-f2e8ffa206c5 - 200 [1.72ms] +2026-09-05 20:54:04,862 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/17c00bf2-60c5-46c3-ae5a-4b1079580edd - 404 [2.24ms] +2026-09-05 20:54:04,870 INFO app.crud.llm_prompt_config created llm prompt config id=6447fb6b-91c7-40a6-bc94-cbb83800e716 org=1 project=1 +2026-09-05 20:54:04,871 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.59ms] +2026-09-05 20:54:04,874 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/6447fb6b-91c7-40a6-bc94-cbb83800e716 - 404 [2.34ms] +2026-09-05 20:54:04,880 INFO app.crud.llm_prompt_config created llm prompt config id=1778615c-bfc3-44ca-a2fa-6b682664f4c5 org=1 project=1 +2026-09-05 20:54:04,881 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.91ms] +2026-09-05 20:54:04,887 INFO app.crud.llm_prompt_config updated llm prompt config id=1778615c-bfc3-44ca-a2fa-6b682664f4c5 +2026-09-05 20:54:04,887 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1778615c-bfc3-44ca-a2fa-6b682664f4c5 - 200 [6.06ms] +2026-09-05 20:54:04,893 INFO app.crud.llm_prompt_config created llm prompt config id=74d3b9ce-69b6-4de4-94a7-fe3b463aa006 org=1 project=1 +2026-09-05 20:54:04,893 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.56ms] +2026-09-05 20:54:04,896 INFO app.crud.llm_prompt_config updated llm prompt config id=74d3b9ce-69b6-4de4-94a7-fe3b463aa006 +2026-09-05 20:54:04,896 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/74d3b9ce-69b6-4de4-94a7-fe3b463aa006 - 200 [2.73ms] +2026-09-05 20:54:04,901 INFO app.crud.llm_prompt_config created llm prompt config id=21750674-724b-4738-b799-f4308fa3a7e6 org=1 project=1 +2026-09-05 20:54:04,902 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.43ms] +2026-09-05 20:54:04,906 INFO app.crud.llm_prompt_config updated llm prompt config id=21750674-724b-4738-b799-f4308fa3a7e6 +2026-09-05 20:54:04,907 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/21750674-724b-4738-b799-f4308fa3a7e6 - 200 [4.62ms] +2026-09-05 20:54:04,908 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/21750674-724b-4738-b799-f4308fa3a7e6 - 200 [1.34ms] +2026-09-05 20:54:04,913 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/56f90ae5-17e4-484a-9b8a-781928ed47d3 - 404 [1.61ms] +2026-09-05 20:54:04,918 INFO app.crud.llm_prompt_config created llm prompt config id=d3a7bb48-d3c6-4258-b138-4d723780b005 org=1 project=1 +2026-09-05 20:54:04,918 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.54ms] +2026-09-05 20:54:04,920 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/d3a7bb48-d3c6-4258-b138-4d723780b005 - 404 [1.69ms] +2026-09-05 20:54:04,926 INFO app.crud.llm_prompt_config created llm prompt config id=1e7f5c4c-5bdf-462a-82cd-cdeec1918584 org=1 project=1 +2026-09-05 20:54:04,927 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.44ms] +2026-09-05 20:54:04,929 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1e7f5c4c-5bdf-462a-82cd-cdeec1918584 - 422 [1.40ms] +2026-09-05 20:54:04,934 INFO app.crud.llm_prompt_config created llm prompt config id=45ce161f-0bfe-400e-9f14-5cd938a5adc5 org=1 project=1 +2026-09-05 20:54:04,934 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.78ms] +2026-09-05 20:54:04,936 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/45ce161f-0bfe-400e-9f14-5cd938a5adc5 - 422 [1.36ms] +2026-09-05 20:54:04,943 INFO app.crud.llm_prompt_config created llm prompt config id=ed3d4335-876c-42cd-a692-ed74fbf6ccbf org=1 project=1 +2026-09-05 20:54:04,944 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.44ms] +2026-09-05 20:54:04,946 INFO app.crud.llm_prompt_config updated llm prompt config id=ed3d4335-876c-42cd-a692-ed74fbf6ccbf +2026-09-05 20:54:04,947 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ed3d4335-876c-42cd-a692-ed74fbf6ccbf - 200 [2.85ms] +2026-09-05 20:54:04,952 INFO app.crud.llm_prompt_config created llm prompt config id=55f77ca3-2692-40c8-9885-cc63782e5e5c org=1 project=1 +2026-09-05 20:54:04,953 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.63ms] +2026-09-05 20:54:04,955 INFO app.crud.llm_prompt_config updated llm prompt config id=55f77ca3-2692-40c8-9885-cc63782e5e5c +2026-09-05 20:54:04,956 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/55f77ca3-2692-40c8-9885-cc63782e5e5c - 200 [2.67ms] +2026-09-05 20:54:04,963 INFO app.crud.llm_prompt_config created llm prompt config id=df265439-9b59-471e-91f7-78e322b8c86b org=1 project=1 +2026-09-05 20:54:04,964 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.96ms] +2026-09-05 20:54:04,966 INFO app.crud.llm_prompt_config deleted llm prompt config id=df265439-9b59-471e-91f7-78e322b8c86b +2026-09-05 20:54:04,966 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/df265439-9b59-471e-91f7-78e322b8c86b - 200 [2.10ms] +2026-09-05 20:54:04,971 INFO app.crud.llm_prompt_config created llm prompt config id=e49268fd-3dde-4970-967a-49a16f498d9c org=1 project=1 +2026-09-05 20:54:04,972 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.66ms] +2026-09-05 20:54:04,974 INFO app.crud.llm_prompt_config deleted llm prompt config id=e49268fd-3dde-4970-967a-49a16f498d9c +2026-09-05 20:54:04,974 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/e49268fd-3dde-4970-967a-49a16f498d9c - 200 [1.87ms] +2026-09-05 20:54:04,976 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.55ms] +2026-09-05 20:54:04,982 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/80fac674-fc70-49b4-a137-a280e9c93839 - 404 [3.08ms] +2026-09-05 20:54:04,991 INFO app.crud.llm_prompt_config created llm prompt config id=ecf25ded-33b9-40c2-8000-8a37084b87ac org=1 project=1 +2026-09-05 20:54:04,991 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.53ms] +2026-09-05 20:54:04,993 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/ecf25ded-33b9-40c2-8000-8a37084b87ac - 404 [1.76ms] +2026-09-05 20:54:05,101 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='hello' +2026-09-05 20:54:05,101 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=True) output='clean text' +2026-09-05 20:54:05,103 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:54:05,103 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,105 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 468f709a-11bf-4029-99a5-7c7e7bb20ab3: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-05 20:54:05,108 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:54:05,108 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,111 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='bad text' +2026-09-05 20:54:05,111 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,137 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-05 20:54:05,137 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,139 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='some input text' +2026-09-05 20:54:05,139 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,142 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-05 20:54:05,142 INFO guardrails.execution request=468f709a-11bf-4029-99a5-7c7e7bb20ab3 guardrails execution finished (passed=False) output=None +2026-09-05 20:54:05,144 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 468f709a-11bf-4029-99a5-7c7e7bb20ab3: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-05 20:54:05,147 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 468f709a-11bf-4029-99a5-7c7e7bb20ab3: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 344, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-05 20:54:05,166 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:54:05,168 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:54:05,171 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-05 20:54:05,185 INFO app.crud.validator_config created validator config id=545860c9-1b6f-4f03-8f1d-6931be50ba5d org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:54:05,186 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [6.20ms] +2026-09-05 20:54:05,196 INFO app.crud.validator_config created validator config id=7792abab-40bc-4490-8609-77cdccc1a3d0 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:54:05,196 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.89ms] +2026-09-05 20:54:05,199 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-05 20:54:05,199 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [2.30ms] +2026-09-05 20:54:05,205 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [1.16ms] +2026-09-05 20:54:05,211 INFO app.crud.validator_config created validator config id=8196733e-0d9f-417c-b309-2b8e4e69912e org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:54:05,212 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.38ms] +2026-09-05 20:54:05,215 INFO app.crud.validator_config created validator config id=5b3dbc92-3160-4b10-8b4a-a5d77c216c40 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:54:05,215 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.94ms] +2026-09-05 20:54:05,218 INFO app.crud.validator_config created validator config id=8f26fa50-9d7b-4c8c-9cfa-e4a3a64935db org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:54:05,219 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.06ms] +2026-09-05 20:54:05,221 INFO app.crud.validator_config created validator config id=03117131-c6ce-4c22-bbb8-5f2c6459b177 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:54:05,222 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.87ms] +2026-09-05 20:54:05,225 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.45ms] +2026-09-05 20:54:05,226 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8196733e-0d9f-417c-b309-2b8e4e69912e/ - 307 [0.15ms] +2026-09-05 20:54:05,228 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8196733e-0d9f-417c-b309-2b8e4e69912e - 200 [1.79ms] +2026-09-05 20:54:05,228 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5b3dbc92-3160-4b10-8b4a-a5d77c216c40/ - 307 [0.11ms] +2026-09-05 20:54:05,230 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5b3dbc92-3160-4b10-8b4a-a5d77c216c40 - 200 [1.72ms] +2026-09-05 20:54:05,231 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8f26fa50-9d7b-4c8c-9cfa-e4a3a64935db/ - 307 [0.14ms] +2026-09-05 20:54:05,233 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8f26fa50-9d7b-4c8c-9cfa-e4a3a64935db - 200 [1.70ms] +2026-09-05 20:54:05,234 INFO http_request_logger GET /api/v1/guardrails/validators/configs/03117131-c6ce-4c22-bbb8-5f2c6459b177/ - 307 [0.13ms] +2026-09-05 20:54:05,236 INFO http_request_logger GET /api/v1/guardrails/validators/configs/03117131-c6ce-4c22-bbb8-5f2c6459b177 - 200 [1.70ms] +2026-09-05 20:54:05,243 INFO app.crud.validator_config created validator config id=fed88e20-6122-469c-809f-f62f73db39dc org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:54:05,244 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.64ms] +2026-09-05 20:54:05,246 INFO app.crud.validator_config created validator config id=33d9e91a-7398-4a74-9eab-0fc010f46f4b org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:54:05,247 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.65ms] +2026-09-05 20:54:05,249 INFO app.crud.validator_config created validator config id=3bc3acd5-7e81-42e0-a601-ab72e9378f06 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:54:05,250 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.63ms] +2026-09-05 20:54:05,250 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fed88e20-6122-469c-809f-f62f73db39dc/ - 307 [0.12ms] +2026-09-05 20:54:05,254 INFO app.crud.validator_config updated validator config id=fed88e20-6122-469c-809f-f62f73db39dc +2026-09-05 20:54:05,255 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fed88e20-6122-469c-809f-f62f73db39dc - 200 [3.89ms] +2026-09-05 20:54:05,255 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/33d9e91a-7398-4a74-9eab-0fc010f46f4b/ - 307 [0.12ms] +2026-09-05 20:54:05,258 INFO app.crud.validator_config updated validator config id=33d9e91a-7398-4a74-9eab-0fc010f46f4b +2026-09-05 20:54:05,259 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/33d9e91a-7398-4a74-9eab-0fc010f46f4b - 200 [3.29ms] +2026-09-05 20:54:05,259 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3bc3acd5-7e81-42e0-a601-ab72e9378f06/ - 307 [0.13ms] +2026-09-05 20:54:05,263 INFO app.crud.validator_config updated validator config id=3bc3acd5-7e81-42e0-a601-ab72e9378f06 +2026-09-05 20:54:05,263 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3bc3acd5-7e81-42e0-a601-ab72e9378f06 - 200 [3.69ms] +2026-09-05 20:54:05,266 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.06ms] +2026-09-05 20:54:05,274 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.02ms] +2026-09-05 20:54:05,283 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.52ms] +2026-09-05 20:54:05,291 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.16ms] +2026-09-05 20:54:05,297 INFO app.crud.validator_config created validator config id=2512be76-8861-49cc-ae27-6422013c39e8 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:54:05,297 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.26ms] +2026-09-05 20:54:05,300 INFO app.crud.validator_config created validator config id=d1040015-fc84-4d6b-a261-82188e77d77d org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:54:05,300 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.60ms] +2026-09-05 20:54:05,303 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.18ms] +2026-09-05 20:54:05,309 INFO app.crud.validator_config created validator config id=676f2eeb-4516-4688-9513-d8d666922a09 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-05 20:54:05,310 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.01ms] +2026-09-05 20:54:05,313 INFO app.crud.validator_config created validator config id=1a2554d0-ea3f-490c-ac9f-e7a012567745 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-05 20:54:05,313 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.23ms] +2026-09-05 20:54:05,315 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.75ms] +2026-09-05 20:54:05,321 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [1.07ms] +2026-09-05 20:54:05,326 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.76ms] +2026-09-05 20:54:05,332 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.62ms] +2026-09-05 20:54:05,333 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ee6a4821-36cf-450b-acec-eee7ca4e678f/ - 307 [0.09ms] +2026-09-05 20:54:05,335 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ee6a4821-36cf-450b-acec-eee7ca4e678f - 200 [1.35ms] +2026-09-05 20:54:05,338 INFO http_request_logger GET /api/v1/guardrails/validators/configs/f6edaaef-a0d5-4fba-a346-65c9ad76452f/ - 307 [0.09ms] +2026-09-05 20:54:05,339 INFO http_request_logger GET /api/v1/guardrails/validators/configs/f6edaaef-a0d5-4fba-a346-65c9ad76452f - 404 [1.38ms] +2026-09-05 20:54:05,342 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.10ms] +2026-09-05 20:54:05,344 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [1.10ms] +2026-09-05 20:54:05,348 INFO app.crud.validator_config created validator config id=0d1671b0-0820-41d2-9192-6b4b2263a395 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-05 20:54:05,349 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.47ms] +2026-09-05 20:54:05,349 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0d1671b0-0820-41d2-9192-6b4b2263a395/ - 307 [0.08ms] +2026-09-05 20:54:05,351 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0d1671b0-0820-41d2-9192-6b4b2263a395 - 404 [1.19ms] +2026-09-05 20:54:05,357 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.78ms] +2026-09-05 20:54:05,357 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/5b4fc3c0-da74-4d48-bb0e-75b87d4c05e0/ - 307 [0.08ms] +2026-09-05 20:54:05,360 INFO app.crud.validator_config updated validator config id=5b4fc3c0-da74-4d48-bb0e-75b87d4c05e0 +2026-09-05 20:54:05,360 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/5b4fc3c0-da74-4d48-bb0e-75b87d4c05e0 - 200 [2.65ms] +2026-09-05 20:54:05,366 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.65ms] +2026-09-05 20:54:05,367 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8536d03f-910a-4144-9e51-e7da84571671/ - 307 [0.09ms] +2026-09-05 20:54:05,369 INFO app.crud.validator_config updated validator config id=8536d03f-910a-4144-9e51-e7da84571671 +2026-09-05 20:54:05,370 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8536d03f-910a-4144-9e51-e7da84571671 - 200 [2.50ms] +2026-09-05 20:54:05,372 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/94705e4e-334a-4fd7-b77a-e3ddf0cff969/ - 307 [0.09ms] +2026-09-05 20:54:05,374 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/94705e4e-334a-4fd7-b77a-e3ddf0cff969 - 404 [1.47ms] +2026-09-05 20:54:05,380 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.55ms] +2026-09-05 20:54:05,381 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/6d8210d8-6783-4e86-ae9b-0858fe7e34b0/ - 307 [0.09ms] +2026-09-05 20:54:05,382 INFO app.crud.validator_config deleted validator config id=6d8210d8-6783-4e86-ae9b-0858fe7e34b0 +2026-09-05 20:54:05,383 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/6d8210d8-6783-4e86-ae9b-0858fe7e34b0 - 200 [1.76ms] +2026-09-05 20:54:05,383 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6d8210d8-6783-4e86-ae9b-0858fe7e34b0/ - 307 [0.08ms] +2026-09-05 20:54:05,384 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6d8210d8-6783-4e86-ae9b-0858fe7e34b0 - 404 [1.15ms] +2026-09-05 20:54:05,387 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/140f3f5b-b940-4fdc-bd90-583c408e7a1a/ - 307 [0.20ms] +2026-09-05 20:54:05,389 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/140f3f5b-b940-4fdc-bd90-583c408e7a1a - 404 [1.26ms] +2026-09-05 20:54:05,395 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.65ms] +2026-09-05 20:54:05,395 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/6eef8418-9a70-44a4-9bc6-c4ef3cc0f885/ - 307 [0.09ms] +2026-09-05 20:54:05,397 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/6eef8418-9a70-44a4-9bc6-c4ef3cc0f885 - 404 [1.40ms] +2026-09-05 20:54:05,397 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6eef8418-9a70-44a4-9bc6-c4ef3cc0f885/ - 307 [0.08ms] +2026-09-05 20:54:05,399 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6eef8418-9a70-44a4-9bc6-c4ef3cc0f885 - 200 [1.21ms] +2026-09-05 20:54:05,491 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-05 20:54:05,492 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-05 20:54:05,558 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:07,365 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:07,377 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:08,626 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:08,640 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:10,070 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:10,083 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:11,578 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:11,589 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:12,758 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:12,766 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:13,931 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:13,934 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-05 20:54:15,271 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-05 20:54:15,397 INFO watchfiles.main 4 changes detected +2026-09-05 20:54:19,708 INFO watchfiles.main 6 changes detected +2026-09-05 21:02:32,207 INFO watchfiles.main 3 changes detected +2026-09-05 21:03:17,651 INFO watchfiles.main 3 changes detected +2026-09-06 09:25:19,102 INFO watchfiles.main 3 changes detected +2026-09-06 09:28:12,801 INFO watchfiles.main 3 changes detected +2026-09-06 09:28:16,902 INFO watchfiles.main 3 changes detected +2026-09-06 09:37:32,830 INFO watchfiles.main 2 changes detected +2026-09-08 14:18:24,240 INFO presidio-analyzer Using device of type: cpu +2026-09-08 14:18:25,500 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 14:18:25,529 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-08 14:18:25,529 ERROR uvicorn.error [Errno 48] Address already in use +2026-09-08 14:19:00,940 INFO presidio-analyzer Using device of type: cpu +2026-09-08 14:19:01,834 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 14:19:01,866 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-08 14:19:01,867 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-08 14:19:01,867 INFO uvicorn.error Started reloader process [31730] using WatchFiles +2026-09-08 14:19:06,431 INFO presidio-analyzer Using device of type: cpu +2026-09-08 14:19:07,166 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 14:19:07,167 INFO uvicorn.error Started server process [31737] +2026-09-08 14:19:07,167 INFO uvicorn.error Waiting for application startup. +2026-09-08 14:19:07,170 INFO uvicorn.error Application startup complete. +2026-09-08 14:21:09,244 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [91.86ms] +2026-09-08 14:21:09,990 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-08 14:21:09,990 INFO presidio-analyzer registry not provided, creating default. +2026-09-08 14:21:09,996 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-08 14:21:09,997 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-08 14:21:09,998 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-08 14:21:09,999 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-08 14:21:09,999 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-08 14:21:09,999 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-08 14:21:09,999 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-08 14:21:09,999 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-08 14:21:09,999 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-08 14:21:09,999 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-08 14:21:10,000 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-08 14:21:10,000 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-08 14:21:10,018 INFO guardrails.execution request=0334d02b-f3ea-4c0b-bb77-6c4975921d90 starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278' +2026-09-08 14:21:10,034 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-08 14:21:10,090 INFO guardrails.execution request=0334d02b-f3ea-4c0b-bb77-6c4975921d90 guardrails execution finished (passed=True) output=' phone number is ' +2026-09-08 14:21:10,099 INFO guardrails.execution request=0334d02b-f3ea-4c0b-bb77-6c4975921d90 step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-08T14:21:10.020994 end=2026-09-08T14:21:10.090001 duration_ms=69 input='Amit Gupta phone number is 919611188278' output=' phone number is ' +2026-09-08 14:21:10,110 INFO http_request_logger POST /api/v1/guardrails/ - 200 [853.22ms] +2026-09-08 17:48:49,995 INFO watchfiles.main 3 changes detected +2026-09-08 17:48:50,043 WARNING uvicorn.error WatchFiles detected changes in 'app/schemas/guardrail_config.py'. Reloading... +2026-09-08 17:48:50,124 INFO uvicorn.error Shutting down +2026-09-08 17:48:50,232 INFO uvicorn.error Waiting for application shutdown. +2026-09-08 17:48:50,236 INFO uvicorn.error Application shutdown complete. +2026-09-08 17:48:50,237 INFO uvicorn.error Finished server process [31737] +2026-09-08 17:48:50,675 INFO watchfiles.main 1 change detected +2026-09-08 17:48:51,032 INFO watchfiles.main 3 changes detected +2026-09-08 17:48:54,010 INFO watchfiles.main 3 changes detected +2026-09-08 17:48:54,011 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-08 17:48:56,518 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:48:57,389 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 17:48:57,390 INFO uvicorn.error Started server process [35896] +2026-09-08 17:48:57,390 INFO uvicorn.error Waiting for application startup. +2026-09-08 17:48:57,391 INFO uvicorn.error Application startup complete. +2026-09-08 17:48:57,392 INFO uvicorn.error Shutting down +2026-09-08 17:48:57,493 INFO uvicorn.error Waiting for application shutdown. +2026-09-08 17:48:57,493 INFO uvicorn.error Application shutdown complete. +2026-09-08 17:48:57,493 INFO uvicorn.error Finished server process [35896] +2026-09-08 17:48:57,880 INFO watchfiles.main 4 changes detected +2026-09-08 17:49:01,243 INFO watchfiles.main 3 changes detected +2026-09-08 17:49:01,245 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-08 17:49:01,697 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:49:02,380 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 17:49:02,380 INFO uvicorn.error Started server process [35914] +2026-09-08 17:49:02,381 INFO uvicorn.error Waiting for application startup. +2026-09-08 17:49:02,381 INFO uvicorn.error Application startup complete. +2026-09-08 17:49:02,381 INFO uvicorn.error Shutting down +2026-09-08 17:49:02,483 INFO uvicorn.error Waiting for application shutdown. +2026-09-08 17:49:02,483 INFO uvicorn.error Application shutdown complete. +2026-09-08 17:49:02,483 INFO uvicorn.error Finished server process [35914] +2026-09-08 17:49:02,866 INFO watchfiles.main 4 changes detected +2026-09-08 17:49:06,711 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:49:07,420 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 17:49:07,421 INFO uvicorn.error Started server process [35924] +2026-09-08 17:49:07,421 INFO uvicorn.error Waiting for application startup. +2026-09-08 17:49:07,422 INFO uvicorn.error Application startup complete. +2026-09-08 17:49:09,308 INFO watchfiles.main 3 changes detected +2026-09-08 17:49:09,309 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-08 17:49:09,341 INFO uvicorn.error Shutting down +2026-09-08 17:49:09,443 INFO uvicorn.error Waiting for application shutdown. +2026-09-08 17:49:09,446 INFO uvicorn.error Application shutdown complete. +2026-09-08 17:49:09,447 INFO uvicorn.error Finished server process [35924] +2026-09-08 17:49:09,842 INFO watchfiles.main 1 change detected +2026-09-08 17:49:13,425 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:49:14,010 INFO watchfiles.main 3 changes detected +2026-09-08 17:49:14,300 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-08 17:49:14,301 INFO uvicorn.error Started server process [35935] +2026-09-08 17:49:14,301 INFO uvicorn.error Waiting for application startup. +2026-09-08 17:49:14,302 INFO uvicorn.error Application startup complete. +2026-09-08 17:49:14,369 INFO watchfiles.main 6 changes detected +2026-09-08 17:49:27,831 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:49:28,664 INFO guardrails.execution request=1420d1f9-c415-4a9e-b8e0-f1a6bd686402 starting guardrails execution (validators=[]) input='hello world' +2026-09-08 17:49:28,664 INFO guardrails.execution request=1420d1f9-c415-4a9e-b8e0-f1a6bd686402 guardrails execution finished (passed=True) output='clean text' +2026-09-08 17:49:28,666 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.63ms] +2026-09-08 17:49:28,673 INFO guardrails.execution request=cc61585d-57db-43cf-bdc6-60f66fac76d7 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-08 17:49:28,673 INFO guardrails.execution request=cc61585d-57db-43cf-bdc6-60f66fac76d7 guardrails execution finished (passed=False) output=None +2026-09-08 17:49:28,675 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.34ms] +2026-09-08 17:49:28,681 INFO guardrails.execution request=ccb28745-9b2c-4206-86d5-77473136d98b starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-08 17:49:28,681 INFO guardrails.execution request=ccb28745-9b2c-4206-86d5-77473136d98b guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-08 17:49:28,682 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.24ms] +2026-09-08 17:49:28,688 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b1d2ae44-5cd1-440f-a060-047bf3557a67: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-08 17:49:28,691 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.40ms] +2026-09-08 17:49:28,710 INFO guardrails.execution request=82acdca4-eb1e-47f6-9435-6494af3ff7e4 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-08 17:49:28,712 INFO guardrails.execution request=82acdca4-eb1e-47f6-9435-6494af3ff7e4 guardrails execution finished (passed=True) output='this contains b' +2026-09-08 17:49:28,714 INFO guardrails.execution request=82acdca4-eb1e-47f6-9435-6494af3ff7e4 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.711538 end=2026-09-08T17:49:28.711692 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-08 17:49:28,718 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.77ms] +2026-09-08 17:49:28,733 INFO guardrails.execution request=0ba61832-7177-4d88-adba-24f47b1b5dc2 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-08 17:49:28,734 INFO guardrails.execution request=0ba61832-7177-4d88-adba-24f47b1b5dc2 guardrails execution finished (passed=True) output='this is clean' +2026-09-08 17:49:28,735 INFO guardrails.execution request=0ba61832-7177-4d88-adba-24f47b1b5dc2 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:28.733588 end=2026-09-08T17:49:28.733666 duration_ms=0 input='this is clean' output='this is clean' +2026-09-08 17:49:28,738 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.62ms] +2026-09-08 17:49:28,760 INFO guardrails.execution request=b49c302b-d8e7-4f6d-ab25-a2f0f038e8a5 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:28,763 INFO guardrails.execution request=b49c302b-d8e7-4f6d-ab25-a2f0f038e8a5 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-08 17:49:28,765 INFO guardrails.execution request=b49c302b-d8e7-4f6d-ab25-a2f0f038e8a5 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.761433 end=2026-09-08T17:49:28.763159 duration_ms=1 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-08 17:49:28,768 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.54ms] +2026-09-08 17:49:28,781 INFO guardrails.execution request=21dc9c34-3088-42aa-a824-3e26ea2a11e0 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-08 17:49:28,782 INFO guardrails.execution request=21dc9c34-3088-42aa-a824-3e26ea2a11e0 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-08 17:49:28,784 INFO guardrails.execution request=21dc9c34-3088-42aa-a824-3e26ea2a11e0 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:28.782071 end=2026-09-08T17:49:28.782328 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-08 17:49:28,787 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.48ms] +2026-09-08 17:49:28,799 INFO guardrails.execution request=e8e66cb2-fa3d-424d-a149-8c33d622ab81 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-08 17:49:28,801 INFO guardrails.execution request=e8e66cb2-fa3d-424d-a149-8c33d622ab81 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-08 17:49:28,802 INFO guardrails.execution request=e8e66cb2-fa3d-424d-a149-8c33d622ab81 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.800361 end=2026-09-08T17:49:28.800832 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-08 17:49:28,804 INFO guardrails.execution request=e8e66cb2-fa3d-424d-a149-8c33d622ab81 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.800838 end=2026-09-08T17:49:28.800929 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-08 17:49:28,806 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.23ms] +2026-09-08 17:49:28,811 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.23ms] +2026-09-08 17:49:28,823 INFO guardrails.execution request=59206fd3-46e3-455d-a035-124ec6a0bc75 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:28,824 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 59206fd3-46e3-455d-a035-124ec6a0bc75: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-08 17:49:28,827 INFO guardrails.execution request=59206fd3-46e3-455d-a035-124ec6a0bc75 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.823802 end=2026-09-08T17:49:28.824077 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-08 17:49:28,829 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.78ms] +2026-09-08 17:49:28,844 INFO guardrails.execution request=90079be8-d0e2-463f-ad13-54e3e711a8f3 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:28,846 INFO guardrails.execution request=90079be8-d0e2-463f-ad13-54e3e711a8f3 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-08 17:49:28,849 INFO guardrails.execution request=90079be8-d0e2-463f-ad13-54e3e711a8f3 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.845707 end=2026-09-08T17:49:28.846070 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-08 17:49:28,852 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.60ms] +2026-09-08 17:49:28,867 INFO guardrails.execution request=c968396c-882e-47f6-acfe-a4aa1ec89f5d starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-08 17:49:28,871 INFO guardrails.execution request=c968396c-882e-47f6-acfe-a4aa1ec89f5d guardrails execution finished (passed=True) output='' +2026-09-08 17:49:28,872 INFO guardrails.execution request=c968396c-882e-47f6-acfe-a4aa1ec89f5d step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.867447 end=2026-09-08T17:49:28.870500 duration_ms=3 input='This is a damn fucking mess.' output='' +2026-09-08 17:49:28,875 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.39ms] +2026-09-08 17:49:28,888 INFO guardrails.execution request=14d01254-ea80-49e4-8acd-62504195d3bf starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-08 17:49:28,890 INFO guardrails.execution request=14d01254-ea80-49e4-8acd-62504195d3bf guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-08 17:49:28,891 INFO guardrails.execution request=14d01254-ea80-49e4-8acd-62504195d3bf step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:28.888411 end=2026-09-08T17:49:28.889956 duration_ms=1 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-08 17:49:28,894 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.61ms] +2026-09-08 17:49:28,906 INFO guardrails.execution request=c07721b5-8cdf-483a-9ab9-92d295c55c10 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-08 17:49:28,907 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c07721b5-8cdf-483a-9ab9-92d295c55c10: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-08 17:49:28,909 INFO guardrails.execution request=c07721b5-8cdf-483a-9ab9-92d295c55c10 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.906458 end=2026-09-08T17:49:28.907261 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-08 17:49:28,911 INFO http_request_logger POST /api/v1/guardrails/ - 200 [13.57ms] +2026-09-08 17:49:28,925 INFO guardrails.execution request=e03c8f9e-addb-4d07-80b7-32642fd3754e starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-08 17:49:28,927 INFO guardrails.execution request=e03c8f9e-addb-4d07-80b7-32642fd3754e guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-08 17:49:28,930 INFO guardrails.execution request=e03c8f9e-addb-4d07-80b7-32642fd3754e step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:28.926031 end=2026-09-08T17:49:28.926897 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-08 17:49:28,933 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.11ms] +2026-09-08 17:49:28,939 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 793860ee-a0e9-4af8-a3a5-3a3b2f9ece9f: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-08 17:49:28,941 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.75ms] +2026-09-08 17:49:29,754 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-08 17:49:31,870 INFO guardrails.execution request=79e4b898-effb-4842-bbff-9c4bcfc18212 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-08 17:49:32,073 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 79e4b898-effb-4842-bbff-9c4bcfc18212: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-08 17:49:32,081 INFO guardrails.execution request=79e4b898-effb-4842-bbff-9c4bcfc18212 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:31.872071 end=2026-09-08T17:49:32.072900 duration_ms=200 input='She slowly undressed and they had explicit sex.' output=None +2026-09-08 17:49:32,087 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3142.70ms] +2026-09-08 17:49:34,404 INFO guardrails.execution request=34244fde-dc0d-45c0-87c4-0eca831eba63 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-08 17:49:34,419 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 34244fde-dc0d-45c0-87c4-0eca831eba63: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-08 17:49:34,425 INFO guardrails.execution request=34244fde-dc0d-45c0-87c4-0eca831eba63 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:34.405508 end=2026-09-08T17:49:34.419607 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-08 17:49:34,428 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2332.03ms] +2026-09-08 17:49:36,632 INFO guardrails.execution request=d98407da-aacf-49c4-9b5d-bf33272a5101 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-08 17:49:36,659 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d98407da-aacf-49c4-9b5d-bf33272a5101: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-08 17:49:36,670 INFO guardrails.execution request=d98407da-aacf-49c4-9b5d-bf33272a5101 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:36.633074 end=2026-09-08T17:49:36.659706 duration_ms=26 input='Explicit sexual content goes here.' output=None +2026-09-08 17:49:36,674 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2241.90ms] +2026-09-08 17:49:36,698 INFO guardrails.execution request=2dbf61ac-50d5-438a-9419-6927e275a0e4 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-08 17:49:36,702 INFO guardrails.execution request=2dbf61ac-50d5-438a-9419-6927e275a0e4 guardrails execution finished (passed=True) output='' +2026-09-08 17:49:36,707 INFO guardrails.execution request=2dbf61ac-50d5-438a-9419-6927e275a0e4 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:36.698717 end=2026-09-08T17:49:36.700947 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-08 17:49:36,709 INFO guardrails.execution request=2dbf61ac-50d5-438a-9419-6927e275a0e4 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:36.700971 end=2026-09-08T17:49:36.701237 duration_ms=0 input='' output='' +2026-09-08 17:49:36,712 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.53ms] +2026-09-08 17:49:36,725 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 14c363b5-8bb5-46b5-b7df-9b9091f107af: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-08 17:49:36,727 INFO http_request_logger POST /api/v1/guardrails/ - 200 [10.37ms] +2026-09-08 17:49:38,773 INFO guardrails.execution request=d1652cde-abd6-456b-9410-beddd05bdd70 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-08 17:49:38,775 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d1652cde-abd6-456b-9410-beddd05bdd70: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-08 17:49:38,784 INFO guardrails.execution request=d1652cde-abd6-456b-9410-beddd05bdd70 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:38.774314 end=2026-09-08T17:49:38.775788 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-08 17:49:38,789 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2058.33ms] +2026-09-08 17:49:40,955 INFO guardrails.execution request=ecb86329-ef2c-4a29-8711-730b3d94cfae starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-08 17:49:40,957 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ecb86329-ef2c-4a29-8711-730b3d94cfae: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-08 17:49:40,963 INFO guardrails.execution request=ecb86329-ef2c-4a29-8711-730b3d94cfae step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:40.956319 end=2026-09-08T17:49:40.956840 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-08 17:49:40,968 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2172.05ms] +2026-09-08 17:49:40,989 INFO guardrails.execution request=288b8c3a-4391-46c9-97db-abaad0bad31a starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-08 17:49:40,994 INFO guardrails.execution request=288b8c3a-4391-46c9-97db-abaad0bad31a guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-08 17:49:40,999 INFO guardrails.execution request=288b8c3a-4391-46c9-97db-abaad0bad31a step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:40.990239 end=2026-09-08T17:49:40.992154 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-08 17:49:41,001 INFO guardrails.execution request=288b8c3a-4391-46c9-97db-abaad0bad31a step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:40.992161 end=2026-09-08T17:49:40.992854 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-08 17:49:41,005 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.37ms] +2026-09-08 17:49:41,034 INFO guardrails.execution request=050fb7c6-b280-433f-9c6a-6646d3fe324a starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-08 17:49:41,037 INFO guardrails.execution request=050fb7c6-b280-433f-9c6a-6646d3fe324a guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-08 17:49:41,042 INFO guardrails.execution request=050fb7c6-b280-433f-9c6a-6646d3fe324a step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:41.034931 end=2026-09-08T17:49:41.035298 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:49:41,045 INFO guardrails.execution request=050fb7c6-b280-433f-9c6a-6646d3fe324a step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:41.035304 end=2026-09-08T17:49:41.036297 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:49:41,049 INFO guardrails.execution request=050fb7c6-b280-433f-9c6a-6646d3fe324a step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:41.036302 end=2026-09-08T17:49:41.036365 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:49:41,053 INFO http_request_logger POST /api/v1/guardrails/ - 200 [44.54ms] +2026-09-08 17:49:41,071 INFO guardrails.execution request=a5fe0cb2-c34b-4c82-868e-ce346b9268ce starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-08 17:49:41,072 INFO guardrails.execution request=a5fe0cb2-c34b-4c82-868e-ce346b9268ce guardrails execution finished (passed=True) output='this contains b' +2026-09-08 17:49:41,076 INFO guardrails.execution request=a5fe0cb2-c34b-4c82-868e-ce346b9268ce step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:41.071745 end=2026-09-08T17:49:41.071863 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-08 17:49:41,080 INFO guardrails.execution request=a5fe0cb2-c34b-4c82-868e-ce346b9268ce step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:41.071869 end=2026-09-08T17:49:41.072057 duration_ms=0 input='this contains b' output='this contains b' +2026-09-08 17:49:41,084 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.42ms] +2026-09-08 17:49:41,098 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 4b9c0b8b-0204-4e6c-ab5e-91af5babed3e: 404: Ban list not found +2026-09-08 17:49:41,101 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.08ms] +2026-09-08 17:49:41,109 INFO guardrails.execution request=17031fe1-d2a2-410e-a454-b237ade22aef starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-08 17:49:41,109 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 17031fe1-d2a2-410e-a454-b237ade22aef: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-08 17:49:41,111 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.13ms] +2026-09-08 17:49:41,116 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-08 17:49:41,117 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.62ms] +2026-09-08 17:49:41,267 INFO watchfiles.main 3 changes detected +2026-09-08 17:49:52,361 INFO presidio-analyzer Using device of type: cpu +2026-09-08 17:49:53,119 INFO guardrails.execution request=fdbaacd9-5d46-460d-8b2a-d8fb18f562fe starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,120 INFO guardrails.execution request=fdbaacd9-5d46-460d-8b2a-d8fb18f562fe guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,122 INFO guardrails.execution request=fdbaacd9-5d46-460d-8b2a-d8fb18f562fe step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.119660 end=2026-09-08T17:49:53.119778 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,127 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.52ms] +2026-09-08 17:49:53,141 INFO guardrails.execution request=a539d7cf-5f15-422e-b676-3219817aef91 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-08 17:49:53,142 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a539d7cf-5f15-422e-b676-3219817aef91: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-08 17:49:53,146 INFO guardrails.execution request=a539d7cf-5f15-422e-b676-3219817aef91 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-08T17:49:53.142371 end=2026-09-08T17:49:53.142444 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-08 17:49:53,147 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.87ms] +2026-09-08 17:49:53,161 INFO guardrails.execution request=b244fe9a-129c-4e73-807e-2709ec71930b starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-08 17:49:53,161 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b244fe9a-129c-4e73-807e-2709ec71930b: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-08 17:49:53,163 INFO guardrails.execution request=b244fe9a-129c-4e73-807e-2709ec71930b step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-08T17:49:53.161601 end=2026-09-08T17:49:53.161645 duration_ms=0 input='' output=None +2026-09-08 17:49:53,165 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.40ms] +2026-09-08 17:49:53,180 INFO guardrails.execution request=8027475f-be46-4ffd-a1c0-42df2ff43b29 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,182 INFO guardrails.execution request=8027475f-be46-4ffd-a1c0-42df2ff43b29 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,183 INFO guardrails.execution request=8027475f-be46-4ffd-a1c0-42df2ff43b29 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.181274 end=2026-09-08T17:49:53.181337 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,186 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.52ms] +2026-09-08 17:49:53,199 INFO guardrails.execution request=04163dcc-4f49-4988-b500-90381015c349 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-08 17:49:53,199 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 04163dcc-4f49-4988-b500-90381015c349: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-08 17:49:53,202 INFO guardrails.execution request=04163dcc-4f49-4988-b500-90381015c349 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-08T17:49:53.199593 end=2026-09-08T17:49:53.199663 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-08 17:49:53,204 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.73ms] +2026-09-08 17:49:53,221 INFO guardrails.execution request=5881b311-e9d5-446f-8240-71140977e6be starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-08 17:49:53,223 INFO guardrails.execution request=5881b311-e9d5-446f-8240-71140977e6be guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-08 17:49:53,225 INFO guardrails.execution request=5881b311-e9d5-446f-8240-71140977e6be step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.222356 end=2026-09-08T17:49:53.222438 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-08 17:49:53,226 INFO guardrails.execution request=5881b311-e9d5-446f-8240-71140977e6be step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.222443 end=2026-09-08T17:49:53.222552 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-08 17:49:53,229 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.25ms] +2026-09-08 17:49:53,243 INFO guardrails.execution request=38ad2a59-24bf-4c58-ab38-3cd4a2765698 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-08 17:49:53,246 INFO guardrails.execution request=38ad2a59-24bf-4c58-ab38-3cd4a2765698 guardrails execution finished (passed=True) output='' +2026-09-08 17:49:53,249 INFO guardrails.execution request=38ad2a59-24bf-4c58-ab38-3cd4a2765698 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.244387 end=2026-09-08T17:49:53.244467 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-08 17:49:53,251 INFO guardrails.execution request=38ad2a59-24bf-4c58-ab38-3cd4a2765698 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.244472 end=2026-09-08T17:49:53.245950 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-08 17:49:53,254 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.30ms] +2026-09-08 17:49:53,276 INFO guardrails.execution request=07b06a07-777a-459f-8ded-e51792117900 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-08 17:49:53,280 INFO guardrails.execution request=07b06a07-777a-459f-8ded-e51792117900 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-08 17:49:53,284 INFO guardrails.execution request=07b06a07-777a-459f-8ded-e51792117900 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.277635 end=2026-09-08T17:49:53.277716 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-08 17:49:53,287 INFO guardrails.execution request=07b06a07-777a-459f-8ded-e51792117900 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.277721 end=2026-09-08T17:49:53.280016 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-08 17:49:53,291 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.12ms] +2026-09-08 17:49:53,309 INFO guardrails.execution request=c79214cf-097b-43f5-bbfa-74d6b8d9cece starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-08 17:49:53,311 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c79214cf-097b-43f5-bbfa-74d6b8d9cece: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-08 17:49:53,315 INFO guardrails.execution request=c79214cf-097b-43f5-bbfa-74d6b8d9cece step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.310106 end=2026-09-08T17:49:53.310183 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-08 17:49:53,319 INFO guardrails.execution request=c79214cf-097b-43f5-bbfa-74d6b8d9cece step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.310188 end=2026-09-08T17:49:53.311129 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-08 17:49:53,322 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.96ms] +2026-09-08 17:49:53,344 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,348 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,352 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.345488 end=2026-09-08T17:49:53.345560 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,354 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.345566 end=2026-09-08T17:49:53.345634 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,356 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.345638 end=2026-09-08T17:49:53.346585 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,358 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.346590 end=2026-09-08T17:49:53.347182 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,360 INFO guardrails.execution request=97e7bb20-3d62-4c33-8657-0670188b3e26 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.347186 end=2026-09-08T17:49:53.347813 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-08 17:49:53,362 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.38ms] +2026-09-08 17:49:53,383 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-08 17:49:53,387 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-08 17:49:53,391 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-08T17:49:53.384298 end=2026-09-08T17:49:53.384369 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-08 17:49:53,394 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.384373 end=2026-09-08T17:49:53.385322 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-08 17:49:53,396 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.385327 end=2026-09-08T17:49:53.385823 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-08 17:49:53,397 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.385828 end=2026-09-08T17:49:53.385886 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-08 17:49:53,399 INFO guardrails.execution request=ada03bfd-f662-4dff-a0f9-c43c85a60af8 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.385890 end=2026-09-08T17:49:53.386475 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-08 17:49:53,402 INFO http_request_logger POST /api/v1/guardrails/ - 200 [35.03ms] +2026-09-08 17:49:53,423 INFO app.crud.ban_list created ban list id=49953591-4542-4877-aa19-2345bb54d718 org=1 project=1 +2026-09-08 17:49:53,424 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [6.24ms] +2026-09-08 17:49:53,428 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.95ms] +2026-09-08 17:49:53,433 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.00ms] +2026-09-08 17:49:53,438 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.18ms] +2026-09-08 17:49:53,443 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.80ms] +2026-09-08 17:49:53,447 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.80ms] +2026-09-08 17:49:53,462 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [5.94ms] +2026-09-08 17:49:53,474 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.43ms] +2026-09-08 17:49:53,479 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.75ms] +2026-09-08 17:49:53,487 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.18ms] +2026-09-08 17:49:53,494 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.71ms] +2026-09-08 17:49:53,496 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.92ms] +2026-09-08 17:49:53,505 INFO app.crud.ban_list created ban list id=8bf0caff-36c2-4b45-87fc-a78a121e0d18 org=1 project=1 +2026-09-08 17:49:53,505 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.16ms] +2026-09-08 17:49:53,506 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8bf0caff-36c2-4b45-87fc-a78a121e0d18/ - 307 [0.10ms] +2026-09-08 17:49:53,508 INFO http_request_logger GET /api/v1/guardrails/ban_lists/8bf0caff-36c2-4b45-87fc-a78a121e0d18 - 200 [2.01ms] +2026-09-08 17:49:53,517 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.93ms] +2026-09-08 17:49:53,517 INFO http_request_logger GET /api/v1/guardrails/ban_lists/af56df70-6912-44de-993c-9e86318cd8e2/ - 307 [0.08ms] +2026-09-08 17:49:53,520 INFO http_request_logger GET /api/v1/guardrails/ban_lists/af56df70-6912-44de-993c-9e86318cd8e2 - 200 [2.26ms] +2026-09-08 17:49:53,524 INFO http_request_logger GET /api/v1/guardrails/ban_lists/fccf0de4-cd1f-495c-8ffe-d1472c251ada/ - 307 [0.09ms] +2026-09-08 17:49:53,527 INFO http_request_logger GET /api/v1/guardrails/ban_lists/fccf0de4-cd1f-495c-8ffe-d1472c251ada - 404 [2.47ms] +2026-09-08 17:49:53,538 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [4.75ms] +2026-09-08 17:49:53,539 INFO http_request_logger GET /api/v1/guardrails/ban_lists/80c837a4-6304-4ae1-918b-8686399b5f27/ - 307 [0.08ms] +2026-09-08 17:49:53,541 INFO http_request_logger GET /api/v1/guardrails/ban_lists/80c837a4-6304-4ae1-918b-8686399b5f27 - 403 [2.24ms] +2026-09-08 17:49:53,551 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.76ms] +2026-09-08 17:49:53,552 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/26c78625-f2a6-4ca6-b86a-4a930ea69b45/ - 307 [0.10ms] +2026-09-08 17:49:53,557 INFO app.crud.ban_list updated ban list id=26c78625-f2a6-4ca6-b86a-4a930ea69b45 +2026-09-08 17:49:53,558 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/26c78625-f2a6-4ca6-b86a-4a930ea69b45 - 200 [5.81ms] +2026-09-08 17:49:53,568 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.77ms] +2026-09-08 17:49:53,568 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ae28397d-d769-4fcf-be18-923bee804833/ - 307 [0.10ms] +2026-09-08 17:49:53,572 INFO app.crud.ban_list updated ban list id=ae28397d-d769-4fcf-be18-923bee804833 +2026-09-08 17:49:53,573 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/ae28397d-d769-4fcf-be18-923bee804833 - 200 [4.42ms] +2026-09-08 17:49:53,577 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/7853a93b-fd0e-4311-9daf-7b4ac5cbffe3/ - 307 [0.10ms] +2026-09-08 17:49:53,580 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/7853a93b-fd0e-4311-9daf-7b4ac5cbffe3 - 404 [3.08ms] +2026-09-08 17:49:53,587 INFO app.crud.ban_list created ban list id=0c4ed433-f128-4376-bb06-b39dac18e544 org=1 project=1 +2026-09-08 17:49:53,588 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.09ms] +2026-09-08 17:49:53,588 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/0c4ed433-f128-4376-bb06-b39dac18e544/ - 307 [0.10ms] +2026-09-08 17:49:53,593 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/0c4ed433-f128-4376-bb06-b39dac18e544 - 403 [4.40ms] +2026-09-08 17:49:53,601 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.21ms] +2026-09-08 17:49:53,602 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/6e2a1209-3d17-4e43-877f-178e3105c19b/ - 307 [0.09ms] +2026-09-08 17:49:53,604 INFO app.crud.ban_list deleted ban list id=6e2a1209-3d17-4e43-877f-178e3105c19b +2026-09-08 17:49:53,605 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/6e2a1209-3d17-4e43-877f-178e3105c19b - 200 [2.59ms] +2026-09-08 17:49:53,609 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/ab4063fb-f029-402c-b04b-01fd0e12c3a9/ - 307 [0.11ms] +2026-09-08 17:49:53,613 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/ab4063fb-f029-402c-b04b-01fd0e12c3a9 - 404 [2.78ms] +2026-09-08 17:49:53,624 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.70ms] +2026-09-08 17:49:53,625 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b4891b93-aded-4ea0-a599-8970433c5838/ - 307 [0.10ms] +2026-09-08 17:49:53,627 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b4891b93-aded-4ea0-a599-8970433c5838 - 403 [1.69ms] +2026-09-08 17:49:53,635 INFO app.crud.ban_list created ban list id=de662fe6-e74b-409c-9fa7-1780c72be0ce org=1 project=1 +2026-09-08 17:49:53,635 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.45ms] +2026-09-08 17:49:53,636 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/de662fe6-e74b-409c-9fa7-1780c72be0ce/ - 307 [0.10ms] +2026-09-08 17:49:53,638 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/de662fe6-e74b-409c-9fa7-1780c72be0ce - 403 [1.68ms] +2026-09-08 17:49:53,731 INFO guardrails.execution request=7c1914f5-d819-4824-9c1c-6eb844472c2a starting guardrails execution (validators=[]) input='hello world' +2026-09-08 17:49:53,731 INFO guardrails.execution request=7c1914f5-d819-4824-9c1c-6eb844472c2a guardrails execution finished (passed=True) output='clean text' +2026-09-08 17:49:53,735 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.74ms] +2026-09-08 17:49:53,741 INFO guardrails.execution request=ee0d2176-b35a-495f-a7d9-b0edd7ac5f98 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-08 17:49:53,741 INFO guardrails.execution request=ee0d2176-b35a-495f-a7d9-b0edd7ac5f98 guardrails execution finished (passed=False) output=None +2026-09-08 17:49:53,743 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.29ms] +2026-09-08 17:49:53,750 INFO guardrails.execution request=2210d403-4f25-49f0-8729-e0c1a4a92bcb starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-08 17:49:53,750 INFO guardrails.execution request=2210d403-4f25-49f0-8729-e0c1a4a92bcb guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-08 17:49:53,752 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.15ms] +2026-09-08 17:49:53,758 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0257543d-2430-42e5-9de1-7d2dde4f1191: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-08 17:49:53,761 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.64ms] +2026-09-08 17:49:53,775 INFO guardrails.execution request=44b46f60-238b-4e93-9539-f3d1ce919147 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-08 17:49:53,776 INFO guardrails.execution request=44b46f60-238b-4e93-9539-f3d1ce919147 guardrails execution finished (passed=True) output='this contains b' +2026-09-08 17:49:53,779 INFO guardrails.execution request=44b46f60-238b-4e93-9539-f3d1ce919147 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.776035 end=2026-09-08T17:49:53.776142 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-08 17:49:53,783 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.89ms] +2026-09-08 17:49:53,799 INFO guardrails.execution request=d767005e-a4c4-4197-bcc0-d5f55e0d9b6b starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-08 17:49:53,800 INFO guardrails.execution request=d767005e-a4c4-4197-bcc0-d5f55e0d9b6b guardrails execution finished (passed=True) output='this is clean' +2026-09-08 17:49:53,802 INFO guardrails.execution request=d767005e-a4c4-4197-bcc0-d5f55e0d9b6b step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.799741 end=2026-09-08T17:49:53.799817 duration_ms=0 input='this is clean' output='this is clean' +2026-09-08 17:49:53,807 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.37ms] +2026-09-08 17:49:53,828 INFO guardrails.execution request=2fd56765-6512-40d6-bcd1-617e2b1c8a10 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:53,829 INFO guardrails.execution request=2fd56765-6512-40d6-bcd1-617e2b1c8a10 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-08 17:49:53,835 INFO guardrails.execution request=2fd56765-6512-40d6-bcd1-617e2b1c8a10 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.828699 end=2026-09-08T17:49:53.829048 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-08 17:49:53,839 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.43ms] +2026-09-08 17:49:53,854 INFO guardrails.execution request=5e82a183-5cf3-4938-b39a-af0884b75849 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-08 17:49:53,856 INFO guardrails.execution request=5e82a183-5cf3-4938-b39a-af0884b75849 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-08 17:49:53,858 INFO guardrails.execution request=5e82a183-5cf3-4938-b39a-af0884b75849 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.855304 end=2026-09-08T17:49:53.855565 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-08 17:49:53,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.57ms] +2026-09-08 17:49:53,878 INFO guardrails.execution request=987463d0-1cf4-470e-90c2-c08868809e02 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-08 17:49:53,880 INFO guardrails.execution request=987463d0-1cf4-470e-90c2-c08868809e02 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-08 17:49:53,884 INFO guardrails.execution request=987463d0-1cf4-470e-90c2-c08868809e02 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.879386 end=2026-09-08T17:49:53.879870 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-08 17:49:53,886 INFO guardrails.execution request=987463d0-1cf4-470e-90c2-c08868809e02 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.879876 end=2026-09-08T17:49:53.879955 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-08 17:49:53,889 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.40ms] +2026-09-08 17:49:53,895 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.91ms] +2026-09-08 17:49:53,909 INFO guardrails.execution request=583c149a-b6c9-4642-8438-d84d7e7dbe07 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:53,910 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 583c149a-b6c9-4642-8438-d84d7e7dbe07: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-08 17:49:53,918 INFO guardrails.execution request=583c149a-b6c9-4642-8438-d84d7e7dbe07 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.909882 end=2026-09-08T17:49:53.910143 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-08 17:49:53,920 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.78ms] +2026-09-08 17:49:53,936 INFO guardrails.execution request=3ce0a707-210a-48ae-8c75-a848a5b07995 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-08 17:49:53,938 INFO guardrails.execution request=3ce0a707-210a-48ae-8c75-a848a5b07995 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-08 17:49:53,941 INFO guardrails.execution request=3ce0a707-210a-48ae-8c75-a848a5b07995 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.937330 end=2026-09-08T17:49:53.937599 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-08 17:49:53,945 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.98ms] +2026-09-08 17:49:53,960 INFO guardrails.execution request=f50658bc-7206-40bf-ae84-e7d0438e17ca starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-08 17:49:53,962 INFO guardrails.execution request=f50658bc-7206-40bf-ae84-e7d0438e17ca guardrails execution finished (passed=True) output='' +2026-09-08 17:49:53,965 INFO guardrails.execution request=f50658bc-7206-40bf-ae84-e7d0438e17ca step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:53.960375 end=2026-09-08T17:49:53.961403 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-08 17:49:53,969 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.63ms] +2026-09-08 17:49:53,984 INFO guardrails.execution request=134ded0d-0f3a-44cd-ad50-b46f1a8072fa starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-08 17:49:53,986 INFO guardrails.execution request=134ded0d-0f3a-44cd-ad50-b46f1a8072fa guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-08 17:49:53,989 INFO guardrails.execution request=134ded0d-0f3a-44cd-ad50-b46f1a8072fa step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:49:53.984586 end=2026-09-08T17:49:53.985449 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-08 17:49:53,993 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.17ms] +2026-09-08 17:49:54,008 INFO guardrails.execution request=8ee307b7-c526-4d19-b068-4587e8fa12c8 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-08 17:49:54,009 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8ee307b7-c526-4d19-b068-4587e8fa12c8: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-08 17:49:54,013 INFO guardrails.execution request=8ee307b7-c526-4d19-b068-4587e8fa12c8 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:54.008521 end=2026-09-08T17:49:54.009417 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-08 17:49:54,017 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.32ms] +2026-09-08 17:49:54,035 INFO guardrails.execution request=71922289-8a7e-418a-b1ed-77df8140158e starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-08 17:49:54,037 INFO guardrails.execution request=71922289-8a7e-418a-b1ed-77df8140158e guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-08 17:49:54,042 INFO guardrails.execution request=71922289-8a7e-418a-b1ed-77df8140158e step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:54.035461 end=2026-09-08T17:49:54.036283 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-08 17:49:54,047 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.23ms] +2026-09-08 17:49:54,054 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e8297c76-d97b-4339-a231-faedcfa29fe5: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-08 17:49:54,058 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.77ms] +2026-09-08 17:49:54,738 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-08 17:49:56,727 INFO guardrails.execution request=a47f2750-b411-44db-aeaa-53f4c2fe65c8 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-08 17:49:56,816 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a47f2750-b411-44db-aeaa-53f4c2fe65c8: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-08 17:49:56,826 INFO guardrails.execution request=a47f2750-b411-44db-aeaa-53f4c2fe65c8 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:56.728839 end=2026-09-08T17:49:56.815988 duration_ms=87 input='She slowly undressed and they had explicit sex.' output=None +2026-09-08 17:49:56,831 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2769.50ms] +2026-09-08 17:49:58,874 INFO guardrails.execution request=164c53cb-7084-41d2-815d-b97dcc28ec66 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-08 17:49:58,893 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 164c53cb-7084-41d2-815d-b97dcc28ec66: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-08 17:49:58,898 INFO guardrails.execution request=164c53cb-7084-41d2-815d-b97dcc28ec66 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:49:58.875530 end=2026-09-08T17:49:58.893315 duration_ms=17 input='She slowly undressed and they had explicit sex.' output=None +2026-09-08 17:49:58,902 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2064.18ms] +2026-09-08 17:50:01,092 INFO guardrails.execution request=afc86a2e-3d87-4602-9e31-75cc1c79734f starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-08 17:50:01,117 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log afc86a2e-3d87-4602-9e31-75cc1c79734f: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-08 17:50:01,124 INFO guardrails.execution request=afc86a2e-3d87-4602-9e31-75cc1c79734f step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-08T17:50:01.093131 end=2026-09-08T17:50:01.117644 duration_ms=24 input='Explicit sexual content goes here.' output=None +2026-09-08 17:50:01,126 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2216.82ms] +2026-09-08 17:50:01,146 INFO guardrails.execution request=4facef83-15ea-4ae4-8766-7c7bd2c096d1 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-08 17:50:01,149 INFO guardrails.execution request=4facef83-15ea-4ae4-8766-7c7bd2c096d1 guardrails execution finished (passed=True) output='' +2026-09-08 17:50:01,153 INFO guardrails.execution request=4facef83-15ea-4ae4-8766-7c7bd2c096d1 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:50:01.146786 end=2026-09-08T17:50:01.148200 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-08 17:50:01,156 INFO guardrails.execution request=4facef83-15ea-4ae4-8766-7c7bd2c096d1 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:50:01.148221 end=2026-09-08T17:50:01.148414 duration_ms=0 input='' output='' +2026-09-08 17:50:01,161 INFO http_request_logger POST /api/v1/guardrails/ - 200 [31.23ms] +2026-09-08 17:50:01,171 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6ac7c1e2-3787-4864-987d-457fbbfa5994: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-08 17:50:01,174 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.13ms] +2026-09-08 17:50:03,453 INFO guardrails.execution request=a7d598d0-926f-4e36-bc26-6bc01e326475 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-08 17:50:03,455 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a7d598d0-926f-4e36-bc26-6bc01e326475: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-08 17:50:03,462 INFO guardrails.execution request=a7d598d0-926f-4e36-bc26-6bc01e326475 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-08T17:50:03.454306 end=2026-09-08T17:50:03.455723 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-08 17:50:03,466 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2288.40ms] +2026-09-08 17:50:05,491 INFO guardrails.execution request=a38a5fbd-62f7-4a4a-bcce-77a2efa3442f starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-08 17:50:05,493 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a38a5fbd-62f7-4a4a-bcce-77a2efa3442f: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-08 17:50:05,501 INFO guardrails.execution request=a38a5fbd-62f7-4a4a-bcce-77a2efa3442f step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-08T17:50:05.492648 end=2026-09-08T17:50:05.493124 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-08 17:50:05,504 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2031.31ms] +2026-09-08 17:50:05,520 INFO guardrails.execution request=e4f23806-cebb-4a91-914c-fe53a0e58d7f starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-08 17:50:05,522 INFO guardrails.execution request=e4f23806-cebb-4a91-914c-fe53a0e58d7f guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-08 17:50:05,525 INFO guardrails.execution request=e4f23806-cebb-4a91-914c-fe53a0e58d7f step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.520953 end=2026-09-08T17:50:05.521977 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-08 17:50:05,527 INFO guardrails.execution request=e4f23806-cebb-4a91-914c-fe53a0e58d7f step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.521985 end=2026-09-08T17:50:05.522071 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-08 17:50:05,531 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.00ms] +2026-09-08 17:50:05,554 INFO guardrails.execution request=b2a7138f-fab4-4f1b-a4d9-6e47b182aeee starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-08 17:50:05,557 INFO guardrails.execution request=b2a7138f-fab4-4f1b-a4d9-6e47b182aeee guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-08 17:50:05,561 INFO guardrails.execution request=b2a7138f-fab4-4f1b-a4d9-6e47b182aeee step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.555193 end=2026-09-08T17:50:05.555540 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:50:05,563 INFO guardrails.execution request=b2a7138f-fab4-4f1b-a4d9-6e47b182aeee step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.555545 end=2026-09-08T17:50:05.556548 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:50:05,566 INFO guardrails.execution request=b2a7138f-fab4-4f1b-a4d9-6e47b182aeee step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.556555 end=2026-09-08T17:50:05.556613 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-08 17:50:05,570 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.61ms] +2026-09-08 17:50:05,586 INFO guardrails.execution request=9d6ffeb7-62a3-4dd3-9279-cb7be1cbe5b6 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-08 17:50:05,588 INFO guardrails.execution request=9d6ffeb7-62a3-4dd3-9279-cb7be1cbe5b6 guardrails execution finished (passed=True) output='this contains b' +2026-09-08 17:50:05,590 INFO guardrails.execution request=9d6ffeb7-62a3-4dd3-9279-cb7be1cbe5b6 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-08T17:50:05.586979 end=2026-09-08T17:50:05.587100 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-08 17:50:05,592 INFO guardrails.execution request=9d6ffeb7-62a3-4dd3-9279-cb7be1cbe5b6 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-08T17:50:05.587107 end=2026-09-08T17:50:05.587308 duration_ms=0 input='this contains b' output='this contains b' +2026-09-08 17:50:05,596 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.57ms] +2026-09-08 17:50:05,610 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 36c5bd9b-d210-47f7-a633-e8bce442a298: 404: Ban list not found +2026-09-08 17:50:05,615 INFO http_request_logger POST /api/v1/guardrails/ - 404 [8.80ms] +2026-09-08 17:50:05,624 INFO guardrails.execution request=d4835bfd-a58f-4dee-9ec6-4bb4a55d940d starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-08 17:50:05,625 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d4835bfd-a58f-4dee-9ec6-4bb4a55d940d: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 366, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-08 17:50:05,627 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.96ms] +2026-09-08 17:50:05,632 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-08 17:50:05,633 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.19ms] +2026-09-08 17:50:05,641 INFO app.crud.llm_prompt_config created llm prompt config id=54d59c7b-b969-4ed5-91d7-b8815b27255a org=1 project=1 +2026-09-08 17:50:05,642 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.55ms] +2026-09-08 17:50:05,648 INFO app.crud.llm_prompt_config created llm prompt config id=04dbc08e-d395-4532-b7c7-bfede8b96665 org=1 project=1 +2026-09-08 17:50:05,648 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.64ms] +2026-09-08 17:50:05,654 INFO app.crud.llm_prompt_config created llm prompt config id=73b42011-f3a6-49a9-823e-721ff3fe7b0c org=1 project=1 +2026-09-08 17:50:05,655 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.61ms] +2026-09-08 17:50:05,659 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.31ms] +2026-09-08 17:50:05,664 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.84ms] +2026-09-08 17:50:05,667 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.75ms] +2026-09-08 17:50:05,672 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.75ms] +2026-09-08 17:50:05,678 INFO app.crud.llm_prompt_config created llm prompt config id=86095041-b457-42fd-a051-dea1790f328e org=1 project=1 +2026-09-08 17:50:05,678 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.83ms] +2026-09-08 17:50:05,683 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.79ms] +2026-09-08 17:50:05,687 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.70ms] +2026-09-08 17:50:05,693 INFO app.crud.llm_prompt_config created llm prompt config id=f7520e83-f931-4ff2-9011-d6f228ffbe10 org=1 project=1 +2026-09-08 17:50:05,693 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.53ms] +2026-09-08 17:50:05,696 INFO app.crud.llm_prompt_config created llm prompt config id=78ef2000-85fb-4992-85d0-59ae6d4dc979 org=1 project=1 +2026-09-08 17:50:05,696 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.24ms] +2026-09-08 17:50:05,699 INFO app.crud.llm_prompt_config created llm prompt config id=2f6fc4b8-e1da-4605-9eab-7245559afb98 org=1 project=1 +2026-09-08 17:50:05,699 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.92ms] +2026-09-08 17:50:05,703 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.11ms] +2026-09-08 17:50:05,709 INFO app.crud.llm_prompt_config created llm prompt config id=0352aabf-ec51-4b0d-b97d-6554112bf007 org=1 project=1 +2026-09-08 17:50:05,709 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.47ms] +2026-09-08 17:50:05,711 INFO app.crud.llm_prompt_config created llm prompt config id=ca56d802-5f24-41f5-b014-3a31103bd426 org=1 project=1 +2026-09-08 17:50:05,712 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.31ms] +2026-09-08 17:50:05,714 INFO app.crud.llm_prompt_config created llm prompt config id=cf333af6-d746-42ed-a407-00ebb570b248 org=1 project=1 +2026-09-08 17:50:05,715 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.70ms] +2026-09-08 17:50:05,718 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.93ms] +2026-09-08 17:50:05,724 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.66ms] +2026-09-08 17:50:05,729 INFO app.crud.llm_prompt_config created llm prompt config id=50fbf559-baaa-4cb3-81e7-b2b8d7501aec org=1 project=1 +2026-09-08 17:50:05,730 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.92ms] +2026-09-08 17:50:05,732 INFO app.crud.llm_prompt_config created llm prompt config id=cbf78d46-154b-43f9-8d64-b7e90055de04 org=1 project=1 +2026-09-08 17:50:05,732 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.33ms] +2026-09-08 17:50:05,735 INFO app.crud.llm_prompt_config created llm prompt config id=30e38503-1828-4d5e-a4d8-f2b06dbb1b99 org=1 project=1 +2026-09-08 17:50:05,735 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.67ms] +2026-09-08 17:50:05,739 INFO app.crud.llm_prompt_config created llm prompt config id=092b187c-5258-47e5-a01e-e4ea995d55fa org=1 project=1 +2026-09-08 17:50:05,740 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.68ms] +2026-09-08 17:50:05,742 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.30ms] +2026-09-08 17:50:05,747 INFO app.crud.llm_prompt_config created llm prompt config id=7f73b5ec-1911-4175-9caa-90c26b01f57c org=1 project=1 +2026-09-08 17:50:05,748 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-08 17:50:05,750 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.28ms] +2026-09-08 17:50:05,756 INFO app.crud.llm_prompt_config created llm prompt config id=ce5dc2b9-db29-432e-b785-8966c54c6212 org=1 project=1 +2026-09-08 17:50:05,757 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.46ms] +2026-09-08 17:50:05,759 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ce5dc2b9-db29-432e-b785-8966c54c6212 - 200 [1.57ms] +2026-09-08 17:50:05,763 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/eba9155b-3b8d-49a8-bc2c-4597e74504d6 - 404 [1.49ms] +2026-09-08 17:50:05,768 INFO app.crud.llm_prompt_config created llm prompt config id=300d8b34-2bfa-44d2-b299-e4cef84c2416 org=1 project=1 +2026-09-08 17:50:05,769 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.98ms] +2026-09-08 17:50:05,771 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/300d8b34-2bfa-44d2-b299-e4cef84c2416 - 404 [1.86ms] +2026-09-08 17:50:05,777 INFO app.crud.llm_prompt_config created llm prompt config id=1cd1dc71-e651-4dd7-8c21-40aa3b3a28bc org=1 project=1 +2026-09-08 17:50:05,778 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.66ms] +2026-09-08 17:50:05,783 INFO app.crud.llm_prompt_config updated llm prompt config id=1cd1dc71-e651-4dd7-8c21-40aa3b3a28bc +2026-09-08 17:50:05,783 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1cd1dc71-e651-4dd7-8c21-40aa3b3a28bc - 200 [5.33ms] +2026-09-08 17:50:05,789 INFO app.crud.llm_prompt_config created llm prompt config id=84575454-9ca2-416c-8c01-c8084ce1d2ea org=1 project=1 +2026-09-08 17:50:05,790 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.76ms] +2026-09-08 17:50:05,793 INFO app.crud.llm_prompt_config updated llm prompt config id=84575454-9ca2-416c-8c01-c8084ce1d2ea +2026-09-08 17:50:05,793 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/84575454-9ca2-416c-8c01-c8084ce1d2ea - 200 [3.06ms] +2026-09-08 17:50:05,799 INFO app.crud.llm_prompt_config created llm prompt config id=5039c213-7fe6-4064-9548-311673aefe02 org=1 project=1 +2026-09-08 17:50:05,799 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.70ms] +2026-09-08 17:50:05,802 INFO app.crud.llm_prompt_config updated llm prompt config id=5039c213-7fe6-4064-9548-311673aefe02 +2026-09-08 17:50:05,802 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5039c213-7fe6-4064-9548-311673aefe02 - 200 [2.61ms] +2026-09-08 17:50:05,804 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/5039c213-7fe6-4064-9548-311673aefe02 - 200 [1.36ms] +2026-09-08 17:50:05,809 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ac641560-53ce-4c23-b082-2f07a02900da - 404 [1.55ms] +2026-09-08 17:50:05,815 INFO app.crud.llm_prompt_config created llm prompt config id=96eea726-575c-4c5b-a8a7-275a5e7d6f51 org=1 project=1 +2026-09-08 17:50:05,816 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.05ms] +2026-09-08 17:50:05,817 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/96eea726-575c-4c5b-a8a7-275a5e7d6f51 - 404 [1.34ms] +2026-09-08 17:50:05,822 INFO app.crud.llm_prompt_config created llm prompt config id=ca3fd247-24f1-4d6c-845f-f31318b186bb org=1 project=1 +2026-09-08 17:50:05,823 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.50ms] +2026-09-08 17:50:05,827 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ca3fd247-24f1-4d6c-845f-f31318b186bb - 422 [1.39ms] +2026-09-08 17:50:05,836 INFO app.crud.llm_prompt_config created llm prompt config id=485c25d5-6ea8-4836-95c4-17ec482f7cf7 org=1 project=1 +2026-09-08 17:50:05,836 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.78ms] +2026-09-08 17:50:05,838 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/485c25d5-6ea8-4836-95c4-17ec482f7cf7 - 422 [1.39ms] +2026-09-08 17:50:05,844 INFO app.crud.llm_prompt_config created llm prompt config id=1e9931ae-43cc-4f6d-be2d-184870c739ab org=1 project=1 +2026-09-08 17:50:05,845 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.65ms] +2026-09-08 17:50:05,847 INFO app.crud.llm_prompt_config updated llm prompt config id=1e9931ae-43cc-4f6d-be2d-184870c739ab +2026-09-08 17:50:05,848 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1e9931ae-43cc-4f6d-be2d-184870c739ab - 200 [2.88ms] +2026-09-08 17:50:05,853 INFO app.crud.llm_prompt_config created llm prompt config id=43a870e8-b3dd-489a-8426-76877458bc20 org=1 project=1 +2026-09-08 17:50:05,854 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.67ms] +2026-09-08 17:50:05,856 INFO app.crud.llm_prompt_config updated llm prompt config id=43a870e8-b3dd-489a-8426-76877458bc20 +2026-09-08 17:50:05,857 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/43a870e8-b3dd-489a-8426-76877458bc20 - 200 [2.53ms] +2026-09-08 17:50:05,862 INFO app.crud.llm_prompt_config created llm prompt config id=ce1cfcef-b773-461f-a98b-619ee060fa80 org=1 project=1 +2026-09-08 17:50:05,863 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.94ms] +2026-09-08 17:50:05,865 INFO app.crud.llm_prompt_config deleted llm prompt config id=ce1cfcef-b773-461f-a98b-619ee060fa80 +2026-09-08 17:50:05,865 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/ce1cfcef-b773-461f-a98b-619ee060fa80 - 200 [2.28ms] +2026-09-08 17:50:05,874 INFO app.crud.llm_prompt_config created llm prompt config id=fea5ec10-a6ba-44fa-8b1b-7f1994d725f1 org=1 project=1 +2026-09-08 17:50:05,874 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.92ms] +2026-09-08 17:50:05,877 INFO app.crud.llm_prompt_config deleted llm prompt config id=fea5ec10-a6ba-44fa-8b1b-7f1994d725f1 +2026-09-08 17:50:05,877 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/fea5ec10-a6ba-44fa-8b1b-7f1994d725f1 - 200 [2.56ms] +2026-09-08 17:50:05,880 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.04ms] +2026-09-08 17:50:05,888 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/1393dd6e-875a-4455-a290-9c6f41277b5c - 404 [2.23ms] +2026-09-08 17:50:05,895 INFO app.crud.llm_prompt_config created llm prompt config id=95015d6d-baa6-4b34-b5fb-16c49def15db org=1 project=1 +2026-09-08 17:50:05,895 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.56ms] +2026-09-08 17:50:05,898 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/95015d6d-baa6-4b34-b5fb-16c49def15db - 404 [1.80ms] +2026-09-08 17:50:05,991 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='hello' +2026-09-08 17:50:05,991 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=True) output='clean text' +2026-09-08 17:50:05,994 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='bad text' +2026-09-08 17:50:05,994 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:05,996 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 64befc34-fd5e-4b01-bf5d-3b17a64d8818: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-08 17:50:05,999 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='bad text' +2026-09-08 17:50:05,999 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:06,001 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='bad text' +2026-09-08 17:50:06,002 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:06,027 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-08 17:50:06,027 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:06,029 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='some input text' +2026-09-08 17:50:06,030 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:06,032 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-08 17:50:06,032 INFO guardrails.execution request=64befc34-fd5e-4b01-bf5d-3b17a64d8818 guardrails execution finished (passed=False) output=None +2026-09-08 17:50:06,035 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 64befc34-fd5e-4b01-bf5d-3b17a64d8818: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-08 17:50:06,037 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 64befc34-fd5e-4b01-bf5d-3b17a64d8818: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 350, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-08 17:50:06,053 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-08 17:50:06,056 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-08 17:50:06,058 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-08 17:50:06,071 INFO app.crud.validator_config created validator config id=144d2995-d688-407b-986d-7bc5a7f7f7a8 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-08 17:50:06,072 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.97ms] +2026-09-08 17:50:06,079 INFO app.crud.validator_config created validator config id=379fb560-e936-420b-a55d-5681efae1b7d org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-08 17:50:06,080 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.31ms] +2026-09-08 17:50:06,082 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-08 17:50:06,082 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.97ms] +2026-09-08 17:50:06,087 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [1.12ms] +2026-09-08 17:50:06,093 INFO app.crud.validator_config created validator config id=3d61e8ae-43d9-4ab1-9cb7-3a6bbfb72285 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-08 17:50:06,093 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.06ms] +2026-09-08 17:50:06,096 INFO app.crud.validator_config created validator config id=f67e876e-88da-4399-82bf-b884129652d0 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-08 17:50:06,096 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.55ms] +2026-09-08 17:50:06,098 INFO app.crud.validator_config created validator config id=9aa697d1-179b-4cf9-ab5a-c266b77f48d1 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-08 17:50:06,099 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.20ms] +2026-09-08 17:50:06,101 INFO app.crud.validator_config created validator config id=42e004d2-82a9-484a-b21e-7b6aed11d75d org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-08 17:50:06,101 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.36ms] +2026-09-08 17:50:06,104 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.93ms] +2026-09-08 17:50:06,104 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3d61e8ae-43d9-4ab1-9cb7-3a6bbfb72285/ - 307 [0.11ms] +2026-09-08 17:50:06,106 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3d61e8ae-43d9-4ab1-9cb7-3a6bbfb72285 - 200 [1.75ms] +2026-09-08 17:50:06,107 INFO http_request_logger GET /api/v1/guardrails/validators/configs/f67e876e-88da-4399-82bf-b884129652d0/ - 307 [0.10ms] +2026-09-08 17:50:06,108 INFO http_request_logger GET /api/v1/guardrails/validators/configs/f67e876e-88da-4399-82bf-b884129652d0 - 200 [1.37ms] +2026-09-08 17:50:06,109 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9aa697d1-179b-4cf9-ab5a-c266b77f48d1/ - 307 [0.09ms] +2026-09-08 17:50:06,111 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9aa697d1-179b-4cf9-ab5a-c266b77f48d1 - 200 [1.59ms] +2026-09-08 17:50:06,111 INFO http_request_logger GET /api/v1/guardrails/validators/configs/42e004d2-82a9-484a-b21e-7b6aed11d75d/ - 307 [0.09ms] +2026-09-08 17:50:06,113 INFO http_request_logger GET /api/v1/guardrails/validators/configs/42e004d2-82a9-484a-b21e-7b6aed11d75d - 200 [1.38ms] +2026-09-08 17:50:06,119 INFO app.crud.validator_config created validator config id=0236ef17-8d00-44b1-ae6c-79954594e5f8 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-08 17:50:06,120 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.05ms] +2026-09-08 17:50:06,122 INFO app.crud.validator_config created validator config id=998da283-b05a-4a64-a752-5bfea33bc7c1 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-08 17:50:06,123 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.50ms] +2026-09-08 17:50:06,125 INFO app.crud.validator_config created validator config id=965e4f2c-b923-4163-b093-136fec613162 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-08 17:50:06,126 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.78ms] +2026-09-08 17:50:06,126 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0236ef17-8d00-44b1-ae6c-79954594e5f8/ - 307 [0.09ms] +2026-09-08 17:50:06,130 INFO app.crud.validator_config updated validator config id=0236ef17-8d00-44b1-ae6c-79954594e5f8 +2026-09-08 17:50:06,130 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0236ef17-8d00-44b1-ae6c-79954594e5f8 - 200 [3.68ms] +2026-09-08 17:50:06,131 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/998da283-b05a-4a64-a752-5bfea33bc7c1/ - 307 [0.09ms] +2026-09-08 17:50:06,134 INFO app.crud.validator_config updated validator config id=998da283-b05a-4a64-a752-5bfea33bc7c1 +2026-09-08 17:50:06,135 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/998da283-b05a-4a64-a752-5bfea33bc7c1 - 200 [3.30ms] +2026-09-08 17:50:06,135 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/965e4f2c-b923-4163-b093-136fec613162/ - 307 [0.09ms] +2026-09-08 17:50:06,138 INFO app.crud.validator_config updated validator config id=965e4f2c-b923-4163-b093-136fec613162 +2026-09-08 17:50:06,139 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/965e4f2c-b923-4163-b093-136fec613162 - 200 [3.27ms] +2026-09-08 17:50:06,141 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.88ms] +2026-09-08 17:50:06,149 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.99ms] +2026-09-08 17:50:06,157 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.29ms] +2026-09-08 17:50:06,166 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.30ms] +2026-09-08 17:50:06,173 INFO app.crud.validator_config created validator config id=572c81c3-e6ef-48a9-bbc2-f04e464faa01 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-08 17:50:06,173 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.44ms] +2026-09-08 17:50:06,176 INFO app.crud.validator_config created validator config id=1de57c6c-9ef2-45d1-870c-7121ba55c4cb org=1 project=1 type=ValidatorType.PIIRemover +2026-09-08 17:50:06,176 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.61ms] +2026-09-08 17:50:06,179 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.02ms] +2026-09-08 17:50:06,185 INFO app.crud.validator_config created validator config id=e7e4f7dc-2ffb-4f00-8f2c-d39399a61ff1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-08 17:50:06,186 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.99ms] +2026-09-08 17:50:06,188 INFO app.crud.validator_config created validator config id=e624cfc8-ed49-4ceb-8c68-79cd6c3ff0a0 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-08 17:50:06,189 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.00ms] +2026-09-08 17:50:06,191 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.04ms] +2026-09-08 17:50:06,196 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.94ms] +2026-09-08 17:50:06,202 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.85ms] +2026-09-08 17:50:06,209 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.08ms] +2026-09-08 17:50:06,209 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fc744519-96ed-47cf-8803-01938054e5d1/ - 307 [0.09ms] +2026-09-08 17:50:06,211 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fc744519-96ed-47cf-8803-01938054e5d1 - 200 [1.55ms] +2026-09-08 17:50:06,215 INFO http_request_logger GET /api/v1/guardrails/validators/configs/70bb88df-aed1-4cf2-8292-275f91eafc92/ - 307 [0.09ms] +2026-09-08 17:50:06,217 INFO http_request_logger GET /api/v1/guardrails/validators/configs/70bb88df-aed1-4cf2-8292-275f91eafc92 - 404 [1.68ms] +2026-09-08 17:50:06,220 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-08 17:50:06,221 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.79ms] +2026-09-08 17:50:06,227 INFO app.crud.validator_config created validator config id=d146f175-cb61-4823-86c0-cc4990c49547 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-08 17:50:06,228 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.20ms] +2026-09-08 17:50:06,228 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d146f175-cb61-4823-86c0-cc4990c49547/ - 307 [0.10ms] +2026-09-08 17:50:06,230 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d146f175-cb61-4823-86c0-cc4990c49547 - 404 [1.47ms] +2026-09-08 17:50:06,237 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.84ms] +2026-09-08 17:50:06,238 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8d34a377-87b7-43e8-a24f-4dca52a8a445/ - 307 [0.09ms] +2026-09-08 17:50:06,241 INFO app.crud.validator_config updated validator config id=8d34a377-87b7-43e8-a24f-4dca52a8a445 +2026-09-08 17:50:06,241 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/8d34a377-87b7-43e8-a24f-4dca52a8a445 - 200 [3.31ms] +2026-09-08 17:50:06,249 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.04ms] +2026-09-08 17:50:06,250 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/96a4dd5e-0bf2-45b1-af3e-f8cf72714f3f/ - 307 [0.09ms] +2026-09-08 17:50:06,252 INFO app.crud.validator_config updated validator config id=96a4dd5e-0bf2-45b1-af3e-f8cf72714f3f +2026-09-08 17:50:06,253 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/96a4dd5e-0bf2-45b1-af3e-f8cf72714f3f - 200 [2.96ms] +2026-09-08 17:50:06,257 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/ee75e93e-8c7f-4999-8aa6-cb6f11efd199/ - 307 [0.10ms] +2026-09-08 17:50:06,260 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/ee75e93e-8c7f-4999-8aa6-cb6f11efd199 - 404 [2.29ms] +2026-09-08 17:50:06,270 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.65ms] +2026-09-08 17:50:06,271 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/d40e3153-08aa-4318-87d8-1e68cfa5cbf9/ - 307 [0.10ms] +2026-09-08 17:50:06,274 INFO app.crud.validator_config deleted validator config id=d40e3153-08aa-4318-87d8-1e68cfa5cbf9 +2026-09-08 17:50:06,274 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/d40e3153-08aa-4318-87d8-1e68cfa5cbf9 - 200 [2.94ms] +2026-09-08 17:50:06,275 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d40e3153-08aa-4318-87d8-1e68cfa5cbf9/ - 307 [0.10ms] +2026-09-08 17:50:06,277 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d40e3153-08aa-4318-87d8-1e68cfa5cbf9 - 404 [1.80ms] +2026-09-08 17:50:06,281 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/41e7d6ca-de97-40a8-92d4-cf87b96bd13c/ - 307 [0.30ms] +2026-09-08 17:50:06,284 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/41e7d6ca-de97-40a8-92d4-cf87b96bd13c - 404 [1.87ms] +2026-09-08 17:50:06,291 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.91ms] +2026-09-08 17:50:06,291 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/3f6745c2-34a5-4f80-9b9c-0beda5d4a0c3/ - 307 [0.10ms] +2026-09-08 17:50:06,293 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/3f6745c2-34a5-4f80-9b9c-0beda5d4a0c3 - 404 [1.34ms] +2026-09-08 17:50:06,293 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3f6745c2-34a5-4f80-9b9c-0beda5d4a0c3/ - 307 [0.09ms] +2026-09-08 17:50:06,295 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3f6745c2-34a5-4f80-9b9c-0beda5d4a0c3 - 200 [1.43ms] +2026-09-08 17:50:06,387 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-08 17:50:06,388 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-08 17:50:06,452 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:09,255 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:09,269 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:10,824 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:10,836 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:12,275 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:12,286 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:13,373 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:13,387 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:14,977 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:14,988 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:17,686 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:17,687 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-08 17:50:18,971 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-08 17:50:19,130 INFO watchfiles.main 3 changes detected +2026-09-09 10:03:42,525 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [201.62ms] +2026-09-09 10:03:43,834 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 10:03:43,835 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 10:03:43,851 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 10:03:43,852 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 10:03:43,853 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 10:03:43,854 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,854 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:03:43,855 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 10:03:43,855 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 10:03:43,891 INFO guardrails.execution request=e261f98f-0626-42c7-aa16-00ce7653a15d starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278' +2026-09-09 10:03:43,942 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:03:44,016 INFO guardrails.execution request=e261f98f-0626-42c7-aa16-00ce7653a15d guardrails execution finished (passed=True) output=' phone number is ' +2026-09-09 10:03:44,030 INFO guardrails.execution request=e261f98f-0626-42c7-aa16-00ce7653a15d step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:03:43.899463 end=2026-09-09T10:03:44.014551 duration_ms=115 input='Amit Gupta phone number is 919611188278' output=' phone number is ' +2026-09-09 10:03:44,060 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1489.23ms] +2026-09-09 10:05:30,092 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [25.82ms] +2026-09-09 10:05:30,127 INFO guardrails.execution request=fb25899f-cd16-41c3-87c5-b57d8ec8a6ab starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:05:30,171 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:05:30,176 INFO guardrails.execution request=fb25899f-cd16-41c3-87c5-b57d8ec8a6ab guardrails execution finished (passed=True) output=' phone number is . He is a doctor' +2026-09-09 10:05:30,182 INFO guardrails.execution request=fb25899f-cd16-41c3-87c5-b57d8ec8a6ab step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:05:30.128849 end=2026-09-09T10:05:30.174376 duration_ms=45 input='Amit Gupta phone number is 919611188278. He is a doctor' output=' phone number is . He is a doctor' +2026-09-09 10:05:30,188 INFO http_request_logger POST /api/v1/guardrails/ - 200 [87.56ms] +2026-09-09 10:05:35,435 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [5.16ms] +2026-09-09 10:05:35,517 INFO guardrails.execution request=826123bb-c883-4425-b48e-faf4b0beba05 starting guardrails execution (validators=['gender_assumption_bias']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:05:35,532 INFO guardrails.execution request=826123bb-c883-4425-b48e-faf4b0beba05 guardrails execution finished (passed=True) output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:05:35,537 INFO guardrails.execution request=826123bb-c883-4425-b48e-faf4b0beba05 step=1/1 validator=GenderAssumptionBias stage=output outcome=Outcome.FAIL start=2026-09-09T10:05:35.518079 end=2026-09-09T10:05:35.531413 duration_ms=13 input='Amit Gupta phone number is 919611188278. He is a doctor' output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:05:35,543 INFO http_request_logger POST /api/v1/guardrails/ - 200 [101.68ms] +2026-09-09 10:07:43,362 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [19.52ms] +2026-09-09 10:07:43,387 INFO guardrails.execution request=5cec79cb-43c7-4a78-9726-b86feadd5ac1 starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:07:43,406 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:07:43,408 INFO guardrails.execution request=5cec79cb-43c7-4a78-9726-b86feadd5ac1 guardrails execution finished (passed=True) output=' phone number is . He is a doctor' +2026-09-09 10:07:43,412 INFO guardrails.execution request=5cec79cb-43c7-4a78-9726-b86feadd5ac1 step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:07:43.393795 end=2026-09-09T10:07:43.407812 duration_ms=14 input='Amit Gupta phone number is 919611188278. He is a doctor' output=' phone number is . He is a doctor' +2026-09-09 10:07:43,418 INFO http_request_logger POST /api/v1/guardrails/ - 200 [48.65ms] +2026-09-09 10:08:07,681 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [14.25ms] +2026-09-09 10:08:07,714 INFO guardrails.execution request=d3b9087c-d753-4b70-8d50-0acb6174e3ea starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:08:07,734 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:08:07,737 INFO guardrails.execution request=d3b9087c-d753-4b70-8d50-0acb6174e3ea guardrails execution finished (passed=True) output=' phone number is . He is a doctor' +2026-09-09 10:08:07,743 INFO guardrails.execution request=d3b9087c-d753-4b70-8d50-0acb6174e3ea step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:08:07.717786 end=2026-09-09T10:08:07.736304 duration_ms=18 input='Amit Gupta phone number is 919611188278. He is a doctor' output=' phone number is . He is a doctor' +2026-09-09 10:08:07,748 INFO http_request_logger POST /api/v1/guardrails/ - 200 [58.64ms] +2026-09-09 10:08:10,663 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [6.42ms] +2026-09-09 10:08:10,689 INFO guardrails.execution request=b902ac7d-9f28-460f-9de7-ba77ddf2bb26 starting guardrails execution (validators=['gender_assumption_bias']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:08:10,690 INFO guardrails.execution request=b902ac7d-9f28-460f-9de7-ba77ddf2bb26 guardrails execution finished (passed=True) output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:08:10,693 INFO guardrails.execution request=b902ac7d-9f28-460f-9de7-ba77ddf2bb26 step=1/1 validator=GenderAssumptionBias stage=output outcome=Outcome.FAIL start=2026-09-09T10:08:10.689796 end=2026-09-09T10:08:10.690040 duration_ms=0 input='Amit Gupta phone number is 919611188278. He is a doctor' output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:08:10,696 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.49ms] +2026-09-09 10:11:28,923 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [12.69ms] +2026-09-09 10:11:28,958 INFO guardrails.execution request=c718fd92-4f2d-4b68-9872-23dc9049597a starting guardrails execution (validators=['gender_assumption_bias']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:11:28,961 INFO guardrails.execution request=c718fd92-4f2d-4b68-9872-23dc9049597a guardrails execution finished (passed=True) output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:11:28,968 INFO guardrails.execution request=c718fd92-4f2d-4b68-9872-23dc9049597a step=1/1 validator=GenderAssumptionBias stage=output outcome=Outcome.FAIL start=2026-09-09T10:11:28.959878 end=2026-09-09T10:11:28.960138 duration_ms=0 input='Amit Gupta phone number is 919611188278. He is a doctor' output='Amit Gupta phone number is 919611188278. they is a doctor' +2026-09-09 10:11:28,974 INFO http_request_logger POST /api/v1/guardrails/ - 200 [42.13ms] +2026-09-09 10:13:05,160 INFO watchfiles.main 3 changes detected +2026-09-09 10:13:05,176 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:13:05,229 INFO uvicorn.error Shutting down +2026-09-09 10:13:05,335 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:13:05,337 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:13:05,338 INFO uvicorn.error Finished server process [35935] +2026-09-09 10:13:05,751 INFO watchfiles.main 1 change detected +2026-09-09 10:13:11,542 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:13:12,106 INFO watchfiles.main 3 changes detected +2026-09-09 10:13:12,441 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:13:12,441 INFO uvicorn.error Started server process [45484] +2026-09-09 10:13:12,442 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:13:12,442 INFO uvicorn.error Application startup complete. +2026-09-09 10:13:14,385 INFO watchfiles.main 3 changes detected +2026-09-09 10:13:19,059 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:13:19,750 INFO guardrails.execution request=336a5824-b8b9-4ae2-b11f-6c9c83fd791b starting guardrails execution (validators=[]) input='hello world' +2026-09-09 10:13:19,751 INFO guardrails.execution request=336a5824-b8b9-4ae2-b11f-6c9c83fd791b guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:13:19,753 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.18ms] +2026-09-09 10:13:19,759 INFO guardrails.execution request=ee69ff6d-2d2c-49a3-8c34-796bcd6c8901 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 10:13:19,759 INFO guardrails.execution request=ee69ff6d-2d2c-49a3-8c34-796bcd6c8901 guardrails execution finished (passed=False) output=None +2026-09-09 10:13:19,761 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.09ms] +2026-09-09 10:13:19,766 INFO guardrails.execution request=74c8848f-16f4-40f5-ae70-74eec86751ea starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 10:13:19,767 INFO guardrails.execution request=74c8848f-16f4-40f5-ae70-74eec86751ea guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 10:13:19,768 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.75ms] +2026-09-09 10:13:19,773 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0efe1a02-910a-41be-8424-e4c357cf9943: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 353, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 10:13:19,776 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.59ms] +2026-09-09 10:13:19,791 INFO guardrails.execution request=ed41ccfc-c94c-4ba4-adbd-07e260e704fa starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:13:19,793 INFO guardrails.execution request=ed41ccfc-c94c-4ba4-adbd-07e260e704fa guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:13:19,795 INFO guardrails.execution request=ed41ccfc-c94c-4ba4-adbd-07e260e704fa step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.792487 end=2026-09-09T10:13:19.792623 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:13:19,799 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.88ms] +2026-09-09 10:13:19,813 INFO guardrails.execution request=3308d3f7-e49a-436b-ba45-66a61b620008 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 10:13:19,814 INFO guardrails.execution request=3308d3f7-e49a-436b-ba45-66a61b620008 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 10:13:19,815 INFO guardrails.execution request=3308d3f7-e49a-436b-ba45-66a61b620008 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:13:19.813626 end=2026-09-09T10:13:19.813705 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 10:13:19,818 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.19ms] +2026-09-09 10:13:19,837 INFO guardrails.execution request=5a32cbdf-fa3b-4f12-8563-f4768d1813b6 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:13:19,840 INFO guardrails.execution request=5a32cbdf-fa3b-4f12-8563-f4768d1813b6 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:13:19,841 INFO guardrails.execution request=5a32cbdf-fa3b-4f12-8563-f4768d1813b6 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.837734 end=2026-09-09T10:13:19.839457 duration_ms=1 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:13:19,844 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.29ms] +2026-09-09 10:13:19,857 INFO guardrails.execution request=e1cfcaa3-b924-4511-b10b-3a5995d82655 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 10:13:19,858 INFO guardrails.execution request=e1cfcaa3-b924-4511-b10b-3a5995d82655 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 10:13:19,860 INFO guardrails.execution request=e1cfcaa3-b924-4511-b10b-3a5995d82655 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:13:19.857725 end=2026-09-09T10:13:19.857981 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 10:13:19,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.95ms] +2026-09-09 10:13:19,875 INFO guardrails.execution request=c08982d7-c2ff-47b1-9b8b-36661cb73e97 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 10:13:19,876 INFO guardrails.execution request=c08982d7-c2ff-47b1-9b8b-36661cb73e97 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:13:19,878 INFO guardrails.execution request=c08982d7-c2ff-47b1-9b8b-36661cb73e97 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.875650 end=2026-09-09T10:13:19.876098 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 10:13:19,879 INFO guardrails.execution request=c08982d7-c2ff-47b1-9b8b-36661cb73e97 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.876103 end=2026-09-09T10:13:19.876185 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:13:19,882 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.43ms] +2026-09-09 10:13:19,886 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.29ms] +2026-09-09 10:13:19,899 INFO guardrails.execution request=2fa375ae-08eb-496e-a572-bcd8967e4ede starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:13:19,899 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2fa375ae-08eb-496e-a572-bcd8967e4ede: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:13:19,903 INFO guardrails.execution request=2fa375ae-08eb-496e-a572-bcd8967e4ede step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.899568 end=2026-09-09T10:13:19.899809 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 10:13:19,905 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.05ms] +2026-09-09 10:13:19,918 INFO guardrails.execution request=4c42ab0e-54a6-4f8e-b075-dfeeb613cf29 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:13:19,919 INFO guardrails.execution request=4c42ab0e-54a6-4f8e-b075-dfeeb613cf29 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:13:19,921 INFO guardrails.execution request=4c42ab0e-54a6-4f8e-b075-dfeeb613cf29 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.918839 end=2026-09-09T10:13:19.919127 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:13:19,923 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.80ms] +2026-09-09 10:13:19,935 INFO guardrails.execution request=eb6ce5f5-77d4-49e3-83a8-d44cbd7249af starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 10:13:19,939 INFO guardrails.execution request=eb6ce5f5-77d4-49e3-83a8-d44cbd7249af guardrails execution finished (passed=True) output='' +2026-09-09 10:13:19,942 INFO guardrails.execution request=eb6ce5f5-77d4-49e3-83a8-d44cbd7249af step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.936148 end=2026-09-09T10:13:19.938969 duration_ms=2 input='This is a damn fucking mess.' output='' +2026-09-09 10:13:19,945 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.03ms] +2026-09-09 10:13:19,956 INFO guardrails.execution request=48bcab69-c712-484b-8a9f-ed69d8a96926 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 10:13:19,959 INFO guardrails.execution request=48bcab69-c712-484b-8a9f-ed69d8a96926 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 10:13:19,960 INFO guardrails.execution request=48bcab69-c712-484b-8a9f-ed69d8a96926 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:13:19.957045 end=2026-09-09T10:13:19.958510 duration_ms=1 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 10:13:19,962 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.81ms] +2026-09-09 10:13:19,978 INFO guardrails.execution request=414205b8-c15a-4030-ab41-7f208f9cc706 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 10:13:19,979 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 414205b8-c15a-4030-ab41-7f208f9cc706: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 10:13:19,983 INFO guardrails.execution request=414205b8-c15a-4030-ab41-7f208f9cc706 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.978888 end=2026-09-09T10:13:19.979802 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 10:13:19,985 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.27ms] +2026-09-09 10:13:19,998 INFO guardrails.execution request=995f2c78-ba19-4149-9ef3-903e47c6c74f starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 10:13:20,000 INFO guardrails.execution request=995f2c78-ba19-4149-9ef3-903e47c6c74f guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:13:20,003 INFO guardrails.execution request=995f2c78-ba19-4149-9ef3-903e47c6c74f step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:19.999148 end=2026-09-09T10:13:19.999980 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:13:20,007 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.12ms] +2026-09-09 10:13:20,014 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5a385138-8b08-417d-adc9-d5115ee54bec: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 353, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:13:20,017 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.09ms] +2026-09-09 10:13:22,847 INFO guardrails.execution request=04fa782d-c693-4261-a4de-059d4e73d191 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:13:23,043 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 04fa782d-c693-4261-a4de-059d4e73d191: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:13:23,052 INFO guardrails.execution request=04fa782d-c693-4261-a4de-059d4e73d191 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:22.848373 end=2026-09-09T10:13:23.042939 duration_ms=194 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:13:23,055 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3034.49ms] +2026-09-09 10:13:23,634 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:13:25,320 INFO guardrails.execution request=5b0e3e34-87e0-453a-a9c1-06e9c1ff6268 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:13:25,336 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b0e3e34-87e0-453a-a9c1-06e9c1ff6268: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:13:25,341 INFO guardrails.execution request=5b0e3e34-87e0-453a-a9c1-06e9c1ff6268 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:25.321452 end=2026-09-09T10:13:25.335889 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:13:25,345 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2283.59ms] +2026-09-09 10:13:27,423 INFO guardrails.execution request=5f0be790-acb9-4f60-90f0-be3b4e718ab1 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:13:27,447 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5f0be790-acb9-4f60-90f0-be3b4e718ab1: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:13:27,453 INFO guardrails.execution request=5f0be790-acb9-4f60-90f0-be3b4e718ab1 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:27.424448 end=2026-09-09T10:13:27.447110 duration_ms=22 input='Explicit sexual content goes here.' output=None +2026-09-09 10:13:27,458 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2107.00ms] +2026-09-09 10:13:27,481 INFO guardrails.execution request=89970f87-dcf7-4352-a6c0-932d6bfb0406 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:13:27,484 INFO guardrails.execution request=89970f87-dcf7-4352-a6c0-932d6bfb0406 guardrails execution finished (passed=True) output='' +2026-09-09 10:13:27,489 INFO guardrails.execution request=89970f87-dcf7-4352-a6c0-932d6bfb0406 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:27.482033 end=2026-09-09T10:13:27.483570 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-09 10:13:27,492 INFO guardrails.execution request=89970f87-dcf7-4352-a6c0-932d6bfb0406 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:13:27.483588 end=2026-09-09T10:13:27.483783 duration_ms=0 input='' output='' +2026-09-09 10:13:27,496 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.54ms] +2026-09-09 10:13:27,509 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5b8d1cb1-11e5-4048-8c44-a4cdfec53cc6: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 353, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:13:27,513 INFO http_request_logger POST /api/v1/guardrails/ - 200 [11.71ms] +2026-09-09 10:13:29,627 INFO guardrails.execution request=0a236f1b-8835-42bc-9c70-25e5975a8057 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:13:29,629 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0a236f1b-8835-42bc-9c70-25e5975a8057: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:13:29,634 INFO guardrails.execution request=0a236f1b-8835-42bc-9c70-25e5975a8057 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:29.628099 end=2026-09-09T10:13:29.629529 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:13:29,637 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2120.04ms] +2026-09-09 10:13:31,743 INFO guardrails.execution request=1067d450-392b-4552-8868-7fff018721b9 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:13:31,744 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1067d450-392b-4552-8868-7fff018721b9: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:13:31,748 INFO guardrails.execution request=1067d450-392b-4552-8868-7fff018721b9 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:31.744114 end=2026-09-09T10:13:31.744547 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:13:31,751 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2108.34ms] +2026-09-09 10:13:31,766 INFO guardrails.execution request=32f704e3-d4c7-4944-acd8-2496874747c7 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:13:31,769 INFO guardrails.execution request=32f704e3-d4c7-4944-acd8-2496874747c7 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:13:31,770 INFO guardrails.execution request=32f704e3-d4c7-4944-acd8-2496874747c7 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.767091 end=2026-09-09T10:13:31.768232 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:13:31,772 INFO guardrails.execution request=32f704e3-d4c7-4944-acd8-2496874747c7 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.768239 end=2026-09-09T10:13:31.768314 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:13:31,774 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.61ms] +2026-09-09 10:13:31,793 INFO guardrails.execution request=8cdf563f-e9cf-4067-86fe-d0f0cea56e06 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:13:31,795 INFO guardrails.execution request=8cdf563f-e9cf-4067-86fe-d0f0cea56e06 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:13:31,799 INFO guardrails.execution request=8cdf563f-e9cf-4067-86fe-d0f0cea56e06 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.793811 end=2026-09-09T10:13:31.794114 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:13:31,801 INFO guardrails.execution request=8cdf563f-e9cf-4067-86fe-d0f0cea56e06 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.794119 end=2026-09-09T10:13:31.795049 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:13:31,804 INFO guardrails.execution request=8cdf563f-e9cf-4067-86fe-d0f0cea56e06 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.795054 end=2026-09-09T10:13:31.795111 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:13:31,807 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.41ms] +2026-09-09 10:13:31,823 INFO guardrails.execution request=0c3cba17-dc82-4567-a253-02bcc2827f48 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:13:31,825 INFO guardrails.execution request=0c3cba17-dc82-4567-a253-02bcc2827f48 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:13:31,827 INFO guardrails.execution request=0c3cba17-dc82-4567-a253-02bcc2827f48 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:13:31.823991 end=2026-09-09T10:13:31.824094 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:13:31,829 INFO guardrails.execution request=0c3cba17-dc82-4567-a253-02bcc2827f48 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:13:31.824100 end=2026-09-09T10:13:31.824274 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:13:31,833 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.77ms] +2026-09-09 10:13:31,847 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log b68c015f-0951-482c-8051-bd9231531622: 404: Ban list not found +2026-09-09 10:13:31,850 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.30ms] +2026-09-09 10:13:31,858 INFO guardrails.execution request=65d3a985-4887-4fb9-8c17-f2d9e6f15cab starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:13:31,859 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 65d3a985-4887-4fb9-8c17-f2d9e6f15cab: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 369, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:13:31,861 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.73ms] +2026-09-09 10:13:31,868 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:13:31,868 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.46ms] +2026-09-09 10:13:31,966 INFO watchfiles.main 3 changes detected +2026-09-09 10:13:43,015 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:13:43,184 INFO watchfiles.main 1 change detected +2026-09-09 10:14:55,231 INFO watchfiles.main 3 changes detected +2026-09-09 10:14:55,233 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:14:55,249 INFO uvicorn.error Shutting down +2026-09-09 10:14:55,354 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:14:55,355 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:14:55,356 INFO uvicorn.error Finished server process [45484] +2026-09-09 10:14:55,753 INFO watchfiles.main 1 change detected +2026-09-09 10:15:00,612 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:15:01,372 INFO watchfiles.main 3 changes detected +2026-09-09 10:15:01,423 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:15:01,424 INFO uvicorn.error Started server process [45635] +2026-09-09 10:15:01,424 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:15:01,425 INFO uvicorn.error Application startup complete. +2026-09-09 10:15:10,731 INFO watchfiles.main 3 changes detected +2026-09-09 10:15:10,731 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:15:10,814 INFO uvicorn.error Shutting down +2026-09-09 10:15:10,917 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:15:10,918 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:15:10,919 INFO uvicorn.error Finished server process [45635] +2026-09-09 10:15:11,303 INFO watchfiles.main 1 change detected +2026-09-09 10:15:15,371 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:15:15,896 INFO watchfiles.main 3 changes detected +2026-09-09 10:15:16,148 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:15:16,148 INFO uvicorn.error Started server process [45662] +2026-09-09 10:15:16,149 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:15:16,149 INFO uvicorn.error Application startup complete. +2026-09-09 10:15:19,311 INFO watchfiles.main 3 changes detected +2026-09-09 10:15:19,312 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:15:19,378 INFO uvicorn.error Shutting down +2026-09-09 10:15:19,479 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:15:19,481 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:15:19,482 INFO uvicorn.error Finished server process [45662] +2026-09-09 10:15:19,897 INFO watchfiles.main 1 change detected +2026-09-09 10:15:23,714 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:15:24,241 INFO watchfiles.main 3 changes detected +2026-09-09 10:15:24,503 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:15:24,504 INFO uvicorn.error Started server process [45677] +2026-09-09 10:15:24,504 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:15:24,505 INFO uvicorn.error Application startup complete. +2026-09-09 10:16:48,290 INFO watchfiles.main 3 changes detected +2026-09-09 10:16:58,697 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:16:59,466 INFO guardrails.execution request=fda7a091-94f3-4935-b3d7-6f9b6ad94d2d starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,468 INFO guardrails.execution request=fda7a091-94f3-4935-b3d7-6f9b6ad94d2d guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,471 INFO guardrails.execution request=fda7a091-94f3-4935-b3d7-6f9b6ad94d2d step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.467423 end=2026-09-09T10:16:59.467528 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,475 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.62ms] +2026-09-09 10:16:59,489 INFO guardrails.execution request=882c378d-0de6-4142-b8b0-1e61a17ddd99 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:16:59,490 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 882c378d-0de6-4142-b8b0-1e61a17ddd99: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:16:59,494 INFO guardrails.execution request=882c378d-0de6-4142-b8b0-1e61a17ddd99 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:16:59.490373 end=2026-09-09T10:16:59.490453 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:16:59,496 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.48ms] +2026-09-09 10:16:59,511 INFO guardrails.execution request=3d8ba3d0-c6e6-40e0-8846-58192ed88865 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-09 10:16:59,512 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3d8ba3d0-c6e6-40e0-8846-58192ed88865: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 10:16:59,514 INFO guardrails.execution request=3d8ba3d0-c6e6-40e0-8846-58192ed88865 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:16:59.512011 end=2026-09-09T10:16:59.512062 duration_ms=0 input='' output=None +2026-09-09 10:16:59,516 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.81ms] +2026-09-09 10:16:59,531 INFO guardrails.execution request=2abdbb0f-0d19-4edf-becd-e6fd6c376156 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,533 INFO guardrails.execution request=2abdbb0f-0d19-4edf-becd-e6fd6c376156 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,534 INFO guardrails.execution request=2abdbb0f-0d19-4edf-becd-e6fd6c376156 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.532220 end=2026-09-09T10:16:59.532287 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,537 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.50ms] +2026-09-09 10:16:59,549 INFO guardrails.execution request=30f6cd3b-01db-430e-8c41-e017b8a89ad2 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:16:59,550 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 30f6cd3b-01db-430e-8c41-e017b8a89ad2: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:16:59,552 INFO guardrails.execution request=30f6cd3b-01db-430e-8c41-e017b8a89ad2 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:16:59.549903 end=2026-09-09T10:16:59.549975 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:16:59,554 INFO http_request_logger POST /api/v1/guardrails/ - 200 [13.68ms] +2026-09-09 10:16:59,574 INFO guardrails.execution request=a24af8ea-a2a8-4df8-8e0d-76e24db8ea73 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:16:59,576 INFO guardrails.execution request=a24af8ea-a2a8-4df8-8e0d-76e24db8ea73 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:16:59,578 INFO guardrails.execution request=a24af8ea-a2a8-4df8-8e0d-76e24db8ea73 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.575403 end=2026-09-09T10:16:59.575476 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:16:59,579 INFO guardrails.execution request=a24af8ea-a2a8-4df8-8e0d-76e24db8ea73 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.575480 end=2026-09-09T10:16:59.575578 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:16:59,582 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.24ms] +2026-09-09 10:16:59,595 INFO guardrails.execution request=46ae3952-f686-4e37-84af-9078c16a27a9 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:16:59,598 INFO guardrails.execution request=46ae3952-f686-4e37-84af-9078c16a27a9 guardrails execution finished (passed=True) output='' +2026-09-09 10:16:59,600 INFO guardrails.execution request=46ae3952-f686-4e37-84af-9078c16a27a9 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.596486 end=2026-09-09T10:16:59.596558 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:16:59,601 INFO guardrails.execution request=46ae3952-f686-4e37-84af-9078c16a27a9 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.596562 end=2026-09-09T10:16:59.597908 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 10:16:59,604 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.02ms] +2026-09-09 10:16:59,625 INFO guardrails.execution request=64f32217-fd9e-4c61-a03e-b9ca91bb6df4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:16:59,629 INFO guardrails.execution request=64f32217-fd9e-4c61-a03e-b9ca91bb6df4 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:16:59,633 INFO guardrails.execution request=64f32217-fd9e-4c61-a03e-b9ca91bb6df4 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.626359 end=2026-09-09T10:16:59.626425 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:16:59,634 INFO guardrails.execution request=64f32217-fd9e-4c61-a03e-b9ca91bb6df4 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.626430 end=2026-09-09T10:16:59.628756 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:16:59,637 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.17ms] +2026-09-09 10:16:59,650 INFO guardrails.execution request=53bc8048-d7a2-4a32-ad3b-a4022aab75bf starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:16:59,651 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 53bc8048-d7a2-4a32-ad3b-a4022aab75bf: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 10:16:59,653 INFO guardrails.execution request=53bc8048-d7a2-4a32-ad3b-a4022aab75bf step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.650641 end=2026-09-09T10:16:59.650699 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:16:59,656 INFO guardrails.execution request=53bc8048-d7a2-4a32-ad3b-a4022aab75bf step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.650703 end=2026-09-09T10:16:59.651598 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 10:16:59,657 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.34ms] +2026-09-09 10:16:59,672 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,675 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,679 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.672773 end=2026-09-09T10:16:59.672833 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,681 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.672837 end=2026-09-09T10:16:59.672894 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,682 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.672897 end=2026-09-09T10:16:59.673768 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,683 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.673773 end=2026-09-09T10:16:59.674339 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,684 INFO guardrails.execution request=c204154d-ccf5-4733-b6bd-4ad6a1b95bb5 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.674343 end=2026-09-09T10:16:59.674955 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:16:59,687 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.20ms] +2026-09-09 10:16:59,705 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:16:59,709 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:16:59,715 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:16:59.706423 end=2026-09-09T10:16:59.706500 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:16:59,718 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.706505 end=2026-09-09T10:16:59.707416 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:16:59,720 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.707422 end=2026-09-09T10:16:59.707946 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:16:59,721 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:16:59.707952 end=2026-09-09T10:16:59.708012 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:16:59,724 INFO guardrails.execution request=ad260ea3-b91a-4863-9887-d46523438ffd step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T10:16:59.708015 end=2026-09-09T10:16:59.708616 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:16:59,728 INFO http_request_logger POST /api/v1/guardrails/ - 200 [36.88ms] +2026-09-09 10:16:59,749 INFO app.crud.ban_list created ban list id=efa86567-3e33-4e3a-a7c1-bf676216241f org=1 project=1 +2026-09-09 10:16:59,750 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [5.27ms] +2026-09-09 10:16:59,754 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.85ms] +2026-09-09 10:16:59,759 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.78ms] +2026-09-09 10:16:59,763 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.17ms] +2026-09-09 10:16:59,767 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.72ms] +2026-09-09 10:16:59,772 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.70ms] +2026-09-09 10:16:59,781 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.67ms] +2026-09-09 10:16:59,788 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.64ms] +2026-09-09 10:16:59,793 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.61ms] +2026-09-09 10:16:59,799 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.79ms] +2026-09-09 10:16:59,807 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.94ms] +2026-09-09 10:16:59,809 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.31ms] +2026-09-09 10:16:59,817 INFO app.crud.ban_list created ban list id=df220878-ce51-4619-834f-356de0a3b95b org=1 project=1 +2026-09-09 10:16:59,818 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.46ms] +2026-09-09 10:16:59,818 INFO http_request_logger GET /api/v1/guardrails/ban_lists/df220878-ce51-4619-834f-356de0a3b95b/ - 307 [0.10ms] +2026-09-09 10:16:59,820 INFO http_request_logger GET /api/v1/guardrails/ban_lists/df220878-ce51-4619-834f-356de0a3b95b - 200 [2.10ms] +2026-09-09 10:16:59,829 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.99ms] +2026-09-09 10:16:59,830 INFO http_request_logger GET /api/v1/guardrails/ban_lists/505dcef1-4e0d-4004-b173-dca968f3748b/ - 307 [0.09ms] +2026-09-09 10:16:59,833 INFO http_request_logger GET /api/v1/guardrails/ban_lists/505dcef1-4e0d-4004-b173-dca968f3748b - 200 [2.98ms] +2026-09-09 10:16:59,839 INFO http_request_logger GET /api/v1/guardrails/ban_lists/4a17f1d6-5e05-44d4-a8c2-eb1a6da9440f/ - 307 [0.08ms] +2026-09-09 10:16:59,841 INFO http_request_logger GET /api/v1/guardrails/ban_lists/4a17f1d6-5e05-44d4-a8c2-eb1a6da9440f - 404 [1.67ms] +2026-09-09 10:16:59,853 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.17ms] +2026-09-09 10:16:59,854 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9b09c5ae-ded5-48f9-b01d-299c136d1825/ - 307 [0.11ms] +2026-09-09 10:16:59,856 INFO http_request_logger GET /api/v1/guardrails/ban_lists/9b09c5ae-ded5-48f9-b01d-299c136d1825 - 403 [2.08ms] +2026-09-09 10:16:59,865 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.20ms] +2026-09-09 10:16:59,865 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/950a843e-e4dd-43b6-b735-bf956c55019b/ - 307 [0.10ms] +2026-09-09 10:16:59,869 INFO app.crud.ban_list updated ban list id=950a843e-e4dd-43b6-b735-bf956c55019b +2026-09-09 10:16:59,869 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/950a843e-e4dd-43b6-b735-bf956c55019b - 200 [3.74ms] +2026-09-09 10:16:59,877 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.88ms] +2026-09-09 10:16:59,877 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/29e9035d-5a4a-4a9e-857e-07303f270d4c/ - 307 [0.09ms] +2026-09-09 10:16:59,882 INFO app.crud.ban_list updated ban list id=29e9035d-5a4a-4a9e-857e-07303f270d4c +2026-09-09 10:16:59,882 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/29e9035d-5a4a-4a9e-857e-07303f270d4c - 200 [5.11ms] +2026-09-09 10:16:59,887 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1871533b-31e8-4e02-b0c0-fd360043e3b4/ - 307 [0.10ms] +2026-09-09 10:16:59,890 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1871533b-31e8-4e02-b0c0-fd360043e3b4 - 404 [2.55ms] +2026-09-09 10:16:59,896 INFO app.crud.ban_list created ban list id=43866aa0-2625-4e2c-85ba-3974a0a2bec2 org=1 project=1 +2026-09-09 10:16:59,896 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.49ms] +2026-09-09 10:16:59,897 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/43866aa0-2625-4e2c-85ba-3974a0a2bec2/ - 307 [0.10ms] +2026-09-09 10:16:59,899 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/43866aa0-2625-4e2c-85ba-3974a0a2bec2 - 403 [1.46ms] +2026-09-09 10:16:59,905 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.65ms] +2026-09-09 10:16:59,906 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/013dec79-2d59-402a-961e-95511c084620/ - 307 [0.08ms] +2026-09-09 10:16:59,907 INFO app.crud.ban_list deleted ban list id=013dec79-2d59-402a-961e-95511c084620 +2026-09-09 10:16:59,908 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/013dec79-2d59-402a-961e-95511c084620 - 200 [1.77ms] +2026-09-09 10:16:59,912 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/39b6bcb0-8f06-4f35-8316-887aa0f42882/ - 307 [0.08ms] +2026-09-09 10:16:59,914 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/39b6bcb0-8f06-4f35-8316-887aa0f42882 - 404 [1.38ms] +2026-09-09 10:16:59,920 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.63ms] +2026-09-09 10:16:59,920 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/904d05b9-655f-488f-84d9-83b0cab996ad/ - 307 [0.09ms] +2026-09-09 10:16:59,922 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/904d05b9-655f-488f-84d9-83b0cab996ad - 403 [1.27ms] +2026-09-09 10:16:59,926 INFO app.crud.ban_list created ban list id=a06b5efd-6128-417d-9703-f2283223004f org=1 project=1 +2026-09-09 10:16:59,927 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.36ms] +2026-09-09 10:16:59,927 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a06b5efd-6128-417d-9703-f2283223004f/ - 307 [0.08ms] +2026-09-09 10:16:59,930 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/a06b5efd-6128-417d-9703-f2283223004f - 403 [2.43ms] +2026-09-09 10:17:00,017 INFO guardrails.execution request=4311eab8-2e20-4b78-8fa9-2ed87f3fd74b starting guardrails execution (validators=[]) input='hello world' +2026-09-09 10:17:00,017 INFO guardrails.execution request=4311eab8-2e20-4b78-8fa9-2ed87f3fd74b guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:17:00,019 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.23ms] +2026-09-09 10:17:00,025 INFO guardrails.execution request=731f0cb3-c706-4be3-9adb-df47fc5fa85d starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 10:17:00,025 INFO guardrails.execution request=731f0cb3-c706-4be3-9adb-df47fc5fa85d guardrails execution finished (passed=False) output=None +2026-09-09 10:17:00,026 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.13ms] +2026-09-09 10:17:00,032 INFO guardrails.execution request=86ac0a68-4f0c-4dae-9645-fff7f400e4f5 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 10:17:00,032 INFO guardrails.execution request=86ac0a68-4f0c-4dae-9645-fff7f400e4f5 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 10:17:00,034 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.15ms] +2026-09-09 10:17:00,041 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a59c7416-9742-4e3e-b209-1f7ffe7a5ef8: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 10:17:00,046 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.76ms] +2026-09-09 10:17:00,059 INFO guardrails.execution request=9b75d576-5fe8-4576-99c6-4d23095ba15c starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:17:00,060 INFO guardrails.execution request=9b75d576-5fe8-4576-99c6-4d23095ba15c guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:17:00,062 INFO guardrails.execution request=9b75d576-5fe8-4576-99c6-4d23095ba15c step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.059538 end=2026-09-09T10:17:00.059641 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:17:00,066 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.55ms] +2026-09-09 10:17:00,079 INFO guardrails.execution request=6bcf3b1d-9de6-4a78-a678-aa877a4d4526 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 10:17:00,080 INFO guardrails.execution request=6bcf3b1d-9de6-4a78-a678-aa877a4d4526 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 10:17:00,083 INFO guardrails.execution request=6bcf3b1d-9de6-4a78-a678-aa877a4d4526 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:17:00.079846 end=2026-09-09T10:17:00.079916 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 10:17:00,086 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.29ms] +2026-09-09 10:17:00,103 INFO guardrails.execution request=2edc3eb7-89e5-43a6-afcc-be53bbcfee7c starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:17:00,104 INFO guardrails.execution request=2edc3eb7-89e5-43a6-afcc-be53bbcfee7c guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:17:00,108 INFO guardrails.execution request=2edc3eb7-89e5-43a6-afcc-be53bbcfee7c step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.103582 end=2026-09-09T10:17:00.103921 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:17:00,113 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.82ms] +2026-09-09 10:17:00,127 INFO guardrails.execution request=0120c21b-8917-4678-ac9b-bdc314dbc2fa starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 10:17:00,128 INFO guardrails.execution request=0120c21b-8917-4678-ac9b-bdc314dbc2fa guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 10:17:00,132 INFO guardrails.execution request=0120c21b-8917-4678-ac9b-bdc314dbc2fa step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:17:00.127552 end=2026-09-09T10:17:00.127814 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 10:17:00,135 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.94ms] +2026-09-09 10:17:00,147 INFO guardrails.execution request=9800949e-e0a0-4005-bcd6-6a07f9d99326 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 10:17:00,149 INFO guardrails.execution request=9800949e-e0a0-4005-bcd6-6a07f9d99326 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:17:00,150 INFO guardrails.execution request=9800949e-e0a0-4005-bcd6-6a07f9d99326 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.148111 end=2026-09-09T10:17:00.148578 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 10:17:00,152 INFO guardrails.execution request=9800949e-e0a0-4005-bcd6-6a07f9d99326 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.148583 end=2026-09-09T10:17:00.148660 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:17:00,154 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.59ms] +2026-09-09 10:17:00,161 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.92ms] +2026-09-09 10:17:00,173 INFO guardrails.execution request=33dadb99-1278-44a5-93a1-df86567563d1 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:17:00,174 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 33dadb99-1278-44a5-93a1-df86567563d1: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:17:00,178 INFO guardrails.execution request=33dadb99-1278-44a5-93a1-df86567563d1 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.173989 end=2026-09-09T10:17:00.174248 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 10:17:00,180 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.98ms] +2026-09-09 10:17:00,194 INFO guardrails.execution request=fc1fac14-e252-492b-85ce-723e3ca3894f starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:17:00,196 INFO guardrails.execution request=fc1fac14-e252-492b-85ce-723e3ca3894f guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:17:00,199 INFO guardrails.execution request=fc1fac14-e252-492b-85ce-723e3ca3894f step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.195138 end=2026-09-09T10:17:00.195411 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:17:00,202 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.59ms] +2026-09-09 10:17:00,215 INFO guardrails.execution request=dd12e5b6-9a6d-42e8-b34d-b3551a8211d1 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 10:17:00,218 INFO guardrails.execution request=dd12e5b6-9a6d-42e8-b34d-b3551a8211d1 guardrails execution finished (passed=True) output='' +2026-09-09 10:17:00,221 INFO guardrails.execution request=dd12e5b6-9a6d-42e8-b34d-b3551a8211d1 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.216290 end=2026-09-09T10:17:00.217277 duration_ms=0 input='This is a damn fucking mess.' output='' +2026-09-09 10:17:00,226 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.66ms] +2026-09-09 10:17:00,239 INFO guardrails.execution request=0e364de3-c1d4-4031-994c-48e3f34c99d4 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 10:17:00,241 INFO guardrails.execution request=0e364de3-c1d4-4031-994c-48e3f34c99d4 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 10:17:00,243 INFO guardrails.execution request=0e364de3-c1d4-4031-994c-48e3f34c99d4 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:17:00.239559 end=2026-09-09T10:17:00.240420 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 10:17:00,246 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.96ms] +2026-09-09 10:17:00,258 INFO guardrails.execution request=fc862780-e1f9-4286-aa2a-8225c9cc5abc starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 10:17:00,259 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fc862780-e1f9-4286-aa2a-8225c9cc5abc: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 10:17:00,264 INFO guardrails.execution request=fc862780-e1f9-4286-aa2a-8225c9cc5abc step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.258687 end=2026-09-09T10:17:00.259560 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 10:17:00,267 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.82ms] +2026-09-09 10:17:00,281 INFO guardrails.execution request=2ef4b76a-ac3a-4dcb-99d0-156c627d2d34 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 10:17:00,283 INFO guardrails.execution request=2ef4b76a-ac3a-4dcb-99d0-156c627d2d34 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:17:00,286 INFO guardrails.execution request=2ef4b76a-ac3a-4dcb-99d0-156c627d2d34 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:00.282003 end=2026-09-09T10:17:00.282785 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:17:00,290 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.20ms] +2026-09-09 10:17:00,298 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6211654c-f78d-4542-91f0-11423a3be7f8: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:17:00,302 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.80ms] +2026-09-09 10:17:00,883 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:17:02,696 INFO guardrails.execution request=9a93ddcc-f349-4946-9485-1bc221707399 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:17:02,807 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9a93ddcc-f349-4946-9485-1bc221707399: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:17:02,814 INFO guardrails.execution request=9a93ddcc-f349-4946-9485-1bc221707399 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:02.697547 end=2026-09-09T10:17:02.807678 duration_ms=110 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:17:02,819 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2512.66ms] +2026-09-09 10:17:04,819 INFO guardrails.execution request=f6970dd0-fd55-40f4-9fe5-cfda7c798da1 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:17:04,833 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f6970dd0-fd55-40f4-9fe5-cfda7c798da1: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:17:04,838 INFO guardrails.execution request=f6970dd0-fd55-40f4-9fe5-cfda7c798da1 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:04.820121 end=2026-09-09T10:17:04.833458 duration_ms=13 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:17:04,844 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2018.78ms] +2026-09-09 10:17:06,824 INFO guardrails.execution request=49acb067-cfba-40b3-9b21-76defad86035 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:17:06,849 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 49acb067-cfba-40b3-9b21-76defad86035: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:17:06,852 INFO guardrails.execution request=49acb067-cfba-40b3-9b21-76defad86035 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:06.825551 end=2026-09-09T10:17:06.849051 duration_ms=23 input='Explicit sexual content goes here.' output=None +2026-09-09 10:17:06,855 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2006.13ms] +2026-09-09 10:17:06,877 INFO guardrails.execution request=1692bcdd-9ba2-4d20-aa55-5917a65a4a10 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:17:06,881 INFO guardrails.execution request=1692bcdd-9ba2-4d20-aa55-5917a65a4a10 guardrails execution finished (passed=True) output='' +2026-09-09 10:17:06,883 INFO guardrails.execution request=1692bcdd-9ba2-4d20-aa55-5917a65a4a10 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:06.878223 end=2026-09-09T10:17:06.879759 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-09 10:17:06,885 INFO guardrails.execution request=1692bcdd-9ba2-4d20-aa55-5917a65a4a10 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:17:06.879777 end=2026-09-09T10:17:06.880002 duration_ms=0 input='' output='' +2026-09-09 10:17:06,888 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.14ms] +2026-09-09 10:17:06,895 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c4bed2e7-e3b6-4497-88fe-b54365703279: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:17:06,897 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.34ms] +2026-09-09 10:17:08,912 INFO guardrails.execution request=83d3fa47-81a7-4fb9-a7c9-82843e7015b8 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:17:08,914 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 83d3fa47-81a7-4fb9-a7c9-82843e7015b8: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:17:08,921 INFO guardrails.execution request=83d3fa47-81a7-4fb9-a7c9-82843e7015b8 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:08.913244 end=2026-09-09T10:17:08.914363 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:17:08,925 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2024.49ms] +2026-09-09 10:17:10,953 INFO guardrails.execution request=db9a953a-e4ce-4289-a4f6-9499036b3108 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:17:10,955 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log db9a953a-e4ce-4289-a4f6-9499036b3108: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:17:10,960 INFO guardrails.execution request=db9a953a-e4ce-4289-a4f6-9499036b3108 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:10.954730 end=2026-09-09T10:17:10.955163 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:17:10,964 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2033.03ms] +2026-09-09 10:17:10,982 INFO guardrails.execution request=764866d7-0234-4979-aef1-317be20b404d starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:17:10,985 INFO guardrails.execution request=764866d7-0234-4979-aef1-317be20b404d guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:17:10,989 INFO guardrails.execution request=764866d7-0234-4979-aef1-317be20b404d step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:17:10.982737 end=2026-09-09T10:17:10.984173 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:17:10,991 INFO guardrails.execution request=764866d7-0234-4979-aef1-317be20b404d step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:17:10.984180 end=2026-09-09T10:17:10.984262 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:17:10,995 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.01ms] +2026-09-09 10:17:11,016 INFO guardrails.execution request=131b2149-a061-462e-95ae-e82f94e97079 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:17:11,019 INFO guardrails.execution request=131b2149-a061-462e-95ae-e82f94e97079 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:17:11,023 INFO guardrails.execution request=131b2149-a061-462e-95ae-e82f94e97079 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:17:11.017554 end=2026-09-09T10:17:11.017868 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:17:11,025 INFO guardrails.execution request=131b2149-a061-462e-95ae-e82f94e97079 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:17:11.017873 end=2026-09-09T10:17:11.018765 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:17:11,027 INFO guardrails.execution request=131b2149-a061-462e-95ae-e82f94e97079 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:17:11.018770 end=2026-09-09T10:17:11.018825 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:17:11,031 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.96ms] +2026-09-09 10:17:11,047 INFO guardrails.execution request=3f1e4a4a-fc9c-4435-b4a6-db68eddbfd7f starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:17:11,049 INFO guardrails.execution request=3f1e4a4a-fc9c-4435-b4a6-db68eddbfd7f guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:17:11,052 INFO guardrails.execution request=3f1e4a4a-fc9c-4435-b4a6-db68eddbfd7f step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:17:11.048234 end=2026-09-09T10:17:11.048348 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:17:11,055 INFO guardrails.execution request=3f1e4a4a-fc9c-4435-b4a6-db68eddbfd7f step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:17:11.048355 end=2026-09-09T10:17:11.048563 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:17:11,060 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.77ms] +2026-09-09 10:17:11,077 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 51bb1633-7974-4d8a-b97a-a3ec2a439d8b: 404: Ban list not found +2026-09-09 10:17:11,080 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.74ms] +2026-09-09 10:17:11,093 INFO guardrails.execution request=f9ae854f-8887-4628-99a5-d96ab59c55df starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:17:11,093 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f9ae854f-8887-4628-99a5-d96ab59c55df: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:17:11,095 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.31ms] +2026-09-09 10:17:11,101 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:17:11,101 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.31ms] +2026-09-09 10:17:11,110 INFO app.crud.llm_prompt_config created llm prompt config id=74fa6679-fd53-47fe-ae84-7d7ced94ac80 org=1 project=1 +2026-09-09 10:17:11,111 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.84ms] +2026-09-09 10:17:11,117 INFO app.crud.llm_prompt_config created llm prompt config id=2d8b9450-94fd-4211-8395-6392dc59bf8d org=1 project=1 +2026-09-09 10:17:11,118 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.98ms] +2026-09-09 10:17:11,123 INFO app.crud.llm_prompt_config created llm prompt config id=a61073f7-df22-4cda-9b95-704664439c6b org=1 project=1 +2026-09-09 10:17:11,124 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.83ms] +2026-09-09 10:17:11,128 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.98ms] +2026-09-09 10:17:11,132 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.84ms] +2026-09-09 10:17:11,136 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-09 10:17:11,139 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.86ms] +2026-09-09 10:17:11,146 INFO app.crud.llm_prompt_config created llm prompt config id=7b46c74a-dd47-461e-9249-bdc18fce1f9d org=1 project=1 +2026-09-09 10:17:11,146 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-09 10:17:11,150 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.85ms] +2026-09-09 10:17:11,153 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.78ms] +2026-09-09 10:17:11,158 INFO app.crud.llm_prompt_config created llm prompt config id=1c79cf40-3509-4237-ac43-790189e4c375 org=1 project=1 +2026-09-09 10:17:11,159 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.57ms] +2026-09-09 10:17:11,161 INFO app.crud.llm_prompt_config created llm prompt config id=941c2a54-e6b7-41b2-8c42-5d0373b1d13f org=1 project=1 +2026-09-09 10:17:11,161 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.31ms] +2026-09-09 10:17:11,163 INFO app.crud.llm_prompt_config created llm prompt config id=77e80a2c-5945-48fb-a81f-a352431e7493 org=1 project=1 +2026-09-09 10:17:11,164 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.13ms] +2026-09-09 10:17:11,166 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.93ms] +2026-09-09 10:17:11,171 INFO app.crud.llm_prompt_config created llm prompt config id=fcf2e706-43de-4239-b6e3-0ab03751e997 org=1 project=1 +2026-09-09 10:17:11,172 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.92ms] +2026-09-09 10:17:11,174 INFO app.crud.llm_prompt_config created llm prompt config id=19fc6a91-8418-4391-ae7c-266d3b428e49 org=1 project=1 +2026-09-09 10:17:11,174 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.22ms] +2026-09-09 10:17:11,176 INFO app.crud.llm_prompt_config created llm prompt config id=801e6bba-3999-4200-ae8f-e9078eb5fbc3 org=1 project=1 +2026-09-09 10:17:11,177 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.11ms] +2026-09-09 10:17:11,179 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.79ms] +2026-09-09 10:17:11,183 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.58ms] +2026-09-09 10:17:11,188 INFO app.crud.llm_prompt_config created llm prompt config id=cf5647c2-52ff-4c4c-a35e-6ec58bb531ac org=1 project=1 +2026-09-09 10:17:11,189 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.42ms] +2026-09-09 10:17:11,191 INFO app.crud.llm_prompt_config created llm prompt config id=a1198016-96fe-4557-af95-e62a01c63f11 org=1 project=1 +2026-09-09 10:17:11,191 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.12ms] +2026-09-09 10:17:11,193 INFO app.crud.llm_prompt_config created llm prompt config id=819918b8-4a04-4361-afbf-322f95bbeef8 org=1 project=1 +2026-09-09 10:17:11,193 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.18ms] +2026-09-09 10:17:11,196 INFO app.crud.llm_prompt_config created llm prompt config id=5185405e-7b96-4cdb-ad2e-fd070091906a org=1 project=1 +2026-09-09 10:17:11,196 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.19ms] +2026-09-09 10:17:11,198 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.66ms] +2026-09-09 10:17:11,203 INFO app.crud.llm_prompt_config created llm prompt config id=61c39ff9-0b64-471b-8a41-a3464a7cb2e3 org=1 project=1 +2026-09-09 10:17:11,203 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.55ms] +2026-09-09 10:17:11,205 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.33ms] +2026-09-09 10:17:11,210 INFO app.crud.llm_prompt_config created llm prompt config id=b9261a9d-bdf5-43c8-be5e-73ca5b953300 org=1 project=1 +2026-09-09 10:17:11,211 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.73ms] +2026-09-09 10:17:11,213 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/b9261a9d-bdf5-43c8-be5e-73ca5b953300 - 200 [1.65ms] +2026-09-09 10:17:11,217 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/fc97e11d-db8e-42fa-ab6e-8093f90f099f - 404 [1.50ms] +2026-09-09 10:17:11,222 INFO app.crud.llm_prompt_config created llm prompt config id=379ee09a-df47-4be4-ab55-a3bf5ca1d3e1 org=1 project=1 +2026-09-09 10:17:11,223 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.55ms] +2026-09-09 10:17:11,224 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/379ee09a-df47-4be4-ab55-a3bf5ca1d3e1 - 404 [1.31ms] +2026-09-09 10:17:11,229 INFO app.crud.llm_prompt_config created llm prompt config id=16c706a0-033e-4a90-99db-983da51f9c77 org=1 project=1 +2026-09-09 10:17:11,230 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-09 10:17:11,233 INFO app.crud.llm_prompt_config updated llm prompt config id=16c706a0-033e-4a90-99db-983da51f9c77 +2026-09-09 10:17:11,233 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/16c706a0-033e-4a90-99db-983da51f9c77 - 200 [3.30ms] +2026-09-09 10:17:11,239 INFO app.crud.llm_prompt_config created llm prompt config id=e4497935-72db-44ce-b7c7-c8f88d9e6018 org=1 project=1 +2026-09-09 10:17:11,239 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.58ms] +2026-09-09 10:17:11,242 INFO app.crud.llm_prompt_config updated llm prompt config id=e4497935-72db-44ce-b7c7-c8f88d9e6018 +2026-09-09 10:17:11,242 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/e4497935-72db-44ce-b7c7-c8f88d9e6018 - 200 [3.00ms] +2026-09-09 10:17:11,247 INFO app.crud.llm_prompt_config created llm prompt config id=2353adbf-20de-4482-aa74-20ecc7454417 org=1 project=1 +2026-09-09 10:17:11,248 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.47ms] +2026-09-09 10:17:11,250 INFO app.crud.llm_prompt_config updated llm prompt config id=2353adbf-20de-4482-aa74-20ecc7454417 +2026-09-09 10:17:11,251 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/2353adbf-20de-4482-aa74-20ecc7454417 - 200 [2.64ms] +2026-09-09 10:17:11,253 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/2353adbf-20de-4482-aa74-20ecc7454417 - 200 [1.42ms] +2026-09-09 10:17:11,257 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/d8651c72-bcac-4600-a3b3-44b4f9f84214 - 404 [1.64ms] +2026-09-09 10:17:11,262 INFO app.crud.llm_prompt_config created llm prompt config id=69ee6054-4d50-4aad-b4c4-75be34956021 org=1 project=1 +2026-09-09 10:17:11,263 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.79ms] +2026-09-09 10:17:11,264 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/69ee6054-4d50-4aad-b4c4-75be34956021 - 404 [1.38ms] +2026-09-09 10:17:11,269 INFO app.crud.llm_prompt_config created llm prompt config id=5a775ab8-d3bc-4bad-8b2c-e5baa4a75955 org=1 project=1 +2026-09-09 10:17:11,270 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.51ms] +2026-09-09 10:17:11,271 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5a775ab8-d3bc-4bad-8b2c-e5baa4a75955 - 422 [1.36ms] +2026-09-09 10:17:11,276 INFO app.crud.llm_prompt_config created llm prompt config id=5207a616-f04d-4d0a-993a-27ff6a063de6 org=1 project=1 +2026-09-09 10:17:11,277 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.37ms] +2026-09-09 10:17:11,278 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5207a616-f04d-4d0a-993a-27ff6a063de6 - 422 [1.29ms] +2026-09-09 10:17:11,283 INFO app.crud.llm_prompt_config created llm prompt config id=ff07eb9e-a3dc-478f-a4f0-d528f895e6ba org=1 project=1 +2026-09-09 10:17:11,283 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.42ms] +2026-09-09 10:17:11,286 INFO app.crud.llm_prompt_config updated llm prompt config id=ff07eb9e-a3dc-478f-a4f0-d528f895e6ba +2026-09-09 10:17:11,286 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ff07eb9e-a3dc-478f-a4f0-d528f895e6ba - 200 [2.57ms] +2026-09-09 10:17:11,291 INFO app.crud.llm_prompt_config created llm prompt config id=89966a6c-af0b-4f67-baf4-01189cd46df1 org=1 project=1 +2026-09-09 10:17:11,291 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.40ms] +2026-09-09 10:17:11,294 INFO app.crud.llm_prompt_config updated llm prompt config id=89966a6c-af0b-4f67-baf4-01189cd46df1 +2026-09-09 10:17:11,294 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/89966a6c-af0b-4f67-baf4-01189cd46df1 - 200 [2.48ms] +2026-09-09 10:17:11,299 INFO app.crud.llm_prompt_config created llm prompt config id=a19d46f3-03a8-439c-aebb-77758ce34eb8 org=1 project=1 +2026-09-09 10:17:11,299 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.34ms] +2026-09-09 10:17:11,301 INFO app.crud.llm_prompt_config deleted llm prompt config id=a19d46f3-03a8-439c-aebb-77758ce34eb8 +2026-09-09 10:17:11,302 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/a19d46f3-03a8-439c-aebb-77758ce34eb8 - 200 [2.01ms] +2026-09-09 10:17:11,307 INFO app.crud.llm_prompt_config created llm prompt config id=d52a4c98-6f23-475b-ba29-ef7d6454a4dd org=1 project=1 +2026-09-09 10:17:11,307 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.82ms] +2026-09-09 10:17:11,309 INFO app.crud.llm_prompt_config deleted llm prompt config id=d52a4c98-6f23-475b-ba29-ef7d6454a4dd +2026-09-09 10:17:11,309 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/d52a4c98-6f23-475b-ba29-ef7d6454a4dd - 200 [1.71ms] +2026-09-09 10:17:11,311 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.30ms] +2026-09-09 10:17:11,315 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/d7c6e07b-d3c0-46bf-a0e6-b2727b206ff5 - 404 [1.36ms] +2026-09-09 10:17:11,319 INFO app.crud.llm_prompt_config created llm prompt config id=e94e4701-c8a5-4219-8157-6109f6ff1d5a org=1 project=1 +2026-09-09 10:17:11,320 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.33ms] +2026-09-09 10:17:11,321 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/e94e4701-c8a5-4219-8157-6109f6ff1d5a - 404 [1.16ms] +2026-09-09 10:17:11,409 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='hello' +2026-09-09 10:17:11,409 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:17:11,412 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:17:11,412 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,414 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f49aa837-e8df-4a4d-b2f8-ba154537c772: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 10:17:11,416 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:17:11,416 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,418 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:17:11,418 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,441 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 10:17:11,441 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,443 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='some input text' +2026-09-09 10:17:11,443 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,446 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 10:17:11,446 INFO guardrails.execution request=f49aa837-e8df-4a4d-b2f8-ba154537c772 guardrails execution finished (passed=False) output=None +2026-09-09 10:17:11,448 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f49aa837-e8df-4a4d-b2f8-ba154537c772: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 10:17:11,449 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f49aa837-e8df-4a4d-b2f8-ba154537c772: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 10:17:11,466 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:17:11,469 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:17:11,472 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:17:11,483 INFO app.crud.validator_config created validator config id=50e40a25-e447-4e3c-b7ba-109213fcc68a org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:17:11,484 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.87ms] +2026-09-09 10:17:11,491 INFO app.crud.validator_config created validator config id=274eae16-1ddb-48c7-9710-8c42e69d6869 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:17:11,491 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.32ms] +2026-09-09 10:17:11,493 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 10:17:11,494 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.73ms] +2026-09-09 10:17:11,498 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.95ms] +2026-09-09 10:17:11,502 INFO app.crud.validator_config created validator config id=60b9cdf1-cf82-4855-881d-3ffc8ee06220 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:17:11,503 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.62ms] +2026-09-09 10:17:11,505 INFO app.crud.validator_config created validator config id=5dac4e80-d596-4aec-b53b-f908eaac1f08 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:17:11,506 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.31ms] +2026-09-09 10:17:11,508 INFO app.crud.validator_config created validator config id=4aca4bcf-0f2f-4c5c-91ab-9bb3d2ba2e8c org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:17:11,508 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.39ms] +2026-09-09 10:17:11,510 INFO app.crud.validator_config created validator config id=e643d695-a592-4eba-aa5d-821979232ca1 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:17:11,511 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.20ms] +2026-09-09 10:17:11,513 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.94ms] +2026-09-09 10:17:11,514 INFO http_request_logger GET /api/v1/guardrails/validators/configs/60b9cdf1-cf82-4855-881d-3ffc8ee06220/ - 307 [0.10ms] +2026-09-09 10:17:11,516 INFO http_request_logger GET /api/v1/guardrails/validators/configs/60b9cdf1-cf82-4855-881d-3ffc8ee06220 - 200 [1.61ms] +2026-09-09 10:17:11,516 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5dac4e80-d596-4aec-b53b-f908eaac1f08/ - 307 [0.09ms] +2026-09-09 10:17:11,518 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5dac4e80-d596-4aec-b53b-f908eaac1f08 - 200 [1.28ms] +2026-09-09 10:17:11,518 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4aca4bcf-0f2f-4c5c-91ab-9bb3d2ba2e8c/ - 307 [0.09ms] +2026-09-09 10:17:11,520 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4aca4bcf-0f2f-4c5c-91ab-9bb3d2ba2e8c - 200 [1.63ms] +2026-09-09 10:17:11,520 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e643d695-a592-4eba-aa5d-821979232ca1/ - 307 [0.09ms] +2026-09-09 10:17:11,522 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e643d695-a592-4eba-aa5d-821979232ca1 - 200 [1.36ms] +2026-09-09 10:17:11,528 INFO app.crud.validator_config created validator config id=cffadce5-6fdf-4f9d-aca4-e37c85c4fcf7 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:17:11,528 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.67ms] +2026-09-09 10:17:11,530 INFO app.crud.validator_config created validator config id=b5cf6cc0-7319-458b-892a-2a163a0e4f12 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:17:11,531 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.13ms] +2026-09-09 10:17:11,533 INFO app.crud.validator_config created validator config id=9c227e9c-16a9-4b66-8b18-49e1118311f1 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:17:11,533 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.13ms] +2026-09-09 10:17:11,533 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/cffadce5-6fdf-4f9d-aca4-e37c85c4fcf7/ - 307 [0.09ms] +2026-09-09 10:17:11,536 INFO app.crud.validator_config updated validator config id=cffadce5-6fdf-4f9d-aca4-e37c85c4fcf7 +2026-09-09 10:17:11,537 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/cffadce5-6fdf-4f9d-aca4-e37c85c4fcf7 - 200 [3.08ms] +2026-09-09 10:17:11,537 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b5cf6cc0-7319-458b-892a-2a163a0e4f12/ - 307 [0.09ms] +2026-09-09 10:17:11,541 INFO app.crud.validator_config updated validator config id=b5cf6cc0-7319-458b-892a-2a163a0e4f12 +2026-09-09 10:17:11,542 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b5cf6cc0-7319-458b-892a-2a163a0e4f12 - 200 [4.13ms] +2026-09-09 10:17:11,542 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/9c227e9c-16a9-4b66-8b18-49e1118311f1/ - 307 [0.08ms] +2026-09-09 10:17:11,544 INFO app.crud.validator_config updated validator config id=9c227e9c-16a9-4b66-8b18-49e1118311f1 +2026-09-09 10:17:11,545 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/9c227e9c-16a9-4b66-8b18-49e1118311f1 - 200 [2.51ms] +2026-09-09 10:17:11,547 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.44ms] +2026-09-09 10:17:11,553 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.02ms] +2026-09-09 10:17:11,561 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.95ms] +2026-09-09 10:17:11,567 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.83ms] +2026-09-09 10:17:11,572 INFO app.crud.validator_config created validator config id=63d6c8e0-4f6c-4923-914b-173f77424b31 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:17:11,573 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.51ms] +2026-09-09 10:17:11,576 INFO app.crud.validator_config created validator config id=dc46ec0e-2830-43c2-bcb2-67df69e36ef2 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:17:11,576 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.31ms] +2026-09-09 10:17:11,578 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.65ms] +2026-09-09 10:17:11,583 INFO app.crud.validator_config created validator config id=f48c9d19-7d1c-41cf-976e-bb43bd19453b org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:17:11,584 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.62ms] +2026-09-09 10:17:11,586 INFO app.crud.validator_config created validator config id=22840628-0b78-4e5b-bee2-556c33426b3f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:17:11,586 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.13ms] +2026-09-09 10:17:11,588 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.48ms] +2026-09-09 10:17:11,592 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.75ms] +2026-09-09 10:17:11,598 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.93ms] +2026-09-09 10:17:11,604 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.54ms] +2026-09-09 10:17:11,604 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e64dce44-2dc9-4de4-bc5c-c07028eb183c/ - 307 [0.09ms] +2026-09-09 10:17:11,606 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e64dce44-2dc9-4de4-bc5c-c07028eb183c - 200 [1.31ms] +2026-09-09 10:17:11,610 INFO http_request_logger GET /api/v1/guardrails/validators/configs/875f9fa8-9b3a-4861-b63b-79d3c810b4ab/ - 307 [0.08ms] +2026-09-09 10:17:11,611 INFO http_request_logger GET /api/v1/guardrails/validators/configs/875f9fa8-9b3a-4861-b63b-79d3c810b4ab - 404 [1.29ms] +2026-09-09 10:17:11,614 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.08ms] +2026-09-09 10:17:11,615 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.67ms] +2026-09-09 10:17:11,619 INFO app.crud.validator_config created validator config id=50d2634a-2074-4b7e-b285-695478c4cca8 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:17:11,620 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.43ms] +2026-09-09 10:17:11,620 INFO http_request_logger GET /api/v1/guardrails/validators/configs/50d2634a-2074-4b7e-b285-695478c4cca8/ - 307 [0.08ms] +2026-09-09 10:17:11,623 INFO http_request_logger GET /api/v1/guardrails/validators/configs/50d2634a-2074-4b7e-b285-695478c4cca8 - 404 [2.26ms] +2026-09-09 10:17:11,630 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.69ms] +2026-09-09 10:17:11,631 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/bc3a6a8a-7b8f-4135-9478-dadd0ac1ccda/ - 307 [0.09ms] +2026-09-09 10:17:11,633 INFO app.crud.validator_config updated validator config id=bc3a6a8a-7b8f-4135-9478-dadd0ac1ccda +2026-09-09 10:17:11,634 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/bc3a6a8a-7b8f-4135-9478-dadd0ac1ccda - 200 [2.64ms] +2026-09-09 10:17:11,640 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.10ms] +2026-09-09 10:17:11,641 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/80e9fc3a-16c1-4a38-9720-2ba2e9883220/ - 307 [0.08ms] +2026-09-09 10:17:11,645 INFO app.crud.validator_config updated validator config id=80e9fc3a-16c1-4a38-9720-2ba2e9883220 +2026-09-09 10:17:11,645 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/80e9fc3a-16c1-4a38-9720-2ba2e9883220 - 200 [4.36ms] +2026-09-09 10:17:11,648 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f04e173e-c639-4b7e-8c35-bfd048010f0d/ - 307 [0.08ms] +2026-09-09 10:17:11,650 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f04e173e-c639-4b7e-8c35-bfd048010f0d - 404 [1.52ms] +2026-09-09 10:17:11,656 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.53ms] +2026-09-09 10:17:11,657 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/5a39184c-2ace-4d59-8b64-09a0210a1c3f/ - 307 [0.08ms] +2026-09-09 10:17:11,660 INFO app.crud.validator_config deleted validator config id=5a39184c-2ace-4d59-8b64-09a0210a1c3f +2026-09-09 10:17:11,660 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/5a39184c-2ace-4d59-8b64-09a0210a1c3f - 200 [3.29ms] +2026-09-09 10:17:11,661 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5a39184c-2ace-4d59-8b64-09a0210a1c3f/ - 307 [0.08ms] +2026-09-09 10:17:11,662 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5a39184c-2ace-4d59-8b64-09a0210a1c3f - 404 [1.20ms] +2026-09-09 10:17:11,665 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/e6e1507e-afd2-4b13-8a2c-934081c97e0e/ - 307 [0.19ms] +2026-09-09 10:17:11,666 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/e6e1507e-afd2-4b13-8a2c-934081c97e0e - 404 [1.33ms] +2026-09-09 10:17:11,672 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.74ms] +2026-09-09 10:17:11,673 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/3714fc70-a042-49a2-84dd-0c1ab8920ecc/ - 307 [0.08ms] +2026-09-09 10:17:11,676 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/3714fc70-a042-49a2-84dd-0c1ab8920ecc - 404 [2.74ms] +2026-09-09 10:17:11,676 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3714fc70-a042-49a2-84dd-0c1ab8920ecc/ - 307 [0.08ms] +2026-09-09 10:17:11,678 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3714fc70-a042-49a2-84dd-0c1ab8920ecc - 200 [1.33ms] +2026-09-09 10:17:11,787 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:17:11,787 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:17:11,865 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:14,486 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:14,499 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:15,934 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:15,950 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:17,066 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:17,078 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:18,770 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:18,779 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:19,758 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:19,769 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:20,994 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:20,996 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:17:22,118 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:17:22,271 INFO watchfiles.main 3 changes detected +2026-09-09 10:20:54,040 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [28.88ms] +2026-09-09 10:20:54,923 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 10:20:54,924 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 10:20:54,940 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:20:54,941 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:20:54,941 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:20:54,944 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:20:54,945 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 10:20:54,945 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 10:20:54,946 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 10:20:54,948 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 10:20:54,949 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 10:20:54,949 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 10:20:54,949 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 10:20:54,950 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 10:20:54,950 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 10:20:54,950 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 10:20:54,950 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 10:20:54,950 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 10:20:54,951 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 10:20:54,952 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 10:20:54,952 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 10:20:54,953 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 10:20:54,953 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 10:20:54,953 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,954 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,956 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:20:54,956 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:20:54,957 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 10:20:54,958 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:20:54,958 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:20:54,958 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 10:20:54,958 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 10:20:54,958 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 10:20:54,982 INFO guardrails.execution request=0977d8b5-2f93-4563-ad2b-6d9cfd0bbb3e starting guardrails execution (validators=['pii_remover']) input='' +2026-09-09 10:20:55,027 INFO guardrails.execution request=0977d8b5-2f93-4563-ad2b-6d9cfd0bbb3e guardrails execution finished (passed=False) output=None +2026-09-09 10:20:55,038 INFO guardrails.execution request=0977d8b5-2f93-4563-ad2b-6d9cfd0bbb3e step=1/1 validator=PIIRemover stage=output outcome=Outcome.PASS start=2026-09-09T10:20:54.984401 end=2026-09-09T10:20:55.026815 duration_ms=42 input='' output='' +2026-09-09 10:20:55,048 INFO http_request_logger POST /api/v1/guardrails/ - 200 [994.36ms] +2026-09-09 10:21:30,745 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [13.72ms] +2026-09-09 10:21:30,776 INFO guardrails.execution request=b46f5462-715e-463c-8c6b-48380ec0f1c0 starting guardrails execution (validators=['pii_remover']) input='' +2026-09-09 10:21:30,783 INFO guardrails.execution request=b46f5462-715e-463c-8c6b-48380ec0f1c0 guardrails execution finished (passed=False) output=None +2026-09-09 10:21:30,787 INFO guardrails.execution request=b46f5462-715e-463c-8c6b-48380ec0f1c0 step=1/1 validator=PIIRemover stage=output outcome=Outcome.PASS start=2026-09-09T10:21:30.780490 end=2026-09-09T10:21:30.781920 duration_ms=1 input='' output='' +2026-09-09 10:21:30,793 INFO http_request_logger POST /api/v1/guardrails/ - 200 [37.48ms] +2026-09-09 10:36:47,335 INFO watchfiles.main 3 changes detected +2026-09-09 10:36:47,342 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:36:47,444 INFO uvicorn.error Shutting down +2026-09-09 10:36:47,550 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:36:47,556 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:36:47,557 INFO uvicorn.error Finished server process [45677] +2026-09-09 10:36:47,996 INFO watchfiles.main 1 change detected +2026-09-09 10:36:52,960 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:36:53,663 INFO watchfiles.main 3 changes detected +2026-09-09 10:36:53,813 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:36:53,814 INFO uvicorn.error Started server process [47981] +2026-09-09 10:36:53,815 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:36:53,815 INFO uvicorn.error Application startup complete. +2026-09-09 10:36:57,579 INFO watchfiles.main 3 changes detected +2026-09-09 10:36:57,581 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:36:57,651 INFO uvicorn.error Shutting down +2026-09-09 10:36:57,752 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:36:57,753 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:36:57,754 INFO uvicorn.error Finished server process [47981] +2026-09-09 10:36:58,143 INFO watchfiles.main 1 change detected +2026-09-09 10:37:02,292 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:37:02,824 INFO watchfiles.main 3 changes detected +2026-09-09 10:37:03,087 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:37:03,087 INFO uvicorn.error Started server process [47994] +2026-09-09 10:37:03,088 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:37:03,088 INFO uvicorn.error Application startup complete. +2026-09-09 10:37:07,135 INFO watchfiles.main 3 changes detected +2026-09-09 10:37:07,136 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:37:07,229 INFO uvicorn.error Shutting down +2026-09-09 10:37:07,331 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:37:07,333 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:37:07,334 INFO uvicorn.error Finished server process [47994] +2026-09-09 10:37:07,748 INFO watchfiles.main 1 change detected +2026-09-09 10:37:11,869 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:37:12,384 INFO watchfiles.main 3 changes detected +2026-09-09 10:37:12,639 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:37:12,639 INFO uvicorn.error Started server process [48011] +2026-09-09 10:37:12,640 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:37:12,640 INFO uvicorn.error Application startup complete. +2026-09-09 10:37:17,064 INFO watchfiles.main 3 changes detected +2026-09-09 10:37:21,659 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:37:22,751 INFO guardrails.execution request=ca02112a-fc3b-4358-8ddf-7cb65d52451c starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,753 INFO guardrails.execution request=ca02112a-fc3b-4358-8ddf-7cb65d52451c guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,756 INFO guardrails.execution request=ca02112a-fc3b-4358-8ddf-7cb65d52451c step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:22.752026 end=2026-09-09T10:37:22.752143 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,761 INFO http_request_logger POST /api/v1/guardrails/ - 200 [36.03ms] +2026-09-09 10:37:22,777 INFO guardrails.execution request=b7c6b477-f4d3-472d-b93f-a99a7cefda33 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:37:22,777 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b7c6b477-f4d3-472d-b93f-a99a7cefda33: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:37:22,781 INFO guardrails.execution request=b7c6b477-f4d3-472d-b93f-a99a7cefda33 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:37:22.777528 end=2026-09-09T10:37:22.777633 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:37:22,783 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.10ms] +2026-09-09 10:37:22,797 INFO guardrails.execution request=0c7f0f11-33cc-4cf8-b78d-bd8cef2d97f9 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='' +2026-09-09 10:37:22,798 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0c7f0f11-33cc-4cf8-b78d-bd8cef2d97f9: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 10:37:22,800 INFO guardrails.execution request=0c7f0f11-33cc-4cf8-b78d-bd8cef2d97f9 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:37:22.798034 end=2026-09-09T10:37:22.798084 duration_ms=0 input='' output=None +2026-09-09 10:37:22,802 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.74ms] +2026-09-09 10:37:22,817 INFO guardrails.execution request=dc7747a9-f95a-4bf9-913c-682b9be69732 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,818 INFO guardrails.execution request=dc7747a9-f95a-4bf9-913c-682b9be69732 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,820 INFO guardrails.execution request=dc7747a9-f95a-4bf9-913c-682b9be69732 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:22.818029 end=2026-09-09T10:37:22.818099 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:22,823 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.06ms] +2026-09-09 10:37:22,846 INFO guardrails.execution request=8e00a706-fb30-41df-9e8c-a0f31f341d5b starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:37:22,847 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8e00a706-fb30-41df-9e8c-a0f31f341d5b: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:37:22,853 INFO guardrails.execution request=8e00a706-fb30-41df-9e8c-a0f31f341d5b step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:37:22.846985 end=2026-09-09T10:37:22.847131 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:37:22,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [35.05ms] +2026-09-09 10:37:22,925 INFO guardrails.execution request=ad94702d-e88b-46df-b400-76fd87a349bb starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:37:22,927 INFO guardrails.execution request=ad94702d-e88b-46df-b400-76fd87a349bb guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:37:22,932 INFO guardrails.execution request=ad94702d-e88b-46df-b400-76fd87a349bb step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:22.925737 end=2026-09-09T10:37:22.925832 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:37:22,935 INFO guardrails.execution request=ad94702d-e88b-46df-b400-76fd87a349bb step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:22.925838 end=2026-09-09T10:37:22.925971 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:37:22,940 INFO http_request_logger POST /api/v1/guardrails/ - 200 [40.97ms] +2026-09-09 10:37:22,957 INFO guardrails.execution request=23c6a3cf-f96c-41d1-8b6e-483176eaeda4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:37:22,960 INFO guardrails.execution request=23c6a3cf-f96c-41d1-8b6e-483176eaeda4 guardrails execution finished (passed=True) output='' +2026-09-09 10:37:22,963 INFO guardrails.execution request=23c6a3cf-f96c-41d1-8b6e-483176eaeda4 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:22.958371 end=2026-09-09T10:37:22.958442 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:37:22,965 INFO guardrails.execution request=23c6a3cf-f96c-41d1-8b6e-483176eaeda4 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:22.958447 end=2026-09-09T10:37:22.959799 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 10:37:22,969 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.74ms] +2026-09-09 10:37:22,993 INFO guardrails.execution request=99c30a5b-7dac-4e39-b477-902635273126 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:37:22,997 INFO guardrails.execution request=99c30a5b-7dac-4e39-b477-902635273126 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:37:22,999 INFO guardrails.execution request=99c30a5b-7dac-4e39-b477-902635273126 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:22.994261 end=2026-09-09T10:37:22.994337 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:37:23,001 INFO guardrails.execution request=99c30a5b-7dac-4e39-b477-902635273126 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:22.994342 end=2026-09-09T10:37:22.996601 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:37:23,004 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.23ms] +2026-09-09 10:37:23,021 INFO guardrails.execution request=571df08b-0532-492d-9378-a830169d478d starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:37:23,023 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 571df08b-0532-492d-9378-a830169d478d: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 10:37:23,026 INFO guardrails.execution request=571df08b-0532-492d-9378-a830169d478d step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:23.022415 end=2026-09-09T10:37:23.022487 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:37:23,028 INFO guardrails.execution request=571df08b-0532-492d-9378-a830169d478d step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.022492 end=2026-09-09T10:37:23.023479 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 10:37:23,030 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.42ms] +2026-09-09 10:37:23,048 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,051 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,054 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:23.048902 end=2026-09-09T10:37:23.048966 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,055 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.048970 end=2026-09-09T10:37:23.049027 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,056 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.049030 end=2026-09-09T10:37:23.049837 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,058 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.049841 end=2026-09-09T10:37:23.050383 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,059 INFO guardrails.execution request=064d6980-0866-4db3-ac9a-1ae340194189 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.050387 end=2026-09-09T10:37:23.050999 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:37:23,061 INFO http_request_logger POST /api/v1/guardrails/ - 200 [27.24ms] +2026-09-09 10:37:23,080 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:37:23,084 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:37:23,087 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:37:23.081273 end=2026-09-09T10:37:23.081333 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:37:23,090 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.081338 end=2026-09-09T10:37:23.082189 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:37:23,092 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.082194 end=2026-09-09T10:37:23.082686 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:37:23,094 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.082691 end=2026-09-09T10:37:23.082757 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:37:23,096 INFO guardrails.execution request=b94893d8-3139-47ea-8b7c-a0ec93bc4781 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.082760 end=2026-09-09T10:37:23.083394 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:37:23,099 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.44ms] +2026-09-09 10:37:23,121 INFO app.crud.ban_list created ban list id=ca1f0a14-3bd3-444c-ae0c-e090ec1c9fdc org=1 project=1 +2026-09-09 10:37:23,122 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [5.09ms] +2026-09-09 10:37:23,128 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.88ms] +2026-09-09 10:37:23,131 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.82ms] +2026-09-09 10:37:23,136 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.27ms] +2026-09-09 10:37:23,140 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.76ms] +2026-09-09 10:37:23,145 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.78ms] +2026-09-09 10:37:23,155 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.24ms] +2026-09-09 10:37:23,164 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.71ms] +2026-09-09 10:37:23,169 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.62ms] +2026-09-09 10:37:23,176 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.85ms] +2026-09-09 10:37:23,183 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.57ms] +2026-09-09 10:37:23,186 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.77ms] +2026-09-09 10:37:23,191 INFO app.crud.ban_list created ban list id=e377e176-86b0-404f-b92b-eacc873f6ec9 org=1 project=1 +2026-09-09 10:37:23,191 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.52ms] +2026-09-09 10:37:23,192 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e377e176-86b0-404f-b92b-eacc873f6ec9/ - 307 [0.09ms] +2026-09-09 10:37:23,195 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e377e176-86b0-404f-b92b-eacc873f6ec9 - 200 [3.22ms] +2026-09-09 10:37:23,204 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.95ms] +2026-09-09 10:37:23,205 INFO http_request_logger GET /api/v1/guardrails/ban_lists/cbecfb4a-8ef5-4623-a18b-253383ae741a/ - 307 [0.10ms] +2026-09-09 10:37:23,207 INFO http_request_logger GET /api/v1/guardrails/ban_lists/cbecfb4a-8ef5-4623-a18b-253383ae741a - 200 [1.49ms] +2026-09-09 10:37:23,210 INFO http_request_logger GET /api/v1/guardrails/ban_lists/55ae439c-cf3f-4df6-aabe-44d6bfa6e872/ - 307 [0.09ms] +2026-09-09 10:37:23,213 INFO http_request_logger GET /api/v1/guardrails/ban_lists/55ae439c-cf3f-4df6-aabe-44d6bfa6e872 - 404 [2.53ms] +2026-09-09 10:37:23,221 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.08ms] +2026-09-09 10:37:23,221 INFO http_request_logger GET /api/v1/guardrails/ban_lists/7642d1e9-f430-4f07-b6b1-e780966411a1/ - 307 [0.11ms] +2026-09-09 10:37:23,223 INFO http_request_logger GET /api/v1/guardrails/ban_lists/7642d1e9-f430-4f07-b6b1-e780966411a1 - 403 [1.65ms] +2026-09-09 10:37:23,234 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.90ms] +2026-09-09 10:37:23,235 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/139c2668-3689-4c3d-815c-2ba14deb6d82/ - 307 [0.10ms] +2026-09-09 10:37:23,240 INFO app.crud.ban_list updated ban list id=139c2668-3689-4c3d-815c-2ba14deb6d82 +2026-09-09 10:37:23,241 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/139c2668-3689-4c3d-815c-2ba14deb6d82 - 200 [5.36ms] +2026-09-09 10:37:23,250 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.50ms] +2026-09-09 10:37:23,250 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a481d36a-55fe-453f-ac44-103162ae144f/ - 307 [0.09ms] +2026-09-09 10:37:23,255 INFO app.crud.ban_list updated ban list id=a481d36a-55fe-453f-ac44-103162ae144f +2026-09-09 10:37:23,256 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a481d36a-55fe-453f-ac44-103162ae144f - 200 [5.20ms] +2026-09-09 10:37:23,261 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/f1ca7f1f-dc4c-43bb-a6c0-3e33c1f2d3f0/ - 307 [0.19ms] +2026-09-09 10:37:23,264 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/f1ca7f1f-dc4c-43bb-a6c0-3e33c1f2d3f0 - 404 [2.45ms] +2026-09-09 10:37:23,270 INFO app.crud.ban_list created ban list id=b77f5eda-d0a4-40f5-9faa-dd50bb8b8453 org=1 project=1 +2026-09-09 10:37:23,271 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.74ms] +2026-09-09 10:37:23,271 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/b77f5eda-d0a4-40f5-9faa-dd50bb8b8453/ - 307 [0.11ms] +2026-09-09 10:37:23,273 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/b77f5eda-d0a4-40f5-9faa-dd50bb8b8453 - 403 [1.34ms] +2026-09-09 10:37:23,279 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.62ms] +2026-09-09 10:37:23,280 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/4bf03e5b-5d9a-4083-8c54-5f9b99fb7e8b/ - 307 [0.09ms] +2026-09-09 10:37:23,282 INFO app.crud.ban_list deleted ban list id=4bf03e5b-5d9a-4083-8c54-5f9b99fb7e8b +2026-09-09 10:37:23,283 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/4bf03e5b-5d9a-4083-8c54-5f9b99fb7e8b - 200 [2.49ms] +2026-09-09 10:37:23,286 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/ecf01a0d-a53c-4f02-aeac-e33be86b7625/ - 307 [0.08ms] +2026-09-09 10:37:23,288 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/ecf01a0d-a53c-4f02-aeac-e33be86b7625 - 404 [1.53ms] +2026-09-09 10:37:23,294 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.68ms] +2026-09-09 10:37:23,295 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d920cd31-c800-4c9e-9cb0-25c918e0c22c/ - 307 [0.09ms] +2026-09-09 10:37:23,297 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/d920cd31-c800-4c9e-9cb0-25c918e0c22c - 403 [1.37ms] +2026-09-09 10:37:23,302 INFO app.crud.ban_list created ban list id=0e367c3a-953d-4ae2-9a83-9326c19b5acb org=1 project=1 +2026-09-09 10:37:23,303 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.25ms] +2026-09-09 10:37:23,303 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/0e367c3a-953d-4ae2-9a83-9326c19b5acb/ - 307 [0.08ms] +2026-09-09 10:37:23,305 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/0e367c3a-953d-4ae2-9a83-9326c19b5acb - 403 [1.63ms] +2026-09-09 10:37:23,393 INFO guardrails.execution request=5a9d3fea-30d8-48ba-a1ef-5a4c0471ef85 starting guardrails execution (validators=[]) input='hello world' +2026-09-09 10:37:23,393 INFO guardrails.execution request=5a9d3fea-30d8-48ba-a1ef-5a4c0471ef85 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:37:23,394 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.40ms] +2026-09-09 10:37:23,399 INFO guardrails.execution request=b4535805-e362-4342-8a7d-337bc56dc8e2 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 10:37:23,399 INFO guardrails.execution request=b4535805-e362-4342-8a7d-337bc56dc8e2 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:23,401 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.70ms] +2026-09-09 10:37:23,407 INFO guardrails.execution request=7de97208-ad4b-4256-88e7-48631f6cdab3 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 10:37:23,407 INFO guardrails.execution request=7de97208-ad4b-4256-88e7-48631f6cdab3 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 10:37:23,409 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.72ms] +2026-09-09 10:37:23,414 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8985c341-fb30-48cc-8b7b-2618418a246c: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 10:37:23,416 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.56ms] +2026-09-09 10:37:23,433 INFO guardrails.execution request=38187d48-8396-4fc9-8575-43ac51cbc5e2 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:37:23,436 INFO guardrails.execution request=38187d48-8396-4fc9-8575-43ac51cbc5e2 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:37:23,442 INFO guardrails.execution request=38187d48-8396-4fc9-8575-43ac51cbc5e2 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.434757 end=2026-09-09T10:37:23.435257 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:37:23,448 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.68ms] +2026-09-09 10:37:23,464 INFO guardrails.execution request=5207e736-b1ba-47e7-9789-6798107e02d1 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 10:37:23,465 INFO guardrails.execution request=5207e736-b1ba-47e7-9789-6798107e02d1 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 10:37:23,468 INFO guardrails.execution request=5207e736-b1ba-47e7-9789-6798107e02d1 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.464915 end=2026-09-09T10:37:23.464983 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 10:37:23,472 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.90ms] +2026-09-09 10:37:23,491 INFO guardrails.execution request=869b7330-5eba-4921-9546-632cfdb48a91 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:37:23,493 INFO guardrails.execution request=869b7330-5eba-4921-9546-632cfdb48a91 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:37:23,496 INFO guardrails.execution request=869b7330-5eba-4921-9546-632cfdb48a91 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.492090 end=2026-09-09T10:37:23.492471 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:37:23,499 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.16ms] +2026-09-09 10:37:23,515 INFO guardrails.execution request=e99f6c8b-2ac7-40c7-aff2-98c1adb91443 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 10:37:23,516 INFO guardrails.execution request=e99f6c8b-2ac7-40c7-aff2-98c1adb91443 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 10:37:23,518 INFO guardrails.execution request=e99f6c8b-2ac7-40c7-aff2-98c1adb91443 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.515973 end=2026-09-09T10:37:23.516242 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 10:37:23,522 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.19ms] +2026-09-09 10:37:23,535 INFO guardrails.execution request=a21b3d9b-36eb-469e-b577-9e0b6de92fd0 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 10:37:23,537 INFO guardrails.execution request=a21b3d9b-36eb-469e-b577-9e0b6de92fd0 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:37:23,539 INFO guardrails.execution request=a21b3d9b-36eb-469e-b577-9e0b6de92fd0 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.536359 end=2026-09-09T10:37:23.536823 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 10:37:23,541 INFO guardrails.execution request=a21b3d9b-36eb-469e-b577-9e0b6de92fd0 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.536829 end=2026-09-09T10:37:23.536912 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:37:23,545 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.78ms] +2026-09-09 10:37:23,551 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.03ms] +2026-09-09 10:37:23,567 INFO guardrails.execution request=cb50386c-d798-416f-8e7a-df3d2ac74191 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:37:23,568 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log cb50386c-d798-416f-8e7a-df3d2ac74191: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:37:23,571 INFO guardrails.execution request=cb50386c-d798-416f-8e7a-df3d2ac74191 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.567736 end=2026-09-09T10:37:23.568017 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 10:37:23,574 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.66ms] +2026-09-09 10:37:23,591 INFO guardrails.execution request=e1e7f645-12f1-4e17-81e3-017f00ae6d43 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:37:23,593 INFO guardrails.execution request=e1e7f645-12f1-4e17-81e3-017f00ae6d43 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:37:23,596 INFO guardrails.execution request=e1e7f645-12f1-4e17-81e3-017f00ae6d43 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.592222 end=2026-09-09T10:37:23.592474 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:37:23,600 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.76ms] +2026-09-09 10:37:23,615 INFO guardrails.execution request=40b95d77-00d9-428c-8a8d-3f9854c7c7d5 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 10:37:23,617 INFO guardrails.execution request=40b95d77-00d9-428c-8a8d-3f9854c7c7d5 guardrails execution finished (passed=True) output='' +2026-09-09 10:37:23,622 INFO guardrails.execution request=40b95d77-00d9-428c-8a8d-3f9854c7c7d5 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.616063 end=2026-09-09T10:37:23.617135 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-09 10:37:23,626 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.60ms] +2026-09-09 10:37:23,643 INFO guardrails.execution request=b2464892-c150-40e6-9d3c-14fb83ccf7cd starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 10:37:23,645 INFO guardrails.execution request=b2464892-c150-40e6-9d3c-14fb83ccf7cd guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 10:37:23,649 INFO guardrails.execution request=b2464892-c150-40e6-9d3c-14fb83ccf7cd step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:37:23.643560 end=2026-09-09T10:37:23.644494 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 10:37:23,654 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.79ms] +2026-09-09 10:37:23,670 INFO guardrails.execution request=7be230fd-cc18-4b29-8499-5f6968d70696 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 10:37:23,671 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7be230fd-cc18-4b29-8499-5f6968d70696: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 10:37:23,675 INFO guardrails.execution request=7be230fd-cc18-4b29-8499-5f6968d70696 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.670674 end=2026-09-09T10:37:23.671597 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 10:37:23,679 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.25ms] +2026-09-09 10:37:23,695 INFO guardrails.execution request=4f1066cd-b016-42c3-a503-7a63546c3620 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 10:37:23,697 INFO guardrails.execution request=4f1066cd-b016-42c3-a503-7a63546c3620 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:37:23,700 INFO guardrails.execution request=4f1066cd-b016-42c3-a503-7a63546c3620 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:23.695801 end=2026-09-09T10:37:23.696677 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:37:23,703 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.38ms] +2026-09-09 10:37:23,712 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 536fba2d-eab5-4019-88bf-d663faa2663f: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:37:23,715 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.95ms] +2026-09-09 10:37:24,389 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:37:26,360 INFO guardrails.execution request=683a6cca-e1eb-489f-abc4-7028bfe24afc starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:37:26,451 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 683a6cca-e1eb-489f-abc4-7028bfe24afc: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:37:26,457 INFO guardrails.execution request=683a6cca-e1eb-489f-abc4-7028bfe24afc step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:26.361341 end=2026-09-09T10:37:26.451488 duration_ms=90 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:37:26,461 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2742.29ms] +2026-09-09 10:37:28,515 INFO guardrails.execution request=9e8135bd-f16a-4c5e-8db1-e6602f8175b7 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:37:28,535 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9e8135bd-f16a-4c5e-8db1-e6602f8175b7: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:37:28,539 INFO guardrails.execution request=9e8135bd-f16a-4c5e-8db1-e6602f8175b7 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:28.516813 end=2026-09-09T10:37:28.534839 duration_ms=18 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:37:28,541 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2073.73ms] +2026-09-09 10:37:30,609 INFO guardrails.execution request=ab516617-6514-40e9-9409-63499697bff8 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:37:30,635 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ab516617-6514-40e9-9409-63499697bff8: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:37:30,640 INFO guardrails.execution request=ab516617-6514-40e9-9409-63499697bff8 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:30.610341 end=2026-09-09T10:37:30.635171 duration_ms=24 input='Explicit sexual content goes here.' output=None +2026-09-09 10:37:30,643 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2098.17ms] +2026-09-09 10:37:30,666 INFO guardrails.execution request=924f2ec7-3352-4949-b733-d6d6924d7ba4 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:37:30,670 INFO guardrails.execution request=924f2ec7-3352-4949-b733-d6d6924d7ba4 guardrails execution finished (passed=True) output='' +2026-09-09 10:37:30,675 INFO guardrails.execution request=924f2ec7-3352-4949-b733-d6d6924d7ba4 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:30.667288 end=2026-09-09T10:37:30.669504 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-09 10:37:30,678 INFO guardrails.execution request=924f2ec7-3352-4949-b733-d6d6924d7ba4 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:37:30.669522 end=2026-09-09T10:37:30.669722 duration_ms=0 input='' output='' +2026-09-09 10:37:30,682 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.33ms] +2026-09-09 10:37:30,690 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3f399452-2193-4554-ad59-eb75d488a139: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:37:30,693 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.00ms] +2026-09-09 10:37:32,722 INFO guardrails.execution request=3432e10b-f3a6-4ac8-999c-ab701691cb7c starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:37:32,724 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3432e10b-f3a6-4ac8-999c-ab701691cb7c: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:37:32,732 INFO guardrails.execution request=3432e10b-f3a6-4ac8-999c-ab701691cb7c step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:32.722686 end=2026-09-09T10:37:32.723835 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:37:32,735 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2038.05ms] +2026-09-09 10:37:34,851 INFO guardrails.execution request=eb02e44f-4632-490c-a864-6230320cea98 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:37:34,853 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log eb02e44f-4632-490c-a864-6230320cea98: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:37:34,858 INFO guardrails.execution request=eb02e44f-4632-490c-a864-6230320cea98 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:34.852253 end=2026-09-09T10:37:34.852880 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:37:34,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2122.14ms] +2026-09-09 10:37:34,878 INFO guardrails.execution request=bac94e91-0fd5-484f-bfa2-d00b0847c487 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:37:34,880 INFO guardrails.execution request=bac94e91-0fd5-484f-bfa2-d00b0847c487 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:37:34,884 INFO guardrails.execution request=bac94e91-0fd5-484f-bfa2-d00b0847c487 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.878816 end=2026-09-09T10:37:34.879816 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:37:34,886 INFO guardrails.execution request=bac94e91-0fd5-484f-bfa2-d00b0847c487 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.879823 end=2026-09-09T10:37:34.879949 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:37:34,889 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.37ms] +2026-09-09 10:37:34,910 INFO guardrails.execution request=5ac8bbf4-a559-4076-8935-f21f2dbb1da8 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:37:34,913 INFO guardrails.execution request=5ac8bbf4-a559-4076-8935-f21f2dbb1da8 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:37:34,917 INFO guardrails.execution request=5ac8bbf4-a559-4076-8935-f21f2dbb1da8 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.911131 end=2026-09-09T10:37:34.911437 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:37:34,919 INFO guardrails.execution request=5ac8bbf4-a559-4076-8935-f21f2dbb1da8 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.911442 end=2026-09-09T10:37:34.912374 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:37:34,921 INFO guardrails.execution request=5ac8bbf4-a559-4076-8935-f21f2dbb1da8 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.912379 end=2026-09-09T10:37:34.912444 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:37:34,925 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.61ms] +2026-09-09 10:37:34,940 INFO guardrails.execution request=e66037a1-bb87-48b1-a992-434413835f43 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:37:34,942 INFO guardrails.execution request=e66037a1-bb87-48b1-a992-434413835f43 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:37:34,944 INFO guardrails.execution request=e66037a1-bb87-48b1-a992-434413835f43 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:37:34.941106 end=2026-09-09T10:37:34.941216 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:37:34,946 INFO guardrails.execution request=e66037a1-bb87-48b1-a992-434413835f43 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:37:34.941222 end=2026-09-09T10:37:34.941410 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:37:34,950 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.00ms] +2026-09-09 10:37:34,964 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 48368309-7a5f-4ab3-ada7-0ec35737c608: 404: Ban list not found +2026-09-09 10:37:34,969 INFO http_request_logger POST /api/v1/guardrails/ - 404 [10.11ms] +2026-09-09 10:37:34,980 INFO guardrails.execution request=3257c968-c595-47a0-8200-ab7831a231d0 starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:37:34,980 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3257c968-c595-47a0-8200-ab7831a231d0: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 370, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:37:34,985 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.28ms] +2026-09-09 10:37:34,994 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:37:34,994 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.31ms] +2026-09-09 10:37:35,006 INFO app.crud.llm_prompt_config created llm prompt config id=1f4bbeb3-578b-4894-8bab-1431ed250f93 org=1 project=1 +2026-09-09 10:37:35,008 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [9.24ms] +2026-09-09 10:37:35,014 INFO app.crud.llm_prompt_config created llm prompt config id=2c4258e1-403b-41ce-a27b-c556056bb67b org=1 project=1 +2026-09-09 10:37:35,014 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.79ms] +2026-09-09 10:37:35,020 INFO app.crud.llm_prompt_config created llm prompt config id=6a6be978-9f7f-4624-8583-8bac2ae6d699 org=1 project=1 +2026-09-09 10:37:35,021 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.88ms] +2026-09-09 10:37:35,025 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.39ms] +2026-09-09 10:37:35,030 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.87ms] +2026-09-09 10:37:35,035 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.82ms] +2026-09-09 10:37:35,040 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.81ms] +2026-09-09 10:37:35,046 INFO app.crud.llm_prompt_config created llm prompt config id=c31b0560-500e-4c70-a039-008f9f6bdcf8 org=1 project=1 +2026-09-09 10:37:35,047 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.18ms] +2026-09-09 10:37:35,052 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.87ms] +2026-09-09 10:37:35,055 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.74ms] +2026-09-09 10:37:35,060 INFO app.crud.llm_prompt_config created llm prompt config id=dea98eb9-8f1e-4fe5-a031-ae5dcda42232 org=1 project=1 +2026-09-09 10:37:35,061 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.96ms] +2026-09-09 10:37:35,064 INFO app.crud.llm_prompt_config created llm prompt config id=14d1bf2a-efbe-4714-9af5-0d4f90f0b438 org=1 project=1 +2026-09-09 10:37:35,064 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.16ms] +2026-09-09 10:37:35,067 INFO app.crud.llm_prompt_config created llm prompt config id=17dd96f6-2d27-4d8f-83d3-e7ed186908bf org=1 project=1 +2026-09-09 10:37:35,067 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.59ms] +2026-09-09 10:37:35,070 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.15ms] +2026-09-09 10:37:35,075 INFO app.crud.llm_prompt_config created llm prompt config id=81465ddc-e255-40df-9aeb-9e7a90914643 org=1 project=1 +2026-09-09 10:37:35,075 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.60ms] +2026-09-09 10:37:35,078 INFO app.crud.llm_prompt_config created llm prompt config id=7ab8a49d-7e3f-4edc-a6d9-ab48e8e4bee2 org=1 project=1 +2026-09-09 10:37:35,078 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.43ms] +2026-09-09 10:37:35,082 INFO app.crud.llm_prompt_config created llm prompt config id=fc6af957-3e93-4ed4-81ef-967c6a383efb org=1 project=1 +2026-09-09 10:37:35,082 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.64ms] +2026-09-09 10:37:35,085 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.41ms] +2026-09-09 10:37:35,090 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.68ms] +2026-09-09 10:37:35,097 INFO app.crud.llm_prompt_config created llm prompt config id=2b0bc895-6963-4136-b8b7-245b0bb28afb org=1 project=1 +2026-09-09 10:37:35,099 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.53ms] +2026-09-09 10:37:35,107 INFO app.crud.llm_prompt_config created llm prompt config id=3c35aa94-c510-459c-80c4-65c024ad457b org=1 project=1 +2026-09-09 10:37:35,109 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [9.25ms] +2026-09-09 10:37:35,113 INFO app.crud.llm_prompt_config created llm prompt config id=4649ff3a-03a3-4fd0-acda-2fe49ff82424 org=1 project=1 +2026-09-09 10:37:35,114 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.91ms] +2026-09-09 10:37:35,118 INFO app.crud.llm_prompt_config created llm prompt config id=e38de6bc-10c0-4e96-92a4-bdf21c834966 org=1 project=1 +2026-09-09 10:37:35,119 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.12ms] +2026-09-09 10:37:35,122 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.97ms] +2026-09-09 10:37:35,130 INFO app.crud.llm_prompt_config created llm prompt config id=06592241-06f1-4dae-80c9-258764c0b991 org=1 project=1 +2026-09-09 10:37:35,131 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.80ms] +2026-09-09 10:37:35,132 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.43ms] +2026-09-09 10:37:35,139 INFO app.crud.llm_prompt_config created llm prompt config id=5c5359f0-c16d-43db-aa3f-acc3d02871c9 org=1 project=1 +2026-09-09 10:37:35,139 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.72ms] +2026-09-09 10:37:35,141 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/5c5359f0-c16d-43db-aa3f-acc3d02871c9 - 200 [1.73ms] +2026-09-09 10:37:35,146 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/45d1037f-4418-47d2-ad3e-737a2c86b767 - 404 [1.66ms] +2026-09-09 10:37:35,152 INFO app.crud.llm_prompt_config created llm prompt config id=80c96094-53e4-4350-8660-2c398503f852 org=1 project=1 +2026-09-09 10:37:35,152 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.16ms] +2026-09-09 10:37:35,155 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/80c96094-53e4-4350-8660-2c398503f852 - 404 [1.91ms] +2026-09-09 10:37:35,162 INFO app.crud.llm_prompt_config created llm prompt config id=3db6a2ba-a086-4fcb-aa38-5a73d0bff444 org=1 project=1 +2026-09-09 10:37:35,162 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.69ms] +2026-09-09 10:37:35,167 INFO app.crud.llm_prompt_config updated llm prompt config id=3db6a2ba-a086-4fcb-aa38-5a73d0bff444 +2026-09-09 10:37:35,167 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/3db6a2ba-a086-4fcb-aa38-5a73d0bff444 - 200 [4.61ms] +2026-09-09 10:37:35,174 INFO app.crud.llm_prompt_config created llm prompt config id=5cb1eefd-f6bc-4bba-b143-9e3250935892 org=1 project=1 +2026-09-09 10:37:35,175 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.78ms] +2026-09-09 10:37:35,178 INFO app.crud.llm_prompt_config updated llm prompt config id=5cb1eefd-f6bc-4bba-b143-9e3250935892 +2026-09-09 10:37:35,179 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5cb1eefd-f6bc-4bba-b143-9e3250935892 - 200 [3.34ms] +2026-09-09 10:37:35,184 INFO app.crud.llm_prompt_config created llm prompt config id=1c2c3762-c8d2-4ec1-9ebd-7e2074466598 org=1 project=1 +2026-09-09 10:37:35,184 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.60ms] +2026-09-09 10:37:35,187 INFO app.crud.llm_prompt_config updated llm prompt config id=1c2c3762-c8d2-4ec1-9ebd-7e2074466598 +2026-09-09 10:37:35,187 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1c2c3762-c8d2-4ec1-9ebd-7e2074466598 - 200 [2.64ms] +2026-09-09 10:37:35,190 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/1c2c3762-c8d2-4ec1-9ebd-7e2074466598 - 200 [2.56ms] +2026-09-09 10:37:35,195 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/c66f7934-24a3-4015-886a-ee7fd01a83e6 - 404 [1.59ms] +2026-09-09 10:37:35,200 INFO app.crud.llm_prompt_config created llm prompt config id=9a4184e4-c988-43b7-835a-1dcd865bf3d5 org=1 project=1 +2026-09-09 10:37:35,200 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.81ms] +2026-09-09 10:37:35,202 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9a4184e4-c988-43b7-835a-1dcd865bf3d5 - 404 [1.59ms] +2026-09-09 10:37:35,210 INFO app.crud.llm_prompt_config created llm prompt config id=3a417510-506e-4372-a270-5ef40dc84778 org=1 project=1 +2026-09-09 10:37:35,211 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.55ms] +2026-09-09 10:37:35,213 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/3a417510-506e-4372-a270-5ef40dc84778 - 422 [1.57ms] +2026-09-09 10:37:35,219 INFO app.crud.llm_prompt_config created llm prompt config id=ef8328e0-25bb-4883-afe7-6152c2e3d36b org=1 project=1 +2026-09-09 10:37:35,220 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.14ms] +2026-09-09 10:37:35,222 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ef8328e0-25bb-4883-afe7-6152c2e3d36b - 422 [2.41ms] +2026-09-09 10:37:35,230 INFO app.crud.llm_prompt_config created llm prompt config id=0be91c97-dab8-4f2c-8cdd-c1a39dc5de47 org=1 project=1 +2026-09-09 10:37:35,231 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.07ms] +2026-09-09 10:37:35,234 INFO app.crud.llm_prompt_config updated llm prompt config id=0be91c97-dab8-4f2c-8cdd-c1a39dc5de47 +2026-09-09 10:37:35,235 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/0be91c97-dab8-4f2c-8cdd-c1a39dc5de47 - 200 [3.99ms] +2026-09-09 10:37:35,240 INFO app.crud.llm_prompt_config created llm prompt config id=feb68713-7460-4d80-a03f-cce0c0fbc30b org=1 project=1 +2026-09-09 10:37:35,241 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.65ms] +2026-09-09 10:37:35,243 INFO app.crud.llm_prompt_config updated llm prompt config id=feb68713-7460-4d80-a03f-cce0c0fbc30b +2026-09-09 10:37:35,244 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/feb68713-7460-4d80-a03f-cce0c0fbc30b - 200 [2.67ms] +2026-09-09 10:37:35,249 INFO app.crud.llm_prompt_config created llm prompt config id=7deef04b-1fba-4946-a84f-22600fdf528f org=1 project=1 +2026-09-09 10:37:35,250 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.58ms] +2026-09-09 10:37:35,252 INFO app.crud.llm_prompt_config deleted llm prompt config id=7deef04b-1fba-4946-a84f-22600fdf528f +2026-09-09 10:37:35,252 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/7deef04b-1fba-4946-a84f-22600fdf528f - 200 [2.18ms] +2026-09-09 10:37:35,259 INFO app.crud.llm_prompt_config created llm prompt config id=30760b22-3f75-494e-b577-5ed56ee1ec01 org=1 project=1 +2026-09-09 10:37:35,260 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.89ms] +2026-09-09 10:37:35,262 INFO app.crud.llm_prompt_config deleted llm prompt config id=30760b22-3f75-494e-b577-5ed56ee1ec01 +2026-09-09 10:37:35,262 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/30760b22-3f75-494e-b577-5ed56ee1ec01 - 200 [2.02ms] +2026-09-09 10:37:35,264 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.37ms] +2026-09-09 10:37:35,269 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/6a6fe335-c4cb-42ef-831c-194017a2d949 - 404 [1.55ms] +2026-09-09 10:37:35,275 INFO app.crud.llm_prompt_config created llm prompt config id=54b093a3-284b-439c-a7a5-6c5ad751de0e org=1 project=1 +2026-09-09 10:37:35,275 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.99ms] +2026-09-09 10:37:35,277 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/54b093a3-284b-439c-a7a5-6c5ad751de0e - 404 [1.32ms] +2026-09-09 10:37:35,367 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='hello' +2026-09-09 10:37:35,367 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:37:35,369 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:37:35,369 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,371 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e2aaf44d-a64a-4d0a-aa85-051076212a87: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 10:37:35,373 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:37:35,373 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,375 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:37:35,375 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,398 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 10:37:35,398 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,400 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='some input text' +2026-09-09 10:37:35,400 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,402 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 10:37:35,402 INFO guardrails.execution request=e2aaf44d-a64a-4d0a-aa85-051076212a87 guardrails execution finished (passed=False) output=None +2026-09-09 10:37:35,404 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e2aaf44d-a64a-4d0a-aa85-051076212a87: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 10:37:35,406 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e2aaf44d-a64a-4d0a-aa85-051076212a87: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 354, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 10:37:35,420 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:37:35,423 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:37:35,425 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:37:35,437 INFO app.crud.validator_config created validator config id=3068e168-2451-4ee7-9687-958b854cc2c1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:37:35,437 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [6.19ms] +2026-09-09 10:37:35,444 INFO app.crud.validator_config created validator config id=ef4024ed-9b32-4b2f-80de-70c4a236b173 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:37:35,445 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.87ms] +2026-09-09 10:37:35,447 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 10:37:35,447 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.79ms] +2026-09-09 10:37:35,451 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.98ms] +2026-09-09 10:37:35,458 INFO app.crud.validator_config created validator config id=80882602-2e8b-4ab6-8378-e747b134ae11 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:37:35,458 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.07ms] +2026-09-09 10:37:35,461 INFO app.crud.validator_config created validator config id=dab86b20-1b97-4793-94f3-f81ad506c84d org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:37:35,461 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.59ms] +2026-09-09 10:37:35,463 INFO app.crud.validator_config created validator config id=334c261f-c5d9-47b5-a3e8-516c1441d135 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:37:35,464 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.50ms] +2026-09-09 10:37:35,466 INFO app.crud.validator_config created validator config id=a2644b77-26db-4614-a593-e735cce858f8 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:37:35,467 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.44ms] +2026-09-09 10:37:35,470 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.53ms] +2026-09-09 10:37:35,470 INFO http_request_logger GET /api/v1/guardrails/validators/configs/80882602-2e8b-4ab6-8378-e747b134ae11/ - 307 [0.09ms] +2026-09-09 10:37:35,472 INFO http_request_logger GET /api/v1/guardrails/validators/configs/80882602-2e8b-4ab6-8378-e747b134ae11 - 200 [1.95ms] +2026-09-09 10:37:35,473 INFO http_request_logger GET /api/v1/guardrails/validators/configs/dab86b20-1b97-4793-94f3-f81ad506c84d/ - 307 [0.09ms] +2026-09-09 10:37:35,475 INFO http_request_logger GET /api/v1/guardrails/validators/configs/dab86b20-1b97-4793-94f3-f81ad506c84d - 200 [1.60ms] +2026-09-09 10:37:35,475 INFO http_request_logger GET /api/v1/guardrails/validators/configs/334c261f-c5d9-47b5-a3e8-516c1441d135/ - 307 [0.09ms] +2026-09-09 10:37:35,477 INFO http_request_logger GET /api/v1/guardrails/validators/configs/334c261f-c5d9-47b5-a3e8-516c1441d135 - 200 [1.69ms] +2026-09-09 10:37:35,477 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a2644b77-26db-4614-a593-e735cce858f8/ - 307 [0.10ms] +2026-09-09 10:37:35,479 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a2644b77-26db-4614-a593-e735cce858f8 - 200 [1.78ms] +2026-09-09 10:37:35,487 INFO app.crud.validator_config created validator config id=7239138a-f5d8-44af-be2f-80a85449cd9f org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:37:35,487 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.45ms] +2026-09-09 10:37:35,490 INFO app.crud.validator_config created validator config id=fccb8283-7edd-42fc-996d-fe904e8baab3 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:37:35,491 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.16ms] +2026-09-09 10:37:35,494 INFO app.crud.validator_config created validator config id=55cc1029-421e-442e-95e9-cc2164956190 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:37:35,494 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.09ms] +2026-09-09 10:37:35,495 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/7239138a-f5d8-44af-be2f-80a85449cd9f/ - 307 [0.09ms] +2026-09-09 10:37:35,498 INFO app.crud.validator_config updated validator config id=7239138a-f5d8-44af-be2f-80a85449cd9f +2026-09-09 10:37:35,499 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/7239138a-f5d8-44af-be2f-80a85449cd9f - 200 [4.06ms] +2026-09-09 10:37:35,499 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fccb8283-7edd-42fc-996d-fe904e8baab3/ - 307 [0.08ms] +2026-09-09 10:37:35,503 INFO app.crud.validator_config updated validator config id=fccb8283-7edd-42fc-996d-fe904e8baab3 +2026-09-09 10:37:35,503 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/fccb8283-7edd-42fc-996d-fe904e8baab3 - 200 [3.75ms] +2026-09-09 10:37:35,504 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/55cc1029-421e-442e-95e9-cc2164956190/ - 307 [0.09ms] +2026-09-09 10:37:35,508 INFO app.crud.validator_config updated validator config id=55cc1029-421e-442e-95e9-cc2164956190 +2026-09-09 10:37:35,508 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/55cc1029-421e-442e-95e9-cc2164956190 - 200 [4.16ms] +2026-09-09 10:37:35,511 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.10ms] +2026-09-09 10:37:35,521 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.17ms] +2026-09-09 10:37:35,530 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.04ms] +2026-09-09 10:37:35,540 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.48ms] +2026-09-09 10:37:35,547 INFO app.crud.validator_config created validator config id=418350ea-c40c-45a7-bf91-ca84d90f9e43 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:37:35,547 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.64ms] +2026-09-09 10:37:35,550 INFO app.crud.validator_config created validator config id=51a8ee61-f567-4303-987a-ac514c1bdf3d org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:37:35,551 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.82ms] +2026-09-09 10:37:35,553 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.02ms] +2026-09-09 10:37:35,560 INFO app.crud.validator_config created validator config id=27e310e1-2375-464c-ab60-7ed06b0d9852 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:37:35,560 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.17ms] +2026-09-09 10:37:35,562 INFO app.crud.validator_config created validator config id=68389d1c-0b4e-401e-89ea-ef9e5afb94d6 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:37:35,563 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.35ms] +2026-09-09 10:37:35,565 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.59ms] +2026-09-09 10:37:35,569 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.80ms] +2026-09-09 10:37:35,574 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.62ms] +2026-09-09 10:37:35,583 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.20ms] +2026-09-09 10:37:35,584 INFO http_request_logger GET /api/v1/guardrails/validators/configs/959d875d-5603-4faf-af81-799611161bd3/ - 307 [0.12ms] +2026-09-09 10:37:35,586 INFO http_request_logger GET /api/v1/guardrails/validators/configs/959d875d-5603-4faf-af81-799611161bd3 - 200 [2.10ms] +2026-09-09 10:37:35,591 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4b0036c6-4e1e-4929-a1f3-60c2e0abebb7/ - 307 [0.09ms] +2026-09-09 10:37:35,594 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4b0036c6-4e1e-4929-a1f3-60c2e0abebb7 - 404 [1.84ms] +2026-09-09 10:37:35,597 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-09 10:37:35,598 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.75ms] +2026-09-09 10:37:35,605 INFO app.crud.validator_config created validator config id=8a985f2b-21cf-4893-95ee-5b2598dff528 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:37:35,605 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.33ms] +2026-09-09 10:37:35,606 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8a985f2b-21cf-4893-95ee-5b2598dff528/ - 307 [0.09ms] +2026-09-09 10:37:35,607 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8a985f2b-21cf-4893-95ee-5b2598dff528 - 404 [1.31ms] +2026-09-09 10:37:35,614 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.80ms] +2026-09-09 10:37:35,615 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3ce28622-ece6-44ee-8e0f-af3a55e8851a/ - 307 [0.10ms] +2026-09-09 10:37:35,618 INFO app.crud.validator_config updated validator config id=3ce28622-ece6-44ee-8e0f-af3a55e8851a +2026-09-09 10:37:35,619 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/3ce28622-ece6-44ee-8e0f-af3a55e8851a - 200 [3.62ms] +2026-09-09 10:37:35,627 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.12ms] +2026-09-09 10:37:35,627 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/75ab27c1-7db7-43a0-b70d-0df899ce0f10/ - 307 [0.10ms] +2026-09-09 10:37:35,630 INFO app.crud.validator_config updated validator config id=75ab27c1-7db7-43a0-b70d-0df899ce0f10 +2026-09-09 10:37:35,630 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/75ab27c1-7db7-43a0-b70d-0df899ce0f10 - 200 [2.85ms] +2026-09-09 10:37:35,634 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/39d54bd1-fb1d-471b-bf02-9f2d748c2943/ - 307 [0.09ms] +2026-09-09 10:37:35,636 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/39d54bd1-fb1d-471b-bf02-9f2d748c2943 - 404 [1.71ms] +2026-09-09 10:37:35,643 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.70ms] +2026-09-09 10:37:35,644 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/410097ca-3861-4f92-883c-6023a089fef9/ - 307 [0.09ms] +2026-09-09 10:37:35,646 INFO app.crud.validator_config deleted validator config id=410097ca-3861-4f92-883c-6023a089fef9 +2026-09-09 10:37:35,646 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/410097ca-3861-4f92-883c-6023a089fef9 - 200 [1.88ms] +2026-09-09 10:37:35,646 INFO http_request_logger GET /api/v1/guardrails/validators/configs/410097ca-3861-4f92-883c-6023a089fef9/ - 307 [0.08ms] +2026-09-09 10:37:35,648 INFO http_request_logger GET /api/v1/guardrails/validators/configs/410097ca-3861-4f92-883c-6023a089fef9 - 404 [1.15ms] +2026-09-09 10:37:35,651 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f45babdf-5b84-48f3-91c5-45f218cee1a8/ - 307 [0.22ms] +2026-09-09 10:37:35,653 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f45babdf-5b84-48f3-91c5-45f218cee1a8 - 404 [1.40ms] +2026-09-09 10:37:35,660 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.05ms] +2026-09-09 10:37:35,661 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/09784bf0-5b1e-4b7d-a4ae-d0060ecd2263/ - 307 [0.09ms] +2026-09-09 10:37:35,662 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/09784bf0-5b1e-4b7d-a4ae-d0060ecd2263 - 404 [1.19ms] +2026-09-09 10:37:35,663 INFO http_request_logger GET /api/v1/guardrails/validators/configs/09784bf0-5b1e-4b7d-a4ae-d0060ecd2263/ - 307 [0.08ms] +2026-09-09 10:37:35,664 INFO http_request_logger GET /api/v1/guardrails/validators/configs/09784bf0-5b1e-4b7d-a4ae-d0060ecd2263 - 200 [1.28ms] +2026-09-09 10:37:35,778 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:37:35,778 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:37:35,849 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:38,700 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:38,710 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:40,142 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:40,155 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:41,569 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:41,583 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:42,656 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:42,664 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:43,985 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:43,993 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:45,056 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:45,058 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:37:46,151 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:37:46,358 INFO watchfiles.main 3 changes detected +2026-09-09 10:38:39,989 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [40.11ms] +2026-09-09 10:38:40,676 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 10:38:40,677 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 10:38:40,683 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 10:38:40,684 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 10:38:40,685 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,685 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,686 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:38:40,686 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 10:38:40,686 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 10:38:40,705 INFO guardrails.execution request=048ff035-fcd9-473b-b505-521ea88f7615 starting guardrails execution (validators=['pii_remover']) input='' +2026-09-09 10:38:40,968 INFO guardrails.execution request=048ff035-fcd9-473b-b505-521ea88f7615 guardrails execution finished (passed=False) output=None +2026-09-09 10:38:40,989 INFO guardrails.execution request=048ff035-fcd9-473b-b505-521ea88f7615 step=1/1 validator=PIIRemover stage=output outcome=Outcome.PASS start=2026-09-09T10:38:40.741761 end=2026-09-09T10:38:40.963933 duration_ms=222 input='' output='' +2026-09-09 10:38:41,004 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1003.70ms] +2026-09-09 10:42:26,560 INFO watchfiles.main 3 changes detected +2026-09-09 10:42:26,569 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:42:26,608 INFO uvicorn.error Shutting down +2026-09-09 10:42:26,715 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:42:26,716 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:42:26,716 INFO uvicorn.error Finished server process [48011] +2026-09-09 10:42:27,144 INFO watchfiles.main 1 change detected +2026-09-09 10:42:32,113 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:42:32,778 INFO watchfiles.main 3 changes detected +2026-09-09 10:42:32,935 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:42:32,935 INFO uvicorn.error Started server process [48587] +2026-09-09 10:42:32,936 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:42:32,936 INFO uvicorn.error Application startup complete. +2026-09-09 10:42:38,408 INFO watchfiles.main 3 changes detected +2026-09-09 10:42:43,436 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:42:44,208 INFO guardrails.execution request=91e7d44c-aa18-41a5-9c64-479f28108893 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,210 INFO guardrails.execution request=91e7d44c-aa18-41a5-9c64-479f28108893 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,212 INFO guardrails.execution request=91e7d44c-aa18-41a5-9c64-479f28108893 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.209227 end=2026-09-09T10:42:44.209335 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,216 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.32ms] +2026-09-09 10:42:44,232 INFO guardrails.execution request=3d909703-0e9f-4044-a593-24a80c1849e2 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:42:44,233 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3d909703-0e9f-4044-a593-24a80c1849e2: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:42:44,237 INFO guardrails.execution request=3d909703-0e9f-4044-a593-24a80c1849e2 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:42:44.233069 end=2026-09-09T10:42:44.233154 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:42:44,239 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.06ms] +2026-09-09 10:42:44,253 INFO guardrails.execution request=c34b3868-aec5-4957-9ae3-dca54bdbdcaa starting guardrails execution (validators=['answer_relevance_custom_llm']) input='What are the common symptoms of diabetes?' +2026-09-09 10:42:44,254 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c34b3868-aec5-4957-9ae3-dca54bdbdcaa: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 10:42:44,256 INFO guardrails.execution request=c34b3868-aec5-4957-9ae3-dca54bdbdcaa step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:42:44.254137 end=2026-09-09T10:42:44.254187 duration_ms=0 input='What are the common symptoms of diabetes?' output=None +2026-09-09 10:42:44,257 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.40ms] +2026-09-09 10:42:44,271 INFO guardrails.execution request=5929a07a-c3cc-4277-b116-25c79b73f482 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,272 INFO guardrails.execution request=5929a07a-c3cc-4277-b116-25c79b73f482 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,274 INFO guardrails.execution request=5929a07a-c3cc-4277-b116-25c79b73f482 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.271831 end=2026-09-09T10:42:44.271891 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,276 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.38ms] +2026-09-09 10:42:44,289 INFO guardrails.execution request=5e971bf0-9d16-47ac-832a-ca6255654814 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:42:44,289 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5e971bf0-9d16-47ac-832a-ca6255654814: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:42:44,291 INFO guardrails.execution request=5e971bf0-9d16-47ac-832a-ca6255654814 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:42:44.289567 end=2026-09-09T10:42:44.289629 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:42:44,293 INFO http_request_logger POST /api/v1/guardrails/ - 200 [12.76ms] +2026-09-09 10:42:44,307 INFO guardrails.execution request=b02bfb0e-ee39-4228-97a8-95b763e204d8 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:42:44,309 INFO guardrails.execution request=b02bfb0e-ee39-4228-97a8-95b763e204d8 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:42:44,310 INFO guardrails.execution request=b02bfb0e-ee39-4228-97a8-95b763e204d8 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.308134 end=2026-09-09T10:42:44.308211 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:42:44,311 INFO guardrails.execution request=b02bfb0e-ee39-4228-97a8-95b763e204d8 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.308215 end=2026-09-09T10:42:44.308312 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:42:44,314 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.60ms] +2026-09-09 10:42:44,326 INFO guardrails.execution request=c7462277-1224-4dfd-bbb8-b4d4639ffe75 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:42:44,329 INFO guardrails.execution request=c7462277-1224-4dfd-bbb8-b4d4639ffe75 guardrails execution finished (passed=True) output='' +2026-09-09 10:42:44,332 INFO guardrails.execution request=c7462277-1224-4dfd-bbb8-b4d4639ffe75 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.327369 end=2026-09-09T10:42:44.327427 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:42:44,334 INFO guardrails.execution request=c7462277-1224-4dfd-bbb8-b4d4639ffe75 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.327432 end=2026-09-09T10:42:44.328771 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 10:42:44,337 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.80ms] +2026-09-09 10:42:44,357 INFO guardrails.execution request=b21c6d24-2a64-46d7-bb84-327664710166 starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:42:44,361 INFO guardrails.execution request=b21c6d24-2a64-46d7-bb84-327664710166 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:42:44,366 INFO guardrails.execution request=b21c6d24-2a64-46d7-bb84-327664710166 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.358064 end=2026-09-09T10:42:44.358123 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:42:44,369 INFO guardrails.execution request=b21c6d24-2a64-46d7-bb84-327664710166 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.358128 end=2026-09-09T10:42:44.360297 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:42:44,372 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.04ms] +2026-09-09 10:42:44,387 INFO guardrails.execution request=ce0a8524-0cb7-4856-af69-98c1c96f987c starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:42:44,388 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ce0a8524-0cb7-4856-af69-98c1c96f987c: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 10:42:44,391 INFO guardrails.execution request=ce0a8524-0cb7-4856-af69-98c1c96f987c step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.387522 end=2026-09-09T10:42:44.387579 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:42:44,393 INFO guardrails.execution request=ce0a8524-0cb7-4856-af69-98c1c96f987c step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.387584 end=2026-09-09T10:42:44.388506 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 10:42:44,394 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.70ms] +2026-09-09 10:42:44,409 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,413 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,415 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.410115 end=2026-09-09T10:42:44.410177 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,417 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.410181 end=2026-09-09T10:42:44.410244 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,418 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.410247 end=2026-09-09T10:42:44.411117 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,420 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.411122 end=2026-09-09T10:42:44.411665 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,421 INFO guardrails.execution request=984faae1-8a04-4755-a6ee-da8be55930eb step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.411670 end=2026-09-09T10:42:44.412254 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:42:44,424 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.83ms] +2026-09-09 10:42:44,443 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:42:44,446 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:42:44,449 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:42:44.443761 end=2026-09-09T10:42:44.443827 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:42:44,451 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.443832 end=2026-09-09T10:42:44.444714 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:42:44,453 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.444719 end=2026-09-09T10:42:44.445187 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:42:44,455 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.445192 end=2026-09-09T10:42:44.445251 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:42:44,457 INFO guardrails.execution request=360bf226-3e25-4c21-bac8-6348d6c6c115 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.445254 end=2026-09-09T10:42:44.445858 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:42:44,459 INFO http_request_logger POST /api/v1/guardrails/ - 200 [31.85ms] +2026-09-09 10:42:44,482 INFO app.crud.ban_list created ban list id=4c6a60ca-32ba-4c05-aeb2-1aad8f6c3d38 org=1 project=1 +2026-09-09 10:42:44,483 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [5.88ms] +2026-09-09 10:42:44,487 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.86ms] +2026-09-09 10:42:44,491 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.81ms] +2026-09-09 10:42:44,494 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.74ms] +2026-09-09 10:42:44,498 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.76ms] +2026-09-09 10:42:44,503 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.82ms] +2026-09-09 10:42:44,512 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.74ms] +2026-09-09 10:42:44,520 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.30ms] +2026-09-09 10:42:44,524 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.68ms] +2026-09-09 10:42:44,531 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.49ms] +2026-09-09 10:42:44,539 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.82ms] +2026-09-09 10:42:44,542 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.86ms] +2026-09-09 10:42:44,546 INFO app.crud.ban_list created ban list id=ecf1fc9f-03a6-4c34-89e0-408169735bf4 org=1 project=1 +2026-09-09 10:42:44,547 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.45ms] +2026-09-09 10:42:44,547 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ecf1fc9f-03a6-4c34-89e0-408169735bf4/ - 307 [0.10ms] +2026-09-09 10:42:44,550 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ecf1fc9f-03a6-4c34-89e0-408169735bf4 - 200 [2.22ms] +2026-09-09 10:42:44,559 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.77ms] +2026-09-09 10:42:44,559 INFO http_request_logger GET /api/v1/guardrails/ban_lists/88d499c8-46fd-4eb4-bcc2-582374b9fa91/ - 307 [0.09ms] +2026-09-09 10:42:44,561 INFO http_request_logger GET /api/v1/guardrails/ban_lists/88d499c8-46fd-4eb4-bcc2-582374b9fa91 - 200 [1.62ms] +2026-09-09 10:42:44,565 INFO http_request_logger GET /api/v1/guardrails/ban_lists/75768de6-307d-402f-86a4-e5f56f11310b/ - 307 [0.09ms] +2026-09-09 10:42:44,568 INFO http_request_logger GET /api/v1/guardrails/ban_lists/75768de6-307d-402f-86a4-e5f56f11310b - 404 [2.10ms] +2026-09-09 10:42:44,576 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.20ms] +2026-09-09 10:42:44,577 INFO http_request_logger GET /api/v1/guardrails/ban_lists/15ea5a76-3006-4756-952a-bfa827dba39d/ - 307 [0.10ms] +2026-09-09 10:42:44,579 INFO http_request_logger GET /api/v1/guardrails/ban_lists/15ea5a76-3006-4756-952a-bfa827dba39d - 403 [1.65ms] +2026-09-09 10:42:44,587 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.93ms] +2026-09-09 10:42:44,587 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/62af1a97-9803-4b4c-b6d2-486ccc0c4c05/ - 307 [0.09ms] +2026-09-09 10:42:44,591 INFO app.crud.ban_list updated ban list id=62af1a97-9803-4b4c-b6d2-486ccc0c4c05 +2026-09-09 10:42:44,592 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/62af1a97-9803-4b4c-b6d2-486ccc0c4c05 - 200 [4.31ms] +2026-09-09 10:42:44,600 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.41ms] +2026-09-09 10:42:44,601 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/e14847ae-662a-4b93-9cad-90dd46c8dc4e/ - 307 [0.10ms] +2026-09-09 10:42:44,605 INFO app.crud.ban_list updated ban list id=e14847ae-662a-4b93-9cad-90dd46c8dc4e +2026-09-09 10:42:44,606 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/e14847ae-662a-4b93-9cad-90dd46c8dc4e - 200 [4.84ms] +2026-09-09 10:42:44,611 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/0d3de0dc-729a-4b68-998c-b108cf63673b/ - 307 [0.09ms] +2026-09-09 10:42:44,614 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/0d3de0dc-729a-4b68-998c-b108cf63673b - 404 [2.51ms] +2026-09-09 10:42:44,621 INFO app.crud.ban_list created ban list id=3640814a-a14e-4637-8499-51210b0009a6 org=1 project=1 +2026-09-09 10:42:44,621 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.38ms] +2026-09-09 10:42:44,622 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/3640814a-a14e-4637-8499-51210b0009a6/ - 307 [0.10ms] +2026-09-09 10:42:44,624 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/3640814a-a14e-4637-8499-51210b0009a6 - 403 [1.67ms] +2026-09-09 10:42:44,633 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.53ms] +2026-09-09 10:42:44,634 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/264805a8-29a7-45ba-be0a-34fc98a87091/ - 307 [0.10ms] +2026-09-09 10:42:44,637 INFO app.crud.ban_list deleted ban list id=264805a8-29a7-45ba-be0a-34fc98a87091 +2026-09-09 10:42:44,637 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/264805a8-29a7-45ba-be0a-34fc98a87091 - 200 [3.24ms] +2026-09-09 10:42:44,642 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/e4521dcc-5c72-46fb-92a2-e668fe1060dd/ - 307 [0.08ms] +2026-09-09 10:42:44,644 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/e4521dcc-5c72-46fb-92a2-e668fe1060dd - 404 [2.37ms] +2026-09-09 10:42:44,653 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.22ms] +2026-09-09 10:42:44,653 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/2a247373-7a50-40c8-826b-782d08151d26/ - 307 [0.08ms] +2026-09-09 10:42:44,655 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/2a247373-7a50-40c8-826b-782d08151d26 - 403 [1.92ms] +2026-09-09 10:42:44,663 INFO app.crud.ban_list created ban list id=7dce052b-27c6-44df-9cd7-438b77f54218 org=1 project=1 +2026-09-09 10:42:44,664 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.41ms] +2026-09-09 10:42:44,664 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/7dce052b-27c6-44df-9cd7-438b77f54218/ - 307 [0.09ms] +2026-09-09 10:42:44,666 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/7dce052b-27c6-44df-9cd7-438b77f54218 - 403 [1.56ms] +2026-09-09 10:42:44,751 INFO guardrails.execution request=df5ba3d1-ad38-429f-905f-e744240fc881 starting guardrails execution (validators=[]) input='hello world' +2026-09-09 10:42:44,751 INFO guardrails.execution request=df5ba3d1-ad38-429f-905f-e744240fc881 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:42:44,753 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.89ms] +2026-09-09 10:42:44,758 INFO guardrails.execution request=f993eacd-04da-431c-98ec-8595dd96b07b starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 10:42:44,758 INFO guardrails.execution request=f993eacd-04da-431c-98ec-8595dd96b07b guardrails execution finished (passed=False) output=None +2026-09-09 10:42:44,759 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.50ms] +2026-09-09 10:42:44,765 INFO guardrails.execution request=5ce98eb1-3f2c-4dc5-a136-3968b45656ea starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 10:42:44,765 INFO guardrails.execution request=5ce98eb1-3f2c-4dc5-a136-3968b45656ea guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 10:42:44,766 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.79ms] +2026-09-09 10:42:44,773 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9e986e78-dd0e-4812-8c47-56b3586dee34: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 10:42:44,776 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.42ms] +2026-09-09 10:42:44,788 INFO guardrails.execution request=d6d6148d-9cfb-4487-bf65-ba9a228d0514 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:42:44,789 INFO guardrails.execution request=d6d6148d-9cfb-4487-bf65-ba9a228d0514 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:42:44,792 INFO guardrails.execution request=d6d6148d-9cfb-4487-bf65-ba9a228d0514 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.788693 end=2026-09-09T10:42:44.788815 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:42:44,795 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.38ms] +2026-09-09 10:42:44,809 INFO guardrails.execution request=6a995142-5217-4cac-b9e2-b863bd3a180b starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 10:42:44,810 INFO guardrails.execution request=6a995142-5217-4cac-b9e2-b863bd3a180b guardrails execution finished (passed=True) output='this is clean' +2026-09-09 10:42:44,813 INFO guardrails.execution request=6a995142-5217-4cac-b9e2-b863bd3a180b step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.809867 end=2026-09-09T10:42:44.809930 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 10:42:44,816 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.25ms] +2026-09-09 10:42:44,834 INFO guardrails.execution request=ba22a4fc-74a2-445c-95a1-5f0a3081399f starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:42:44,836 INFO guardrails.execution request=ba22a4fc-74a2-445c-95a1-5f0a3081399f guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:42:44,839 INFO guardrails.execution request=ba22a4fc-74a2-445c-95a1-5f0a3081399f step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.835321 end=2026-09-09T10:42:44.835784 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:42:44,843 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.99ms] +2026-09-09 10:42:44,859 INFO guardrails.execution request=44891363-f4f5-4ddd-8521-59b0b456eae9 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 10:42:44,861 INFO guardrails.execution request=44891363-f4f5-4ddd-8521-59b0b456eae9 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 10:42:44,864 INFO guardrails.execution request=44891363-f4f5-4ddd-8521-59b0b456eae9 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:42:44.860540 end=2026-09-09T10:42:44.860835 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 10:42:44,868 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.97ms] +2026-09-09 10:42:44,884 INFO guardrails.execution request=35bcb571-d90d-4b58-aa02-b7fd9bc33f8a starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 10:42:44,886 INFO guardrails.execution request=35bcb571-d90d-4b58-aa02-b7fd9bc33f8a guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:42:44,889 INFO guardrails.execution request=35bcb571-d90d-4b58-aa02-b7fd9bc33f8a step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.884892 end=2026-09-09T10:42:44.885379 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 10:42:44,892 INFO guardrails.execution request=35bcb571-d90d-4b58-aa02-b7fd9bc33f8a step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.885385 end=2026-09-09T10:42:44.885464 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:42:44,897 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.93ms] +2026-09-09 10:42:44,902 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.92ms] +2026-09-09 10:42:44,918 INFO guardrails.execution request=32f4124e-bf00-4248-99a4-705073395f34 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:42:44,919 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 32f4124e-bf00-4248-99a4-705073395f34: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:42:44,922 INFO guardrails.execution request=32f4124e-bf00-4248-99a4-705073395f34 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.918947 end=2026-09-09T10:42:44.919207 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 10:42:44,926 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.42ms] +2026-09-09 10:42:44,945 INFO guardrails.execution request=5cf3d779-4115-4b2a-be03-5c71cffcec4c starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:42:44,947 INFO guardrails.execution request=5cf3d779-4115-4b2a-be03-5c71cffcec4c guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:42:44,951 INFO guardrails.execution request=5cf3d779-4115-4b2a-be03-5c71cffcec4c step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.946266 end=2026-09-09T10:42:44.946565 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:42:44,956 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.45ms] +2026-09-09 10:42:44,974 INFO guardrails.execution request=02b85d1f-d580-4e04-a474-999c1d3cdfc3 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 10:42:44,976 INFO guardrails.execution request=02b85d1f-d580-4e04-a474-999c1d3cdfc3 guardrails execution finished (passed=True) output='' +2026-09-09 10:42:44,979 INFO guardrails.execution request=02b85d1f-d580-4e04-a474-999c1d3cdfc3 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:44.974533 end=2026-09-09T10:42:44.975642 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-09 10:42:44,984 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.95ms] +2026-09-09 10:42:45,002 INFO guardrails.execution request=2bf8ff30-fce0-443c-9db5-98541ba3706b starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 10:42:45,004 INFO guardrails.execution request=2bf8ff30-fce0-443c-9db5-98541ba3706b guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 10:42:45,007 INFO guardrails.execution request=2bf8ff30-fce0-443c-9db5-98541ba3706b step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:42:45.002447 end=2026-09-09T10:42:45.003391 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 10:42:45,011 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.22ms] +2026-09-09 10:42:45,028 INFO guardrails.execution request=46a84f9b-05eb-47c8-bb00-b986dcf16b30 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 10:42:45,030 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 46a84f9b-05eb-47c8-bb00-b986dcf16b30: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 10:42:45,033 INFO guardrails.execution request=46a84f9b-05eb-47c8-bb00-b986dcf16b30 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:45.028952 end=2026-09-09T10:42:45.030016 duration_ms=1 input='What the fuck is going on?' output=None +2026-09-09 10:42:45,036 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.58ms] +2026-09-09 10:42:45,055 INFO guardrails.execution request=d7487926-46e6-4306-baf9-50d3a6e972fd starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 10:42:45,058 INFO guardrails.execution request=d7487926-46e6-4306-baf9-50d3a6e972fd guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:42:45,062 INFO guardrails.execution request=d7487926-46e6-4306-baf9-50d3a6e972fd step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:45.056243 end=2026-09-09T10:42:45.057200 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:42:45,067 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.85ms] +2026-09-09 10:42:45,077 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0eaa2062-98f2-41cf-af71-270000f8bc95: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:42:45,081 INFO http_request_logger POST /api/v1/guardrails/ - 200 [8.70ms] +2026-09-09 10:42:45,662 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:42:47,655 INFO guardrails.execution request=1a8a1336-cb0a-4fa0-8e36-f10938cd7adf starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:42:47,751 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1a8a1336-cb0a-4fa0-8e36-f10938cd7adf: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:42:47,760 INFO guardrails.execution request=1a8a1336-cb0a-4fa0-8e36-f10938cd7adf step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:47.659976 end=2026-09-09T10:42:47.751073 duration_ms=91 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:42:47,765 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2679.42ms] +2026-09-09 10:42:49,811 INFO guardrails.execution request=4fec07f6-5b49-41b8-8ef9-1d3751d5f9a3 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:42:49,826 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4fec07f6-5b49-41b8-8ef9-1d3751d5f9a3: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:42:49,833 INFO guardrails.execution request=4fec07f6-5b49-41b8-8ef9-1d3751d5f9a3 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:49.812174 end=2026-09-09T10:42:49.826531 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:42:49,836 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2063.20ms] +2026-09-09 10:42:51,900 INFO guardrails.execution request=cc8da080-ec5b-46f4-b743-99faaddfeb28 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:42:51,926 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log cc8da080-ec5b-46f4-b743-99faaddfeb28: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:42:51,935 INFO guardrails.execution request=cc8da080-ec5b-46f4-b743-99faaddfeb28 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:51.901296 end=2026-09-09T10:42:51.926425 duration_ms=25 input='Explicit sexual content goes here.' output=None +2026-09-09 10:42:51,939 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2097.40ms] +2026-09-09 10:42:51,959 INFO guardrails.execution request=782cfba3-43f2-4a5e-8d1b-f218a4cd361c starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:42:51,963 INFO guardrails.execution request=782cfba3-43f2-4a5e-8d1b-f218a4cd361c guardrails execution finished (passed=True) output='' +2026-09-09 10:42:51,967 INFO guardrails.execution request=782cfba3-43f2-4a5e-8d1b-f218a4cd361c step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:51.960314 end=2026-09-09T10:42:51.962038 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-09 10:42:51,969 INFO guardrails.execution request=782cfba3-43f2-4a5e-8d1b-f218a4cd361c step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:42:51.962055 end=2026-09-09T10:42:51.962223 duration_ms=0 input='' output='' +2026-09-09 10:42:51,973 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.56ms] +2026-09-09 10:42:51,981 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0289c0ed-9bdf-4f04-9593-5acd023b5b3e: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:42:51,983 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.23ms] +2026-09-09 10:42:54,038 INFO guardrails.execution request=fbbf1767-ea01-4c4d-ac35-6bb97aca116c starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:42:54,041 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log fbbf1767-ea01-4c4d-ac35-6bb97aca116c: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:42:54,053 INFO guardrails.execution request=fbbf1767-ea01-4c4d-ac35-6bb97aca116c step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:54.039444 end=2026-09-09T10:42:54.041731 duration_ms=2 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:42:54,057 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2068.65ms] +2026-09-09 10:42:56,144 INFO guardrails.execution request=7c8adddf-3f5a-48bb-bb7c-789d83d29438 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:42:56,146 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7c8adddf-3f5a-48bb-bb7c-789d83d29438: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:42:56,151 INFO guardrails.execution request=7c8adddf-3f5a-48bb-bb7c-789d83d29438 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:56.145480 end=2026-09-09T10:42:56.145943 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:42:56,154 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2089.43ms] +2026-09-09 10:42:56,169 INFO guardrails.execution request=3146ec2e-1292-4405-b818-027a7942b68d starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:42:56,172 INFO guardrails.execution request=3146ec2e-1292-4405-b818-027a7942b68d guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:42:56,174 INFO guardrails.execution request=3146ec2e-1292-4405-b818-027a7942b68d step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.170092 end=2026-09-09T10:42:56.171127 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:42:56,176 INFO guardrails.execution request=3146ec2e-1292-4405-b818-027a7942b68d step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.171133 end=2026-09-09T10:42:56.171221 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:42:56,179 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.83ms] +2026-09-09 10:42:56,198 INFO guardrails.execution request=845ef2d4-7da8-4866-82da-a39b125e0f30 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:42:56,200 INFO guardrails.execution request=845ef2d4-7da8-4866-82da-a39b125e0f30 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:42:56,204 INFO guardrails.execution request=845ef2d4-7da8-4866-82da-a39b125e0f30 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.198739 end=2026-09-09T10:42:56.199021 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:42:56,207 INFO guardrails.execution request=845ef2d4-7da8-4866-82da-a39b125e0f30 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.199025 end=2026-09-09T10:42:56.199950 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:42:56,209 INFO guardrails.execution request=845ef2d4-7da8-4866-82da-a39b125e0f30 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.199955 end=2026-09-09T10:42:56.200007 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:42:56,213 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.76ms] +2026-09-09 10:42:56,229 INFO guardrails.execution request=de482c1b-1328-413a-9552-795a32d95ef9 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:42:56,230 INFO guardrails.execution request=de482c1b-1328-413a-9552-795a32d95ef9 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:42:56,234 INFO guardrails.execution request=de482c1b-1328-413a-9552-795a32d95ef9 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:42:56.229718 end=2026-09-09T10:42:56.229833 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:42:56,236 INFO guardrails.execution request=de482c1b-1328-413a-9552-795a32d95ef9 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:42:56.229839 end=2026-09-09T10:42:56.230026 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:42:56,240 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.76ms] +2026-09-09 10:42:56,252 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log a3f47247-6227-427a-9367-cd61a0689bb7: 404: Ban list not found +2026-09-09 10:42:56,255 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.22ms] +2026-09-09 10:42:56,262 INFO guardrails.execution request=daacf2d2-6259-4701-ad0d-bfab7cd38c7c starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:42:56,262 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log daacf2d2-6259-4701-ad0d-bfab7cd38c7c: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:42:56,264 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.11ms] +2026-09-09 10:42:56,269 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:42:56,272 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.55ms] +2026-09-09 10:42:56,282 INFO app.crud.llm_prompt_config created llm prompt config id=e36cd9a0-023c-4fa7-a4d1-dce3f390c6a0 org=1 project=1 +2026-09-09 10:42:56,285 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [10.13ms] +2026-09-09 10:42:56,295 INFO app.crud.llm_prompt_config created llm prompt config id=90885e94-8dcd-4665-8623-4bec8f530f7d org=1 project=1 +2026-09-09 10:42:56,296 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.74ms] +2026-09-09 10:42:56,303 INFO app.crud.llm_prompt_config created llm prompt config id=8218f9a5-00f2-4afe-aea1-774b67b13d30 org=1 project=1 +2026-09-09 10:42:56,303 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.68ms] +2026-09-09 10:42:56,309 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.67ms] +2026-09-09 10:42:56,315 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.92ms] +2026-09-09 10:42:56,320 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.88ms] +2026-09-09 10:42:56,324 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.85ms] +2026-09-09 10:42:56,331 INFO app.crud.llm_prompt_config created llm prompt config id=1d43fd9f-5818-4508-b85b-7999a713fa6a org=1 project=1 +2026-09-09 10:42:56,332 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.69ms] +2026-09-09 10:42:56,337 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.94ms] +2026-09-09 10:42:56,341 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.91ms] +2026-09-09 10:42:56,348 INFO app.crud.llm_prompt_config created llm prompt config id=7a16aa8c-d255-41f3-a4e8-a803dade8f42 org=1 project=1 +2026-09-09 10:42:56,349 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.96ms] +2026-09-09 10:42:56,351 INFO app.crud.llm_prompt_config created llm prompt config id=58173251-8f43-4155-a0ea-96cf2394a86f org=1 project=1 +2026-09-09 10:42:56,352 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.71ms] +2026-09-09 10:42:56,354 INFO app.crud.llm_prompt_config created llm prompt config id=876f9a30-aa41-44bf-b92c-b13c56d6b129 org=1 project=1 +2026-09-09 10:42:56,355 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.49ms] +2026-09-09 10:42:56,357 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.12ms] +2026-09-09 10:42:56,364 INFO app.crud.llm_prompt_config created llm prompt config id=44f439e8-54d9-4304-aa43-6627881096d7 org=1 project=1 +2026-09-09 10:42:56,364 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.57ms] +2026-09-09 10:42:56,366 INFO app.crud.llm_prompt_config created llm prompt config id=fe9d9dc8-339f-4cb6-ac93-ca24f7cd7b7e org=1 project=1 +2026-09-09 10:42:56,367 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.21ms] +2026-09-09 10:42:56,369 INFO app.crud.llm_prompt_config created llm prompt config id=a6108b3e-216e-47b5-be18-340c6d377969 org=1 project=1 +2026-09-09 10:42:56,369 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.31ms] +2026-09-09 10:42:56,372 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.96ms] +2026-09-09 10:42:56,377 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.44ms] +2026-09-09 10:42:56,384 INFO app.crud.llm_prompt_config created llm prompt config id=9d9baff6-838c-487e-9d9a-a4d86c0b2e9c org=1 project=1 +2026-09-09 10:42:56,384 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.61ms] +2026-09-09 10:42:56,386 INFO app.crud.llm_prompt_config created llm prompt config id=6d119d41-4e13-4168-af01-080669f6282d org=1 project=1 +2026-09-09 10:42:56,387 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.45ms] +2026-09-09 10:42:56,389 INFO app.crud.llm_prompt_config created llm prompt config id=247fb1ee-fe67-4316-ac10-63ae1356b7da org=1 project=1 +2026-09-09 10:42:56,390 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.83ms] +2026-09-09 10:42:56,392 INFO app.crud.llm_prompt_config created llm prompt config id=dad0dc29-00a4-4ea0-970c-73ad57d692f9 org=1 project=1 +2026-09-09 10:42:56,393 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.37ms] +2026-09-09 10:42:56,397 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.79ms] +2026-09-09 10:42:56,402 INFO app.crud.llm_prompt_config created llm prompt config id=0257cc25-54f4-42a9-b28a-6c68b4029ff7 org=1 project=1 +2026-09-09 10:42:56,403 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.64ms] +2026-09-09 10:42:56,405 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.39ms] +2026-09-09 10:42:56,410 INFO app.crud.llm_prompt_config created llm prompt config id=1247e97a-b668-4bbc-8e52-a274d0dc4de0 org=1 project=1 +2026-09-09 10:42:56,410 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-09 10:42:56,413 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/1247e97a-b668-4bbc-8e52-a274d0dc4de0 - 200 [2.78ms] +2026-09-09 10:42:56,419 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/21e4765d-f41f-48c4-a841-0d3292922fda - 404 [1.50ms] +2026-09-09 10:42:56,425 INFO app.crud.llm_prompt_config created llm prompt config id=ea2848d5-83fe-493e-a99b-0993b2479f64 org=1 project=1 +2026-09-09 10:42:56,425 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.87ms] +2026-09-09 10:42:56,427 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ea2848d5-83fe-493e-a99b-0993b2479f64 - 404 [1.25ms] +2026-09-09 10:42:56,434 INFO app.crud.llm_prompt_config created llm prompt config id=bfb9df9d-e2c5-4ce2-94e8-be75a21fa4ca org=1 project=1 +2026-09-09 10:42:56,435 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.10ms] +2026-09-09 10:42:56,438 INFO app.crud.llm_prompt_config updated llm prompt config id=bfb9df9d-e2c5-4ce2-94e8-be75a21fa4ca +2026-09-09 10:42:56,439 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/bfb9df9d-e2c5-4ce2-94e8-be75a21fa4ca - 200 [3.63ms] +2026-09-09 10:42:56,444 INFO app.crud.llm_prompt_config created llm prompt config id=42b212d0-f637-4cd3-93a3-e895e6f6c6a5 org=1 project=1 +2026-09-09 10:42:56,445 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.67ms] +2026-09-09 10:42:56,449 INFO app.crud.llm_prompt_config updated llm prompt config id=42b212d0-f637-4cd3-93a3-e895e6f6c6a5 +2026-09-09 10:42:56,450 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/42b212d0-f637-4cd3-93a3-e895e6f6c6a5 - 200 [4.43ms] +2026-09-09 10:42:56,458 INFO app.crud.llm_prompt_config created llm prompt config id=59aa5f71-8a28-4e0b-a1f4-a50f841cd25c org=1 project=1 +2026-09-09 10:42:56,458 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.16ms] +2026-09-09 10:42:56,461 INFO app.crud.llm_prompt_config updated llm prompt config id=59aa5f71-8a28-4e0b-a1f4-a50f841cd25c +2026-09-09 10:42:56,461 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/59aa5f71-8a28-4e0b-a1f4-a50f841cd25c - 200 [2.78ms] +2026-09-09 10:42:56,463 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/59aa5f71-8a28-4e0b-a1f4-a50f841cd25c - 200 [1.48ms] +2026-09-09 10:42:56,469 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/81442c95-fd32-4a3e-ab1c-1309f95838d9 - 404 [2.68ms] +2026-09-09 10:42:56,477 INFO app.crud.llm_prompt_config created llm prompt config id=7080c87e-f984-4a48-befa-e8c18d8a3051 org=1 project=1 +2026-09-09 10:42:56,478 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.41ms] +2026-09-09 10:42:56,480 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/7080c87e-f984-4a48-befa-e8c18d8a3051 - 404 [2.10ms] +2026-09-09 10:42:56,486 INFO app.crud.llm_prompt_config created llm prompt config id=30db8781-7101-4637-a340-fbb143663f45 org=1 project=1 +2026-09-09 10:42:56,487 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.54ms] +2026-09-09 10:42:56,488 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/30db8781-7101-4637-a340-fbb143663f45 - 422 [1.39ms] +2026-09-09 10:42:56,496 INFO app.crud.llm_prompt_config created llm prompt config id=24399cdb-c793-4a89-9fa4-9768c803bb07 org=1 project=1 +2026-09-09 10:42:56,496 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.65ms] +2026-09-09 10:42:56,498 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/24399cdb-c793-4a89-9fa4-9768c803bb07 - 422 [1.44ms] +2026-09-09 10:42:56,503 INFO app.crud.llm_prompt_config created llm prompt config id=ddbb0fd4-6057-4d6a-a0ef-d7da299bc658 org=1 project=1 +2026-09-09 10:42:56,504 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.02ms] +2026-09-09 10:42:56,509 INFO app.crud.llm_prompt_config updated llm prompt config id=ddbb0fd4-6057-4d6a-a0ef-d7da299bc658 +2026-09-09 10:42:56,510 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/ddbb0fd4-6057-4d6a-a0ef-d7da299bc658 - 200 [5.42ms] +2026-09-09 10:42:56,517 INFO app.crud.llm_prompt_config created llm prompt config id=22847cce-5b67-405d-93d7-964c9bb17e2a org=1 project=1 +2026-09-09 10:42:56,517 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.66ms] +2026-09-09 10:42:56,520 INFO app.crud.llm_prompt_config updated llm prompt config id=22847cce-5b67-405d-93d7-964c9bb17e2a +2026-09-09 10:42:56,520 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/22847cce-5b67-405d-93d7-964c9bb17e2a - 200 [2.67ms] +2026-09-09 10:42:56,527 INFO app.crud.llm_prompt_config created llm prompt config id=ae5cc33e-9676-47fe-9ddd-e40bd71b5fa0 org=1 project=1 +2026-09-09 10:42:56,528 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.14ms] +2026-09-09 10:42:56,532 INFO app.crud.llm_prompt_config deleted llm prompt config id=ae5cc33e-9676-47fe-9ddd-e40bd71b5fa0 +2026-09-09 10:42:56,532 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/ae5cc33e-9676-47fe-9ddd-e40bd71b5fa0 - 200 [4.12ms] +2026-09-09 10:42:56,540 INFO app.crud.llm_prompt_config created llm prompt config id=0690a418-11f2-418e-8aa1-4bd39a785762 org=1 project=1 +2026-09-09 10:42:56,540 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.56ms] +2026-09-09 10:42:56,542 INFO app.crud.llm_prompt_config deleted llm prompt config id=0690a418-11f2-418e-8aa1-4bd39a785762 +2026-09-09 10:42:56,542 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/0690a418-11f2-418e-8aa1-4bd39a785762 - 200 [1.71ms] +2026-09-09 10:42:56,544 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.27ms] +2026-09-09 10:42:56,548 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/2980f1f2-3774-435b-a6b1-4b3962a95abb - 404 [1.55ms] +2026-09-09 10:42:56,555 INFO app.crud.llm_prompt_config created llm prompt config id=518f9175-d968-41ac-8b70-82317d0594fb org=1 project=1 +2026-09-09 10:42:56,556 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.76ms] +2026-09-09 10:42:56,557 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/518f9175-d968-41ac-8b70-82317d0594fb - 404 [1.35ms] +2026-09-09 10:42:56,655 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='hello' +2026-09-09 10:42:56,655 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:42:56,657 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:42:56,657 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,659 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 29ad6a1a-2ee6-40f5-b188-5386df16221e: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 10:42:56,662 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:42:56,662 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,666 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:42:56,666 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,695 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 10:42:56,695 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,698 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='some input text' +2026-09-09 10:42:56,698 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,700 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 10:42:56,700 INFO guardrails.execution request=29ad6a1a-2ee6-40f5-b188-5386df16221e guardrails execution finished (passed=False) output=None +2026-09-09 10:42:56,702 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 29ad6a1a-2ee6-40f5-b188-5386df16221e: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 10:42:56,705 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 29ad6a1a-2ee6-40f5-b188-5386df16221e: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 10:42:56,718 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:42:56,720 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:42:56,723 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:42:56,734 INFO app.crud.validator_config created validator config id=ad617876-00c4-42bf-b51c-b56d1dc9f459 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:42:56,735 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.97ms] +2026-09-09 10:42:56,741 INFO app.crud.validator_config created validator config id=179035c4-0856-4326-8f86-961c5850c025 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:42:56,742 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.49ms] +2026-09-09 10:42:56,744 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 10:42:56,744 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.92ms] +2026-09-09 10:42:56,748 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.85ms] +2026-09-09 10:42:56,753 INFO app.crud.validator_config created validator config id=6768dea1-39ce-42f8-8826-47a166950f30 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:42:56,754 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.57ms] +2026-09-09 10:42:56,756 INFO app.crud.validator_config created validator config id=ba31ee51-2ebb-4f9a-bf46-ca4ef10f19ce org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:42:56,756 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.40ms] +2026-09-09 10:42:56,759 INFO app.crud.validator_config created validator config id=3dfe4895-7a81-4f94-8f64-fa5dda2a38c9 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:42:56,759 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.22ms] +2026-09-09 10:42:56,761 INFO app.crud.validator_config created validator config id=3bf28008-3362-4bb3-82f4-800ae1623836 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:42:56,761 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.20ms] +2026-09-09 10:42:56,764 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.93ms] +2026-09-09 10:42:56,764 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6768dea1-39ce-42f8-8826-47a166950f30/ - 307 [0.09ms] +2026-09-09 10:42:56,766 INFO http_request_logger GET /api/v1/guardrails/validators/configs/6768dea1-39ce-42f8-8826-47a166950f30 - 200 [1.67ms] +2026-09-09 10:42:56,767 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ba31ee51-2ebb-4f9a-bf46-ca4ef10f19ce/ - 307 [0.09ms] +2026-09-09 10:42:56,768 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ba31ee51-2ebb-4f9a-bf46-ca4ef10f19ce - 200 [1.33ms] +2026-09-09 10:42:56,769 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3dfe4895-7a81-4f94-8f64-fa5dda2a38c9/ - 307 [0.08ms] +2026-09-09 10:42:56,770 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3dfe4895-7a81-4f94-8f64-fa5dda2a38c9 - 200 [1.35ms] +2026-09-09 10:42:56,771 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3bf28008-3362-4bb3-82f4-800ae1623836/ - 307 [0.08ms] +2026-09-09 10:42:56,772 INFO http_request_logger GET /api/v1/guardrails/validators/configs/3bf28008-3362-4bb3-82f4-800ae1623836 - 200 [1.31ms] +2026-09-09 10:42:56,778 INFO app.crud.validator_config created validator config id=c7c32570-90d3-470b-9b00-30a7c7e3ee93 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:42:56,778 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.76ms] +2026-09-09 10:42:56,780 INFO app.crud.validator_config created validator config id=0584ebb4-6ed7-40be-a136-5ecbf86e22f2 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:42:56,781 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.32ms] +2026-09-09 10:42:56,784 INFO app.crud.validator_config created validator config id=109c7280-ab47-492d-a2fb-16f2fb567ced org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:42:56,785 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.31ms] +2026-09-09 10:42:56,785 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c7c32570-90d3-470b-9b00-30a7c7e3ee93/ - 307 [0.10ms] +2026-09-09 10:42:56,790 INFO app.crud.validator_config updated validator config id=c7c32570-90d3-470b-9b00-30a7c7e3ee93 +2026-09-09 10:42:56,791 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c7c32570-90d3-470b-9b00-30a7c7e3ee93 - 200 [5.03ms] +2026-09-09 10:42:56,791 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0584ebb4-6ed7-40be-a136-5ecbf86e22f2/ - 307 [0.10ms] +2026-09-09 10:42:56,794 INFO app.crud.validator_config updated validator config id=0584ebb4-6ed7-40be-a136-5ecbf86e22f2 +2026-09-09 10:42:56,795 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0584ebb4-6ed7-40be-a136-5ecbf86e22f2 - 200 [3.17ms] +2026-09-09 10:42:56,795 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/109c7280-ab47-492d-a2fb-16f2fb567ced/ - 307 [0.10ms] +2026-09-09 10:42:56,798 INFO app.crud.validator_config updated validator config id=109c7280-ab47-492d-a2fb-16f2fb567ced +2026-09-09 10:42:56,798 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/109c7280-ab47-492d-a2fb-16f2fb567ced - 200 [2.88ms] +2026-09-09 10:42:56,800 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.67ms] +2026-09-09 10:42:56,809 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.82ms] +2026-09-09 10:42:56,817 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.99ms] +2026-09-09 10:42:56,823 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.78ms] +2026-09-09 10:42:56,828 INFO app.crud.validator_config created validator config id=ec3d43f0-a63c-4b67-9925-f43c38247d72 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:42:56,829 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.57ms] +2026-09-09 10:42:56,831 INFO app.crud.validator_config created validator config id=382a5cdd-dac1-465b-8463-b8c360ad5747 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:42:56,831 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.24ms] +2026-09-09 10:42:56,834 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.72ms] +2026-09-09 10:42:56,839 INFO app.crud.validator_config created validator config id=e2770b93-c7f1-4395-8534-37c0843d3574 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:42:56,839 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.78ms] +2026-09-09 10:42:56,841 INFO app.crud.validator_config created validator config id=484840e7-e1ea-451b-9316-833a02340c71 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:42:56,842 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.23ms] +2026-09-09 10:42:56,844 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.48ms] +2026-09-09 10:42:56,847 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.77ms] +2026-09-09 10:42:56,853 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.95ms] +2026-09-09 10:42:56,861 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.05ms] +2026-09-09 10:42:56,862 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ebdd720c-fadd-402f-adc3-48d4c372ca0e/ - 307 [0.13ms] +2026-09-09 10:42:56,864 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ebdd720c-fadd-402f-adc3-48d4c372ca0e - 200 [1.81ms] +2026-09-09 10:42:56,868 INFO http_request_logger GET /api/v1/guardrails/validators/configs/558b984c-a37c-4040-83ff-0bf49cdb88b7/ - 307 [0.10ms] +2026-09-09 10:42:56,869 INFO http_request_logger GET /api/v1/guardrails/validators/configs/558b984c-a37c-4040-83ff-0bf49cdb88b7 - 404 [1.56ms] +2026-09-09 10:42:56,872 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.08ms] +2026-09-09 10:42:56,873 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.68ms] +2026-09-09 10:42:56,879 INFO app.crud.validator_config created validator config id=392dd2dd-da54-4766-bbc6-59422eb7097c org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:42:56,879 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.15ms] +2026-09-09 10:42:56,880 INFO http_request_logger GET /api/v1/guardrails/validators/configs/392dd2dd-da54-4766-bbc6-59422eb7097c/ - 307 [0.10ms] +2026-09-09 10:42:56,882 INFO http_request_logger GET /api/v1/guardrails/validators/configs/392dd2dd-da54-4766-bbc6-59422eb7097c - 404 [1.69ms] +2026-09-09 10:42:56,891 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.16ms] +2026-09-09 10:42:56,891 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b86d9140-2488-40a5-8a1f-763d01f5d6c1/ - 307 [0.10ms] +2026-09-09 10:42:56,894 INFO app.crud.validator_config updated validator config id=b86d9140-2488-40a5-8a1f-763d01f5d6c1 +2026-09-09 10:42:56,895 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/b86d9140-2488-40a5-8a1f-763d01f5d6c1 - 200 [3.34ms] +2026-09-09 10:42:56,906 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.30ms] +2026-09-09 10:42:56,907 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/4875ef44-5934-4c29-b94e-0ecea54bec9d/ - 307 [0.13ms] +2026-09-09 10:42:56,912 INFO app.crud.validator_config updated validator config id=4875ef44-5934-4c29-b94e-0ecea54bec9d +2026-09-09 10:42:56,913 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/4875ef44-5934-4c29-b94e-0ecea54bec9d - 200 [5.10ms] +2026-09-09 10:42:56,917 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/10334103-6360-4476-a874-f688d3bed965/ - 307 [0.10ms] +2026-09-09 10:42:56,921 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/10334103-6360-4476-a874-f688d3bed965 - 404 [2.73ms] +2026-09-09 10:42:56,930 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.29ms] +2026-09-09 10:42:56,930 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/a2bc9be3-1e87-4dfe-be6a-a6d6889a7a51/ - 307 [0.10ms] +2026-09-09 10:42:56,934 INFO app.crud.validator_config deleted validator config id=a2bc9be3-1e87-4dfe-be6a-a6d6889a7a51 +2026-09-09 10:42:56,934 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/a2bc9be3-1e87-4dfe-be6a-a6d6889a7a51 - 200 [3.22ms] +2026-09-09 10:42:56,934 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a2bc9be3-1e87-4dfe-be6a-a6d6889a7a51/ - 307 [0.09ms] +2026-09-09 10:42:56,937 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a2bc9be3-1e87-4dfe-be6a-a6d6889a7a51 - 404 [2.23ms] +2026-09-09 10:42:56,942 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1783dbca-9e76-4217-a7c0-081f687c8215/ - 307 [0.28ms] +2026-09-09 10:42:56,945 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1783dbca-9e76-4217-a7c0-081f687c8215 - 404 [2.56ms] +2026-09-09 10:42:56,956 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.41ms] +2026-09-09 10:42:56,956 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/9773cee2-9c49-44a7-bb4a-7e689f4fac3a/ - 307 [0.10ms] +2026-09-09 10:42:56,958 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/9773cee2-9c49-44a7-bb4a-7e689f4fac3a - 404 [1.82ms] +2026-09-09 10:42:56,959 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9773cee2-9c49-44a7-bb4a-7e689f4fac3a/ - 307 [0.09ms] +2026-09-09 10:42:56,962 INFO http_request_logger GET /api/v1/guardrails/validators/configs/9773cee2-9c49-44a7-bb4a-7e689f4fac3a - 200 [2.74ms] +2026-09-09 10:42:57,108 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:42:57,108 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:42:57,181 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:42:58,977 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:42:58,986 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:00,529 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:00,541 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:01,664 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:01,676 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:02,665 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:02,676 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:03,643 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:03,653 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:04,792 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:04,794 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:43:05,792 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:43:05,970 INFO watchfiles.main 3 changes detected +2026-09-09 10:43:25,006 INFO watchfiles.main 3 changes detected +2026-09-09 10:43:25,008 WARNING uvicorn.error WatchFiles detected changes in 'app/tests/test_guardrails_api_integration.py'. Reloading... +2026-09-09 10:43:25,017 INFO uvicorn.error Shutting down +2026-09-09 10:43:25,121 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:43:25,123 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:43:25,124 INFO uvicorn.error Finished server process [48587] +2026-09-09 10:43:25,521 INFO watchfiles.main 1 change detected +2026-09-09 10:43:30,518 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:43:31,373 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:43:31,373 INFO uvicorn.error Started server process [48683] +2026-09-09 10:43:31,374 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:43:31,374 INFO uvicorn.error Application startup complete. +2026-09-09 10:43:35,471 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:43:36,151 INFO guardrails.execution request=909d9a2e-e973-42f4-bfe7-a170f18e645a starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:43:36,152 INFO guardrails.execution request=909d9a2e-e973-42f4-bfe7-a170f18e645a guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:43:36,155 INFO guardrails.execution request=909d9a2e-e973-42f4-bfe7-a170f18e645a step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T10:43:36.151750 end=2026-09-09T10:43:36.151891 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:43:36,159 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.26ms] +2026-09-09 10:43:36,431 INFO watchfiles.main 6 changes detected +2026-09-09 10:43:42,994 INFO watchfiles.main 2 changes detected +2026-09-09 10:43:42,995 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:43:43,085 INFO uvicorn.error Shutting down +2026-09-09 10:43:43,187 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:43:43,187 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:43:43,188 INFO uvicorn.error Finished server process [48683] +2026-09-09 10:43:43,566 INFO watchfiles.main 1 change detected +2026-09-09 10:43:47,946 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:43:47,946 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:43:48,500 INFO watchfiles.main 3 changes detected +2026-09-09 10:43:48,668 INFO guardrails.execution request=e238b16d-3ddf-48f5-8e8e-723bc9f1130a starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:43:48,670 INFO guardrails.execution request=e238b16d-3ddf-48f5-8e8e-723bc9f1130a guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:43:48,673 INFO guardrails.execution request=e238b16d-3ddf-48f5-8e8e-723bc9f1130a step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T10:43:48.669051 end=2026-09-09T10:43:48.669196 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:43:48,677 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.70ms] +2026-09-09 10:43:48,788 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:43:48,789 INFO uvicorn.error Started server process [48725] +2026-09-09 10:43:48,790 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:43:48,790 INFO uvicorn.error Application startup complete. +2026-09-09 10:43:48,866 INFO watchfiles.main 3 changes detected +2026-09-09 10:43:49,558 INFO watchfiles.main 2 changes detected +2026-09-09 10:43:49,558 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 10:43:49,597 INFO uvicorn.error Shutting down +2026-09-09 10:43:49,699 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 10:43:49,700 INFO uvicorn.error Application shutdown complete. +2026-09-09 10:43:49,700 INFO uvicorn.error Finished server process [48725] +2026-09-09 10:43:50,079 INFO watchfiles.main 1 change detected +2026-09-09 10:43:53,753 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:43:54,199 INFO watchfiles.main 3 changes detected +2026-09-09 10:43:54,507 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 10:43:54,507 INFO uvicorn.error Started server process [48744] +2026-09-09 10:43:54,508 INFO uvicorn.error Waiting for application startup. +2026-09-09 10:43:54,509 INFO uvicorn.error Application startup complete. +2026-09-09 10:44:08,265 INFO presidio-analyzer Using device of type: cpu +2026-09-09 10:44:09,021 INFO guardrails.execution request=fc3f6e69-9858-474e-8890-baf75e34fe4c starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,025 INFO guardrails.execution request=fc3f6e69-9858-474e-8890-baf75e34fe4c guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,032 INFO guardrails.execution request=fc3f6e69-9858-474e-8890-baf75e34fe4c step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.023701 end=2026-09-09T10:44:09.023835 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,042 INFO http_request_logger POST /api/v1/guardrails/ - 200 [62.37ms] +2026-09-09 10:44:09,076 INFO guardrails.execution request=6be9c16c-81b7-476d-97e9-f0998a739486 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:44:09,077 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6be9c16c-81b7-476d-97e9-f0998a739486: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:44:09,089 INFO guardrails.execution request=6be9c16c-81b7-476d-97e9-f0998a739486 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:44:09.077081 end=2026-09-09T10:44:09.077174 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:44:09,093 INFO http_request_logger POST /api/v1/guardrails/ - 200 [42.30ms] +2026-09-09 10:44:09,111 INFO guardrails.execution request=22e1b4e8-8620-4bb3-b2dc-15e8feb5e9b9 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='What are the common symptoms of diabetes?' +2026-09-09 10:44:09,111 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 22e1b4e8-8620-4bb3-b2dc-15e8feb5e9b9: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 10:44:09,116 INFO guardrails.execution request=22e1b4e8-8620-4bb3-b2dc-15e8feb5e9b9 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:44:09.111632 end=2026-09-09T10:44:09.111695 duration_ms=0 input='What are the common symptoms of diabetes?' output=None +2026-09-09 10:44:09,118 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.58ms] +2026-09-09 10:44:09,132 INFO guardrails.execution request=d15052a5-a8f7-4aa9-9c15-0c3cc5896093 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,134 INFO guardrails.execution request=d15052a5-a8f7-4aa9-9c15-0c3cc5896093 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,135 INFO guardrails.execution request=d15052a5-a8f7-4aa9-9c15-0c3cc5896093 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.133322 end=2026-09-09T10:44:09.133391 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,138 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.20ms] +2026-09-09 10:44:09,152 INFO guardrails.execution request=7228669b-50b6-44bc-a553-ef19df763b28 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 10:44:09,152 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7228669b-50b6-44bc-a553-ef19df763b28: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 10:44:09,155 INFO guardrails.execution request=7228669b-50b6-44bc-a553-ef19df763b28 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T10:44:09.152707 end=2026-09-09T10:44:09.152779 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 10:44:09,158 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.90ms] +2026-09-09 10:44:09,175 INFO guardrails.execution request=9e991cba-6c20-47d4-905d-e0bcd0fbf874 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:44:09,176 INFO guardrails.execution request=9e991cba-6c20-47d4-905d-e0bcd0fbf874 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:44:09,178 INFO guardrails.execution request=9e991cba-6c20-47d4-905d-e0bcd0fbf874 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.175802 end=2026-09-09T10:44:09.175871 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 10:44:09,180 INFO guardrails.execution request=9e991cba-6c20-47d4-905d-e0bcd0fbf874 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.175876 end=2026-09-09T10:44:09.175973 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 10:44:09,182 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.65ms] +2026-09-09 10:44:09,195 INFO guardrails.execution request=f4bcbeb4-20c5-4696-bd81-d454bb5a3c31 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:44:09,198 INFO guardrails.execution request=f4bcbeb4-20c5-4696-bd81-d454bb5a3c31 guardrails execution finished (passed=True) output='' +2026-09-09 10:44:09,200 INFO guardrails.execution request=f4bcbeb4-20c5-4696-bd81-d454bb5a3c31 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.196177 end=2026-09-09T10:44:09.196249 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 10:44:09,201 INFO guardrails.execution request=f4bcbeb4-20c5-4696-bd81-d454bb5a3c31 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.196253 end=2026-09-09T10:44:09.197649 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 10:44:09,204 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.44ms] +2026-09-09 10:44:09,223 INFO guardrails.execution request=414ec446-1a20-487f-84c2-e2a14623fb8b starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:44:09,227 INFO guardrails.execution request=414ec446-1a20-487f-84c2-e2a14623fb8b guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:44:09,229 INFO guardrails.execution request=414ec446-1a20-487f-84c2-e2a14623fb8b step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.224563 end=2026-09-09T10:44:09.224637 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 10:44:09,231 INFO guardrails.execution request=414ec446-1a20-487f-84c2-e2a14623fb8b step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.224641 end=2026-09-09T10:44:09.226978 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 10:44:09,233 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.19ms] +2026-09-09 10:44:09,247 INFO guardrails.execution request=d24fd98d-12dd-4233-be29-58acebe9b557 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:44:09,248 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d24fd98d-12dd-4233-be29-58acebe9b557: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 10:44:09,250 INFO guardrails.execution request=d24fd98d-12dd-4233-be29-58acebe9b557 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.247509 end=2026-09-09T10:44:09.247574 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 10:44:09,252 INFO guardrails.execution request=d24fd98d-12dd-4233-be29-58acebe9b557 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.247578 end=2026-09-09T10:44:09.248541 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 10:44:09,253 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.97ms] +2026-09-09 10:44:09,277 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,285 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,290 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.279143 end=2026-09-09T10:44:09.279284 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,292 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.279291 end=2026-09-09T10:44:09.279404 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,293 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.279413 end=2026-09-09T10:44:09.280496 duration_ms=1 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,295 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.280505 end=2026-09-09T10:44:09.281118 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,296 INFO guardrails.execution request=f6369292-704d-4226-bef4-94559ca6036a step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.281124 end=2026-09-09T10:44:09.283117 duration_ms=1 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 10:44:09,299 INFO http_request_logger POST /api/v1/guardrails/ - 200 [41.89ms] +2026-09-09 10:44:09,319 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:44:09,322 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:44:09,324 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T10:44:09.319645 end=2026-09-09T10:44:09.319712 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:44:09,326 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.319716 end=2026-09-09T10:44:09.320615 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 10:44:09,327 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.320620 end=2026-09-09T10:44:09.321118 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:44:09,328 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.321123 end=2026-09-09T10:44:09.321181 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 10:44:09,329 INFO guardrails.execution request=1ea0f443-3200-439f-bb55-b4246d2a652d step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.321184 end=2026-09-09T10:44:09.321809 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 10:44:09,332 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.72ms] +2026-09-09 10:44:09,354 INFO app.crud.ban_list created ban list id=adbb936b-f6ce-48ef-a37d-5b8c5d30cef8 org=1 project=1 +2026-09-09 10:44:09,354 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.74ms] +2026-09-09 10:44:09,358 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.85ms] +2026-09-09 10:44:09,362 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.72ms] +2026-09-09 10:44:09,365 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.79ms] +2026-09-09 10:44:09,370 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.68ms] +2026-09-09 10:44:09,374 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.73ms] +2026-09-09 10:44:09,383 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.85ms] +2026-09-09 10:44:09,393 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.71ms] +2026-09-09 10:44:09,398 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.63ms] +2026-09-09 10:44:09,404 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.94ms] +2026-09-09 10:44:09,411 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.66ms] +2026-09-09 10:44:09,413 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.74ms] +2026-09-09 10:44:09,419 INFO app.crud.ban_list created ban list id=f6ef42c9-240b-4166-a0f2-88902ada53cd org=1 project=1 +2026-09-09 10:44:09,419 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.59ms] +2026-09-09 10:44:09,420 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f6ef42c9-240b-4166-a0f2-88902ada53cd/ - 307 [0.10ms] +2026-09-09 10:44:09,422 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f6ef42c9-240b-4166-a0f2-88902ada53cd - 200 [1.58ms] +2026-09-09 10:44:09,428 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.56ms] +2026-09-09 10:44:09,428 INFO http_request_logger GET /api/v1/guardrails/ban_lists/b631613d-ce20-40bd-937b-ae38b1f44eef/ - 307 [0.08ms] +2026-09-09 10:44:09,430 INFO http_request_logger GET /api/v1/guardrails/ban_lists/b631613d-ce20-40bd-937b-ae38b1f44eef - 200 [1.29ms] +2026-09-09 10:44:09,433 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e2237745-e705-469f-8a60-89ad7f95c26b/ - 307 [0.10ms] +2026-09-09 10:44:09,435 INFO http_request_logger GET /api/v1/guardrails/ban_lists/e2237745-e705-469f-8a60-89ad7f95c26b - 404 [1.52ms] +2026-09-09 10:44:09,442 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.81ms] +2026-09-09 10:44:09,442 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ea777f00-32de-49fc-9a7e-9f44f438a725/ - 307 [0.08ms] +2026-09-09 10:44:09,444 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ea777f00-32de-49fc-9a7e-9f44f438a725 - 403 [1.24ms] +2026-09-09 10:44:09,450 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.74ms] +2026-09-09 10:44:09,450 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/8b642836-c93f-49b1-9b8c-22c9834254d2/ - 307 [0.08ms] +2026-09-09 10:44:09,454 INFO app.crud.ban_list updated ban list id=8b642836-c93f-49b1-9b8c-22c9834254d2 +2026-09-09 10:44:09,454 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/8b642836-c93f-49b1-9b8c-22c9834254d2 - 200 [3.53ms] +2026-09-09 10:44:09,460 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.62ms] +2026-09-09 10:44:09,462 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/04b64901-39c3-4e53-beb9-08c30f4bf011/ - 307 [0.09ms] +2026-09-09 10:44:09,464 INFO app.crud.ban_list updated ban list id=04b64901-39c3-4e53-beb9-08c30f4bf011 +2026-09-09 10:44:09,465 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/04b64901-39c3-4e53-beb9-08c30f4bf011 - 200 [3.21ms] +2026-09-09 10:44:09,469 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/dbf72c70-aba4-481f-938e-eca257b0ad0c/ - 307 [0.10ms] +2026-09-09 10:44:09,471 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/dbf72c70-aba4-481f-938e-eca257b0ad0c - 404 [2.04ms] +2026-09-09 10:44:09,476 INFO app.crud.ban_list created ban list id=a4b7a316-3a89-42a4-9425-11db182c22e9 org=1 project=1 +2026-09-09 10:44:09,477 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.67ms] +2026-09-09 10:44:09,477 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a4b7a316-3a89-42a4-9425-11db182c22e9/ - 307 [0.09ms] +2026-09-09 10:44:09,479 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/a4b7a316-3a89-42a4-9425-11db182c22e9 - 403 [1.31ms] +2026-09-09 10:44:09,485 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.62ms] +2026-09-09 10:44:09,486 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/268bf11f-1751-4282-88a8-a23941465b28/ - 307 [0.09ms] +2026-09-09 10:44:09,488 INFO app.crud.ban_list deleted ban list id=268bf11f-1751-4282-88a8-a23941465b28 +2026-09-09 10:44:09,488 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/268bf11f-1751-4282-88a8-a23941465b28 - 200 [1.84ms] +2026-09-09 10:44:09,491 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/5fd41ff1-009d-4ff4-a762-0fdeeb906a56/ - 307 [0.09ms] +2026-09-09 10:44:09,493 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/5fd41ff1-009d-4ff4-a762-0fdeeb906a56 - 404 [1.45ms] +2026-09-09 10:44:09,499 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.76ms] +2026-09-09 10:44:09,499 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b37bc83f-1726-46c9-a880-680467c87d2d/ - 307 [0.08ms] +2026-09-09 10:44:09,501 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b37bc83f-1726-46c9-a880-680467c87d2d - 403 [1.25ms] +2026-09-09 10:44:09,506 INFO app.crud.ban_list created ban list id=8c9d9151-c90e-4a24-b523-a23d8d3298fa org=1 project=1 +2026-09-09 10:44:09,506 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.51ms] +2026-09-09 10:44:09,507 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8c9d9151-c90e-4a24-b523-a23d8d3298fa/ - 307 [0.09ms] +2026-09-09 10:44:09,508 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/8c9d9151-c90e-4a24-b523-a23d8d3298fa - 403 [1.13ms] +2026-09-09 10:44:09,590 INFO guardrails.execution request=7715c9e2-b3a8-4678-84e4-42c973e06a79 starting guardrails execution (validators=[]) input='hello world' +2026-09-09 10:44:09,590 INFO guardrails.execution request=7715c9e2-b3a8-4678-84e4-42c973e06a79 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:44:09,592 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.76ms] +2026-09-09 10:44:09,598 INFO guardrails.execution request=5f62ae6c-8400-439c-913b-3b57bff8ef15 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 10:44:09,598 INFO guardrails.execution request=5f62ae6c-8400-439c-913b-3b57bff8ef15 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:09,601 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.06ms] +2026-09-09 10:44:09,608 INFO guardrails.execution request=feb74ed9-c54e-4728-b765-5b3b5c1b7f65 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 10:44:09,608 INFO guardrails.execution request=feb74ed9-c54e-4728-b765-5b3b5c1b7f65 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 10:44:09,609 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.79ms] +2026-09-09 10:44:09,614 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f1b30739-cb0a-441c-ab8a-d57821051aad: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 10:44:09,617 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.68ms] +2026-09-09 10:44:09,629 INFO guardrails.execution request=79ffcbfd-8101-4676-a270-616c786e3ded starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:44:09,630 INFO guardrails.execution request=79ffcbfd-8101-4676-a270-616c786e3ded guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:44:09,634 INFO guardrails.execution request=79ffcbfd-8101-4676-a270-616c786e3ded step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.629834 end=2026-09-09T10:44:09.629929 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:44:09,637 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.72ms] +2026-09-09 10:44:09,649 INFO guardrails.execution request=2366d8d6-abb7-4ccd-9ba1-df0f8c30abd1 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 10:44:09,650 INFO guardrails.execution request=2366d8d6-abb7-4ccd-9ba1-df0f8c30abd1 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:44:09,653 INFO guardrails.execution request=2366d8d6-abb7-4ccd-9ba1-df0f8c30abd1 step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T10:44:09.649765 end=2026-09-09T10:44:09.649855 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:44:09,658 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.23ms] +2026-09-09 10:44:09,671 INFO guardrails.execution request=37da69d5-738a-4ed4-aea8-b20169e91553 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 10:44:09,672 INFO guardrails.execution request=37da69d5-738a-4ed4-aea8-b20169e91553 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 10:44:09,675 INFO guardrails.execution request=37da69d5-738a-4ed4-aea8-b20169e91553 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.672142 end=2026-09-09T10:44:09.672207 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 10:44:09,678 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.42ms] +2026-09-09 10:44:09,695 INFO guardrails.execution request=f49e1660-58d3-425a-865a-b92be5fab6a6 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:44:09,697 INFO guardrails.execution request=f49e1660-58d3-425a-865a-b92be5fab6a6 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:44:09,701 INFO guardrails.execution request=f49e1660-58d3-425a-865a-b92be5fab6a6 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.695855 end=2026-09-09T10:44:09.696645 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 10:44:09,705 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.30ms] +2026-09-09 10:44:09,720 INFO guardrails.execution request=6a291387-2318-4343-bd12-211b0a93a3a9 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 10:44:09,722 INFO guardrails.execution request=6a291387-2318-4343-bd12-211b0a93a3a9 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 10:44:09,726 INFO guardrails.execution request=6a291387-2318-4343-bd12-211b0a93a3a9 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.721088 end=2026-09-09T10:44:09.721364 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 10:44:09,730 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.68ms] +2026-09-09 10:44:09,743 INFO guardrails.execution request=86483657-6d91-495b-8b91-da83b6767999 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 10:44:09,745 INFO guardrails.execution request=86483657-6d91-495b-8b91-da83b6767999 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:44:09,749 INFO guardrails.execution request=86483657-6d91-495b-8b91-da83b6767999 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.744139 end=2026-09-09T10:44:09.744641 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 10:44:09,752 INFO guardrails.execution request=86483657-6d91-495b-8b91-da83b6767999 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.744647 end=2026-09-09T10:44:09.744729 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 10:44:09,755 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.12ms] +2026-09-09 10:44:09,759 INFO http_request_logger POST /api/v1/guardrails/ - 422 [0.95ms] +2026-09-09 10:44:09,772 INFO guardrails.execution request=2665f06f-b8cc-4c5f-935e-5d8c48fd3a2c starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:44:09,773 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2665f06f-b8cc-4c5f-935e-5d8c48fd3a2c: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:44:09,777 INFO guardrails.execution request=2665f06f-b8cc-4c5f-935e-5d8c48fd3a2c step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.772711 end=2026-09-09T10:44:09.772987 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 10:44:09,780 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.78ms] +2026-09-09 10:44:09,794 INFO guardrails.execution request=c98758ff-6b36-490a-a3ab-cfe3b1e99c71 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 10:44:09,795 INFO guardrails.execution request=c98758ff-6b36-490a-a3ab-cfe3b1e99c71 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:44:09,799 INFO guardrails.execution request=c98758ff-6b36-490a-a3ab-cfe3b1e99c71 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.794994 end=2026-09-09T10:44:09.795263 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 10:44:09,802 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.63ms] +2026-09-09 10:44:09,816 INFO guardrails.execution request=93f9cb74-018f-46a2-8b38-0387e87d1a22 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 10:44:09,818 INFO guardrails.execution request=93f9cb74-018f-46a2-8b38-0387e87d1a22 guardrails execution finished (passed=True) output='' +2026-09-09 10:44:09,820 INFO guardrails.execution request=93f9cb74-018f-46a2-8b38-0387e87d1a22 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.816484 end=2026-09-09T10:44:09.817455 duration_ms=0 input='This is a damn fucking mess.' output='' +2026-09-09 10:44:09,823 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.46ms] +2026-09-09 10:44:09,837 INFO guardrails.execution request=d4be4fce-99c5-4863-97b9-78da51b76cdf starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 10:44:09,839 INFO guardrails.execution request=d4be4fce-99c5-4863-97b9-78da51b76cdf guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 10:44:09,841 INFO guardrails.execution request=d4be4fce-99c5-4863-97b9-78da51b76cdf step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:44:09.837684 end=2026-09-09T10:44:09.838668 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 10:44:09,843 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.31ms] +2026-09-09 10:44:09,857 INFO guardrails.execution request=ba71d20a-3360-4650-a474-62a73c431859 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 10:44:09,858 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ba71d20a-3360-4650-a474-62a73c431859: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 10:44:09,860 INFO guardrails.execution request=ba71d20a-3360-4650-a474-62a73c431859 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.857438 end=2026-09-09T10:44:09.858400 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 10:44:09,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.26ms] +2026-09-09 10:44:09,876 INFO guardrails.execution request=2177377b-81e1-4d59-9ef4-59d541b47356 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 10:44:09,878 INFO guardrails.execution request=2177377b-81e1-4d59-9ef4-59d541b47356 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:44:09,880 INFO guardrails.execution request=2177377b-81e1-4d59-9ef4-59d541b47356 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:09.876815 end=2026-09-09T10:44:09.877736 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 10:44:09,882 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.39ms] +2026-09-09 10:44:09,888 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a7c03655-3fa6-479b-b322-10101fabd473: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:44:09,891 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.07ms] +2026-09-09 10:44:10,518 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:44:12,421 INFO guardrails.execution request=31be8427-95ab-4617-8208-dab5b3cd1b67 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:44:12,524 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 31be8427-95ab-4617-8208-dab5b3cd1b67: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:44:12,537 INFO guardrails.execution request=31be8427-95ab-4617-8208-dab5b3cd1b67 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:12.423224 end=2026-09-09T10:44:12.524430 duration_ms=101 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:44:12,540 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2646.16ms] +2026-09-09 10:44:14,919 INFO guardrails.execution request=e4fd3eb8-8125-45a0-8fc6-7739a84ed9b4 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:44:14,935 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e4fd3eb8-8125-45a0-8fc6-7739a84ed9b4: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:44:14,943 INFO guardrails.execution request=e4fd3eb8-8125-45a0-8fc6-7739a84ed9b4 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:14.919929 end=2026-09-09T10:44:14.935019 duration_ms=15 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:44:14,948 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2402.09ms] +2026-09-09 10:44:16,974 INFO guardrails.execution request=02039b8a-d576-4edb-b3e2-67f1a83234b0 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:44:16,998 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 02039b8a-d576-4edb-b3e2-67f1a83234b0: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:44:17,005 INFO guardrails.execution request=02039b8a-d576-4edb-b3e2-67f1a83234b0 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:16.975098 end=2026-09-09T10:44:16.998504 duration_ms=23 input='Explicit sexual content goes here.' output=None +2026-09-09 10:44:17,007 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2053.53ms] +2026-09-09 10:44:17,029 INFO guardrails.execution request=0013ab9c-56a3-4256-b17c-2d5eedc10e56 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:44:17,034 INFO guardrails.execution request=0013ab9c-56a3-4256-b17c-2d5eedc10e56 guardrails execution finished (passed=True) output='' +2026-09-09 10:44:17,036 INFO guardrails.execution request=0013ab9c-56a3-4256-b17c-2d5eedc10e56 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:17.029999 end=2026-09-09T10:44:17.032855 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-09 10:44:17,038 INFO guardrails.execution request=0013ab9c-56a3-4256-b17c-2d5eedc10e56 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:44:17.032884 end=2026-09-09T10:44:17.033197 duration_ms=0 input='' output='' +2026-09-09 10:44:17,041 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.22ms] +2026-09-09 10:44:17,049 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 68fef0d2-7d84-45ab-9777-ad448d0e48ae: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:44:17,051 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.76ms] +2026-09-09 10:44:19,092 INFO guardrails.execution request=cf3e10a9-93cb-4e2b-8db6-f69fe37d6754 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:44:19,095 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log cf3e10a9-93cb-4e2b-8db6-f69fe37d6754: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:44:19,098 INFO guardrails.execution request=cf3e10a9-93cb-4e2b-8db6-f69fe37d6754 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:19.092898 end=2026-09-09T10:44:19.094878 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:44:19,100 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2046.08ms] +2026-09-09 10:44:21,160 INFO guardrails.execution request=74c5c92a-cefd-46ea-bb21-6162a12fb229 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:44:21,161 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 74c5c92a-cefd-46ea-bb21-6162a12fb229: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:44:21,167 INFO guardrails.execution request=74c5c92a-cefd-46ea-bb21-6162a12fb229 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:21.161282 end=2026-09-09T10:44:21.161760 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:44:21,170 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2065.93ms] +2026-09-09 10:44:21,188 INFO guardrails.execution request=d9c820f7-2338-4c71-82c1-4bee8152ccc4 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:44:21,190 INFO guardrails.execution request=d9c820f7-2338-4c71-82c1-4bee8152ccc4 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:44:21,194 INFO guardrails.execution request=d9c820f7-2338-4c71-82c1-4bee8152ccc4 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.188425 end=2026-09-09T10:44:21.189538 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:44:21,198 INFO guardrails.execution request=d9c820f7-2338-4c71-82c1-4bee8152ccc4 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.189544 end=2026-09-09T10:44:21.189651 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:44:21,202 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.67ms] +2026-09-09 10:44:21,225 INFO guardrails.execution request=365558ae-59bc-4dc9-a1e8-9c8943d6fd07 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:44:21,228 INFO guardrails.execution request=365558ae-59bc-4dc9-a1e8-9c8943d6fd07 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:44:21,233 INFO guardrails.execution request=365558ae-59bc-4dc9-a1e8-9c8943d6fd07 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.226348 end=2026-09-09T10:44:21.226803 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:44:21,236 INFO guardrails.execution request=365558ae-59bc-4dc9-a1e8-9c8943d6fd07 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.226816 end=2026-09-09T10:44:21.227892 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:44:21,238 INFO guardrails.execution request=365558ae-59bc-4dc9-a1e8-9c8943d6fd07 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.227899 end=2026-09-09T10:44:21.227982 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:44:21,243 INFO http_request_logger POST /api/v1/guardrails/ - 200 [35.26ms] +2026-09-09 10:44:21,261 INFO guardrails.execution request=1821effa-6f10-4354-909d-3af622edd477 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:44:21,263 INFO guardrails.execution request=1821effa-6f10-4354-909d-3af622edd477 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:44:21,266 INFO guardrails.execution request=1821effa-6f10-4354-909d-3af622edd477 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:44:21.262358 end=2026-09-09T10:44:21.262490 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:44:21,268 INFO guardrails.execution request=1821effa-6f10-4354-909d-3af622edd477 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:44:21.262496 end=2026-09-09T10:44:21.262703 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:44:21,272 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.39ms] +2026-09-09 10:44:21,285 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 3560e203-7cb0-4d9b-a364-3be0da412132: 404: Ban list not found +2026-09-09 10:44:21,288 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.39ms] +2026-09-09 10:44:21,296 INFO guardrails.execution request=c2eec1c0-ded7-4a0d-b94f-0be6774b177c starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:44:21,296 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c2eec1c0-ded7-4a0d-b94f-0be6774b177c: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:44:21,299 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.51ms] +2026-09-09 10:44:21,304 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:44:21,304 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.14ms] +2026-09-09 10:44:21,313 INFO app.crud.llm_prompt_config created llm prompt config id=3e010702-0b7c-4b15-8bbe-58e8b5c5061b org=1 project=1 +2026-09-09 10:44:21,314 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.31ms] +2026-09-09 10:44:21,319 INFO app.crud.llm_prompt_config created llm prompt config id=f18c55bf-e8c5-4694-85c3-2d509814fa20 org=1 project=1 +2026-09-09 10:44:21,320 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.71ms] +2026-09-09 10:44:21,325 INFO app.crud.llm_prompt_config created llm prompt config id=5a8389a1-dd8b-420e-b59e-6c2aa9964e96 org=1 project=1 +2026-09-09 10:44:21,326 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.58ms] +2026-09-09 10:44:21,331 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.39ms] +2026-09-09 10:44:21,337 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.75ms] +2026-09-09 10:44:21,340 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.78ms] +2026-09-09 10:44:21,344 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-09 10:44:21,350 INFO app.crud.llm_prompt_config created llm prompt config id=78d08806-63cb-4a5e-bf47-d8d74ea48e2f org=1 project=1 +2026-09-09 10:44:21,351 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.86ms] +2026-09-09 10:44:21,355 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.79ms] +2026-09-09 10:44:21,359 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.79ms] +2026-09-09 10:44:21,366 INFO app.crud.llm_prompt_config created llm prompt config id=0075af94-9194-47d2-8812-d3ff5bc50f4a org=1 project=1 +2026-09-09 10:44:21,366 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.80ms] +2026-09-09 10:44:21,370 INFO app.crud.llm_prompt_config created llm prompt config id=3f9701ad-23b7-4ab1-abc0-ea6a37858690 org=1 project=1 +2026-09-09 10:44:21,371 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.01ms] +2026-09-09 10:44:21,374 INFO app.crud.llm_prompt_config created llm prompt config id=1d96ea48-fc49-4bc5-b7c2-d8628f9ba5de org=1 project=1 +2026-09-09 10:44:21,375 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.77ms] +2026-09-09 10:44:21,378 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.87ms] +2026-09-09 10:44:21,385 INFO app.crud.llm_prompt_config created llm prompt config id=37a5bc5b-71d1-4ad4-8858-3637ec0d0c7b org=1 project=1 +2026-09-09 10:44:21,386 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.74ms] +2026-09-09 10:44:21,388 INFO app.crud.llm_prompt_config created llm prompt config id=2c1bb62c-2189-4e30-ab71-aaf9760f9c2f org=1 project=1 +2026-09-09 10:44:21,388 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.28ms] +2026-09-09 10:44:21,390 INFO app.crud.llm_prompt_config created llm prompt config id=65306597-8a77-4440-b356-5791a31ce9af org=1 project=1 +2026-09-09 10:44:21,391 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.17ms] +2026-09-09 10:44:21,393 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.91ms] +2026-09-09 10:44:21,398 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.63ms] +2026-09-09 10:44:21,404 INFO app.crud.llm_prompt_config created llm prompt config id=7905eba0-7aa9-4611-9ab8-a277bae1de91 org=1 project=1 +2026-09-09 10:44:21,405 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-09 10:44:21,407 INFO app.crud.llm_prompt_config created llm prompt config id=fdc93df4-2457-46e8-880d-4b00067a0bbd org=1 project=1 +2026-09-09 10:44:21,407 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.18ms] +2026-09-09 10:44:21,409 INFO app.crud.llm_prompt_config created llm prompt config id=95d54401-0559-482c-bb39-87d1cdfeefc8 org=1 project=1 +2026-09-09 10:44:21,410 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.21ms] +2026-09-09 10:44:21,412 INFO app.crud.llm_prompt_config created llm prompt config id=a34f433e-4d97-41ae-8341-942859feec59 org=1 project=1 +2026-09-09 10:44:21,412 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.15ms] +2026-09-09 10:44:21,415 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.27ms] +2026-09-09 10:44:21,422 INFO app.crud.llm_prompt_config created llm prompt config id=f970e81b-e241-4471-b42c-6cb9b6ac3a57 org=1 project=1 +2026-09-09 10:44:21,423 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.32ms] +2026-09-09 10:44:21,425 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.65ms] +2026-09-09 10:44:21,431 INFO app.crud.llm_prompt_config created llm prompt config id=2907efa4-7c5f-432d-b4db-3ec6eb888b72 org=1 project=1 +2026-09-09 10:44:21,432 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.12ms] +2026-09-09 10:44:21,434 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/2907efa4-7c5f-432d-b4db-3ec6eb888b72 - 200 [2.10ms] +2026-09-09 10:44:21,440 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/1423f371-cdf6-4333-93d0-68a370638457 - 404 [1.79ms] +2026-09-09 10:44:21,445 INFO app.crud.llm_prompt_config created llm prompt config id=ae0079f6-515d-483d-aeec-692a96ddbbc6 org=1 project=1 +2026-09-09 10:44:21,446 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.54ms] +2026-09-09 10:44:21,447 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ae0079f6-515d-483d-aeec-692a96ddbbc6 - 404 [1.19ms] +2026-09-09 10:44:21,453 INFO app.crud.llm_prompt_config created llm prompt config id=9d46c18d-f7e8-46a8-be7d-0e9b07b48300 org=1 project=1 +2026-09-09 10:44:21,454 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.51ms] +2026-09-09 10:44:21,458 INFO app.crud.llm_prompt_config updated llm prompt config id=9d46c18d-f7e8-46a8-be7d-0e9b07b48300 +2026-09-09 10:44:21,458 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9d46c18d-f7e8-46a8-be7d-0e9b07b48300 - 200 [4.14ms] +2026-09-09 10:44:21,465 INFO app.crud.llm_prompt_config created llm prompt config id=79d11925-9286-4efb-af07-ac44388c951b org=1 project=1 +2026-09-09 10:44:21,465 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.66ms] +2026-09-09 10:44:21,468 INFO app.crud.llm_prompt_config updated llm prompt config id=79d11925-9286-4efb-af07-ac44388c951b +2026-09-09 10:44:21,468 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/79d11925-9286-4efb-af07-ac44388c951b - 200 [2.94ms] +2026-09-09 10:44:21,475 INFO app.crud.llm_prompt_config created llm prompt config id=33db0661-9938-4a08-8098-ddb2a15bfdae org=1 project=1 +2026-09-09 10:44:21,475 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.53ms] +2026-09-09 10:44:21,477 INFO app.crud.llm_prompt_config updated llm prompt config id=33db0661-9938-4a08-8098-ddb2a15bfdae +2026-09-09 10:44:21,478 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/33db0661-9938-4a08-8098-ddb2a15bfdae - 200 [2.58ms] +2026-09-09 10:44:21,480 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/33db0661-9938-4a08-8098-ddb2a15bfdae - 200 [1.36ms] +2026-09-09 10:44:21,485 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/8d41e175-4bfe-40d4-bafa-cd2cf20f45d0 - 404 [1.65ms] +2026-09-09 10:44:21,491 INFO app.crud.llm_prompt_config created llm prompt config id=dcc92a5f-f775-4e76-87e4-446d264a75cf org=1 project=1 +2026-09-09 10:44:21,491 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.66ms] +2026-09-09 10:44:21,493 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/dcc92a5f-f775-4e76-87e4-446d264a75cf - 404 [1.32ms] +2026-09-09 10:44:21,498 INFO app.crud.llm_prompt_config created llm prompt config id=e40800db-cbae-46ec-b0dc-dda312bb83fa org=1 project=1 +2026-09-09 10:44:21,499 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.69ms] +2026-09-09 10:44:21,500 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/e40800db-cbae-46ec-b0dc-dda312bb83fa - 422 [1.38ms] +2026-09-09 10:44:21,507 INFO app.crud.llm_prompt_config created llm prompt config id=d2606eaf-fa2c-4539-a4a4-b11c89106706 org=1 project=1 +2026-09-09 10:44:21,508 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.19ms] +2026-09-09 10:44:21,510 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/d2606eaf-fa2c-4539-a4a4-b11c89106706 - 422 [1.71ms] +2026-09-09 10:44:21,517 INFO app.crud.llm_prompt_config created llm prompt config id=595fc79e-f117-4c1f-a9b6-957b738d323c org=1 project=1 +2026-09-09 10:44:21,517 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.69ms] +2026-09-09 10:44:21,521 INFO app.crud.llm_prompt_config updated llm prompt config id=595fc79e-f117-4c1f-a9b6-957b738d323c +2026-09-09 10:44:21,522 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/595fc79e-f117-4c1f-a9b6-957b738d323c - 200 [4.19ms] +2026-09-09 10:44:21,528 INFO app.crud.llm_prompt_config created llm prompt config id=a3dc03ef-1939-47d2-8a77-06e17935b3c4 org=1 project=1 +2026-09-09 10:44:21,529 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.51ms] +2026-09-09 10:44:21,531 INFO app.crud.llm_prompt_config updated llm prompt config id=a3dc03ef-1939-47d2-8a77-06e17935b3c4 +2026-09-09 10:44:21,532 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/a3dc03ef-1939-47d2-8a77-06e17935b3c4 - 200 [2.57ms] +2026-09-09 10:44:21,538 INFO app.crud.llm_prompt_config created llm prompt config id=72d4e7aa-eadd-4d29-80a4-a240e908a68d org=1 project=1 +2026-09-09 10:44:21,538 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.64ms] +2026-09-09 10:44:21,541 INFO app.crud.llm_prompt_config deleted llm prompt config id=72d4e7aa-eadd-4d29-80a4-a240e908a68d +2026-09-09 10:44:21,541 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/72d4e7aa-eadd-4d29-80a4-a240e908a68d - 200 [2.36ms] +2026-09-09 10:44:21,548 INFO app.crud.llm_prompt_config created llm prompt config id=8e42cc3f-57a6-4f1b-8d5a-22720e224c2a org=1 project=1 +2026-09-09 10:44:21,548 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.31ms] +2026-09-09 10:44:21,551 INFO app.crud.llm_prompt_config deleted llm prompt config id=8e42cc3f-57a6-4f1b-8d5a-22720e224c2a +2026-09-09 10:44:21,551 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/8e42cc3f-57a6-4f1b-8d5a-22720e224c2a - 200 [2.68ms] +2026-09-09 10:44:21,553 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.86ms] +2026-09-09 10:44:21,559 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/67f3ec3f-5291-432a-96ed-886abfe2bea6 - 404 [1.98ms] +2026-09-09 10:44:21,565 INFO app.crud.llm_prompt_config created llm prompt config id=6a0dd379-e568-44a9-b38c-98a7472bf843 org=1 project=1 +2026-09-09 10:44:21,565 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.71ms] +2026-09-09 10:44:21,567 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/6a0dd379-e568-44a9-b38c-98a7472bf843 - 404 [1.25ms] +2026-09-09 10:44:21,669 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='hello' +2026-09-09 10:44:21,669 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:44:21,671 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:44:21,671 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,673 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9836e14f-7440-4192-81d4-fd94b2f119a5: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 10:44:21,676 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:44:21,676 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,678 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:44:21,678 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,702 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 10:44:21,702 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,704 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='some input text' +2026-09-09 10:44:21,704 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,706 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 10:44:21,706 INFO guardrails.execution request=9836e14f-7440-4192-81d4-fd94b2f119a5 guardrails execution finished (passed=False) output=None +2026-09-09 10:44:21,708 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9836e14f-7440-4192-81d4-fd94b2f119a5: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 10:44:21,710 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 9836e14f-7440-4192-81d4-fd94b2f119a5: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 10:44:21,724 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:44:21,726 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:44:21,728 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:44:21,739 INFO app.crud.validator_config created validator config id=0fa56272-43d3-478f-a0d9-977f727c8bb9 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:44:21,739 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.77ms] +2026-09-09 10:44:21,745 INFO app.crud.validator_config created validator config id=73d99a92-07ab-4794-8bb7-8e3ce2628840 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:44:21,746 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.02ms] +2026-09-09 10:44:21,748 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 10:44:21,748 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.81ms] +2026-09-09 10:44:21,752 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.89ms] +2026-09-09 10:44:21,756 INFO app.crud.validator_config created validator config id=4fee9cd8-e87e-43cc-a884-eadc68cc63c1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:44:21,757 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.36ms] +2026-09-09 10:44:21,759 INFO app.crud.validator_config created validator config id=66a94170-0f1a-401a-9051-b97ee83e9e66 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:44:21,759 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.01ms] +2026-09-09 10:44:21,761 INFO app.crud.validator_config created validator config id=5453b600-78c6-44dd-87da-1361a11b952d org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:44:21,761 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.08ms] +2026-09-09 10:44:21,763 INFO app.crud.validator_config created validator config id=19909c0a-56a9-4bb3-ad0b-93e5c0dcfe36 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:44:21,764 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.01ms] +2026-09-09 10:44:21,766 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.82ms] +2026-09-09 10:44:21,766 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4fee9cd8-e87e-43cc-a884-eadc68cc63c1/ - 307 [0.10ms] +2026-09-09 10:44:21,768 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4fee9cd8-e87e-43cc-a884-eadc68cc63c1 - 200 [1.45ms] +2026-09-09 10:44:21,768 INFO http_request_logger GET /api/v1/guardrails/validators/configs/66a94170-0f1a-401a-9051-b97ee83e9e66/ - 307 [0.09ms] +2026-09-09 10:44:21,770 INFO http_request_logger GET /api/v1/guardrails/validators/configs/66a94170-0f1a-401a-9051-b97ee83e9e66 - 200 [1.27ms] +2026-09-09 10:44:21,770 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5453b600-78c6-44dd-87da-1361a11b952d/ - 307 [0.08ms] +2026-09-09 10:44:21,772 INFO http_request_logger GET /api/v1/guardrails/validators/configs/5453b600-78c6-44dd-87da-1361a11b952d - 200 [1.33ms] +2026-09-09 10:44:21,772 INFO http_request_logger GET /api/v1/guardrails/validators/configs/19909c0a-56a9-4bb3-ad0b-93e5c0dcfe36/ - 307 [0.08ms] +2026-09-09 10:44:21,774 INFO http_request_logger GET /api/v1/guardrails/validators/configs/19909c0a-56a9-4bb3-ad0b-93e5c0dcfe36 - 200 [1.18ms] +2026-09-09 10:44:21,779 INFO app.crud.validator_config created validator config id=ece63b65-6d59-4b4d-b26d-c4dbb66a7e5c org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:44:21,779 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.36ms] +2026-09-09 10:44:21,781 INFO app.crud.validator_config created validator config id=1ecc65ce-d08c-4a79-b387-35d03400df1c org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:44:21,781 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [1.96ms] +2026-09-09 10:44:21,783 INFO app.crud.validator_config created validator config id=4c0ce2e5-9f79-4350-8d61-9642756763ba org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:44:21,784 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.08ms] +2026-09-09 10:44:21,784 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/ece63b65-6d59-4b4d-b26d-c4dbb66a7e5c/ - 307 [0.08ms] +2026-09-09 10:44:21,787 INFO app.crud.validator_config updated validator config id=ece63b65-6d59-4b4d-b26d-c4dbb66a7e5c +2026-09-09 10:44:21,788 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/ece63b65-6d59-4b4d-b26d-c4dbb66a7e5c - 200 [3.13ms] +2026-09-09 10:44:21,788 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/1ecc65ce-d08c-4a79-b387-35d03400df1c/ - 307 [0.08ms] +2026-09-09 10:44:21,790 INFO app.crud.validator_config updated validator config id=1ecc65ce-d08c-4a79-b387-35d03400df1c +2026-09-09 10:44:21,791 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/1ecc65ce-d08c-4a79-b387-35d03400df1c - 200 [2.43ms] +2026-09-09 10:44:21,791 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/4c0ce2e5-9f79-4350-8d61-9642756763ba/ - 307 [0.09ms] +2026-09-09 10:44:21,793 INFO app.crud.validator_config updated validator config id=4c0ce2e5-9f79-4350-8d61-9642756763ba +2026-09-09 10:44:21,794 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/4c0ce2e5-9f79-4350-8d61-9642756763ba - 200 [2.52ms] +2026-09-09 10:44:21,796 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.44ms] +2026-09-09 10:44:21,802 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.58ms] +2026-09-09 10:44:21,809 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.94ms] +2026-09-09 10:44:21,816 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.82ms] +2026-09-09 10:44:21,821 INFO app.crud.validator_config created validator config id=28fea4c5-252f-4c3a-98a3-bfe1454c64ac org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:44:21,821 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.44ms] +2026-09-09 10:44:21,823 INFO app.crud.validator_config created validator config id=6ac10f07-5a67-447b-9133-3e0edb338457 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:44:21,824 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.08ms] +2026-09-09 10:44:21,826 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.65ms] +2026-09-09 10:44:21,831 INFO app.crud.validator_config created validator config id=b9f0c859-dbce-491a-ba1a-a516b39955e7 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:44:21,832 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.92ms] +2026-09-09 10:44:21,834 INFO app.crud.validator_config created validator config id=89ba2cfa-04b5-489a-ab85-fab2432a289f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:44:21,834 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.39ms] +2026-09-09 10:44:21,836 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.53ms] +2026-09-09 10:44:21,840 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.76ms] +2026-09-09 10:44:21,844 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.48ms] +2026-09-09 10:44:21,850 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.70ms] +2026-09-09 10:44:21,851 INFO http_request_logger GET /api/v1/guardrails/validators/configs/51f2e049-0d2b-4990-b371-6e63d45da458/ - 307 [0.09ms] +2026-09-09 10:44:21,852 INFO http_request_logger GET /api/v1/guardrails/validators/configs/51f2e049-0d2b-4990-b371-6e63d45da458 - 200 [1.23ms] +2026-09-09 10:44:21,855 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8feb9243-a9f6-435d-82f1-93be3e3e3684/ - 307 [0.08ms] +2026-09-09 10:44:21,857 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8feb9243-a9f6-435d-82f1-93be3e3e3684 - 404 [1.33ms] +2026-09-09 10:44:21,860 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.08ms] +2026-09-09 10:44:21,861 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.68ms] +2026-09-09 10:44:21,865 INFO app.crud.validator_config created validator config id=798fdc31-6b10-4fc6-a396-b2cbb460990e org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:44:21,865 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.35ms] +2026-09-09 10:44:21,866 INFO http_request_logger GET /api/v1/guardrails/validators/configs/798fdc31-6b10-4fc6-a396-b2cbb460990e/ - 307 [0.08ms] +2026-09-09 10:44:21,867 INFO http_request_logger GET /api/v1/guardrails/validators/configs/798fdc31-6b10-4fc6-a396-b2cbb460990e - 404 [1.12ms] +2026-09-09 10:44:21,873 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.62ms] +2026-09-09 10:44:21,873 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f21300d9-df19-4bd9-8816-46ed5708151c/ - 307 [0.09ms] +2026-09-09 10:44:21,876 INFO app.crud.validator_config updated validator config id=f21300d9-df19-4bd9-8816-46ed5708151c +2026-09-09 10:44:21,876 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f21300d9-df19-4bd9-8816-46ed5708151c - 200 [2.54ms] +2026-09-09 10:44:21,882 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.65ms] +2026-09-09 10:44:21,883 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/35c2c61e-bb4b-44ae-bf84-e994342202a0/ - 307 [0.08ms] +2026-09-09 10:44:21,885 INFO app.crud.validator_config updated validator config id=35c2c61e-bb4b-44ae-bf84-e994342202a0 +2026-09-09 10:44:21,885 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/35c2c61e-bb4b-44ae-bf84-e994342202a0 - 200 [2.48ms] +2026-09-09 10:44:21,888 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c0930c27-d0e8-488a-b140-498f8a2d131e/ - 307 [0.08ms] +2026-09-09 10:44:21,890 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/c0930c27-d0e8-488a-b140-498f8a2d131e - 404 [1.47ms] +2026-09-09 10:44:21,896 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.49ms] +2026-09-09 10:44:21,896 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1eb53441-8b91-4a64-9974-cc50366e81b4/ - 307 [0.08ms] +2026-09-09 10:44:21,898 INFO app.crud.validator_config deleted validator config id=1eb53441-8b91-4a64-9974-cc50366e81b4 +2026-09-09 10:44:21,898 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1eb53441-8b91-4a64-9974-cc50366e81b4 - 200 [1.66ms] +2026-09-09 10:44:21,898 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1eb53441-8b91-4a64-9974-cc50366e81b4/ - 307 [0.08ms] +2026-09-09 10:44:21,900 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1eb53441-8b91-4a64-9974-cc50366e81b4 - 404 [1.07ms] +2026-09-09 10:44:21,903 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/0166b62d-3bf1-41be-8e18-254e7634aa6e/ - 307 [0.21ms] +2026-09-09 10:44:21,904 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/0166b62d-3bf1-41be-8e18-254e7634aa6e - 404 [1.23ms] +2026-09-09 10:44:21,910 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.88ms] +2026-09-09 10:44:21,911 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/239442ad-e166-481d-b556-f0f8a64800fe/ - 307 [0.08ms] +2026-09-09 10:44:21,912 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/239442ad-e166-481d-b556-f0f8a64800fe - 404 [1.16ms] +2026-09-09 10:44:21,913 INFO http_request_logger GET /api/v1/guardrails/validators/configs/239442ad-e166-481d-b556-f0f8a64800fe/ - 307 [0.08ms] +2026-09-09 10:44:21,914 INFO http_request_logger GET /api/v1/guardrails/validators/configs/239442ad-e166-481d-b556-f0f8a64800fe - 200 [1.28ms] +2026-09-09 10:44:22,006 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:44:22,006 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:44:22,068 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:23,539 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:23,549 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:24,874 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:24,887 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:26,326 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:26,338 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:27,442 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:27,452 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:28,488 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:28,495 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:29,609 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:29,611 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:44:30,744 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:44:30,908 INFO watchfiles.main 3 changes detected +2026-09-09 10:45:10,380 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [46.83ms] +2026-09-09 10:45:11,116 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 10:45:11,118 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 10:45:11,127 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 10:45:11,128 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 10:45:11,129 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 10:45:11,129 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 10:45:11,130 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 10:45:11,145 INFO guardrails.execution request=76179c97-31ed-40a9-82f7-d54075fa402e starting guardrails execution (validators=['pii_remover']) input='Amit Gupta phone number is 919611188278. He is a doctor' +2026-09-09 10:45:11,162 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:45:11,218 INFO guardrails.execution request=76179c97-31ed-40a9-82f7-d54075fa402e guardrails execution finished (passed=True) output=' phone number is . He is a doctor' +2026-09-09 10:45:11,228 INFO guardrails.execution request=76179c97-31ed-40a9-82f7-d54075fa402e step=1/1 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:45:11.146937 end=2026-09-09T10:45:11.217727 duration_ms=70 input='Amit Gupta phone number is 919611188278. He is a doctor' output=' phone number is . He is a doctor' +2026-09-09 10:45:11,236 INFO http_request_logger POST /api/v1/guardrails/ - 200 [841.50ms] +2026-09-09 10:45:15,020 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [8.12ms] +2026-09-09 10:45:15,048 INFO guardrails.execution request=34a48a14-e438-4acb-a75d-339d18900212 starting guardrails execution (validators=['gender_assumption_bias']) input='Understood. How would you like me to help with this information?' +2026-09-09 10:45:15,051 INFO guardrails.execution request=34a48a14-e438-4acb-a75d-339d18900212 guardrails execution finished (passed=True) output='Understood. How would you like me to help with this information?' +2026-09-09 10:45:15,057 INFO guardrails.execution request=34a48a14-e438-4acb-a75d-339d18900212 step=1/1 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-09T10:45:15.049307 end=2026-09-09T10:45:15.050551 duration_ms=1 input='Understood. How would you like me to help with this information?' output='Understood. How would you like me to help with this information?' +2026-09-09 10:45:15,062 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.71ms] +2026-09-09 10:46:28,007 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [9.89ms] +2026-09-09 10:46:28,049 INFO guardrails.execution request=9e652a1f-ca41-46eb-b364-8ed1b224e9e3 starting guardrails execution (validators=['pii_remover', 'uli_slur_match']) input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' +2026-09-09 10:46:28,060 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 10:46:28,069 INFO guardrails.execution request=9e652a1f-ca41-46eb-b364-8ed1b224e9e3 guardrails execution finished (passed=True) output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 10:46:28,074 INFO guardrails.execution request=9e652a1f-ca41-46eb-b364-8ed1b224e9e3 step=1/2 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T10:46:28.051229 end=2026-09-09T10:46:28.065369 duration_ms=14 input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' output=' phone number is . He is a doctor. motherfucker' +2026-09-09 10:46:28,078 INFO guardrails.execution request=9e652a1f-ca41-46eb-b364-8ed1b224e9e3 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:46:28.065386 end=2026-09-09T10:46:28.067769 duration_ms=2 input=' phone number is . He is a doctor. motherfucker' output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 10:46:28,083 INFO http_request_logger POST /api/v1/guardrails/ - 200 [65.44ms] +2026-09-09 10:46:31,187 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [4.26ms] +2026-09-09 10:46:31,209 INFO guardrails.execution request=abeff211-1ccc-4018-9cbe-3c009d49fd2b starting guardrails execution (validators=['gender_assumption_bias']) input='Please avoid sharing someone’s phone number without consent or using derogatory language. A respectful version is: “/ +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:56:32,750 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.75ms] +2026-09-09 10:56:33,434 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 10:56:35,333 INFO guardrails.execution request=8e1304f6-15e0-407d-b9ca-2114f5279d46 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:56:35,445 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8e1304f6-15e0-407d-b9ca-2114f5279d46: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:56:35,456 INFO guardrails.execution request=8e1304f6-15e0-407d-b9ca-2114f5279d46 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:35.336133 end=2026-09-09T10:56:35.445723 duration_ms=109 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:56:35,461 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2706.43ms] +2026-09-09 10:56:37,637 INFO guardrails.execution request=2c584ee7-bf69-40a8-b366-5a729e65097d starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 10:56:37,651 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2c584ee7-bf69-40a8-b366-5a729e65097d: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 10:56:37,655 INFO guardrails.execution request=2c584ee7-bf69-40a8-b366-5a729e65097d step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:37.637839 end=2026-09-09T10:56:37.650811 duration_ms=12 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 10:56:37,658 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2187.33ms] +2026-09-09 10:56:39,666 INFO guardrails.execution request=8887f52c-a037-46f8-9ac6-979b6eaa3df9 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 10:56:39,696 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8887f52c-a037-46f8-9ac6-979b6eaa3df9: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 10:56:39,700 INFO guardrails.execution request=8887f52c-a037-46f8-9ac6-979b6eaa3df9 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:39.666999 end=2026-09-09T10:56:39.696080 duration_ms=29 input='Explicit sexual content goes here.' output=None +2026-09-09 10:56:39,703 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2039.53ms] +2026-09-09 10:56:39,725 INFO guardrails.execution request=16dfa6ca-2566-4a99-a81e-14e5bdd15450 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 10:56:39,729 INFO guardrails.execution request=16dfa6ca-2566-4a99-a81e-14e5bdd15450 guardrails execution finished (passed=True) output='' +2026-09-09 10:56:39,734 INFO guardrails.execution request=16dfa6ca-2566-4a99-a81e-14e5bdd15450 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:39.725761 end=2026-09-09T10:56:39.728136 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-09 10:56:39,737 INFO guardrails.execution request=16dfa6ca-2566-4a99-a81e-14e5bdd15450 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:56:39.728155 end=2026-09-09T10:56:39.728382 duration_ms=0 input='' output='' +2026-09-09 10:56:39,741 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.77ms] +2026-09-09 10:56:39,750 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b1fbad25-866c-47aa-9f89-65a7de79ca0f: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 10:56:39,753 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.80ms] +2026-09-09 10:56:41,724 INFO guardrails.execution request=97981309-4543-44dc-8e54-04c116a8cde0 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 10:56:41,726 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 97981309-4543-44dc-8e54-04c116a8cde0: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 10:56:41,735 INFO guardrails.execution request=97981309-4543-44dc-8e54-04c116a8cde0 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:41.725037 end=2026-09-09T10:56:41.726173 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 10:56:41,739 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1980.96ms] +2026-09-09 10:56:43,861 INFO guardrails.execution request=2f5702af-a919-434d-b356-8efaab4aaf6b starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 10:56:43,862 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2f5702af-a919-434d-b356-8efaab4aaf6b: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 10:56:43,868 INFO guardrails.execution request=2f5702af-a919-434d-b356-8efaab4aaf6b step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:43.861854 end=2026-09-09T10:56:43.862339 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 10:56:43,872 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2126.01ms] +2026-09-09 10:56:43,894 INFO guardrails.execution request=5d74f440-5fed-42b0-b90c-e175645720ff starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 10:56:43,896 INFO guardrails.execution request=5d74f440-5fed-42b0-b90c-e175645720ff guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 10:56:43,900 INFO guardrails.execution request=5d74f440-5fed-42b0-b90c-e175645720ff step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.894592 end=2026-09-09T10:56:43.895707 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:56:43,902 INFO guardrails.execution request=5d74f440-5fed-42b0-b90c-e175645720ff step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.895713 end=2026-09-09T10:56:43.895851 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 10:56:43,906 INFO http_request_logger POST /api/v1/guardrails/ - 200 [28.55ms] +2026-09-09 10:56:43,927 INFO guardrails.execution request=8c94a196-718f-4239-871d-ca775d5d94da starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 10:56:43,929 INFO guardrails.execution request=8c94a196-718f-4239-871d-ca775d5d94da guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 10:56:43,933 INFO guardrails.execution request=8c94a196-718f-4239-871d-ca775d5d94da step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.927795 end=2026-09-09T10:56:43.928102 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:56:43,936 INFO guardrails.execution request=8c94a196-718f-4239-871d-ca775d5d94da step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.928107 end=2026-09-09T10:56:43.929046 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:56:43,938 INFO guardrails.execution request=8c94a196-718f-4239-871d-ca775d5d94da step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.929051 end=2026-09-09T10:56:43.929112 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 10:56:43,942 INFO http_request_logger POST /api/v1/guardrails/ - 200 [31.47ms] +2026-09-09 10:56:43,958 INFO guardrails.execution request=b0d906af-2641-4102-9861-db157aebe7e0 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 10:56:43,959 INFO guardrails.execution request=b0d906af-2641-4102-9861-db157aebe7e0 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 10:56:43,962 INFO guardrails.execution request=b0d906af-2641-4102-9861-db157aebe7e0 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T10:56:43.958589 end=2026-09-09T10:56:43.958698 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 10:56:43,964 INFO guardrails.execution request=b0d906af-2641-4102-9861-db157aebe7e0 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T10:56:43.958704 end=2026-09-09T10:56:43.958890 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 10:56:43,968 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.06ms] +2026-09-09 10:56:43,981 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 980a8b3c-10ff-4339-8919-024cec7bd5b4: 404: Ban list not found +2026-09-09 10:56:43,985 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.50ms] +2026-09-09 10:56:43,993 INFO guardrails.execution request=3fa7107e-f1eb-4cc7-8da9-931bf648d88a starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 10:56:43,993 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 3fa7107e-f1eb-4cc7-8da9-931bf648d88a: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 10:56:43,996 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.55ms] +2026-09-09 10:56:44,002 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 10:56:44,002 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.12ms] +2026-09-09 10:56:44,014 INFO app.crud.llm_prompt_config created llm prompt config id=e6d080e9-0bc0-4f1d-bdeb-90af7d01dbec org=1 project=1 +2026-09-09 10:56:44,016 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [10.00ms] +2026-09-09 10:56:44,021 INFO app.crud.llm_prompt_config created llm prompt config id=7b6ecca5-b612-4b82-bc00-a28a9ecb39bb org=1 project=1 +2026-09-09 10:56:44,022 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.85ms] +2026-09-09 10:56:44,028 INFO app.crud.llm_prompt_config created llm prompt config id=f93441d1-fbf8-4dc7-90fb-2d96a5b92c6a org=1 project=1 +2026-09-09 10:56:44,029 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.77ms] +2026-09-09 10:56:44,034 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.02ms] +2026-09-09 10:56:44,040 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.00ms] +2026-09-09 10:56:44,045 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.41ms] +2026-09-09 10:56:44,049 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.82ms] +2026-09-09 10:56:44,057 INFO app.crud.llm_prompt_config created llm prompt config id=79111d3d-296e-4077-853a-e938e0b45095 org=1 project=1 +2026-09-09 10:56:44,058 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.70ms] +2026-09-09 10:56:44,062 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.82ms] +2026-09-09 10:56:44,066 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.86ms] +2026-09-09 10:56:44,071 INFO app.crud.llm_prompt_config created llm prompt config id=e1d69e98-e91a-442e-9b9d-1acf58a277fe org=1 project=1 +2026-09-09 10:56:44,071 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.58ms] +2026-09-09 10:56:44,075 INFO app.crud.llm_prompt_config created llm prompt config id=44290cd8-e9c2-4582-83b4-ad8fc648a0ef org=1 project=1 +2026-09-09 10:56:44,076 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.17ms] +2026-09-09 10:56:44,080 INFO app.crud.llm_prompt_config created llm prompt config id=1569a1b0-dc4a-4050-a2fc-bfc888a78e3a org=1 project=1 +2026-09-09 10:56:44,080 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.86ms] +2026-09-09 10:56:44,083 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.61ms] +2026-09-09 10:56:44,090 INFO app.crud.llm_prompt_config created llm prompt config id=9f3a1d34-8d4c-4133-b542-472718f6f327 org=1 project=1 +2026-09-09 10:56:44,091 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.58ms] +2026-09-09 10:56:44,094 INFO app.crud.llm_prompt_config created llm prompt config id=332fbaf7-5ebe-474f-b4ef-5340c97f5ab5 org=1 project=1 +2026-09-09 10:56:44,095 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.31ms] +2026-09-09 10:56:44,098 INFO app.crud.llm_prompt_config created llm prompt config id=1de8c9eb-9f50-468c-b873-ec44ac58f61c org=1 project=1 +2026-09-09 10:56:44,098 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.41ms] +2026-09-09 10:56:44,101 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.62ms] +2026-09-09 10:56:44,108 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.14ms] +2026-09-09 10:56:44,114 INFO app.crud.llm_prompt_config created llm prompt config id=bb14e174-8350-4087-ae72-c6f2b7bd0f12 org=1 project=1 +2026-09-09 10:56:44,115 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.61ms] +2026-09-09 10:56:44,118 INFO app.crud.llm_prompt_config created llm prompt config id=6bbc2ee0-0801-4d03-9fbe-18d94fcc5589 org=1 project=1 +2026-09-09 10:56:44,118 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.00ms] +2026-09-09 10:56:44,121 INFO app.crud.llm_prompt_config created llm prompt config id=9185b70e-e260-4d1a-b7b8-2e7a70a95dab org=1 project=1 +2026-09-09 10:56:44,122 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.85ms] +2026-09-09 10:56:44,124 INFO app.crud.llm_prompt_config created llm prompt config id=68077470-03b2-415e-b545-c38d54eb4d03 org=1 project=1 +2026-09-09 10:56:44,125 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.99ms] +2026-09-09 10:56:44,127 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.22ms] +2026-09-09 10:56:44,134 INFO app.crud.llm_prompt_config created llm prompt config id=4aec778c-bec5-4e55-957b-dbb926eb968f org=1 project=1 +2026-09-09 10:56:44,135 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.36ms] +2026-09-09 10:56:44,137 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.71ms] +2026-09-09 10:56:44,144 INFO app.crud.llm_prompt_config created llm prompt config id=84b5186a-5f5c-4d47-bdb1-2d91f66fdace org=1 project=1 +2026-09-09 10:56:44,145 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.40ms] +2026-09-09 10:56:44,147 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/84b5186a-5f5c-4d47-bdb1-2d91f66fdace - 200 [2.05ms] +2026-09-09 10:56:44,154 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/8c992950-ec33-4fe7-bfa2-2525f9422bfa - 404 [2.32ms] +2026-09-09 10:56:44,160 INFO app.crud.llm_prompt_config created llm prompt config id=431ff92b-fd4e-4e48-9d5a-c0ea9b816ae2 org=1 project=1 +2026-09-09 10:56:44,161 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.50ms] +2026-09-09 10:56:44,163 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/431ff92b-fd4e-4e48-9d5a-c0ea9b816ae2 - 404 [1.69ms] +2026-09-09 10:56:44,170 INFO app.crud.llm_prompt_config created llm prompt config id=8e08a08a-592b-4e63-99b9-e7e591dd55a7 org=1 project=1 +2026-09-09 10:56:44,170 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.31ms] +2026-09-09 10:56:44,175 INFO app.crud.llm_prompt_config updated llm prompt config id=8e08a08a-592b-4e63-99b9-e7e591dd55a7 +2026-09-09 10:56:44,175 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/8e08a08a-592b-4e63-99b9-e7e591dd55a7 - 200 [4.83ms] +2026-09-09 10:56:44,182 INFO app.crud.llm_prompt_config created llm prompt config id=4ae0676e-20d6-4c1f-a603-ca5baafb5c6b org=1 project=1 +2026-09-09 10:56:44,183 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.54ms] +2026-09-09 10:56:44,187 INFO app.crud.llm_prompt_config updated llm prompt config id=4ae0676e-20d6-4c1f-a603-ca5baafb5c6b +2026-09-09 10:56:44,187 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/4ae0676e-20d6-4c1f-a603-ca5baafb5c6b - 200 [4.00ms] +2026-09-09 10:56:44,194 INFO app.crud.llm_prompt_config created llm prompt config id=76a311d3-72f7-4ccb-816f-fe470dc4387f org=1 project=1 +2026-09-09 10:56:44,195 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.31ms] +2026-09-09 10:56:44,198 INFO app.crud.llm_prompt_config updated llm prompt config id=76a311d3-72f7-4ccb-816f-fe470dc4387f +2026-09-09 10:56:44,198 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/76a311d3-72f7-4ccb-816f-fe470dc4387f - 200 [3.02ms] +2026-09-09 10:56:44,200 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/76a311d3-72f7-4ccb-816f-fe470dc4387f - 200 [1.76ms] +2026-09-09 10:56:44,207 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9efee351-1c30-477b-beb8-d3ea6f191042 - 404 [1.79ms] +2026-09-09 10:56:44,212 INFO app.crud.llm_prompt_config created llm prompt config id=a4deb2c3-9308-4325-aab3-49dc9e9c620e org=1 project=1 +2026-09-09 10:56:44,213 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.86ms] +2026-09-09 10:56:44,215 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/a4deb2c3-9308-4325-aab3-49dc9e9c620e - 404 [1.54ms] +2026-09-09 10:56:44,221 INFO app.crud.llm_prompt_config created llm prompt config id=6d776329-96da-400d-91d0-969eeb9cbb59 org=1 project=1 +2026-09-09 10:56:44,221 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.47ms] +2026-09-09 10:56:44,224 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/6d776329-96da-400d-91d0-969eeb9cbb59 - 422 [2.67ms] +2026-09-09 10:56:44,231 INFO app.crud.llm_prompt_config created llm prompt config id=cfc21842-77fc-4d71-a812-eca177f5fbb9 org=1 project=1 +2026-09-09 10:56:44,232 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.97ms] +2026-09-09 10:56:44,233 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/cfc21842-77fc-4d71-a812-eca177f5fbb9 - 422 [1.44ms] +2026-09-09 10:56:44,240 INFO app.crud.llm_prompt_config created llm prompt config id=5b82e5a8-33cb-49e5-ba33-090265af3bd4 org=1 project=1 +2026-09-09 10:56:44,240 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.51ms] +2026-09-09 10:56:44,243 INFO app.crud.llm_prompt_config updated llm prompt config id=5b82e5a8-33cb-49e5-ba33-090265af3bd4 +2026-09-09 10:56:44,243 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/5b82e5a8-33cb-49e5-ba33-090265af3bd4 - 200 [2.75ms] +2026-09-09 10:56:44,248 INFO app.crud.llm_prompt_config created llm prompt config id=6e832dd7-a2fa-4273-b5a9-0754a080b1c6 org=1 project=1 +2026-09-09 10:56:44,248 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.50ms] +2026-09-09 10:56:44,251 INFO app.crud.llm_prompt_config updated llm prompt config id=6e832dd7-a2fa-4273-b5a9-0754a080b1c6 +2026-09-09 10:56:44,251 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/6e832dd7-a2fa-4273-b5a9-0754a080b1c6 - 200 [2.57ms] +2026-09-09 10:56:44,256 INFO app.crud.llm_prompt_config created llm prompt config id=5ceb10bd-8c6c-47c8-970a-5319552a290d org=1 project=1 +2026-09-09 10:56:44,257 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.45ms] +2026-09-09 10:56:44,260 INFO app.crud.llm_prompt_config deleted llm prompt config id=5ceb10bd-8c6c-47c8-970a-5319552a290d +2026-09-09 10:56:44,261 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/5ceb10bd-8c6c-47c8-970a-5319552a290d - 200 [3.79ms] +2026-09-09 10:56:44,268 INFO app.crud.llm_prompt_config created llm prompt config id=4579c145-dc78-4402-9065-81f4c96680e1 org=1 project=1 +2026-09-09 10:56:44,269 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.14ms] +2026-09-09 10:56:44,271 INFO app.crud.llm_prompt_config deleted llm prompt config id=4579c145-dc78-4402-9065-81f4c96680e1 +2026-09-09 10:56:44,271 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/4579c145-dc78-4402-9065-81f4c96680e1 - 200 [1.95ms] +2026-09-09 10:56:44,273 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.44ms] +2026-09-09 10:56:44,277 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/da434623-053b-4359-a427-fd0c9190fe42 - 404 [1.48ms] +2026-09-09 10:56:44,285 INFO app.crud.llm_prompt_config created llm prompt config id=1c835c16-5186-4353-847e-f70afea9b150 org=1 project=1 +2026-09-09 10:56:44,285 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.09ms] +2026-09-09 10:56:44,287 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/1c835c16-5186-4353-847e-f70afea9b150 - 404 [1.49ms] +2026-09-09 10:56:44,373 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='hello' +2026-09-09 10:56:44,373 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=True) output='clean text' +2026-09-09 10:56:44,375 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:56:44,375 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,377 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d1a9976a-21e9-4018-80dc-07bb772a1e6f: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 10:56:44,379 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:56:44,379 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,381 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='bad text' +2026-09-09 10:56:44,381 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,403 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 10:56:44,403 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,407 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='some input text' +2026-09-09 10:56:44,407 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,410 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 10:56:44,410 INFO guardrails.execution request=d1a9976a-21e9-4018-80dc-07bb772a1e6f guardrails execution finished (passed=False) output=None +2026-09-09 10:56:44,413 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d1a9976a-21e9-4018-80dc-07bb772a1e6f: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 10:56:44,416 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d1a9976a-21e9-4018-80dc-07bb772a1e6f: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 10:56:44,433 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:56:44,436 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:56:44,438 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 10:56:44,449 INFO app.crud.validator_config created validator config id=f5f0cdec-2c1c-4a5c-ac35-fe679790f260 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:56:44,450 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.03ms] +2026-09-09 10:56:44,455 INFO app.crud.validator_config created validator config id=f4d395a4-9c57-4f7f-8342-03151e004046 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:56:44,456 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.66ms] +2026-09-09 10:56:44,458 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 10:56:44,458 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.87ms] +2026-09-09 10:56:44,462 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [1.42ms] +2026-09-09 10:56:44,467 INFO app.crud.validator_config created validator config id=0506dff6-1bb9-4a02-9645-d6bae5b48fbc org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:56:44,467 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.52ms] +2026-09-09 10:56:44,469 INFO app.crud.validator_config created validator config id=c92c8d9e-f1c2-475d-927b-dbc779c24913 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:56:44,470 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.11ms] +2026-09-09 10:56:44,472 INFO app.crud.validator_config created validator config id=e203ebc1-db87-4213-b5c2-db7ac505f79c org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:56:44,472 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.21ms] +2026-09-09 10:56:44,475 INFO app.crud.validator_config created validator config id=627720c5-0695-45d4-84fc-00cc67751c21 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:56:44,475 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.70ms] +2026-09-09 10:56:44,478 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.23ms] +2026-09-09 10:56:44,478 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0506dff6-1bb9-4a02-9645-d6bae5b48fbc/ - 307 [0.10ms] +2026-09-09 10:56:44,480 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0506dff6-1bb9-4a02-9645-d6bae5b48fbc - 200 [1.71ms] +2026-09-09 10:56:44,481 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c92c8d9e-f1c2-475d-927b-dbc779c24913/ - 307 [0.08ms] +2026-09-09 10:56:44,483 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c92c8d9e-f1c2-475d-927b-dbc779c24913 - 200 [1.60ms] +2026-09-09 10:56:44,483 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e203ebc1-db87-4213-b5c2-db7ac505f79c/ - 307 [0.08ms] +2026-09-09 10:56:44,485 INFO http_request_logger GET /api/v1/guardrails/validators/configs/e203ebc1-db87-4213-b5c2-db7ac505f79c - 200 [1.58ms] +2026-09-09 10:56:44,485 INFO http_request_logger GET /api/v1/guardrails/validators/configs/627720c5-0695-45d4-84fc-00cc67751c21/ - 307 [0.08ms] +2026-09-09 10:56:44,487 INFO http_request_logger GET /api/v1/guardrails/validators/configs/627720c5-0695-45d4-84fc-00cc67751c21 - 200 [1.61ms] +2026-09-09 10:56:44,494 INFO app.crud.validator_config created validator config id=6e958308-27b1-44e3-bf49-824838759e2d org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:56:44,495 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.30ms] +2026-09-09 10:56:44,498 INFO app.crud.validator_config created validator config id=f6d0646a-6856-48d9-8d3f-fc202dfbd007 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:56:44,498 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.01ms] +2026-09-09 10:56:44,501 INFO app.crud.validator_config created validator config id=0512a132-10a8-4af5-afc9-e8846c0b71f8 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:56:44,501 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.94ms] +2026-09-09 10:56:44,502 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/6e958308-27b1-44e3-bf49-824838759e2d/ - 307 [0.08ms] +2026-09-09 10:56:44,506 INFO app.crud.validator_config updated validator config id=6e958308-27b1-44e3-bf49-824838759e2d +2026-09-09 10:56:44,506 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/6e958308-27b1-44e3-bf49-824838759e2d - 200 [3.98ms] +2026-09-09 10:56:44,506 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f6d0646a-6856-48d9-8d3f-fc202dfbd007/ - 307 [0.09ms] +2026-09-09 10:56:44,509 INFO app.crud.validator_config updated validator config id=f6d0646a-6856-48d9-8d3f-fc202dfbd007 +2026-09-09 10:56:44,510 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f6d0646a-6856-48d9-8d3f-fc202dfbd007 - 200 [3.28ms] +2026-09-09 10:56:44,510 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0512a132-10a8-4af5-afc9-e8846c0b71f8/ - 307 [0.09ms] +2026-09-09 10:56:44,514 INFO app.crud.validator_config updated validator config id=0512a132-10a8-4af5-afc9-e8846c0b71f8 +2026-09-09 10:56:44,514 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/0512a132-10a8-4af5-afc9-e8846c0b71f8 - 200 [3.69ms] +2026-09-09 10:56:44,516 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.76ms] +2026-09-09 10:56:44,525 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.91ms] +2026-09-09 10:56:44,534 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.77ms] +2026-09-09 10:56:44,544 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.83ms] +2026-09-09 10:56:44,553 INFO app.crud.validator_config created validator config id=fe2ee384-aa8b-4328-92cb-e540c4c10af1 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:56:44,553 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.28ms] +2026-09-09 10:56:44,557 INFO app.crud.validator_config created validator config id=96c925ef-1561-466c-a646-69ec0383e5d9 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:56:44,557 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.58ms] +2026-09-09 10:56:44,560 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.44ms] +2026-09-09 10:56:44,568 INFO app.crud.validator_config created validator config id=b29c6ab0-11c4-49c3-954a-877e7c72b88d org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 10:56:44,569 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.79ms] +2026-09-09 10:56:44,572 INFO app.crud.validator_config created validator config id=03045a2f-54bb-4eae-a7ea-7342a5a36b3c org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 10:56:44,572 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.38ms] +2026-09-09 10:56:44,575 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.00ms] +2026-09-09 10:56:44,580 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [1.19ms] +2026-09-09 10:56:44,586 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.09ms] +2026-09-09 10:56:44,594 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.13ms] +2026-09-09 10:56:44,594 INFO http_request_logger GET /api/v1/guardrails/validators/configs/caae064f-5ed1-492a-916e-2c9469665db8/ - 307 [0.10ms] +2026-09-09 10:56:44,596 INFO http_request_logger GET /api/v1/guardrails/validators/configs/caae064f-5ed1-492a-916e-2c9469665db8 - 200 [1.76ms] +2026-09-09 10:56:44,600 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1dfc1a2b-22f1-4aac-97ab-5c4c64e8f392/ - 307 [0.09ms] +2026-09-09 10:56:44,603 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1dfc1a2b-22f1-4aac-97ab-5c4c64e8f392 - 404 [1.94ms] +2026-09-09 10:56:44,606 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-09 10:56:44,607 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.71ms] +2026-09-09 10:56:44,615 INFO app.crud.validator_config created validator config id=30cc570f-9af2-4843-aa78-3fbdfa134d9a org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 10:56:44,615 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.15ms] +2026-09-09 10:56:44,616 INFO http_request_logger GET /api/v1/guardrails/validators/configs/30cc570f-9af2-4843-aa78-3fbdfa134d9a/ - 307 [0.10ms] +2026-09-09 10:56:44,618 INFO http_request_logger GET /api/v1/guardrails/validators/configs/30cc570f-9af2-4843-aa78-3fbdfa134d9a - 404 [1.75ms] +2026-09-09 10:56:44,627 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.23ms] +2026-09-09 10:56:44,627 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/16a40a2a-0d76-453d-8dd7-b5335cf83f44/ - 307 [0.09ms] +2026-09-09 10:56:44,631 INFO app.crud.validator_config updated validator config id=16a40a2a-0d76-453d-8dd7-b5335cf83f44 +2026-09-09 10:56:44,632 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/16a40a2a-0d76-453d-8dd7-b5335cf83f44 - 200 [4.16ms] +2026-09-09 10:56:44,642 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.32ms] +2026-09-09 10:56:44,642 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f06a617a-7cd7-4877-8aee-8f6d02438933/ - 307 [0.09ms] +2026-09-09 10:56:44,646 INFO app.crud.validator_config updated validator config id=f06a617a-7cd7-4877-8aee-8f6d02438933 +2026-09-09 10:56:44,647 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f06a617a-7cd7-4877-8aee-8f6d02438933 - 200 [4.19ms] +2026-09-09 10:56:44,651 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/d0bcab61-4016-4fba-9dd0-b51adb1cfd26/ - 307 [0.10ms] +2026-09-09 10:56:44,653 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/d0bcab61-4016-4fba-9dd0-b51adb1cfd26 - 404 [1.92ms] +2026-09-09 10:56:44,662 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.06ms] +2026-09-09 10:56:44,662 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1f410a94-2077-49df-a1c0-8faba4e9ab0e/ - 307 [0.09ms] +2026-09-09 10:56:44,665 INFO app.crud.validator_config deleted validator config id=1f410a94-2077-49df-a1c0-8faba4e9ab0e +2026-09-09 10:56:44,665 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/1f410a94-2077-49df-a1c0-8faba4e9ab0e - 200 [2.77ms] +2026-09-09 10:56:44,666 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1f410a94-2077-49df-a1c0-8faba4e9ab0e/ - 307 [0.10ms] +2026-09-09 10:56:44,668 INFO http_request_logger GET /api/v1/guardrails/validators/configs/1f410a94-2077-49df-a1c0-8faba4e9ab0e - 404 [1.56ms] +2026-09-09 10:56:44,672 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f4a18433-2636-48dd-88d4-fc31789f02cf/ - 307 [0.23ms] +2026-09-09 10:56:44,674 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/f4a18433-2636-48dd-88d4-fc31789f02cf - 404 [1.50ms] +2026-09-09 10:56:44,682 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.18ms] +2026-09-09 10:56:44,683 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/62dec555-3a90-43b2-aa40-205a591ace8f/ - 307 [0.09ms] +2026-09-09 10:56:44,685 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/62dec555-3a90-43b2-aa40-205a591ace8f - 404 [1.61ms] +2026-09-09 10:56:44,685 INFO http_request_logger GET /api/v1/guardrails/validators/configs/62dec555-3a90-43b2-aa40-205a591ace8f/ - 307 [0.09ms] +2026-09-09 10:56:44,687 INFO http_request_logger GET /api/v1/guardrails/validators/configs/62dec555-3a90-43b2-aa40-205a591ace8f - 200 [1.89ms] +2026-09-09 10:56:44,807 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 10:56:44,808 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 10:56:44,876 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:46,162 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:46,173 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:47,714 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:47,724 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:48,790 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:48,797 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:49,969 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:49,978 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:51,424 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:51,437 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:52,438 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:52,440 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 10:56:53,745 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 10:56:53,896 INFO watchfiles.main 3 changes detected +2026-09-09 11:03:03,720 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [52.39ms] +2026-09-09 11:03:04,440 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 11:03:04,440 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 11:03:04,447 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:03:04,447 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:03:04,447 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 11:03:04,448 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 11:03:04,449 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 11:03:04,450 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 11:03:04,450 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 11:03:04,450 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 11:03:04,450 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:03:04,450 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 11:03:04,450 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 11:03:04,451 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 11:03:04,451 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 11:03:04,451 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 11:03:04,451 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 11:03:04,451 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 11:03:04,494 INFO guardrails.execution request=dc3e0ffd-0243-4186-8f6f-610291ec1d73 starting guardrails execution (validators=['pii_remover', 'uli_slur_match']) input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' +2026-09-09 11:03:04,505 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 11:03:04,561 INFO guardrails.execution request=dc3e0ffd-0243-4186-8f6f-610291ec1d73 guardrails execution finished (passed=True) output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 11:03:04,570 INFO guardrails.execution request=dc3e0ffd-0243-4186-8f6f-610291ec1d73 step=1/2 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T11:03:04.500179 end=2026-09-09T11:03:04.557982 duration_ms=57 input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' output=' phone number is . He is a doctor. motherfucker' +2026-09-09 11:03:04,578 INFO guardrails.execution request=dc3e0ffd-0243-4186-8f6f-610291ec1d73 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:03:04.558015 end=2026-09-09T11:03:04.560527 duration_ms=2 input=' phone number is . He is a doctor. motherfucker' output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 11:03:04,582 INFO http_request_logger POST /api/v1/guardrails/ - 200 [849.92ms] +2026-09-09 11:03:09,242 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [6.85ms] +2026-09-09 11:03:09,270 INFO guardrails.execution request=f0fc2f32-ca1f-4bbc-81f8-475ab7c79233 starting guardrails execution (validators=['gender_assumption_bias', 'answer_relevance_custom_llm']) input='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' +2026-09-09 11:03:09,280 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:03:10,423 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:03:10,426 INFO guardrails.execution request=f0fc2f32-ca1f-4bbc-81f8-475ab7c79233 guardrails execution finished (passed=True) output='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' +2026-09-09 11:03:10,429 INFO guardrails.execution request=f0fc2f32-ca1f-4bbc-81f8-475ab7c79233 step=1/2 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-09T11:03:09.271351 end=2026-09-09T11:03:09.272146 duration_ms=0 input='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' output='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' +2026-09-09 11:03:10,432 INFO guardrails.execution request=f0fc2f32-ca1f-4bbc-81f8-475ab7c79233 step=2/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:03:09.272152 end=2026-09-09T11:03:10.425327 duration_ms=1153 input='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' output='Please avoid sharing private phone numbers or using derogatory language. I can help you write a respectful message about…' +2026-09-09 11:03:10,436 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1185.68ms] +2026-09-09 11:06:07,907 INFO watchfiles.main 3 changes detected +2026-09-09 11:06:07,911 WARNING uvicorn.error WatchFiles detected changes in 'app/tests/test_guardrails_api_integration.py'. Reloading... +2026-09-09 11:06:07,953 INFO uvicorn.error Shutting down +2026-09-09 11:06:08,058 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:06:08,059 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:06:08,060 INFO uvicorn.error Finished server process [49518] +2026-09-09 11:06:08,482 INFO watchfiles.main 1 change detected +2026-09-09 11:06:12,984 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:06:13,780 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:06:13,781 INFO uvicorn.error Started server process [50297] +2026-09-09 11:06:13,782 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:06:13,782 INFO uvicorn.error Application startup complete. +2026-09-09 11:07:48,583 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:07:49,485 INFO guardrails.execution request=494003a5-6c54-4545-8430-e0c8151188a5 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:07:49,487 INFO guardrails.execution request=494003a5-6c54-4545-8430-e0c8151188a5 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:07:49,490 INFO guardrails.execution request=494003a5-6c54-4545-8430-e0c8151188a5 step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.486224 end=2026-09-09T11:07:49.486377 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:07:49,490 INFO watchfiles.main 3 changes detected +2026-09-09 11:07:49,496 INFO http_request_logger POST /api/v1/guardrails/ - 200 [48.26ms] +2026-09-09 11:07:49,516 INFO guardrails.execution request=9ee77b1d-f572-4aeb-b5bd-ee1b21fe6bf7 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:07:49,519 INFO guardrails.execution request=9ee77b1d-f572-4aeb-b5bd-ee1b21fe6bf7 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:07:49,526 INFO guardrails.execution request=9ee77b1d-f572-4aeb-b5bd-ee1b21fe6bf7 step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T11:07:49.517722 end=2026-09-09T11:07:49.517842 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:07:49,548 INFO http_request_logger POST /api/v1/guardrails/ - 200 [46.12ms] +2026-09-09 11:07:49,583 INFO guardrails.execution request=37b6a5ef-50f9-4564-b18f-82e62f8c01e1 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 11:07:49,587 INFO guardrails.execution request=37b6a5ef-50f9-4564-b18f-82e62f8c01e1 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:07:49,590 INFO guardrails.execution request=37b6a5ef-50f9-4564-b18f-82e62f8c01e1 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.584246 end=2026-09-09T11:07:49.584393 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:07:49,592 INFO guardrails.execution request=37b6a5ef-50f9-4564-b18f-82e62f8c01e1 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:07:49.584401 end=2026-09-09T11:07:49.586493 duration_ms=2 input='this contains b' output='this contains b' +2026-09-09 11:07:49,596 INFO http_request_logger POST /api/v1/guardrails/ - 200 [39.64ms] +2026-09-09 11:07:49,613 INFO guardrails.execution request=4b7346a9-ff29-4efc-96a3-21a6d9a740ed starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 11:07:49,614 INFO guardrails.execution request=4b7346a9-ff29-4efc-96a3-21a6d9a740ed guardrails execution finished (passed=True) output='this is clean' +2026-09-09 11:07:49,617 INFO guardrails.execution request=4b7346a9-ff29-4efc-96a3-21a6d9a740ed step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:07:49.613880 end=2026-09-09T11:07:49.613957 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 11:07:49,621 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.14ms] +2026-09-09 11:07:49,637 INFO guardrails.execution request=fd48af5e-74e6-435d-b7ce-3b1c884b1d60 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:07:49,639 INFO guardrails.execution request=fd48af5e-74e6-435d-b7ce-3b1c884b1d60 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:07:49,642 INFO guardrails.execution request=fd48af5e-74e6-435d-b7ce-3b1c884b1d60 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.638626 end=2026-09-09T11:07:49.638951 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:07:49,645 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.08ms] +2026-09-09 11:07:49,663 INFO guardrails.execution request=c7cb932c-8a16-4117-8be2-1e2c21cd1729 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 11:07:49,665 INFO guardrails.execution request=c7cb932c-8a16-4117-8be2-1e2c21cd1729 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 11:07:49,667 INFO guardrails.execution request=c7cb932c-8a16-4117-8be2-1e2c21cd1729 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:07:49.663848 end=2026-09-09T11:07:49.664177 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 11:07:49,670 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.22ms] +2026-09-09 11:07:49,685 INFO guardrails.execution request=9744d207-2c53-477a-a54a-014c48213123 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 11:07:49,688 INFO guardrails.execution request=9744d207-2c53-477a-a54a-014c48213123 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:07:49,690 INFO guardrails.execution request=9744d207-2c53-477a-a54a-014c48213123 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.687020 end=2026-09-09T11:07:49.687566 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 11:07:49,692 INFO guardrails.execution request=9744d207-2c53-477a-a54a-014c48213123 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.687572 end=2026-09-09T11:07:49.687655 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:07:49,695 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.53ms] +2026-09-09 11:07:49,700 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.15ms] +2026-09-09 11:07:49,714 INFO guardrails.execution request=b7ef27ce-9661-4241-b0e7-9b507dfb53bc starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:07:49,715 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b7ef27ce-9661-4241-b0e7-9b507dfb53bc: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:07:49,719 INFO guardrails.execution request=b7ef27ce-9661-4241-b0e7-9b507dfb53bc step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.714662 end=2026-09-09T11:07:49.714989 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 11:07:49,721 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.98ms] +2026-09-09 11:07:49,737 INFO guardrails.execution request=966fce89-7d50-4e5f-9316-cc24e94ec711 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:07:49,738 INFO guardrails.execution request=966fce89-7d50-4e5f-9316-cc24e94ec711 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:07:49,741 INFO guardrails.execution request=966fce89-7d50-4e5f-9316-cc24e94ec711 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.737900 end=2026-09-09T11:07:49.738190 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:07:49,745 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.49ms] +2026-09-09 11:07:49,760 INFO guardrails.execution request=c315ab44-eb89-4a8a-a630-06d612998a83 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 11:07:49,763 INFO guardrails.execution request=c315ab44-eb89-4a8a-a630-06d612998a83 guardrails execution finished (passed=True) output='' +2026-09-09 11:07:49,765 INFO guardrails.execution request=c315ab44-eb89-4a8a-a630-06d612998a83 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.761228 end=2026-09-09T11:07:49.763028 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-09 11:07:49,768 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.35ms] +2026-09-09 11:07:49,782 INFO guardrails.execution request=d6d6eeac-89e4-45da-99ce-a8dfa388a8fb starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 11:07:49,784 INFO guardrails.execution request=d6d6eeac-89e4-45da-99ce-a8dfa388a8fb guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 11:07:49,787 INFO guardrails.execution request=d6d6eeac-89e4-45da-99ce-a8dfa388a8fb step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:07:49.782502 end=2026-09-09T11:07:49.783484 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 11:07:49,793 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.60ms] +2026-09-09 11:07:49,806 INFO guardrails.execution request=4730685d-966c-4615-918b-70a6876fcfe9 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 11:07:49,808 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4730685d-966c-4615-918b-70a6876fcfe9: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 11:07:49,811 INFO guardrails.execution request=4730685d-966c-4615-918b-70a6876fcfe9 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.807180 end=2026-09-09T11:07:49.808173 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 11:07:49,813 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.81ms] +2026-09-09 11:07:49,833 INFO guardrails.execution request=1723e060-64a8-4c79-b523-b348399d58ce starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 11:07:49,835 INFO guardrails.execution request=1723e060-64a8-4c79-b523-b348399d58ce guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:07:49,838 INFO guardrails.execution request=1723e060-64a8-4c79-b523-b348399d58ce step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:49.833863 end=2026-09-09T11:07:49.834685 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:07:49,841 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.29ms] +2026-09-09 11:07:49,879 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 88829c5b-ed97-480e-9c6c-bc58d6daf0da: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:07:49,892 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.93ms] +2026-09-09 11:07:50,555 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 11:07:52,409 INFO guardrails.execution request=c429c182-faf0-4ff8-8322-333d6c5ea989 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:07:52,502 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log c429c182-faf0-4ff8-8322-333d6c5ea989: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:07:52,510 INFO guardrails.execution request=c429c182-faf0-4ff8-8322-333d6c5ea989 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:52.410621 end=2026-09-09T11:07:52.502086 duration_ms=91 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:07:52,513 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2609.96ms] +2026-09-09 11:07:54,595 INFO guardrails.execution request=5c4ff2a8-23b3-4a09-ab4b-8427769df880 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:07:54,610 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5c4ff2a8-23b3-4a09-ab4b-8427769df880: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:07:54,619 INFO guardrails.execution request=5c4ff2a8-23b3-4a09-ab4b-8427769df880 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:54.596371 end=2026-09-09T11:07:54.610503 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:07:54,622 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2102.71ms] +2026-09-09 11:07:56,785 INFO guardrails.execution request=738cdb63-a6f1-4b36-932f-b4a07f096b23 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 11:07:56,811 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 738cdb63-a6f1-4b36-932f-b4a07f096b23: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 11:07:56,817 INFO guardrails.execution request=738cdb63-a6f1-4b36-932f-b4a07f096b23 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:56.786283 end=2026-09-09T11:07:56.811498 duration_ms=25 input='Explicit sexual content goes here.' output=None +2026-09-09 11:07:56,820 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2193.46ms] +2026-09-09 11:07:56,842 INFO guardrails.execution request=1b2e1485-97c7-4560-b64d-6705e2db16b7 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 11:07:56,845 INFO guardrails.execution request=1b2e1485-97c7-4560-b64d-6705e2db16b7 guardrails execution finished (passed=True) output='' +2026-09-09 11:07:56,848 INFO guardrails.execution request=1b2e1485-97c7-4560-b64d-6705e2db16b7 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:56.842858 end=2026-09-09T11:07:56.844639 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-09 11:07:56,851 INFO guardrails.execution request=1b2e1485-97c7-4560-b64d-6705e2db16b7 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:07:56.844657 end=2026-09-09T11:07:56.844860 duration_ms=0 input='' output='' +2026-09-09 11:07:56,855 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.15ms] +2026-09-09 11:07:56,869 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6e868bd4-f246-4cd0-ab93-441c5896171a: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:07:56,872 INFO http_request_logger POST /api/v1/guardrails/ - 200 [11.86ms] +2026-09-09 11:07:58,925 INFO guardrails.execution request=7a80bf4b-2a53-4c98-92f0-8bf1a0b9c318 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 11:07:58,927 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 7a80bf4b-2a53-4c98-92f0-8bf1a0b9c318: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 11:07:58,932 INFO guardrails.execution request=7a80bf4b-2a53-4c98-92f0-8bf1a0b9c318 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:07:58.925709 end=2026-09-09T11:07:58.926945 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 11:07:58,935 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2057.21ms] +2026-09-09 11:08:01,163 INFO guardrails.execution request=e429d51b-d858-473d-be72-f90a076168da starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 11:08:01,165 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e429d51b-d858-473d-be72-f90a076168da: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:08:01,170 INFO guardrails.execution request=e429d51b-d858-473d-be72-f90a076168da step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:01.164493 end=2026-09-09T11:08:01.164950 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 11:08:01,173 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2232.21ms] +2026-09-09 11:08:01,190 INFO guardrails.execution request=b45a87a3-039f-40aa-ae85-cfae4ee1833e starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 11:08:01,193 INFO guardrails.execution request=b45a87a3-039f-40aa-ae85-cfae4ee1833e guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 11:08:01,196 INFO guardrails.execution request=b45a87a3-039f-40aa-ae85-cfae4ee1833e step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:01.191030 end=2026-09-09T11:08:01.192171 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:08:01,200 INFO guardrails.execution request=b45a87a3-039f-40aa-ae85-cfae4ee1833e step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:01.192178 end=2026-09-09T11:08:01.192277 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:08:01,204 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.49ms] +2026-09-09 11:08:01,226 INFO guardrails.execution request=bf848b5a-074e-4f0b-b107-2af9978a6b22 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 11:08:01,229 INFO guardrails.execution request=bf848b5a-074e-4f0b-b107-2af9978a6b22 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 11:08:01,233 INFO guardrails.execution request=bf848b5a-074e-4f0b-b107-2af9978a6b22 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:01.227434 end=2026-09-09T11:08:01.227741 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:01,236 INFO guardrails.execution request=bf848b5a-074e-4f0b-b107-2af9978a6b22 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:01.227745 end=2026-09-09T11:08:01.228728 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:01,238 INFO guardrails.execution request=bf848b5a-074e-4f0b-b107-2af9978a6b22 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:01.228733 end=2026-09-09T11:08:01.228808 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:01,242 INFO http_request_logger POST /api/v1/guardrails/ - 200 [31.60ms] +2026-09-09 11:08:01,351 INFO watchfiles.main 3 changes detected +2026-09-09 11:08:22,111 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:08:22,886 INFO guardrails.execution request=d01f6b16-5ef6-4c76-b83c-b3ee56420a2f starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,888 INFO guardrails.execution request=d01f6b16-5ef6-4c76-b83c-b3ee56420a2f guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,890 INFO guardrails.execution request=d01f6b16-5ef6-4c76-b83c-b3ee56420a2f step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:22.887094 end=2026-09-09T11:08:22.887208 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,895 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.70ms] +2026-09-09 11:08:22,909 INFO guardrails.execution request=5cf1acf5-c43c-4ea6-87e5-671a2ac39324 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 11:08:22,910 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 5cf1acf5-c43c-4ea6-87e5-671a2ac39324: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 11:08:22,914 INFO guardrails.execution request=5cf1acf5-c43c-4ea6-87e5-671a2ac39324 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:08:22.910243 end=2026-09-09T11:08:22.910324 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 11:08:22,915 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.98ms] +2026-09-09 11:08:22,929 INFO guardrails.execution request=941765f1-f885-4be4-81d0-6323bfadf7cd starting guardrails execution (validators=['answer_relevance_custom_llm']) input='What are the common symptoms of diabetes?' +2026-09-09 11:08:22,930 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 941765f1-f885-4be4-81d0-6323bfadf7cd: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 11:08:22,932 INFO guardrails.execution request=941765f1-f885-4be4-81d0-6323bfadf7cd step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:08:22.930096 end=2026-09-09T11:08:22.930163 duration_ms=0 input='What are the common symptoms of diabetes?' output=None +2026-09-09 11:08:22,934 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.40ms] +2026-09-09 11:08:22,950 INFO guardrails.execution request=c3d9a801-6951-4a6d-aefc-f0ce17a307c4 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,951 INFO guardrails.execution request=c3d9a801-6951-4a6d-aefc-f0ce17a307c4 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,953 INFO guardrails.execution request=c3d9a801-6951-4a6d-aefc-f0ce17a307c4 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:22.950908 end=2026-09-09T11:08:22.950978 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:22,956 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.83ms] +2026-09-09 11:08:22,969 INFO guardrails.execution request=e44cc52b-367d-4111-a803-d36959582df5 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 11:08:22,970 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log e44cc52b-367d-4111-a803-d36959582df5: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 11:08:22,972 INFO guardrails.execution request=e44cc52b-367d-4111-a803-d36959582df5 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:08:22.970533 end=2026-09-09T11:08:22.970627 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 11:08:22,974 INFO http_request_logger POST /api/v1/guardrails/ - 200 [14.30ms] +2026-09-09 11:08:22,989 INFO guardrails.execution request=711212b6-ad91-4153-9d25-7b181f6944d6 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 11:08:22,990 INFO guardrails.execution request=711212b6-ad91-4153-9d25-7b181f6944d6 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 11:08:22,992 INFO guardrails.execution request=711212b6-ad91-4153-9d25-7b181f6944d6 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:22.989798 end=2026-09-09T11:08:22.989876 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 11:08:22,994 INFO guardrails.execution request=711212b6-ad91-4153-9d25-7b181f6944d6 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:22.989881 end=2026-09-09T11:08:22.989979 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 11:08:22,997 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.17ms] +2026-09-09 11:08:23,011 INFO guardrails.execution request=dd1b1fb5-e852-47c1-a90e-49a9cf8ac98f starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 11:08:23,015 INFO guardrails.execution request=dd1b1fb5-e852-47c1-a90e-49a9cf8ac98f guardrails execution finished (passed=True) output='' +2026-09-09 11:08:23,016 INFO guardrails.execution request=dd1b1fb5-e852-47c1-a90e-49a9cf8ac98f step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:23.013219 end=2026-09-09T11:08:23.013292 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 11:08:23,018 INFO guardrails.execution request=dd1b1fb5-e852-47c1-a90e-49a9cf8ac98f step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.013296 end=2026-09-09T11:08:23.014647 duration_ms=1 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 11:08:23,020 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.74ms] +2026-09-09 11:08:23,042 INFO guardrails.execution request=205e5a0e-fd52-4e56-bb2c-06b669f0a02f starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 11:08:23,045 INFO guardrails.execution request=205e5a0e-fd52-4e56-bb2c-06b669f0a02f guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 11:08:23,051 INFO guardrails.execution request=205e5a0e-fd52-4e56-bb2c-06b669f0a02f step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:23.042818 end=2026-09-09T11:08:23.042882 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 11:08:23,053 INFO guardrails.execution request=205e5a0e-fd52-4e56-bb2c-06b669f0a02f step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.042886 end=2026-09-09T11:08:23.045092 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 11:08:23,056 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.86ms] +2026-09-09 11:08:23,069 INFO guardrails.execution request=6dca3c93-1b4c-4f8d-bf65-32e7e58b2b3b starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 11:08:23,070 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 6dca3c93-1b4c-4f8d-bf65-32e7e58b2b3b: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 11:08:23,072 INFO guardrails.execution request=6dca3c93-1b4c-4f8d-bf65-32e7e58b2b3b step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:23.069462 end=2026-09-09T11:08:23.069529 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 11:08:23,073 INFO guardrails.execution request=6dca3c93-1b4c-4f8d-bf65-32e7e58b2b3b step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.069534 end=2026-09-09T11:08:23.070461 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 11:08:23,076 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.15ms] +2026-09-09 11:08:23,092 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,095 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,101 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:23.092591 end=2026-09-09T11:08:23.092658 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,104 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.092662 end=2026-09-09T11:08:23.092719 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,105 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.092722 end=2026-09-09T11:08:23.093605 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,106 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.093610 end=2026-09-09T11:08:23.094167 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,107 INFO guardrails.execution request=31222b13-94a0-49f8-b874-cd91245adefc step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.094170 end=2026-09-09T11:08:23.094772 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:08:23,110 INFO http_request_logger POST /api/v1/guardrails/ - 200 [29.75ms] +2026-09-09 11:08:23,129 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:08:23,132 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 11:08:23,137 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:08:23.129855 end=2026-09-09T11:08:23.129924 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:08:23,140 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.129929 end=2026-09-09T11:08:23.130807 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:08:23,141 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.130812 end=2026-09-09T11:08:23.131310 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 11:08:23,143 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.131316 end=2026-09-09T11:08:23.131381 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 11:08:23,145 INFO guardrails.execution request=82b1ab65-8dea-452c-acce-b3f409e5eec1 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.131384 end=2026-09-09T11:08:23.131997 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 11:08:23,148 INFO http_request_logger POST /api/v1/guardrails/ - 200 [34.21ms] +2026-09-09 11:08:23,168 INFO app.crud.ban_list created ban list id=66d61ba7-8799-4619-b502-bd18586174cf org=1 project=1 +2026-09-09 11:08:23,169 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [7.01ms] +2026-09-09 11:08:23,173 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.82ms] +2026-09-09 11:08:23,176 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.75ms] +2026-09-09 11:08:23,181 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.77ms] +2026-09-09 11:08:23,185 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.70ms] +2026-09-09 11:08:23,189 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.76ms] +2026-09-09 11:08:23,201 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.66ms] +2026-09-09 11:08:23,210 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.77ms] +2026-09-09 11:08:23,216 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.82ms] +2026-09-09 11:08:23,225 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.39ms] +2026-09-09 11:08:23,234 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.09ms] +2026-09-09 11:08:23,237 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.39ms] +2026-09-09 11:08:23,243 INFO app.crud.ban_list created ban list id=bc119865-2782-4578-b455-6942b9b33729 org=1 project=1 +2026-09-09 11:08:23,243 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.14ms] +2026-09-09 11:08:23,244 INFO http_request_logger GET /api/v1/guardrails/ban_lists/bc119865-2782-4578-b455-6942b9b33729/ - 307 [0.10ms] +2026-09-09 11:08:23,246 INFO http_request_logger GET /api/v1/guardrails/ban_lists/bc119865-2782-4578-b455-6942b9b33729 - 200 [2.10ms] +2026-09-09 11:08:23,258 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.02ms] +2026-09-09 11:08:23,258 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ab287889-e5fc-49f0-97aa-b3131f1fe32c/ - 307 [0.11ms] +2026-09-09 11:08:23,261 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ab287889-e5fc-49f0-97aa-b3131f1fe32c - 200 [2.58ms] +2026-09-09 11:08:23,267 INFO http_request_logger GET /api/v1/guardrails/ban_lists/fa34a4e5-35b8-417e-90bf-0ae99eb0e6c9/ - 307 [0.10ms] +2026-09-09 11:08:23,269 INFO http_request_logger GET /api/v1/guardrails/ban_lists/fa34a4e5-35b8-417e-90bf-0ae99eb0e6c9 - 404 [2.33ms] +2026-09-09 11:08:23,278 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.42ms] +2026-09-09 11:08:23,279 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ed579965-262f-4be7-96e7-4076a90ec32b/ - 307 [0.09ms] +2026-09-09 11:08:23,281 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ed579965-262f-4be7-96e7-4076a90ec32b - 403 [1.68ms] +2026-09-09 11:08:23,290 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.18ms] +2026-09-09 11:08:23,290 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/24fa26f5-9ded-4cfa-a961-c1aeeebff8b6/ - 307 [0.08ms] +2026-09-09 11:08:23,295 INFO app.crud.ban_list updated ban list id=24fa26f5-9ded-4cfa-a961-c1aeeebff8b6 +2026-09-09 11:08:23,296 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/24fa26f5-9ded-4cfa-a961-c1aeeebff8b6 - 200 [5.11ms] +2026-09-09 11:08:23,306 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.51ms] +2026-09-09 11:08:23,307 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/06bccb28-dfee-44f6-ad77-827c33b4fb65/ - 307 [0.09ms] +2026-09-09 11:08:23,311 INFO app.crud.ban_list updated ban list id=06bccb28-dfee-44f6-ad77-827c33b4fb65 +2026-09-09 11:08:23,312 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/06bccb28-dfee-44f6-ad77-827c33b4fb65 - 200 [5.08ms] +2026-09-09 11:08:23,317 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/c9f14d8c-b9e6-44d2-91d2-48c0e4ae2fce/ - 307 [0.09ms] +2026-09-09 11:08:23,319 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/c9f14d8c-b9e6-44d2-91d2-48c0e4ae2fce - 404 [2.04ms] +2026-09-09 11:08:23,326 INFO app.crud.ban_list created ban list id=7da289a1-c758-47cd-a3f6-45dbd8620044 org=1 project=1 +2026-09-09 11:08:23,326 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.66ms] +2026-09-09 11:08:23,327 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/7da289a1-c758-47cd-a3f6-45dbd8620044/ - 307 [0.09ms] +2026-09-09 11:08:23,329 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/7da289a1-c758-47cd-a3f6-45dbd8620044 - 403 [1.89ms] +2026-09-09 11:08:23,338 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.15ms] +2026-09-09 11:08:23,338 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/e24d4209-48d3-41fa-a726-342761acd9dd/ - 307 [0.08ms] +2026-09-09 11:08:23,341 INFO app.crud.ban_list deleted ban list id=e24d4209-48d3-41fa-a726-342761acd9dd +2026-09-09 11:08:23,341 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/e24d4209-48d3-41fa-a726-342761acd9dd - 200 [2.71ms] +2026-09-09 11:08:23,346 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b1bf8940-45e9-4bce-8ccb-0ab6b5612e24/ - 307 [0.10ms] +2026-09-09 11:08:23,348 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/b1bf8940-45e9-4bce-8ccb-0ab6b5612e24 - 404 [1.82ms] +2026-09-09 11:08:23,357 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.10ms] +2026-09-09 11:08:23,357 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/828c0677-6b7f-4fef-ade0-5a10cbcdcb07/ - 307 [0.08ms] +2026-09-09 11:08:23,359 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/828c0677-6b7f-4fef-ade0-5a10cbcdcb07 - 403 [1.38ms] +2026-09-09 11:08:23,365 INFO app.crud.ban_list created ban list id=dc5ca586-d2d5-4374-8a1d-1eeaf175d9e4 org=1 project=1 +2026-09-09 11:08:23,365 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [2.66ms] +2026-09-09 11:08:23,366 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/dc5ca586-d2d5-4374-8a1d-1eeaf175d9e4/ - 307 [0.08ms] +2026-09-09 11:08:23,367 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/dc5ca586-d2d5-4374-8a1d-1eeaf175d9e4 - 403 [1.26ms] +2026-09-09 11:08:23,457 INFO guardrails.execution request=e2f4486d-101d-41fb-9014-cf46ad11dcdb starting guardrails execution (validators=[]) input='hello world' +2026-09-09 11:08:23,457 INFO guardrails.execution request=e2f4486d-101d-41fb-9014-cf46ad11dcdb guardrails execution finished (passed=True) output='clean text' +2026-09-09 11:08:23,460 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.56ms] +2026-09-09 11:08:23,468 INFO guardrails.execution request=09520010-7dab-4eef-8e70-0e8b8a1adc6f starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 11:08:23,468 INFO guardrails.execution request=09520010-7dab-4eef-8e70-0e8b8a1adc6f guardrails execution finished (passed=False) output=None +2026-09-09 11:08:23,470 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.55ms] +2026-09-09 11:08:23,477 INFO guardrails.execution request=bc788274-ad26-4fbd-8b60-4336dbc15304 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 11:08:23,477 INFO guardrails.execution request=bc788274-ad26-4fbd-8b60-4336dbc15304 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 11:08:23,479 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.05ms] +2026-09-09 11:08:23,485 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 19f4d695-018f-4275-b6cf-917613195b6b: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 11:08:23,488 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.33ms] +2026-09-09 11:08:23,501 INFO guardrails.execution request=e9a7032c-fe3b-486a-a08f-97f646e8feec starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:08:23,503 INFO guardrails.execution request=e9a7032c-fe3b-486a-a08f-97f646e8feec guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:08:23,505 INFO guardrails.execution request=e9a7032c-fe3b-486a-a08f-97f646e8feec step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.502219 end=2026-09-09T11:08:23.502328 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:08:23,509 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.36ms] +2026-09-09 11:08:23,523 INFO guardrails.execution request=0134b343-35a4-4b43-8f19-35b8db017873 starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:08:23,524 INFO guardrails.execution request=0134b343-35a4-4b43-8f19-35b8db017873 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:08:23,526 INFO guardrails.execution request=0134b343-35a4-4b43-8f19-35b8db017873 step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T11:08:23.523299 end=2026-09-09T11:08:23.523379 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:08:23,529 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.27ms] +2026-09-09 11:08:23,548 INFO guardrails.execution request=668f1110-6bef-4629-9a88-69f8348b46e9 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 11:08:23,550 INFO guardrails.execution request=668f1110-6bef-4629-9a88-69f8348b46e9 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:08:23,553 INFO guardrails.execution request=668f1110-6bef-4629-9a88-69f8348b46e9 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.549272 end=2026-09-09T11:08:23.549455 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:08:23,555 INFO guardrails.execution request=668f1110-6bef-4629-9a88-69f8348b46e9 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.549461 end=2026-09-09T11:08:23.549684 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 11:08:23,559 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.74ms] +2026-09-09 11:08:23,573 INFO guardrails.execution request=ca7b2d63-0cd7-4dca-8014-000eca674e89 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 11:08:23,574 INFO guardrails.execution request=ca7b2d63-0cd7-4dca-8014-000eca674e89 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 11:08:23,576 INFO guardrails.execution request=ca7b2d63-0cd7-4dca-8014-000eca674e89 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.573750 end=2026-09-09T11:08:23.573810 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 11:08:23,580 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.69ms] +2026-09-09 11:08:23,594 INFO guardrails.execution request=4e8cdba4-1823-4965-a2e6-51b98b4b92b0 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:08:23,596 INFO guardrails.execution request=4e8cdba4-1823-4965-a2e6-51b98b4b92b0 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:08:23,598 INFO guardrails.execution request=4e8cdba4-1823-4965-a2e6-51b98b4b92b0 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.595158 end=2026-09-09T11:08:23.595430 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:08:23,602 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.37ms] +2026-09-09 11:08:23,621 INFO guardrails.execution request=f60c5f3c-c24c-4d38-b88a-a1ef2daa2dd5 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 11:08:23,623 INFO guardrails.execution request=f60c5f3c-c24c-4d38-b88a-a1ef2daa2dd5 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 11:08:23,627 INFO guardrails.execution request=f60c5f3c-c24c-4d38-b88a-a1ef2daa2dd5 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.621974 end=2026-09-09T11:08:23.622301 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 11:08:23,632 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.60ms] +2026-09-09 11:08:23,648 INFO guardrails.execution request=15529fca-e03d-424c-b247-4c6621e4afb0 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 11:08:23,650 INFO guardrails.execution request=15529fca-e03d-424c-b247-4c6621e4afb0 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:08:23,654 INFO guardrails.execution request=15529fca-e03d-424c-b247-4c6621e4afb0 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.649445 end=2026-09-09T11:08:23.649949 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 11:08:23,658 INFO guardrails.execution request=15529fca-e03d-424c-b247-4c6621e4afb0 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.649955 end=2026-09-09T11:08:23.650042 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:08:23,662 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.66ms] +2026-09-09 11:08:23,668 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.34ms] +2026-09-09 11:08:23,683 INFO guardrails.execution request=4edf1001-6438-4d32-aa3c-4739d265ea96 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:08:23,684 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4edf1001-6438-4d32-aa3c-4739d265ea96: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:08:23,688 INFO guardrails.execution request=4edf1001-6438-4d32-aa3c-4739d265ea96 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.683863 end=2026-09-09T11:08:23.684133 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 11:08:23,691 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.83ms] +2026-09-09 11:08:23,708 INFO guardrails.execution request=3dc2b58c-e8c0-4bd0-a170-cd16655222f5 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:08:23,710 INFO guardrails.execution request=3dc2b58c-e8c0-4bd0-a170-cd16655222f5 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:08:23,714 INFO guardrails.execution request=3dc2b58c-e8c0-4bd0-a170-cd16655222f5 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.709036 end=2026-09-09T11:08:23.709299 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:08:23,718 INFO http_request_logger POST /api/v1/guardrails/ - 200 [21.74ms] +2026-09-09 11:08:23,734 INFO guardrails.execution request=a72b5f74-a99f-492b-a6b0-80236710496a starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 11:08:23,736 INFO guardrails.execution request=a72b5f74-a99f-492b-a6b0-80236710496a guardrails execution finished (passed=True) output='' +2026-09-09 11:08:23,740 INFO guardrails.execution request=a72b5f74-a99f-492b-a6b0-80236710496a step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.734975 end=2026-09-09T11:08:23.736019 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-09 11:08:23,743 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.67ms] +2026-09-09 11:08:23,760 INFO guardrails.execution request=d1339e05-0336-43ae-85bc-14a9c7abd670 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 11:08:23,761 INFO guardrails.execution request=d1339e05-0336-43ae-85bc-14a9c7abd670 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 11:08:23,764 INFO guardrails.execution request=d1339e05-0336-43ae-85bc-14a9c7abd670 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:23.760305 end=2026-09-09T11:08:23.761180 duration_ms=0 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 11:08:23,768 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.43ms] +2026-09-09 11:08:23,784 INFO guardrails.execution request=a6a8ed65-10a4-47e7-88ae-d2f1bbafd536 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 11:08:23,785 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a6a8ed65-10a4-47e7-88ae-d2f1bbafd536: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 11:08:23,789 INFO guardrails.execution request=a6a8ed65-10a4-47e7-88ae-d2f1bbafd536 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.784797 end=2026-09-09T11:08:23.785698 duration_ms=0 input='What the fuck is going on?' output=None +2026-09-09 11:08:23,792 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.38ms] +2026-09-09 11:08:23,808 INFO guardrails.execution request=eaceb432-f03a-40d0-9c73-e0998d961769 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 11:08:23,810 INFO guardrails.execution request=eaceb432-f03a-40d0-9c73-e0998d961769 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:08:23,813 INFO guardrails.execution request=eaceb432-f03a-40d0-9c73-e0998d961769 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:23.808804 end=2026-09-09T11:08:23.809623 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:08:23,817 INFO http_request_logger POST /api/v1/guardrails/ - 200 [20.39ms] +2026-09-09 11:08:23,825 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 708ae173-647b-4897-9cb3-8e544b44013a: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:08:23,829 INFO http_request_logger POST /api/v1/guardrails/ - 200 [7.37ms] +2026-09-09 11:08:24,436 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 11:08:26,436 INFO guardrails.execution request=d47f3440-7f20-40dc-90ab-814d43ac9abf starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:08:26,524 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d47f3440-7f20-40dc-90ab-814d43ac9abf: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:08:26,531 INFO guardrails.execution request=d47f3440-7f20-40dc-90ab-814d43ac9abf step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:26.437514 end=2026-09-09T11:08:26.524664 duration_ms=87 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:08:26,535 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2702.03ms] +2026-09-09 11:08:28,580 INFO guardrails.execution request=8a1a457d-6cd4-4a06-b8d3-0a8365232b9d starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:08:28,595 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 8a1a457d-6cd4-4a06-b8d3-0a8365232b9d: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:08:28,598 INFO guardrails.execution request=8a1a457d-6cd4-4a06-b8d3-0a8365232b9d step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:28.581286 end=2026-09-09T11:08:28.595287 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:08:28,601 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2060.65ms] +2026-09-09 11:08:30,664 INFO guardrails.execution request=2c11ea6d-e922-47b3-b552-7ff2412f9913 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 11:08:30,689 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 2c11ea6d-e922-47b3-b552-7ff2412f9913: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 11:08:30,695 INFO guardrails.execution request=2c11ea6d-e922-47b3-b552-7ff2412f9913 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:30.665787 end=2026-09-09T11:08:30.689028 duration_ms=23 input='Explicit sexual content goes here.' output=None +2026-09-09 11:08:30,698 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2093.43ms] +2026-09-09 11:08:30,721 INFO guardrails.execution request=23a62429-5316-4ca4-9c49-b8da79e5444d starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 11:08:30,724 INFO guardrails.execution request=23a62429-5316-4ca4-9c49-b8da79e5444d guardrails execution finished (passed=True) output='' +2026-09-09 11:08:30,726 INFO guardrails.execution request=23a62429-5316-4ca4-9c49-b8da79e5444d step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:30.722098 end=2026-09-09T11:08:30.723533 duration_ms=1 input='This fucking chakki should leave.' output='' +2026-09-09 11:08:30,727 INFO guardrails.execution request=23a62429-5316-4ca4-9c49-b8da79e5444d step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:30.723546 end=2026-09-09T11:08:30.723744 duration_ms=0 input='' output='' +2026-09-09 11:08:30,730 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.80ms] +2026-09-09 11:08:30,737 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 0265fb21-618a-4f8c-a7f7-56579d474f0f: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 40, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:08:30,740 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.19ms] +2026-09-09 11:08:32,855 INFO guardrails.execution request=feb55fa7-b945-4236-be7d-b81c777fb5d0 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 11:08:32,857 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log feb55fa7-b945-4236-be7d-b81c777fb5d0: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 11:08:32,865 INFO guardrails.execution request=feb55fa7-b945-4236-be7d-b81c777fb5d0 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:32.856034 end=2026-09-09T11:08:32.857387 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 11:08:32,870 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2124.36ms] +2026-09-09 11:08:35,046 INFO guardrails.execution request=ce624867-2cee-46c8-9eb0-c0cf06af2c86 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 11:08:35,047 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ce624867-2cee-46c8-9eb0-c0cf06af2c86: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:08:35,051 INFO guardrails.execution request=ce624867-2cee-46c8-9eb0-c0cf06af2c86 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:35.047103 end=2026-09-09T11:08:35.047564 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 11:08:35,054 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2178.79ms] +2026-09-09 11:08:35,070 INFO guardrails.execution request=1f0b7bbb-12c9-4e3f-96d4-dafd93526fd6 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 11:08:35,073 INFO guardrails.execution request=1f0b7bbb-12c9-4e3f-96d4-dafd93526fd6 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 11:08:35,076 INFO guardrails.execution request=1f0b7bbb-12c9-4e3f-96d4-dafd93526fd6 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.070838 end=2026-09-09T11:08:35.072159 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:08:35,078 INFO guardrails.execution request=1f0b7bbb-12c9-4e3f-96d4-dafd93526fd6 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.072165 end=2026-09-09T11:08:35.072258 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:08:35,082 INFO http_request_logger POST /api/v1/guardrails/ - 200 [23.07ms] +2026-09-09 11:08:35,104 INFO guardrails.execution request=2bfe58e5-a664-4367-8da0-fdec7b6e783e starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 11:08:35,107 INFO guardrails.execution request=2bfe58e5-a664-4367-8da0-fdec7b6e783e guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 11:08:35,111 INFO guardrails.execution request=2bfe58e5-a664-4367-8da0-fdec7b6e783e step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.104954 end=2026-09-09T11:08:35.105298 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:35,114 INFO guardrails.execution request=2bfe58e5-a664-4367-8da0-fdec7b6e783e step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.105304 end=2026-09-09T11:08:35.106351 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:35,116 INFO guardrails.execution request=2bfe58e5-a664-4367-8da0-fdec7b6e783e step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.106357 end=2026-09-09T11:08:35.106431 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:08:35,120 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.53ms] +2026-09-09 11:08:35,138 INFO guardrails.execution request=bccc571c-6215-40cf-bef4-3c6509edf355 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 11:08:35,140 INFO guardrails.execution request=bccc571c-6215-40cf-bef4-3c6509edf355 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:08:35,143 INFO guardrails.execution request=bccc571c-6215-40cf-bef4-3c6509edf355 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:08:35.139263 end=2026-09-09T11:08:35.139374 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:08:35,145 INFO guardrails.execution request=bccc571c-6215-40cf-bef4-3c6509edf355 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:08:35.139380 end=2026-09-09T11:08:35.139573 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 11:08:35,149 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.65ms] +2026-09-09 11:08:35,162 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log 5709fe1c-028b-40b8-887c-51d52aeed6e3: 404: Ban list not found +2026-09-09 11:08:35,166 INFO http_request_logger POST /api/v1/guardrails/ - 404 [7.69ms] +2026-09-09 11:08:35,174 INFO guardrails.execution request=f74806f7-5796-42af-b1c1-9c8c89af6ed9 starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 11:08:35,175 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f74806f7-5796-42af-b1c1-9c8c89af6ed9: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 371, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 11:08:35,177 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.31ms] +2026-09-09 11:08:35,182 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 11:08:35,182 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.20ms] +2026-09-09 11:08:35,192 INFO app.crud.llm_prompt_config created llm prompt config id=6c79c5e4-4c21-4204-9fc4-102a53a31c0b org=1 project=1 +2026-09-09 11:08:35,193 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.93ms] +2026-09-09 11:08:35,199 INFO app.crud.llm_prompt_config created llm prompt config id=86382c0a-ef20-4169-9506-799505bfb258 org=1 project=1 +2026-09-09 11:08:35,199 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.85ms] +2026-09-09 11:08:35,205 INFO app.crud.llm_prompt_config created llm prompt config id=b49666b5-3018-48b1-8587-bb1086a1b6c4 org=1 project=1 +2026-09-09 11:08:35,205 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.99ms] +2026-09-09 11:08:35,210 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [1.42ms] +2026-09-09 11:08:35,214 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.83ms] +2026-09-09 11:08:35,218 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.81ms] +2026-09-09 11:08:35,221 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.79ms] +2026-09-09 11:08:35,227 INFO app.crud.llm_prompt_config created llm prompt config id=d3af9f1f-fc94-4fa7-98fd-10210fcbcf81 org=1 project=1 +2026-09-09 11:08:35,228 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.73ms] +2026-09-09 11:08:35,231 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.76ms] +2026-09-09 11:08:35,234 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.74ms] +2026-09-09 11:08:35,239 INFO app.crud.llm_prompt_config created llm prompt config id=ad687813-5b8f-47d2-af37-7fc3ef46f9cc org=1 project=1 +2026-09-09 11:08:35,239 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.45ms] +2026-09-09 11:08:35,241 INFO app.crud.llm_prompt_config created llm prompt config id=d503718f-89bf-44a0-bfe9-645babb79db0 org=1 project=1 +2026-09-09 11:08:35,242 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.16ms] +2026-09-09 11:08:35,244 INFO app.crud.llm_prompt_config created llm prompt config id=12b64128-dc3c-4c06-91fe-9ef5f0ce4a54 org=1 project=1 +2026-09-09 11:08:35,244 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.21ms] +2026-09-09 11:08:35,247 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.17ms] +2026-09-09 11:08:35,253 INFO app.crud.llm_prompt_config created llm prompt config id=656ba15b-bdc2-4d69-9c95-41a518697b2b org=1 project=1 +2026-09-09 11:08:35,254 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.88ms] +2026-09-09 11:08:35,257 INFO app.crud.llm_prompt_config created llm prompt config id=11350599-ea26-4182-9cd4-efd582f1c827 org=1 project=1 +2026-09-09 11:08:35,257 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.32ms] +2026-09-09 11:08:35,261 INFO app.crud.llm_prompt_config created llm prompt config id=7936ccbb-ae1c-49b3-86e6-ca9c593cb383 org=1 project=1 +2026-09-09 11:08:35,262 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.43ms] +2026-09-09 11:08:35,265 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.27ms] +2026-09-09 11:08:35,270 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.66ms] +2026-09-09 11:08:35,276 INFO app.crud.llm_prompt_config created llm prompt config id=3793f2c6-ae9a-411e-be63-9652ef727edb org=1 project=1 +2026-09-09 11:08:35,276 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.57ms] +2026-09-09 11:08:35,278 INFO app.crud.llm_prompt_config created llm prompt config id=5a3efd62-eeeb-430e-af02-d5c78b248f75 org=1 project=1 +2026-09-09 11:08:35,279 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.32ms] +2026-09-09 11:08:35,281 INFO app.crud.llm_prompt_config created llm prompt config id=88c9e44f-afe2-4a04-9403-f369cd2fc590 org=1 project=1 +2026-09-09 11:08:35,281 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.32ms] +2026-09-09 11:08:35,284 INFO app.crud.llm_prompt_config created llm prompt config id=8b05f39a-73ca-48e4-9f66-0fa917f391ef org=1 project=1 +2026-09-09 11:08:35,284 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.42ms] +2026-09-09 11:08:35,287 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.09ms] +2026-09-09 11:08:35,293 INFO app.crud.llm_prompt_config created llm prompt config id=429455ee-f660-4fe9-95ef-09e909cbf44c org=1 project=1 +2026-09-09 11:08:35,294 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.69ms] +2026-09-09 11:08:35,296 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.68ms] +2026-09-09 11:08:35,303 INFO app.crud.llm_prompt_config created llm prompt config id=7d1a7852-7c37-4595-9dbd-6e33f1b11fb0 org=1 project=1 +2026-09-09 11:08:35,303 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.74ms] +2026-09-09 11:08:35,306 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/7d1a7852-7c37-4595-9dbd-6e33f1b11fb0 - 200 [2.06ms] +2026-09-09 11:08:35,313 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/3705b3cd-51d5-476d-b293-858bc5dbbbab - 404 [2.12ms] +2026-09-09 11:08:35,321 INFO app.crud.llm_prompt_config created llm prompt config id=ecc5ba62-0abc-4f01-940b-c214d6be7db9 org=1 project=1 +2026-09-09 11:08:35,322 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.54ms] +2026-09-09 11:08:35,323 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ecc5ba62-0abc-4f01-940b-c214d6be7db9 - 404 [1.41ms] +2026-09-09 11:08:35,330 INFO app.crud.llm_prompt_config created llm prompt config id=1d346652-69b0-4237-876f-af365d8ff188 org=1 project=1 +2026-09-09 11:08:35,331 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.66ms] +2026-09-09 11:08:35,334 INFO app.crud.llm_prompt_config updated llm prompt config id=1d346652-69b0-4237-876f-af365d8ff188 +2026-09-09 11:08:35,335 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/1d346652-69b0-4237-876f-af365d8ff188 - 200 [3.33ms] +2026-09-09 11:08:35,340 INFO app.crud.llm_prompt_config created llm prompt config id=55568766-ba1f-4ee9-9de2-7f1432615661 org=1 project=1 +2026-09-09 11:08:35,340 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.57ms] +2026-09-09 11:08:35,343 INFO app.crud.llm_prompt_config updated llm prompt config id=55568766-ba1f-4ee9-9de2-7f1432615661 +2026-09-09 11:08:35,343 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/55568766-ba1f-4ee9-9de2-7f1432615661 - 200 [2.67ms] +2026-09-09 11:08:35,351 INFO app.crud.llm_prompt_config created llm prompt config id=666fdac3-23c6-43c7-b82e-c0487f3032b7 org=1 project=1 +2026-09-09 11:08:35,351 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.15ms] +2026-09-09 11:08:35,354 INFO app.crud.llm_prompt_config updated llm prompt config id=666fdac3-23c6-43c7-b82e-c0487f3032b7 +2026-09-09 11:08:35,354 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/666fdac3-23c6-43c7-b82e-c0487f3032b7 - 200 [2.67ms] +2026-09-09 11:08:35,356 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/666fdac3-23c6-43c7-b82e-c0487f3032b7 - 200 [1.37ms] +2026-09-09 11:08:35,360 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/31b01d48-9f6b-4b89-b2e9-99e7ccd76864 - 404 [1.61ms] +2026-09-09 11:08:35,365 INFO app.crud.llm_prompt_config created llm prompt config id=4142afdd-6ce9-4a4f-ad1e-7d917cab6af5 org=1 project=1 +2026-09-09 11:08:35,366 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.59ms] +2026-09-09 11:08:35,369 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/4142afdd-6ce9-4a4f-ad1e-7d917cab6af5 - 404 [3.00ms] +2026-09-09 11:08:35,377 INFO app.crud.llm_prompt_config created llm prompt config id=3256746d-0e73-4389-8417-be1980fb64ac org=1 project=1 +2026-09-09 11:08:35,377 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-09 11:08:35,379 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/3256746d-0e73-4389-8417-be1980fb64ac - 422 [1.38ms] +2026-09-09 11:08:35,384 INFO app.crud.llm_prompt_config created llm prompt config id=3b34b18d-d161-4140-aa13-94b4a5698064 org=1 project=1 +2026-09-09 11:08:35,384 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.60ms] +2026-09-09 11:08:35,386 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/3b34b18d-d161-4140-aa13-94b4a5698064 - 422 [1.39ms] +2026-09-09 11:08:35,392 INFO app.crud.llm_prompt_config created llm prompt config id=e5021748-f03d-4ced-b078-f4dce64e327c org=1 project=1 +2026-09-09 11:08:35,393 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.71ms] +2026-09-09 11:08:35,395 INFO app.crud.llm_prompt_config updated llm prompt config id=e5021748-f03d-4ced-b078-f4dce64e327c +2026-09-09 11:08:35,396 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/e5021748-f03d-4ced-b078-f4dce64e327c - 200 [2.65ms] +2026-09-09 11:08:35,404 INFO app.crud.llm_prompt_config created llm prompt config id=b01c96ba-b28e-4380-9414-5dbdb987e6b6 org=1 project=1 +2026-09-09 11:08:35,405 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [5.19ms] +2026-09-09 11:08:35,409 INFO app.crud.llm_prompt_config updated llm prompt config id=b01c96ba-b28e-4380-9414-5dbdb987e6b6 +2026-09-09 11:08:35,409 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/b01c96ba-b28e-4380-9414-5dbdb987e6b6 - 200 [3.92ms] +2026-09-09 11:08:35,416 INFO app.crud.llm_prompt_config created llm prompt config id=222b6449-876a-4d79-b565-76bcc1d484dd org=1 project=1 +2026-09-09 11:08:35,416 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.11ms] +2026-09-09 11:08:35,419 INFO app.crud.llm_prompt_config deleted llm prompt config id=222b6449-876a-4d79-b565-76bcc1d484dd +2026-09-09 11:08:35,419 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/222b6449-876a-4d79-b565-76bcc1d484dd - 200 [2.05ms] +2026-09-09 11:08:35,424 INFO app.crud.llm_prompt_config created llm prompt config id=611050d8-436f-45a5-9fe6-749812faba21 org=1 project=1 +2026-09-09 11:08:35,425 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.73ms] +2026-09-09 11:08:35,427 INFO app.crud.llm_prompt_config deleted llm prompt config id=611050d8-436f-45a5-9fe6-749812faba21 +2026-09-09 11:08:35,427 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/611050d8-436f-45a5-9fe6-749812faba21 - 200 [1.90ms] +2026-09-09 11:08:35,429 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.39ms] +2026-09-09 11:08:35,433 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/f31b9443-8531-4260-afc2-fea33773b237 - 404 [1.65ms] +2026-09-09 11:08:35,439 INFO app.crud.llm_prompt_config created llm prompt config id=22083336-a34c-48c8-804b-9a2c51e6798a org=1 project=1 +2026-09-09 11:08:35,440 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.38ms] +2026-09-09 11:08:35,442 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/22083336-a34c-48c8-804b-9a2c51e6798a - 404 [1.71ms] +2026-09-09 11:08:35,535 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='hello' +2026-09-09 11:08:35,536 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=True) output='clean text' +2026-09-09 11:08:35,538 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:08:35,538 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,539 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ce93d25e-5a02-4312-a1e1-7f4c36ec4d66: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 11:08:35,542 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:08:35,542 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,544 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:08:35,544 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,566 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 11:08:35,567 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,569 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='some input text' +2026-09-09 11:08:35,569 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,571 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 11:08:35,571 INFO guardrails.execution request=ce93d25e-5a02-4312-a1e1-7f4c36ec4d66 guardrails execution finished (passed=False) output=None +2026-09-09 11:08:35,573 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ce93d25e-5a02-4312-a1e1-7f4c36ec4d66: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 11:08:35,575 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ce93d25e-5a02-4312-a1e1-7f4c36ec4d66: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 355, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 11:08:35,590 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:08:35,592 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:08:35,595 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:08:35,607 INFO app.crud.validator_config created validator config id=85b4ea5f-55ab-48b8-b516-db346c694d60 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:08:35,607 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.06ms] +2026-09-09 11:08:35,613 INFO app.crud.validator_config created validator config id=aa5350ef-c968-4d7d-9162-fb2539192f2e org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:08:35,614 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.62ms] +2026-09-09 11:08:35,616 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 11:08:35,616 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.70ms] +2026-09-09 11:08:35,620 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.89ms] +2026-09-09 11:08:35,624 INFO app.crud.validator_config created validator config id=4aa8e5d0-fd35-4e46-98b6-3140cdf94fa5 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:08:35,625 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.54ms] +2026-09-09 11:08:35,627 INFO app.crud.validator_config created validator config id=a1190acb-6ea7-42f0-a9df-644f734105f4 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:08:35,628 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.29ms] +2026-09-09 11:08:35,630 INFO app.crud.validator_config created validator config id=a7848433-f8a5-4254-8639-973658f759e7 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:08:35,630 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.44ms] +2026-09-09 11:08:35,632 INFO app.crud.validator_config created validator config id=c021e4c3-b48d-4a06-a84f-3e81e28d1fa3 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:08:35,633 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.22ms] +2026-09-09 11:08:35,635 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.00ms] +2026-09-09 11:08:35,636 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4aa8e5d0-fd35-4e46-98b6-3140cdf94fa5/ - 307 [0.10ms] +2026-09-09 11:08:35,638 INFO http_request_logger GET /api/v1/guardrails/validators/configs/4aa8e5d0-fd35-4e46-98b6-3140cdf94fa5 - 200 [1.85ms] +2026-09-09 11:08:35,638 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a1190acb-6ea7-42f0-a9df-644f734105f4/ - 307 [0.10ms] +2026-09-09 11:08:35,640 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a1190acb-6ea7-42f0-a9df-644f734105f4 - 200 [1.43ms] +2026-09-09 11:08:35,641 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a7848433-f8a5-4254-8639-973658f759e7/ - 307 [0.09ms] +2026-09-09 11:08:35,643 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a7848433-f8a5-4254-8639-973658f759e7 - 200 [1.75ms] +2026-09-09 11:08:35,643 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c021e4c3-b48d-4a06-a84f-3e81e28d1fa3/ - 307 [0.09ms] +2026-09-09 11:08:35,645 INFO http_request_logger GET /api/v1/guardrails/validators/configs/c021e4c3-b48d-4a06-a84f-3e81e28d1fa3 - 200 [1.57ms] +2026-09-09 11:08:35,652 INFO app.crud.validator_config created validator config id=06a13759-c2d3-4403-b8a1-7e4772cc2789 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:08:35,653 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.14ms] +2026-09-09 11:08:35,655 INFO app.crud.validator_config created validator config id=2b464c4b-6f64-44fd-9848-ec8d202d3f3f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:08:35,655 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.28ms] +2026-09-09 11:08:35,658 INFO app.crud.validator_config created validator config id=cbaf204b-7ac1-44e3-95b2-32415c001bbf org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:08:35,658 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.81ms] +2026-09-09 11:08:35,659 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/06a13759-c2d3-4403-b8a1-7e4772cc2789/ - 307 [0.10ms] +2026-09-09 11:08:35,663 INFO app.crud.validator_config updated validator config id=06a13759-c2d3-4403-b8a1-7e4772cc2789 +2026-09-09 11:08:35,663 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/06a13759-c2d3-4403-b8a1-7e4772cc2789 - 200 [3.76ms] +2026-09-09 11:08:35,664 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2b464c4b-6f64-44fd-9848-ec8d202d3f3f/ - 307 [0.09ms] +2026-09-09 11:08:35,666 INFO app.crud.validator_config updated validator config id=2b464c4b-6f64-44fd-9848-ec8d202d3f3f +2026-09-09 11:08:35,667 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/2b464c4b-6f64-44fd-9848-ec8d202d3f3f - 200 [2.67ms] +2026-09-09 11:08:35,667 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/cbaf204b-7ac1-44e3-95b2-32415c001bbf/ - 307 [0.09ms] +2026-09-09 11:08:35,669 INFO app.crud.validator_config updated validator config id=cbaf204b-7ac1-44e3-95b2-32415c001bbf +2026-09-09 11:08:35,670 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/cbaf204b-7ac1-44e3-95b2-32415c001bbf - 200 [2.65ms] +2026-09-09 11:08:35,672 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.64ms] +2026-09-09 11:08:35,680 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.83ms] +2026-09-09 11:08:35,686 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.09ms] +2026-09-09 11:08:35,694 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.98ms] +2026-09-09 11:08:35,700 INFO app.crud.validator_config created validator config id=824d1e8b-f324-428e-abbf-deb74bab92d2 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:08:35,700 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.84ms] +2026-09-09 11:08:35,702 INFO app.crud.validator_config created validator config id=72e4cc94-9078-45f7-829d-ee8d3d247492 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:08:35,703 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.19ms] +2026-09-09 11:08:35,705 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.80ms] +2026-09-09 11:08:35,710 INFO app.crud.validator_config created validator config id=43870fa6-448a-4d56-a7b8-4544fad7ea0b org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:08:35,711 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.72ms] +2026-09-09 11:08:35,713 INFO app.crud.validator_config created validator config id=9d016ce9-e00c-41c4-bc21-ee071ebc1c7f org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:08:35,714 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.61ms] +2026-09-09 11:08:35,716 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.61ms] +2026-09-09 11:08:35,720 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.75ms] +2026-09-09 11:08:35,724 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.61ms] +2026-09-09 11:08:35,731 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.03ms] +2026-09-09 11:08:35,731 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fd3234b6-3dac-44ca-8992-b1069c81d4a6/ - 307 [0.10ms] +2026-09-09 11:08:35,733 INFO http_request_logger GET /api/v1/guardrails/validators/configs/fd3234b6-3dac-44ca-8992-b1069c81d4a6 - 200 [1.47ms] +2026-09-09 11:08:35,737 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a201d9fa-4ff3-4241-8c9f-9d2a371852b8/ - 307 [0.09ms] +2026-09-09 11:08:35,739 INFO http_request_logger GET /api/v1/guardrails/validators/configs/a201d9fa-4ff3-4241-8c9f-9d2a371852b8 - 404 [1.80ms] +2026-09-09 11:08:35,742 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.09ms] +2026-09-09 11:08:35,743 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.69ms] +2026-09-09 11:08:35,748 INFO app.crud.validator_config created validator config id=bc07597b-3060-43fa-ac04-f82f10cd11f0 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:08:35,748 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.67ms] +2026-09-09 11:08:35,749 INFO http_request_logger GET /api/v1/guardrails/validators/configs/bc07597b-3060-43fa-ac04-f82f10cd11f0/ - 307 [0.08ms] +2026-09-09 11:08:35,750 INFO http_request_logger GET /api/v1/guardrails/validators/configs/bc07597b-3060-43fa-ac04-f82f10cd11f0 - 404 [1.24ms] +2026-09-09 11:08:35,758 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.83ms] +2026-09-09 11:08:35,758 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/46fa12a2-e78e-400d-8172-7397439aacef/ - 307 [0.09ms] +2026-09-09 11:08:35,762 INFO app.crud.validator_config updated validator config id=46fa12a2-e78e-400d-8172-7397439aacef +2026-09-09 11:08:35,763 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/46fa12a2-e78e-400d-8172-7397439aacef - 200 [4.03ms] +2026-09-09 11:08:35,769 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.64ms] +2026-09-09 11:08:35,769 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/84a58d8c-b5dc-46bc-bf94-e913ef05e5fb/ - 307 [0.08ms] +2026-09-09 11:08:35,772 INFO app.crud.validator_config updated validator config id=84a58d8c-b5dc-46bc-bf94-e913ef05e5fb +2026-09-09 11:08:35,772 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/84a58d8c-b5dc-46bc-bf94-e913ef05e5fb - 200 [2.56ms] +2026-09-09 11:08:35,776 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/d4072240-fa36-4317-8b70-96c0c13bcd3e/ - 307 [0.08ms] +2026-09-09 11:08:35,778 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/d4072240-fa36-4317-8b70-96c0c13bcd3e - 404 [1.86ms] +2026-09-09 11:08:35,786 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.86ms] +2026-09-09 11:08:35,787 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/58bc9422-4fb9-47c0-894e-78dc15a6b3ad/ - 307 [0.09ms] +2026-09-09 11:08:35,789 INFO app.crud.validator_config deleted validator config id=58bc9422-4fb9-47c0-894e-78dc15a6b3ad +2026-09-09 11:08:35,790 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/58bc9422-4fb9-47c0-894e-78dc15a6b3ad - 200 [2.64ms] +2026-09-09 11:08:35,790 INFO http_request_logger GET /api/v1/guardrails/validators/configs/58bc9422-4fb9-47c0-894e-78dc15a6b3ad/ - 307 [0.09ms] +2026-09-09 11:08:35,792 INFO http_request_logger GET /api/v1/guardrails/validators/configs/58bc9422-4fb9-47c0-894e-78dc15a6b3ad - 404 [1.54ms] +2026-09-09 11:08:35,796 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/4060c803-f8ba-4f88-b362-3ff5d58ab96e/ - 307 [0.19ms] +2026-09-09 11:08:35,798 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/4060c803-f8ba-4f88-b362-3ff5d58ab96e - 404 [1.58ms] +2026-09-09 11:08:35,806 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.94ms] +2026-09-09 11:08:35,806 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/efcb84a1-5fa0-42a9-9ef7-23b56ab0e23f/ - 307 [0.09ms] +2026-09-09 11:08:35,808 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/efcb84a1-5fa0-42a9-9ef7-23b56ab0e23f - 404 [1.56ms] +2026-09-09 11:08:35,808 INFO http_request_logger GET /api/v1/guardrails/validators/configs/efcb84a1-5fa0-42a9-9ef7-23b56ab0e23f/ - 307 [0.08ms] +2026-09-09 11:08:35,811 INFO http_request_logger GET /api/v1/guardrails/validators/configs/efcb84a1-5fa0-42a9-9ef7-23b56ab0e23f - 200 [1.83ms] +2026-09-09 11:08:35,927 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 11:08:35,927 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 11:08:35,997 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:37,747 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:37,756 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:38,788 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:38,795 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:39,867 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:39,875 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:40,998 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:41,004 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:42,250 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:42,258 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:43,401 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:43,403 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:08:44,835 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:08:44,980 INFO watchfiles.main 3 changes detected +2026-09-09 11:29:07,934 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [40.10ms] +2026-09-09 11:29:08,670 INFO presidio-analyzer Created NLP engine: spacy. Loaded models: ['en'] +2026-09-09 11:29:08,671 INFO presidio-analyzer registry not provided, creating default. +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: CreditCardRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: UsBankRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: UsLicenseRecognizer +2026-09-09 11:29:08,681 INFO presidio-analyzer Loaded recognizer: UsItinRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: UsPassportRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: UsSsnRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: NhsRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: EsNifRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: EsNieRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: ItDriverLicenseRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: ItFiscalCodeRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: ItVatCodeRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: ItIdentityCardRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: ItPassportRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: PlPeselRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: CryptoRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: DateRecognizer +2026-09-09 11:29:08,682 INFO presidio-analyzer Loaded recognizer: EmailRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: IbanRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: IpRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: MedicalLicenseRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: MacAddressRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: PhoneRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: UrlRecognizer +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - CreditCardRecognizer supported languages: pl, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNifRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - EsNieRecognizer supported languages: es, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItDriverLicenseRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItFiscalCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItVatCodeRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItIdentityCardRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - ItPassportRecognizer supported languages: it, registry supported languages: en +2026-09-09 11:29:08,683 WARNING presidio-analyzer Recognizer not added to registry because language is not supported by registry - PlPeselRecognizer supported languages: pl, registry supported languages: en +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: SpacyRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 11:29:08,683 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 11:29:08,684 INFO presidio-analyzer Loaded recognizer: InPassportRecognizer +2026-09-09 11:29:08,684 INFO presidio-analyzer Loaded recognizer: InVehicleRegistrationRecognizer +2026-09-09 11:29:08,684 INFO presidio-analyzer Loaded recognizer: InVoterRecognizer +2026-09-09 11:29:08,735 INFO guardrails.execution request=4fc8a174-5c06-4af6-84f2-a6ecd29ddac6 starting guardrails execution (validators=['pii_remover', 'uli_slur_match']) input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' +2026-09-09 11:29:08,756 WARNING presidio-analyzer Entity CARDINAL is not mapped to a Presidio entity, but keeping anyway. Add to `NerModelConfiguration.labels_to_ignore` to remove. +2026-09-09 11:29:08,835 INFO guardrails.execution request=4fc8a174-5c06-4af6-84f2-a6ecd29ddac6 guardrails execution finished (passed=True) output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 11:29:08,839 INFO guardrails.execution request=4fc8a174-5c06-4af6-84f2-a6ecd29ddac6 step=1/2 validator=PIIRemover stage=output outcome=Outcome.FAIL start=2026-09-09T11:29:08.742444 end=2026-09-09T11:29:08.831524 duration_ms=89 input='Amit Gupta phone number is 919611188278. He is a doctor. motherfucker' output=' phone number is . He is a doctor. motherfucker' +2026-09-09 11:29:08,844 INFO guardrails.execution request=4fc8a174-5c06-4af6-84f2-a6ecd29ddac6 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:29:08.831557 end=2026-09-09T11:29:08.834245 duration_ms=2 input=' phone number is . He is a doctor. motherfucker' output=' phone number is . he is a doctor. [REDACTED_SLUR]' +2026-09-09 11:29:08,848 INFO http_request_logger POST /api/v1/guardrails/ - 200 [900.87ms] +2026-09-09 11:29:13,073 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [6.45ms] +2026-09-09 11:29:13,102 INFO guardrails.execution request=5dcafadb-99b3-410c-94d6-a5cc254e188c starting guardrails execution (validators=['gender_assumption_bias', 'answer_relevance_custom_llm']) input='Please avoid sharing private phone numbers or using slurs. What would you like help with?' +2026-09-09 11:29:13,113 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:29:15,186 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:29:15,189 INFO guardrails.execution request=5dcafadb-99b3-410c-94d6-a5cc254e188c guardrails execution finished (passed=True) output='Please avoid sharing private phone numbers or using slurs. What would you like help with?' +2026-09-09 11:29:15,197 INFO guardrails.execution request=5dcafadb-99b3-410c-94d6-a5cc254e188c step=1/2 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-09T11:29:13.103159 end=2026-09-09T11:29:13.104130 duration_ms=0 input='Please avoid sharing private phone numbers or using slurs. What would you like help with?' output='Please avoid sharing private phone numbers or using slurs. What would you like help with?' +2026-09-09 11:29:15,201 INFO guardrails.execution request=5dcafadb-99b3-410c-94d6-a5cc254e188c step=2/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:29:13.104136 end=2026-09-09T11:29:15.188527 duration_ms=2084 input='Please avoid sharing private phone numbers or using slurs. What would you like help with?' output='Please avoid sharing private phone numbers or using slurs. What would you like help with?' +2026-09-09 11:29:15,207 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2126.17ms] +2026-09-09 11:35:59,117 INFO watchfiles.main 3 changes detected +2026-09-09 11:35:59,129 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:35:59,143 INFO uvicorn.error Shutting down +2026-09-09 11:35:59,247 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:35:59,249 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:35:59,249 INFO uvicorn.error Finished server process [50297] +2026-09-09 11:35:59,683 INFO watchfiles.main 1 change detected +2026-09-09 11:36:04,956 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:05,468 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:05,795 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:05,796 INFO uvicorn.error Started server process [54845] +2026-09-09 11:36:05,796 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:05,797 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:06,517 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:06,519 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:06,607 INFO uvicorn.error Shutting down +2026-09-09 11:36:06,709 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:06,712 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:06,713 INFO uvicorn.error Finished server process [54845] +2026-09-09 11:36:07,121 INFO watchfiles.main 1 change detected +2026-09-09 11:36:10,453 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:10,455 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:11,318 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:12,148 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:12,149 INFO uvicorn.error Started server process [54857] +2026-09-09 11:36:12,149 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:12,150 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:12,150 INFO uvicorn.error Shutting down +2026-09-09 11:36:12,251 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:12,252 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:12,252 INFO uvicorn.error Finished server process [54857] +2026-09-09 11:36:12,637 INFO watchfiles.main 4 changes detected +2026-09-09 11:36:16,569 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:17,355 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:17,355 INFO uvicorn.error Started server process [54875] +2026-09-09 11:36:17,356 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:17,357 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:28,410 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:28,413 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:28,459 INFO uvicorn.error Shutting down +2026-09-09 11:36:28,561 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:28,562 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:28,563 INFO uvicorn.error Finished server process [54875] +2026-09-09 11:36:28,952 INFO watchfiles.main 1 change detected +2026-09-09 11:36:32,406 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:32,406 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:33,598 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:34,435 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:34,436 INFO uvicorn.error Started server process [54895] +2026-09-09 11:36:34,437 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:34,437 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:34,438 INFO uvicorn.error Shutting down +2026-09-09 11:36:34,539 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:34,540 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:34,540 INFO uvicorn.error Finished server process [54895] +2026-09-09 11:36:34,921 INFO watchfiles.main 4 changes detected +2026-09-09 11:36:40,143 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:41,065 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:41,066 INFO uvicorn.error Started server process [54909] +2026-09-09 11:36:41,066 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:41,067 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:41,897 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:41,913 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:41,973 INFO uvicorn.error Shutting down +2026-09-09 11:36:42,074 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:42,075 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:42,075 INFO uvicorn.error Finished server process [54909] +2026-09-09 11:36:42,460 INFO watchfiles.main 1 change detected +2026-09-09 11:36:46,770 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:47,303 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:47,632 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:47,632 INFO uvicorn.error Started server process [54926] +2026-09-09 11:36:47,633 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:47,633 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:49,835 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:49,838 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:36:49,855 INFO uvicorn.error Shutting down +2026-09-09 11:36:49,956 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:49,957 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:49,958 INFO uvicorn.error Finished server process [54926] +2026-09-09 11:36:50,348 INFO watchfiles.main 1 change detected +2026-09-09 11:36:54,604 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:36:55,130 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:55,448 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:36:55,449 INFO uvicorn.error Started server process [54943] +2026-09-09 11:36:55,450 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:36:55,450 INFO uvicorn.error Application startup complete. +2026-09-09 11:36:55,649 INFO watchfiles.main 3 changes detected +2026-09-09 11:36:55,653 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/topic_relevance.py'. Reloading... +2026-09-09 11:36:55,753 INFO uvicorn.error Shutting down +2026-09-09 11:36:55,856 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:36:55,858 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:36:55,859 INFO uvicorn.error Finished server process [54943] +2026-09-09 11:36:56,252 INFO watchfiles.main 1 change detected +2026-09-09 11:37:00,165 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:00,165 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/lexical_slur.py'. Reloading... +2026-09-09 11:37:00,269 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:01,062 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:01,062 INFO uvicorn.error Started server process [54954] +2026-09-09 11:37:01,063 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:01,063 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:01,063 INFO uvicorn.error Shutting down +2026-09-09 11:37:01,165 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:01,165 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:01,166 INFO uvicorn.error Finished server process [54954] +2026-09-09 11:37:01,552 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:03,868 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:04,494 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:04,496 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/lexical_slur.py'. Reloading... +2026-09-09 11:37:05,438 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:06,150 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:06,151 INFO uvicorn.error Started server process [54973] +2026-09-09 11:37:06,152 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:06,152 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:06,152 INFO uvicorn.error Shutting down +2026-09-09 11:37:06,254 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:06,254 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:06,254 INFO uvicorn.error Finished server process [54973] +2026-09-09 11:37:06,645 INFO watchfiles.main 1 change detected +2026-09-09 11:37:08,893 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:09,255 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:09,257 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/answer_relevance_custom_llm.py'. Reloading... +2026-09-09 11:37:10,419 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:11,171 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:11,171 INFO uvicorn.error Started server process [54981] +2026-09-09 11:37:11,172 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:11,172 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:11,173 INFO uvicorn.error Shutting down +2026-09-09 11:37:11,274 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:11,274 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:11,275 INFO uvicorn.error Finished server process [54981] +2026-09-09 11:37:11,706 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:13,364 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:13,366 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/pii_remover.py'. Reloading... +2026-09-09 11:37:15,389 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:16,083 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:16,084 INFO uvicorn.error Started server process [54993] +2026-09-09 11:37:16,084 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:16,085 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:16,085 INFO uvicorn.error Shutting down +2026-09-09 11:37:16,186 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:16,187 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:16,187 INFO uvicorn.error Finished server process [54993] +2026-09-09 11:37:16,575 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:20,338 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:20,344 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/topic_relevance_llm.py'. Reloading... +2026-09-09 11:37:20,430 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:21,148 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:21,149 INFO uvicorn.error Started server process [55003] +2026-09-09 11:37:21,149 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:21,150 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:21,150 INFO uvicorn.error Shutting down +2026-09-09 11:37:21,251 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:21,251 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:21,251 INFO uvicorn.error Finished server process [55003] +2026-09-09 11:37:21,636 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:24,384 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:24,385 WARNING uvicorn.error WatchFiles detected changes in 'app/core/telemetry.py'. Reloading... +2026-09-09 11:37:25,406 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:26,129 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:26,129 INFO uvicorn.error Started server process [55016] +2026-09-09 11:37:26,130 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:26,130 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:26,130 INFO uvicorn.error Shutting down +2026-09-09 11:37:26,232 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:26,232 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:26,233 INFO uvicorn.error Finished server process [55016] +2026-09-09 11:37:26,627 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:29,897 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:29,898 WARNING uvicorn.error WatchFiles detected changes in 'app/core/telemetry.py'. Reloading... +2026-09-09 11:37:30,336 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:31,050 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:31,050 INFO uvicorn.error Started server process [55025] +2026-09-09 11:37:31,051 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:31,051 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:31,052 INFO uvicorn.error Shutting down +2026-09-09 11:37:31,153 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:31,154 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:31,154 INFO uvicorn.error Finished server process [55025] +2026-09-09 11:37:31,528 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:33,883 INFO watchfiles.main 3 changes detected +2026-09-09 11:37:33,892 WARNING uvicorn.error WatchFiles detected changes in 'app/core/telemetry.py'. Reloading... +2026-09-09 11:37:35,594 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:36,316 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:36,316 INFO uvicorn.error Started server process [55040] +2026-09-09 11:37:36,317 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:36,317 INFO uvicorn.error Application startup complete. +2026-09-09 11:37:36,318 INFO uvicorn.error Shutting down +2026-09-09 11:37:36,419 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:37:36,420 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:37:36,420 INFO uvicorn.error Finished server process [55040] +2026-09-09 11:37:36,802 INFO watchfiles.main 4 changes detected +2026-09-09 11:37:40,689 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:37:41,413 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:37:41,414 INFO uvicorn.error Started server process [55050] +2026-09-09 11:37:41,414 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:37:41,415 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:14,772 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:14,775 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/config/llamaguard_7b_safety_validator_config.py'. Reloading... +2026-09-09 11:38:14,822 INFO uvicorn.error Shutting down +2026-09-09 11:38:14,930 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:14,932 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:14,933 INFO uvicorn.error Finished server process [55050] +2026-09-09 11:38:15,341 INFO watchfiles.main 1 change detected +2026-09-09 11:38:18,143 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:19,426 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:19,427 WARNING uvicorn.error WatchFiles detected changes in 'app/core/validators/config/nsfw_text_safety_validator_config.py'. Reloading... +2026-09-09 11:38:20,229 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:21,061 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:21,062 INFO uvicorn.error Started server process [55109] +2026-09-09 11:38:21,062 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:21,063 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:21,063 INFO uvicorn.error Shutting down +2026-09-09 11:38:21,164 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:21,165 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:21,165 INFO uvicorn.error Finished server process [55109] +2026-09-09 11:38:21,546 INFO watchfiles.main 1 change detected +2026-09-09 11:38:23,698 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:23,699 WARNING uvicorn.error WatchFiles detected changes in 'app/schemas/guardrail_config.py'. Reloading... +2026-09-09 11:38:25,251 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:25,998 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:25,998 INFO uvicorn.error Started server process [55121] +2026-09-09 11:38:25,999 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:25,999 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:25,999 INFO uvicorn.error Shutting down +2026-09-09 11:38:26,101 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:26,101 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:26,101 INFO uvicorn.error Finished server process [55121] +2026-09-09 11:38:26,541 INFO watchfiles.main 7 changes detected +2026-09-09 11:38:29,265 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:29,267 WARNING uvicorn.error WatchFiles detected changes in 'app/core/db.py'. Reloading... +2026-09-09 11:38:30,347 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:31,043 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:31,043 INFO uvicorn.error Started server process [55131] +2026-09-09 11:38:31,044 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:31,044 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:31,045 INFO uvicorn.error Shutting down +2026-09-09 11:38:31,146 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:31,147 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:31,147 INFO uvicorn.error Finished server process [55131] +2026-09-09 11:38:31,526 INFO watchfiles.main 4 changes detected +2026-09-09 11:38:35,197 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:35,944 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:35,944 INFO uvicorn.error Started server process [55146] +2026-09-09 11:38:35,945 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:35,946 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:38,092 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:38,094 WARNING uvicorn.error WatchFiles detected changes in 'app/core/config.py'. Reloading... +2026-09-09 11:38:38,169 INFO uvicorn.error Shutting down +2026-09-09 11:38:38,271 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:38,272 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:38,272 INFO uvicorn.error Finished server process [55146] +2026-09-09 11:38:38,651 INFO watchfiles.main 4 changes detected +2026-09-09 11:38:42,394 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:43,055 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:43,055 WARNING uvicorn.error WatchFiles detected changes in 'app/core/config.py'. Reloading... +2026-09-09 11:38:43,131 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:43,131 INFO uvicorn.error Started server process [55155] +2026-09-09 11:38:43,132 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:43,132 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:43,133 INFO uvicorn.error Shutting down +2026-09-09 11:38:43,234 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:43,234 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:43,234 INFO uvicorn.error Finished server process [55155] +2026-09-09 11:38:43,627 INFO watchfiles.main 4 changes detected +2026-09-09 11:38:47,290 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:38:47,993 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:38:47,994 INFO uvicorn.error Started server process [55169] +2026-09-09 11:38:47,994 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:38:47,995 INFO uvicorn.error Application startup complete. +2026-09-09 11:38:55,630 INFO watchfiles.main 3 changes detected +2026-09-09 11:38:55,632 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:38:55,668 INFO uvicorn.error Shutting down +2026-09-09 11:38:55,774 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:38:55,776 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:38:55,777 INFO uvicorn.error Finished server process [55169] +2026-09-09 11:38:56,183 INFO watchfiles.main 1 change detected +2026-09-09 11:39:01,015 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:01,831 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:01,866 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:01,866 INFO uvicorn.error Started server process [55194] +2026-09-09 11:39:01,867 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:01,867 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:02,289 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:02,290 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:39:02,372 INFO uvicorn.error Shutting down +2026-09-09 11:39:02,475 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:02,477 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:02,478 INFO uvicorn.error Finished server process [55194] +2026-09-09 11:39:02,877 INFO watchfiles.main 1 change detected +2026-09-09 11:39:07,257 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:07,778 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:08,105 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:08,106 INFO uvicorn.error Started server process [55205] +2026-09-09 11:39:08,106 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:08,107 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:10,868 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:10,868 WARNING uvicorn.error WatchFiles detected changes in 'app/api/routes/guardrails.py'. Reloading... +2026-09-09 11:39:10,937 INFO uvicorn.error Shutting down +2026-09-09 11:39:11,038 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:11,044 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:11,045 INFO uvicorn.error Finished server process [55205] +2026-09-09 11:39:11,433 INFO watchfiles.main 1 change detected +2026-09-09 11:39:15,847 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:16,379 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:16,697 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:16,697 INFO uvicorn.error Started server process [55222] +2026-09-09 11:39:16,698 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:16,698 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:20,725 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:20,727 WARNING uvicorn.error WatchFiles detected changes in 'app/evaluation/ban_list/run.py'. Reloading... +2026-09-09 11:39:20,736 INFO uvicorn.error Shutting down +2026-09-09 11:39:20,837 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:20,838 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:20,838 INFO uvicorn.error Finished server process [55222] +2026-09-09 11:39:21,222 INFO watchfiles.main 1 change detected +2026-09-09 11:39:25,440 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:26,235 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:26,236 INFO uvicorn.error Started server process [55239] +2026-09-09 11:39:26,236 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:26,237 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:31,042 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:31,046 WARNING uvicorn.error WatchFiles detected changes in 'app/evaluation/ban_list/run.py'. Reloading... +2026-09-09 11:39:31,084 INFO uvicorn.error Shutting down +2026-09-09 11:39:31,186 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:31,188 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:31,189 INFO uvicorn.error Finished server process [55239] +2026-09-09 11:39:31,587 INFO watchfiles.main 1 change detected +2026-09-09 11:39:36,529 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:37,251 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:37,252 WARNING uvicorn.error WatchFiles detected changes in 'app/evaluation/pii/entity_metrics.py'. Reloading... +2026-09-09 11:39:37,411 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:37,412 INFO uvicorn.error Started server process [55262] +2026-09-09 11:39:37,412 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:37,413 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:37,413 INFO uvicorn.error Shutting down +2026-09-09 11:39:37,514 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:37,515 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:37,515 INFO uvicorn.error Finished server process [55262] +2026-09-09 11:39:37,896 INFO watchfiles.main 1 change detected +2026-09-09 11:39:42,527 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:43,369 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:43,370 INFO uvicorn.error Started server process [55326] +2026-09-09 11:39:43,370 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:43,370 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:47,520 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:47,523 WARNING uvicorn.error WatchFiles detected changes in 'app/evaluation/pii/entity_metrics.py'. Reloading... +2026-09-09 11:39:47,611 INFO uvicorn.error Shutting down +2026-09-09 11:39:47,713 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:47,714 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:47,715 INFO uvicorn.error Finished server process [55326] +2026-09-09 11:39:48,103 INFO watchfiles.main 1 change detected +2026-09-09 11:39:50,759 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:50,760 WARNING uvicorn.error WatchFiles detected changes in 'app/evaluation/pii/entity_metrics.py'. Reloading... +2026-09-09 11:39:52,554 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:53,347 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:53,347 INFO uvicorn.error Started server process [55537] +2026-09-09 11:39:53,348 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:53,348 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:53,349 INFO uvicorn.error Shutting down +2026-09-09 11:39:53,450 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:53,451 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:53,451 INFO uvicorn.error Finished server process [55537] +2026-09-09 11:39:53,835 INFO watchfiles.main 1 change detected +2026-09-09 11:39:57,326 INFO watchfiles.main 3 changes detected +2026-09-09 11:39:57,328 WARNING uvicorn.error WatchFiles detected changes in 'app/schemas/llm_prompt_config.py'. Reloading... +2026-09-09 11:39:57,953 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:39:58,835 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:39:58,835 INFO uvicorn.error Started server process [55555] +2026-09-09 11:39:58,836 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:39:58,836 INFO uvicorn.error Application startup complete. +2026-09-09 11:39:58,836 INFO uvicorn.error Shutting down +2026-09-09 11:39:58,938 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:39:58,938 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:39:58,939 INFO uvicorn.error Finished server process [55555] +2026-09-09 11:39:59,318 INFO watchfiles.main 4 changes detected +2026-09-09 11:40:03,294 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:40:04,083 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:40:04,083 INFO uvicorn.error Started server process [55706] +2026-09-09 11:40:04,084 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:40:04,084 INFO uvicorn.error Application startup complete. +2026-09-09 11:40:17,367 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:40:18,237 INFO guardrails.execution request=ed84cfae-f256-404a-90b8-7457857ba035 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,239 INFO guardrails.execution request=ed84cfae-f256-404a-90b8-7457857ba035 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,242 INFO guardrails.execution request=ed84cfae-f256-404a-90b8-7457857ba035 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.238417 end=2026-09-09T11:40:18.238521 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,246 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.64ms] +2026-09-09 11:40:18,261 INFO guardrails.execution request=13e2994b-baa1-4718-9560-f460b54f0899 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 11:40:18,262 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 13e2994b-baa1-4718-9560-f460b54f0899: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 11:40:18,267 INFO guardrails.execution request=13e2994b-baa1-4718-9560-f460b54f0899 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:40:18.262053 end=2026-09-09T11:40:18.262133 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 11:40:18,269 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.93ms] +2026-09-09 11:40:18,284 INFO guardrails.execution request=b2aa6003-491d-4d2b-8353-05354928a46d starting guardrails execution (validators=['answer_relevance_custom_llm']) input='What are the common symptoms of diabetes?' +2026-09-09 11:40:18,285 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log b2aa6003-491d-4d2b-8353-05354928a46d: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Both 'query' and 'answer' fields must be non-empty. +2026-09-09 11:40:18,288 INFO guardrails.execution request=b2aa6003-491d-4d2b-8353-05354928a46d step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:40:18.285432 end=2026-09-09T11:40:18.285487 duration_ms=0 input='What are the common symptoms of diabetes?' output=None +2026-09-09 11:40:18,290 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.95ms] +2026-09-09 11:40:18,305 INFO guardrails.execution request=cd76b1ef-ad2e-4c37-b63f-c663f38bae91 starting guardrails execution (validators=['answer_relevance_custom_llm']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,306 INFO guardrails.execution request=cd76b1ef-ad2e-4c37-b63f-c663f38bae91 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,308 INFO guardrails.execution request=cd76b1ef-ad2e-4c37-b63f-c663f38bae91 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.305720 end=2026-09-09T11:40:18.305795 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,311 INFO http_request_logger POST /api/v1/guardrails/ - 200 [15.97ms] +2026-09-09 11:40:18,328 INFO guardrails.execution request=022f396e-39b1-45ca-b16f-800b21b6aa66 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='The Eiffel Tower was built in 1889 and is located in Paris, France.' +2026-09-09 11:40:18,329 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 022f396e-39b1-45ca-b16f-800b21b6aa66: Validation failed for field with errors: The answer is not relevant to the query. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The answer is not relevant to the query. +2026-09-09 11:40:18,332 INFO guardrails.execution request=022f396e-39b1-45ca-b16f-800b21b6aa66 step=1/1 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.FAIL start=2026-09-09T11:40:18.329175 end=2026-09-09T11:40:18.329259 duration_ms=0 input='The Eiffel Tower was built in 1889 and is located in Paris, France.' output=None +2026-09-09 11:40:18,347 INFO http_request_logger POST /api/v1/guardrails/ - 200 [30.34ms] +2026-09-09 11:40:18,381 INFO guardrails.execution request=ebef62e0-d5bd-4641-a92a-1a50a2c68573 starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 11:40:18,383 INFO guardrails.execution request=ebef62e0-d5bd-4641-a92a-1a50a2c68573 guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 11:40:18,385 INFO guardrails.execution request=ebef62e0-d5bd-4641-a92a-1a50a2c68573 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.382157 end=2026-09-09T11:40:18.382245 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' +2026-09-09 11:40:18,388 INFO guardrails.execution request=ebef62e0-d5bd-4641-a92a-1a50a2c68573 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.382252 end=2026-09-09T11:40:18.382372 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit ba…' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue. Visit b …' +2026-09-09 11:40:18,393 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.27ms] +2026-09-09 11:40:18,421 INFO guardrails.execution request=a0c71444-77c2-4d9a-9807-cdfa9dc6a6b4 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Diabetes symptoms include fuck fatigue.' +2026-09-09 11:40:18,428 INFO guardrails.execution request=a0c71444-77c2-4d9a-9807-cdfa9dc6a6b4 guardrails execution finished (passed=True) output='' +2026-09-09 11:40:18,432 INFO guardrails.execution request=a0c71444-77c2-4d9a-9807-cdfa9dc6a6b4 step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.424585 end=2026-09-09T11:40:18.424679 duration_ms=0 input='Diabetes symptoms include fuck fatigue.' output='Diabetes symptoms include fuck fatigue.' +2026-09-09 11:40:18,439 INFO guardrails.execution request=a0c71444-77c2-4d9a-9807-cdfa9dc6a6b4 step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.424685 end=2026-09-09T11:40:18.427207 duration_ms=2 input='Diabetes symptoms include fuck fatigue.' output='' +2026-09-09 11:40:18,445 INFO http_request_logger POST /api/v1/guardrails/ - 200 [40.91ms] +2026-09-09 11:40:18,468 INFO guardrails.execution request=a4cd1077-9b51-402b-9ca7-a7576e9589fa starting guardrails execution (validators=['answer_relevance_custom_llm', 'uli_slur_match']) input='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 11:40:18,472 INFO guardrails.execution request=a4cd1077-9b51-402b-9ca7-a7576e9589fa guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 11:40:18,476 INFO guardrails.execution request=a4cd1077-9b51-402b-9ca7-a7576e9589fa step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.469563 end=2026-09-09T11:40:18.469643 duration_ms=0 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='Diabetes symptoms include chakki fatigue and increased thirst.' +2026-09-09 11:40:18,478 INFO guardrails.execution request=a4cd1077-9b51-402b-9ca7-a7576e9589fa step=2/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.469648 end=2026-09-09T11:40:18.472015 duration_ms=2 input='Diabetes symptoms include chakki fatigue and increased thirst.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and increased thirst.' +2026-09-09 11:40:18,482 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.27ms] +2026-09-09 11:40:18,502 INFO guardrails.execution request=02532114-6fcc-4f65-bf67-a93024965a4a starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free']) input='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 11:40:18,503 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 02532114-6fcc-4f65-bf67-a93024965a4a: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Bloody hell, the symptoms include thirst and fatigue. contains profanity. Please return profanity-free output. +2026-09-09 11:40:18,508 INFO guardrails.execution request=02532114-6fcc-4f65-bf67-a93024965a4a step=1/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.502691 end=2026-09-09T11:40:18.502768 duration_ms=0 input='Bloody hell, the symptoms include thirst and fatigue.' output='Bloody hell, the symptoms include thirst and fatigue.' +2026-09-09 11:40:18,511 INFO guardrails.execution request=02532114-6fcc-4f65-bf67-a93024965a4a step=2/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.502772 end=2026-09-09T11:40:18.503806 duration_ms=1 input='Bloody hell, the symptoms include thirst and fatigue.' output=None +2026-09-09 11:40:18,514 INFO http_request_logger POST /api/v1/guardrails/ - 200 [26.05ms] +2026-09-09 11:40:18,547 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee starting guardrails execution (validators=['answer_relevance_custom_llm', 'ban_list', 'profanity_free', 'uli_slur_match', 'gender_assumption_bias']) input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,552 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee guardrails execution finished (passed=True) output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,556 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.548594 end=2026-09-09T11:40:18.548707 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,559 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee step=2/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.548713 end=2026-09-09T11:40:18.548788 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,563 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee step=3/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.548792 end=2026-09-09T11:40:18.549981 duration_ms=1 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,567 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee step=4/5 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.549991 end=2026-09-09T11:40:18.550647 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,570 INFO guardrails.execution request=c9d64a8c-3dd3-4ec3-a2db-237280e8d7ee step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.550653 end=2026-09-09T11:40:18.551360 duration_ms=0 input='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' output='Common symptoms of diabetes include increased thirst, frequent urination, unexplained weight loss, and fatigue.' +2026-09-09 11:40:18,575 INFO http_request_logger POST /api/v1/guardrails/ - 200 [53.19ms] +2026-09-09 11:40:18,601 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 starting guardrails execution (validators=['answer_relevance_custom_llm', 'profanity_free', 'uli_slur_match', 'ban_list', 'gender_assumption_bias']) input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:40:18,606 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 guardrails execution finished (passed=True) output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 11:40:18,610 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 step=1/5 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T11:40:18.602510 end=2026-09-09T11:40:18.602606 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:40:18,614 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 step=2/5 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.602612 end=2026-09-09T11:40:18.603723 duration_ms=1 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' +2026-09-09 11:40:18,616 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 step=3/5 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.603730 end=2026-09-09T11:40:18.604599 duration_ms=0 input='Diabetes symptoms include chakki fatigue and thirst. The policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 11:40:18,619 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 step=4/5 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:40:18.604607 end=2026-09-09T11:40:18.604685 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' +2026-09-09 11:40:18,622 INFO guardrails.execution request=13ab24e6-65c8-4f4a-a5c5-44e89c3b7ac8 step=5/5 validator=GenderAssumptionBias stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:18.604689 end=2026-09-09T11:40:18.605366 duration_ms=0 input='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the policeman confirmed these symptoms.' output='diabetes symptoms include [REDACTED_SLUR] fatigue and thirst. the police officer confirmed these symptoms.' +2026-09-09 11:40:18,626 INFO http_request_logger POST /api/v1/guardrails/ - 200 [43.63ms] +2026-09-09 11:40:18,657 INFO app.crud.ban_list created ban list id=09e4adf8-163c-4eea-8463-9afafff3cc4d org=1 project=1 +2026-09-09 11:40:18,658 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [8.04ms] +2026-09-09 11:40:18,665 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [2.27ms] +2026-09-09 11:40:18,672 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.88ms] +2026-09-09 11:40:18,677 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.84ms] +2026-09-09 11:40:18,682 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [1.08ms] +2026-09-09 11:40:18,688 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 422 [0.87ms] +2026-09-09 11:40:18,703 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [4.64ms] +2026-09-09 11:40:18,716 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [4.46ms] +2026-09-09 11:40:18,724 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.02ms] +2026-09-09 11:40:18,735 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [3.08ms] +2026-09-09 11:40:18,745 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.50ms] +2026-09-09 11:40:18,748 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.45ms] +2026-09-09 11:40:18,758 INFO app.crud.ban_list created ban list id=13f1df46-cf8b-4c90-af6a-ee14c4d37429 org=1 project=1 +2026-09-09 11:40:18,758 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [4.93ms] +2026-09-09 11:40:18,759 INFO http_request_logger GET /api/v1/guardrails/ban_lists/13f1df46-cf8b-4c90-af6a-ee14c4d37429/ - 307 [0.11ms] +2026-09-09 11:40:18,763 INFO http_request_logger GET /api/v1/guardrails/ban_lists/13f1df46-cf8b-4c90-af6a-ee14c4d37429 - 200 [3.20ms] +2026-09-09 11:40:18,773 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.27ms] +2026-09-09 11:40:18,773 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f7dc2f2b-286a-49ba-bf1f-c81de52c61a6/ - 307 [0.10ms] +2026-09-09 11:40:18,776 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f7dc2f2b-286a-49ba-bf1f-c81de52c61a6 - 200 [2.02ms] +2026-09-09 11:40:18,780 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f6e8a42a-9909-445d-99d5-804cd88bfe51/ - 307 [0.09ms] +2026-09-09 11:40:18,783 INFO http_request_logger GET /api/v1/guardrails/ban_lists/f6e8a42a-9909-445d-99d5-804cd88bfe51 - 404 [2.11ms] +2026-09-09 11:40:18,791 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.07ms] +2026-09-09 11:40:18,792 INFO http_request_logger GET /api/v1/guardrails/ban_lists/a2138494-5f03-49c4-9203-657637557274/ - 307 [0.09ms] +2026-09-09 11:40:18,793 INFO http_request_logger GET /api/v1/guardrails/ban_lists/a2138494-5f03-49c4-9203-657637557274 - 403 [1.63ms] +2026-09-09 11:40:18,802 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.87ms] +2026-09-09 11:40:18,802 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/d6360411-1a15-43ae-83af-6339fc4aa8a4/ - 307 [0.08ms] +2026-09-09 11:40:18,807 INFO app.crud.ban_list updated ban list id=d6360411-1a15-43ae-83af-6339fc4aa8a4 +2026-09-09 11:40:18,807 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/d6360411-1a15-43ae-83af-6339fc4aa8a4 - 200 [4.44ms] +2026-09-09 11:40:18,816 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.10ms] +2026-09-09 11:40:18,816 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/9dad7fd9-ad03-455e-a93b-6745ab1ddc53/ - 307 [0.09ms] +2026-09-09 11:40:18,820 INFO app.crud.ban_list updated ban list id=9dad7fd9-ad03-455e-a93b-6745ab1ddc53 +2026-09-09 11:40:18,821 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/9dad7fd9-ad03-455e-a93b-6745ab1ddc53 - 200 [4.15ms] +2026-09-09 11:40:18,825 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/95e42b80-0b82-4e34-a7db-a8a9eca39bc1/ - 307 [0.09ms] +2026-09-09 11:40:18,828 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/95e42b80-0b82-4e34-a7db-a8a9eca39bc1 - 404 [2.02ms] +2026-09-09 11:40:18,835 INFO app.crud.ban_list created ban list id=1fe2c2d2-4cfc-4e25-9944-3fb2bc2c2192 org=1 project=1 +2026-09-09 11:40:18,836 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.96ms] +2026-09-09 11:40:18,836 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1fe2c2d2-4cfc-4e25-9944-3fb2bc2c2192/ - 307 [0.09ms] +2026-09-09 11:40:18,839 INFO http_request_logger PATCH /api/v1/guardrails/ban_lists/1fe2c2d2-4cfc-4e25-9944-3fb2bc2c2192 - 403 [2.20ms] +2026-09-09 11:40:18,848 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [2.07ms] +2026-09-09 11:40:18,849 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/0ab4a4d7-915a-4861-b399-b1786308f331/ - 307 [0.09ms] +2026-09-09 11:40:18,851 INFO app.crud.ban_list deleted ban list id=0ab4a4d7-915a-4861-b399-b1786308f331 +2026-09-09 11:40:18,851 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/0ab4a4d7-915a-4861-b399-b1786308f331 - 200 [2.02ms] +2026-09-09 11:40:18,855 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/1deb22e1-5df8-4cea-98bc-6a9b59f695ee/ - 307 [0.08ms] +2026-09-09 11:40:18,857 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/1deb22e1-5df8-4cea-98bc-6a9b59f695ee - 404 [1.61ms] +2026-09-09 11:40:18,863 INFO http_request_logger GET /api/v1/guardrails/ban_lists/ - 200 [1.81ms] +2026-09-09 11:40:18,864 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/64e8f96e-2ab8-4e4c-8aa3-ef4eff00c937/ - 307 [0.08ms] +2026-09-09 11:40:18,866 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/64e8f96e-2ab8-4e4c-8aa3-ef4eff00c937 - 403 [2.09ms] +2026-09-09 11:40:18,874 INFO app.crud.ban_list created ban list id=70993c16-bd0c-424e-beae-61f0125c3a3e org=1 project=1 +2026-09-09 11:40:18,874 INFO http_request_logger POST /api/v1/guardrails/ban_lists/ - 200 [3.98ms] +2026-09-09 11:40:18,875 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/70993c16-bd0c-424e-beae-61f0125c3a3e/ - 307 [0.10ms] +2026-09-09 11:40:18,877 INFO http_request_logger DELETE /api/v1/guardrails/ban_lists/70993c16-bd0c-424e-beae-61f0125c3a3e - 403 [2.23ms] +2026-09-09 11:40:18,972 INFO guardrails.execution request=07387d2b-3026-4d51-965d-0d67570355c5 starting guardrails execution (validators=[]) input='hello world' +2026-09-09 11:40:18,972 INFO guardrails.execution request=07387d2b-3026-4d51-965d-0d67570355c5 guardrails execution finished (passed=True) output='clean text' +2026-09-09 11:40:18,975 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.17ms] +2026-09-09 11:40:18,983 INFO guardrails.execution request=d4a0c8c4-2cd8-40c0-a6b7-aaa9b0b7eff4 starting guardrails execution (validators=[]) input='my phone is 999999' +2026-09-09 11:40:18,983 INFO guardrails.execution request=d4a0c8c4-2cd8-40c0-a6b7-aaa9b0b7eff4 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:18,984 INFO http_request_logger POST /api/v1/guardrails/ - 200 [5.65ms] +2026-09-09 11:40:18,990 INFO guardrails.execution request=bc816b2c-95d3-4624-ba9d-f458f7acad88 starting guardrails execution (validators=[]) input='tell me about buildings' +2026-09-09 11:40:18,990 INFO guardrails.execution request=bc816b2c-95d3-4624-ba9d-f458f7acad88 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Input is outside the allowed topic scope.' +2026-09-09 11:40:18,991 INFO http_request_logger POST /api/v1/guardrails/ - 200 [3.82ms] +2026-09-09 11:40:18,997 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 1326c3dd-db5b-4775-bbdf-bf62c97f2736: Invalid validator config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid validator config +2026-09-09 11:40:18,999 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.77ms] +2026-09-09 11:40:19,013 INFO guardrails.execution request=69365538-6f14-4049-8729-fb2bbf1fbf1f starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:40:19,015 INFO guardrails.execution request=69365538-6f14-4049-8729-fb2bbf1fbf1f guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:40:19,018 INFO guardrails.execution request=69365538-6f14-4049-8729-fb2bbf1fbf1f step=1/1 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.014341 end=2026-09-09T11:40:19.014439 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:40:19,021 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.40ms] +2026-09-09 11:40:19,034 INFO guardrails.execution request=91514ba6-8fc6-473f-8db2-1d067fb6850c starting guardrails execution (validators=['ban_list']) input='this contains badword' +2026-09-09 11:40:19,036 INFO guardrails.execution request=91514ba6-8fc6-473f-8db2-1d067fb6850c guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:40:19,038 INFO guardrails.execution request=91514ba6-8fc6-473f-8db2-1d067fb6850c step=1/1 validator=BanList stage=output outcome=Outcome.FAIL start=2026-09-09T11:40:19.035397 end=2026-09-09T11:40:19.035494 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:40:19,041 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.50ms] +2026-09-09 11:40:19,061 INFO guardrails.execution request=91f0083f-1a32-4d51-9b66-d0ee43437ff0 starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 11:40:19,063 INFO guardrails.execution request=91f0083f-1a32-4d51-9b66-d0ee43437ff0 guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:40:19,065 INFO guardrails.execution request=91f0083f-1a32-4d51-9b66-d0ee43437ff0 step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.062104 end=2026-09-09T11:40:19.062215 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:40:19,067 INFO guardrails.execution request=91f0083f-1a32-4d51-9b66-d0ee43437ff0 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:19.062222 end=2026-09-09T11:40:19.062526 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 11:40:19,070 INFO http_request_logger POST /api/v1/guardrails/ - 200 [24.35ms] +2026-09-09 11:40:19,084 INFO guardrails.execution request=94072204-41b4-4ab5-b13c-01cfcdbf70d5 starting guardrails execution (validators=['ban_list']) input='this is clean' +2026-09-09 11:40:19,086 INFO guardrails.execution request=94072204-41b4-4ab5-b13c-01cfcdbf70d5 guardrails execution finished (passed=True) output='this is clean' +2026-09-09 11:40:19,087 INFO guardrails.execution request=94072204-41b4-4ab5-b13c-01cfcdbf70d5 step=1/1 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:40:19.085171 end=2026-09-09T11:40:19.085250 duration_ms=0 input='this is clean' output='this is clean' +2026-09-09 11:40:19,091 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.30ms] +2026-09-09 11:40:19,105 INFO guardrails.execution request=6cbecf35-30dc-453f-8415-91b483757f18 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:40:19,107 INFO guardrails.execution request=6cbecf35-30dc-453f-8415-91b483757f18 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:40:19,109 INFO guardrails.execution request=6cbecf35-30dc-453f-8415-91b483757f18 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.106174 end=2026-09-09T11:40:19.106491 duration_ms=0 input='This sentence contains chakki.' output='this sentence contains [REDACTED_SLUR].' +2026-09-09 11:40:19,112 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.18ms] +2026-09-09 11:40:19,127 INFO guardrails.execution request=cbfde739-243d-4b6f-8f48-37a8604175a3 starting guardrails execution (validators=['uli_slur_match']) input='This is a completely safe sentence' +2026-09-09 11:40:19,129 INFO guardrails.execution request=cbfde739-243d-4b6f-8f48-37a8604175a3 guardrails execution finished (passed=True) output='This is a completely safe sentence' +2026-09-09 11:40:19,131 INFO guardrails.execution request=cbfde739-243d-4b6f-8f48-37a8604175a3 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:19.128305 end=2026-09-09T11:40:19.128603 duration_ms=0 input='This is a completely safe sentence' output='This is a completely safe sentence' +2026-09-09 11:40:19,134 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.42ms] +2026-09-09 11:40:19,150 INFO guardrails.execution request=7fd6d92b-99cf-4682-b8ec-dfdf71362ef6 starting guardrails execution (validators=['uli_slur_match', 'ban_list']) input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' +2026-09-09 11:40:19,152 INFO guardrails.execution request=7fd6d92b-99cf-4682-b8ec-dfdf71362ef6 guardrails execution finished (passed=True) output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:40:19,154 INFO guardrails.execution request=7fd6d92b-99cf-4682-b8ec-dfdf71362ef6 step=1/2 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.150923 end=2026-09-09T11:40:19.151464 duration_ms=0 input='This sentence contains chakki cause I want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' +2026-09-09 11:40:19,155 INFO guardrails.execution request=7fd6d92b-99cf-4682-b8ec-dfdf71362ef6 step=2/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.151471 end=2026-09-09T11:40:19.151562 duration_ms=0 input='this sentence contains [REDACTED_SLUR] cause i want a sonography done to kill the female foetus.' output='this sentence contains [REDACTED_SLUR] cause i want a s done to kill the female foetus.' +2026-09-09 11:40:19,158 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.67ms] +2026-09-09 11:40:19,163 INFO http_request_logger POST /api/v1/guardrails/ - 422 [1.05ms] +2026-09-09 11:40:19,177 INFO guardrails.execution request=44a54bf1-ba59-4993-a274-18f671a04dff starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:40:19,178 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 44a54bf1-ba59-4993-a274-18f671a04dff: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:40:19,180 INFO guardrails.execution request=44a54bf1-ba59-4993-a274-18f671a04dff step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.177720 end=2026-09-09T11:40:19.178024 duration_ms=0 input='This sentence contains chakki.' output=None +2026-09-09 11:40:19,182 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.34ms] +2026-09-09 11:40:19,198 INFO guardrails.execution request=63580fb0-d155-43f4-9915-4b9bb1bca8f4 starting guardrails execution (validators=['uli_slur_match']) input='This sentence contains chakki.' +2026-09-09 11:40:19,201 INFO guardrails.execution request=63580fb0-d155-43f4-9915-4b9bb1bca8f4 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:40:19,203 INFO guardrails.execution request=63580fb0-d155-43f4-9915-4b9bb1bca8f4 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.199697 end=2026-09-09T11:40:19.200120 duration_ms=0 input='This sentence contains chakki.' output='Please rephrase the query without unsafe content. Mentioned toxic words: chakki, chakki' +2026-09-09 11:40:19,206 INFO http_request_logger POST /api/v1/guardrails/ - 200 [19.90ms] +2026-09-09 11:40:19,221 INFO guardrails.execution request=f071c6bb-b50e-4ca8-87b3-fd36576c6484 starting guardrails execution (validators=['profanity_free']) input='This is a damn fucking mess.' +2026-09-09 11:40:19,224 INFO guardrails.execution request=f071c6bb-b50e-4ca8-87b3-fd36576c6484 guardrails execution finished (passed=True) output='' +2026-09-09 11:40:19,226 INFO guardrails.execution request=f071c6bb-b50e-4ca8-87b3-fd36576c6484 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.222390 end=2026-09-09T11:40:19.223490 duration_ms=1 input='This is a damn fucking mess.' output='' +2026-09-09 11:40:19,229 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.18ms] +2026-09-09 11:40:19,244 INFO guardrails.execution request=ed4fe747-266f-4e3e-af75-71972e33d548 starting guardrails execution (validators=['profanity_free']) input='This is a completely clean sentence.' +2026-09-09 11:40:19,246 INFO guardrails.execution request=ed4fe747-266f-4e3e-af75-71972e33d548 guardrails execution finished (passed=True) output='This is a completely clean sentence.' +2026-09-09 11:40:19,248 INFO guardrails.execution request=ed4fe747-266f-4e3e-af75-71972e33d548 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:40:19.245055 end=2026-09-09T11:40:19.246073 duration_ms=1 input='This is a completely clean sentence.' output='This is a completely clean sentence.' +2026-09-09 11:40:19,252 INFO http_request_logger POST /api/v1/guardrails/ - 200 [17.76ms] +2026-09-09 11:40:19,266 INFO guardrails.execution request=ede5c623-e237-4022-958f-a08ed1a0a1c4 starting guardrails execution (validators=['profanity_free']) input='What the fuck is going on?' +2026-09-09 11:40:19,268 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log ede5c623-e237-4022-958f-a08ed1a0a1c4: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck is going on? contains profanity. Please return profanity-free output. +2026-09-09 11:40:19,270 INFO guardrails.execution request=ede5c623-e237-4022-958f-a08ed1a0a1c4 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.266806 end=2026-09-09T11:40:19.267849 duration_ms=1 input='What the fuck is going on?' output=None +2026-09-09 11:40:19,272 INFO http_request_logger POST /api/v1/guardrails/ - 200 [16.81ms] +2026-09-09 11:40:19,288 INFO guardrails.execution request=32f07179-2f14-46da-b4bd-c653048cabc4 starting guardrails execution (validators=['profanity_free']) input='This is absolute bullshit.' +2026-09-09 11:40:19,290 INFO guardrails.execution request=32f07179-2f14-46da-b4bd-c653048cabc4 guardrails execution finished (passed=True) output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:40:19,292 INFO guardrails.execution request=32f07179-2f14-46da-b4bd-c653048cabc4 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:19.288803 end=2026-09-09T11:40:19.289721 duration_ms=0 input='This is absolute bullshit.' output='Please rephrase the query without unsafe content. [REDACTED] contains profanity. Please return profanity-free output.' +2026-09-09 11:40:19,295 INFO http_request_logger POST /api/v1/guardrails/ - 200 [18.12ms] +2026-09-09 11:40:19,302 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 735eefdb-a6fb-4497-a06d-4f37efb9b8f0: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 37, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:40:19,305 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.13ms] +2026-09-09 11:40:19,960 WARNING huggingface_hub.utils._http Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads. +2026-09-09 11:40:22,118 INFO guardrails.execution request=a5bfb9a3-e634-4949-9515-a53525a63501 starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:40:22,235 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log a5bfb9a3-e634-4949-9515-a53525a63501: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:40:22,243 INFO guardrails.execution request=a5bfb9a3-e634-4949-9515-a53525a63501 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:22.120144 end=2026-09-09T11:40:22.235359 duration_ms=115 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:40:22,248 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2938.89ms] +2026-09-09 11:40:24,426 INFO guardrails.execution request=425a0efd-1f2d-4c47-bac0-eeae5bf43dde starting guardrails execution (validators=['nsfw_text']) input='She slowly undressed and they had explicit sex.' +2026-09-09 11:40:24,442 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 425a0efd-1f2d-4c47-bac0-eeae5bf43dde: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- She slowly undressed and they had explicit sex. +2026-09-09 11:40:24,445 INFO guardrails.execution request=425a0efd-1f2d-4c47-bac0-eeae5bf43dde step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:24.427546 end=2026-09-09T11:40:24.441883 duration_ms=14 input='She slowly undressed and they had explicit sex.' output=None +2026-09-09 11:40:24,448 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2192.07ms] +2026-09-09 11:40:26,482 INFO guardrails.execution request=4377b0eb-4290-4af4-8f67-15a34b1e4834 starting guardrails execution (validators=['nsfw_text']) input='Explicit sexual content goes here.' +2026-09-09 11:40:26,507 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 4377b0eb-4290-4af4-8f67-15a34b1e4834: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- Explicit sexual content goes here. +2026-09-09 11:40:26,513 INFO guardrails.execution request=4377b0eb-4290-4af4-8f67-15a34b1e4834 step=1/1 validator=NSFWText stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:26.483201 end=2026-09-09T11:40:26.507724 duration_ms=24 input='Explicit sexual content goes here.' output=None +2026-09-09 11:40:26,516 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2064.49ms] +2026-09-09 11:40:26,539 INFO guardrails.execution request=34eb1352-0b9f-475f-ba87-379dc8e49752 starting guardrails execution (validators=['profanity_free', 'uli_slur_match']) input='This fucking chakki should leave.' +2026-09-09 11:40:26,543 INFO guardrails.execution request=34eb1352-0b9f-475f-ba87-379dc8e49752 guardrails execution finished (passed=True) output='' +2026-09-09 11:40:26,547 INFO guardrails.execution request=34eb1352-0b9f-475f-ba87-379dc8e49752 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:26.539649 end=2026-09-09T11:40:26.541910 duration_ms=2 input='This fucking chakki should leave.' output='' +2026-09-09 11:40:26,550 INFO guardrails.execution request=34eb1352-0b9f-475f-ba87-379dc8e49752 step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:26.541937 end=2026-09-09T11:40:26.542186 duration_ms=0 input='' output='' +2026-09-09 11:40:26,554 INFO http_request_logger POST /api/v1/guardrails/ - 200 [33.07ms] +2026-09-09 11:40:26,563 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log bd536ecf-d841-4655-946a-c0de4e4eb9e9: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 43, in __getattr__ + module = importlib.import_module(import_path) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/importlib/__init__.py", line 90, in import_module + return _bootstrap._gcd_import(name[level:], package, level) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "", line 1387, in _gcd_import + File "", line 1360, in _find_and_load + File "", line 1324, in _find_and_load_unlocked +ModuleNotFoundError: No module named 'guardrails_grhub_llamaguard_7b' + +The above exception was the direct cause of the following exception: + +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/guardrail_controller.py", line 9, in build_guard + validators = [v_item.build() for v_item in validator_items] + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/core/validators/config/llamaguard_7b_safety_validator_config.py", line 37, in build + from guardrails.hub import LlamaGuard7B + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub/__init__.py", line 48, in __getattr__ + raise ImportError( +ImportError: Cannot import 'LlamaGuard7B' from hub registry. Module 'guardrails_grhub_llamaguard_7b' not found. Try reinstalling: guardrails hub install hub:/// +2026-09-09 11:40:26,566 INFO http_request_logger POST /api/v1/guardrails/ - 200 [6.79ms] +2026-09-09 11:40:28,713 INFO guardrails.execution request=94319ca7-0717-4a45-8b47-a9e5acf4be41 starting guardrails execution (validators=['profanity_free', 'nsfw_text']) input='What the fuck, this is explicit adult sexual content.' +2026-09-09 11:40:28,715 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 94319ca7-0717-4a45-8b47-a9e5acf4be41: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: What the fuck, this is explicit adult sexual content. contains profanity. Please return profanity-free output. +2026-09-09 11:40:28,718 INFO guardrails.execution request=94319ca7-0717-4a45-8b47-a9e5acf4be41 step=1/1 validator=ProfanityFree stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:28.714143 end=2026-09-09T11:40:28.715418 duration_ms=1 input='What the fuck, this is explicit adult sexual content.' output=None +2026-09-09 11:40:28,721 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2150.44ms] +2026-09-09 11:40:30,851 INFO guardrails.execution request=40b6767e-8ba0-4208-a7f0-1992306a6286 starting guardrails execution (validators=['uli_slur_match', 'nsfw_text']) input='This chakki has explicit sexual content.' +2026-09-09 11:40:30,853 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log 40b6767e-8ba0-4208-a7f0-1992306a6286: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 873, in validate + return self.parse(llm_output=llm_output, *args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 771, in parse + return trace_guard_execution( + ^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 204, in trace_guard_execution + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/guard_tracing.py", line 193, in trace_guard_execution + result = _execute_fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 594, in _execute + return guard_context.run( + ^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/common.py", line 92, in wrapped_func + return func(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 573, in __exec + return self._exec( + ^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/guard.py", line 676, in _exec + call = runner(call_log=call_log, prompt_params=prompt_params) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 200, in __call__ + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 170, in __call__ + iteration = self.step( + ^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 102, in trace_step_wrapper + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/telemetry/runner_tracing.py", line 94, in trace_step_wrapper + response = fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 284, in step + raise e + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 269, in step + validated_output = self.validate( + ^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/hub_telemetry/hub_tracing.py", line 148, in wrapper + return fn(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/run/runner.py", line 465, in validate + validated_output, metadata = validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/__init__.py", line 79, in validate + return validator_service.validate( + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 460, in validate + value, metadata = self.run_validators( + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/sequential_validator_service.py", line 380, in run_validators + value = self.perform_correction( + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/.venv/lib/python3.12/site-packages/guardrails/validator_service/validator_service_base.py", line 106, in perform_correction + raise ValidationError( +guardrails.errors.ValidationError: Validation failed for field with errors: Mentioned toxic words: chakki, chakki +2026-09-09 11:40:30,858 INFO guardrails.execution request=40b6767e-8ba0-4208-a7f0-1992306a6286 step=1/1 validator=LexicalSlur stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:30.852456 end=2026-09-09T11:40:30.852928 duration_ms=0 input='This chakki has explicit sexual content.' output=None +2026-09-09 11:40:30,862 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2136.14ms] +2026-09-09 11:40:30,880 INFO guardrails.execution request=04f64361-ed4d-4eeb-a952-c487f4ec7f43 starting guardrails execution (validators=['profanity_free', 'ban_list']) input='Tell me about renewable energy sources.' +2026-09-09 11:40:30,883 INFO guardrails.execution request=04f64361-ed4d-4eeb-a952-c487f4ec7f43 guardrails execution finished (passed=True) output='Tell me about renewable energy sources.' +2026-09-09 11:40:30,887 INFO guardrails.execution request=04f64361-ed4d-4eeb-a952-c487f4ec7f43 step=1/2 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.881271 end=2026-09-09T11:40:30.882331 duration_ms=1 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:40:30,889 INFO guardrails.execution request=04f64361-ed4d-4eeb-a952-c487f4ec7f43 step=2/2 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.882338 end=2026-09-09T11:40:30.882458 duration_ms=0 input='Tell me about renewable energy sources.' output='Tell me about renewable energy sources.' +2026-09-09 11:40:30,893 INFO http_request_logger POST /api/v1/guardrails/ - 200 [25.15ms] +2026-09-09 11:40:30,917 INFO guardrails.execution request=0bda4f4e-e5be-423d-a2d2-3d90beeb4cc3 starting guardrails execution (validators=['uli_slur_match', 'profanity_free', 'ban_list']) input='What are some healthy breakfast options?' +2026-09-09 11:40:30,919 INFO guardrails.execution request=0bda4f4e-e5be-423d-a2d2-3d90beeb4cc3 guardrails execution finished (passed=True) output='What are some healthy breakfast options?' +2026-09-09 11:40:30,923 INFO guardrails.execution request=0bda4f4e-e5be-423d-a2d2-3d90beeb4cc3 step=1/3 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.917645 end=2026-09-09T11:40:30.917958 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:40:30,926 INFO guardrails.execution request=0bda4f4e-e5be-423d-a2d2-3d90beeb4cc3 step=2/3 validator=ProfanityFree stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.917963 end=2026-09-09T11:40:30.918977 duration_ms=1 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:40:30,928 INFO guardrails.execution request=0bda4f4e-e5be-423d-a2d2-3d90beeb4cc3 step=3/3 validator=BanList stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.918982 end=2026-09-09T11:40:30.919047 duration_ms=0 input='What are some healthy breakfast options?' output='What are some healthy breakfast options?' +2026-09-09 11:40:30,932 INFO http_request_logger POST /api/v1/guardrails/ - 200 [32.99ms] +2026-09-09 11:40:30,948 INFO guardrails.execution request=98aea30a-acaf-4d4b-b6d0-bb853f6dc7fa starting guardrails execution (validators=['ban_list', 'uli_slur_match']) input='this contains badword' +2026-09-09 11:40:30,950 INFO guardrails.execution request=98aea30a-acaf-4d4b-b6d0-bb853f6dc7fa guardrails execution finished (passed=True) output='this contains b' +2026-09-09 11:40:30,954 INFO guardrails.execution request=98aea30a-acaf-4d4b-b6d0-bb853f6dc7fa step=1/2 validator=BanList stage=input outcome=Outcome.FAIL start=2026-09-09T11:40:30.949245 end=2026-09-09T11:40:30.949355 duration_ms=0 input='this contains badword' output='this contains b' +2026-09-09 11:40:30,956 INFO guardrails.execution request=98aea30a-acaf-4d4b-b6d0-bb853f6dc7fa step=2/2 validator=LexicalSlur stage=input outcome=Outcome.PASS start=2026-09-09T11:40:30.949360 end=2026-09-09T11:40:30.949560 duration_ms=0 input='this contains b' output='this contains b' +2026-09-09 11:40:30,960 INFO http_request_logger POST /api/v1/guardrails/ - 200 [22.39ms] +2026-09-09 11:40:30,971 ERROR app.api.routes.guardrails [run_guardrails] config resolution failed for request_log d0c31665-8991-4e84-9697-9394fabcda75: 404: Ban list not found +2026-09-09 11:40:30,975 INFO http_request_logger POST /api/v1/guardrails/ - 404 [6.72ms] +2026-09-09 11:40:30,982 INFO guardrails.execution request=f6da3e55-7372-4154-af09-49bc582b6253 starting guardrails execution (validators=['ban_list']) input='hello' +2026-09-09 11:40:30,982 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log f6da3e55-7372-4154-af09-49bc582b6253: boom +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 343, in _validate_with_guard + result = guard.validate(data) + ^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +RuntimeError: boom +2026-09-09 11:40:30,984 INFO http_request_logger POST /api/v1/guardrails/ - 200 [4.38ms] +2026-09-09 11:40:30,989 WARNING app.api.routes.guardrails [run_guardrails] invalid request_id 'not-a-uuid' (org=1 project=1), no request log written +2026-09-09 11:40:30,989 INFO http_request_logger POST /api/v1/guardrails/ - 200 [1.08ms] +2026-09-09 11:40:30,999 INFO app.crud.llm_prompt_config created llm prompt config id=e2f35376-a562-4585-a9d5-a1b4288178b4 org=1 project=1 +2026-09-09 11:40:31,001 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [9.06ms] +2026-09-09 11:40:31,007 INFO app.crud.llm_prompt_config created llm prompt config id=5e082f8d-214b-4f9b-9fca-ac274b7cce76 org=1 project=1 +2026-09-09 11:40:31,008 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.25ms] +2026-09-09 11:40:31,015 INFO app.crud.llm_prompt_config created llm prompt config id=c5c1d348-f91c-4d28-9b4c-050ce4598d3e org=1 project=1 +2026-09-09 11:40:31,015 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.68ms] +2026-09-09 11:40:31,019 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.85ms] +2026-09-09 11:40:31,024 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.83ms] +2026-09-09 11:40:31,028 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.80ms] +2026-09-09 11:40:31,032 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.76ms] +2026-09-09 11:40:31,039 INFO app.crud.llm_prompt_config created llm prompt config id=223be68f-c373-4572-8d71-857e25afa9ef org=1 project=1 +2026-09-09 11:40:31,039 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.22ms] +2026-09-09 11:40:31,043 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.77ms] +2026-09-09 11:40:31,047 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 422 [0.83ms] +2026-09-09 11:40:31,052 INFO app.crud.llm_prompt_config created llm prompt config id=3649ea94-a25d-4240-88b7-ee8537494a17 org=1 project=1 +2026-09-09 11:40:31,053 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.01ms] +2026-09-09 11:40:31,058 INFO app.crud.llm_prompt_config created llm prompt config id=8be460fd-1180-41df-b77b-96cbe68bbd33 org=1 project=1 +2026-09-09 11:40:31,058 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.64ms] +2026-09-09 11:40:31,064 INFO app.crud.llm_prompt_config created llm prompt config id=ab958f74-e177-40ef-b920-f9340e482566 org=1 project=1 +2026-09-09 11:40:31,065 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [6.08ms] +2026-09-09 11:40:31,069 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [3.98ms] +2026-09-09 11:40:31,076 INFO app.crud.llm_prompt_config created llm prompt config id=4bb6e38d-1536-461e-8e4e-ef4a7d64c49c org=1 project=1 +2026-09-09 11:40:31,077 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.26ms] +2026-09-09 11:40:31,079 INFO app.crud.llm_prompt_config created llm prompt config id=e00cc179-9ae5-46f0-96b9-2464e66fa435 org=1 project=1 +2026-09-09 11:40:31,080 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.48ms] +2026-09-09 11:40:31,082 INFO app.crud.llm_prompt_config created llm prompt config id=252c28a9-896d-4ab7-8dc6-19fc48b120de org=1 project=1 +2026-09-09 11:40:31,082 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.14ms] +2026-09-09 11:40:31,085 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [2.25ms] +2026-09-09 11:40:31,090 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.61ms] +2026-09-09 11:40:31,095 INFO app.crud.llm_prompt_config created llm prompt config id=693ef504-6b39-4595-ad6b-72eed69c885e org=1 project=1 +2026-09-09 11:40:31,095 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.52ms] +2026-09-09 11:40:31,097 INFO app.crud.llm_prompt_config created llm prompt config id=a75f3ee4-c54c-4aef-8be6-d1315b74d7ff org=1 project=1 +2026-09-09 11:40:31,098 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.18ms] +2026-09-09 11:40:31,100 INFO app.crud.llm_prompt_config created llm prompt config id=4ec0b7f8-349f-4eac-ac0d-0f9a2a77ec2f org=1 project=1 +2026-09-09 11:40:31,100 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.16ms] +2026-09-09 11:40:31,102 INFO app.crud.llm_prompt_config created llm prompt config id=f0d3cf87-95e0-4bed-a556-32a448f4069d org=1 project=1 +2026-09-09 11:40:31,103 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.09ms] +2026-09-09 11:40:31,105 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.81ms] +2026-09-09 11:40:31,110 INFO app.crud.llm_prompt_config created llm prompt config id=c4e8c23f-dc0a-48e8-8c39-2e1f460a3b41 org=1 project=1 +2026-09-09 11:40:31,110 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.40ms] +2026-09-09 11:40:31,112 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.23ms] +2026-09-09 11:40:31,117 INFO app.crud.llm_prompt_config created llm prompt config id=be57ec3a-c81d-4c08-9faf-0ae23caea472 org=1 project=1 +2026-09-09 11:40:31,117 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.38ms] +2026-09-09 11:40:31,119 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/be57ec3a-c81d-4c08-9faf-0ae23caea472 - 200 [1.61ms] +2026-09-09 11:40:31,124 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/7648072b-699d-4184-9196-7e8d5c9063bb - 404 [1.44ms] +2026-09-09 11:40:31,128 INFO app.crud.llm_prompt_config created llm prompt config id=81c05c47-69e8-440e-a0ff-4f59959277ea org=1 project=1 +2026-09-09 11:40:31,129 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.39ms] +2026-09-09 11:40:31,130 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/81c05c47-69e8-440e-a0ff-4f59959277ea - 404 [1.20ms] +2026-09-09 11:40:31,135 INFO app.crud.llm_prompt_config created llm prompt config id=0d3fed1f-be00-4c39-a673-7b364e012f01 org=1 project=1 +2026-09-09 11:40:31,135 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.35ms] +2026-09-09 11:40:31,139 INFO app.crud.llm_prompt_config updated llm prompt config id=0d3fed1f-be00-4c39-a673-7b364e012f01 +2026-09-09 11:40:31,139 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/0d3fed1f-be00-4c39-a673-7b364e012f01 - 200 [3.36ms] +2026-09-09 11:40:31,144 INFO app.crud.llm_prompt_config created llm prompt config id=0c3256e8-7d0e-4e25-8f81-6b9f7b15d197 org=1 project=1 +2026-09-09 11:40:31,144 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.46ms] +2026-09-09 11:40:31,149 INFO app.crud.llm_prompt_config updated llm prompt config id=0c3256e8-7d0e-4e25-8f81-6b9f7b15d197 +2026-09-09 11:40:31,150 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/0c3256e8-7d0e-4e25-8f81-6b9f7b15d197 - 200 [5.13ms] +2026-09-09 11:40:31,155 INFO app.crud.llm_prompt_config created llm prompt config id=a5bc9bec-7b45-4c85-b865-f9badb8f6d03 org=1 project=1 +2026-09-09 11:40:31,156 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.56ms] +2026-09-09 11:40:31,158 INFO app.crud.llm_prompt_config updated llm prompt config id=a5bc9bec-7b45-4c85-b865-f9badb8f6d03 +2026-09-09 11:40:31,159 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/a5bc9bec-7b45-4c85-b865-f9badb8f6d03 - 200 [2.76ms] +2026-09-09 11:40:31,161 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/a5bc9bec-7b45-4c85-b865-f9badb8f6d03 - 200 [1.42ms] +2026-09-09 11:40:31,167 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/844146dc-c6c0-4acc-b2eb-6ed689d1167a - 404 [2.62ms] +2026-09-09 11:40:31,175 INFO app.crud.llm_prompt_config created llm prompt config id=9254716d-2a96-4488-a3b5-505dab47649e org=1 project=1 +2026-09-09 11:40:31,176 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.78ms] +2026-09-09 11:40:31,178 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/9254716d-2a96-4488-a3b5-505dab47649e - 404 [1.41ms] +2026-09-09 11:40:31,184 INFO app.crud.llm_prompt_config created llm prompt config id=27304bfa-86a4-4546-a198-6436442dd2ea org=1 project=1 +2026-09-09 11:40:31,185 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.24ms] +2026-09-09 11:40:31,187 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/27304bfa-86a4-4546-a198-6436442dd2ea - 422 [1.76ms] +2026-09-09 11:40:31,194 INFO app.crud.llm_prompt_config created llm prompt config id=3d293d7e-1f33-42a1-845d-1a0a012d4c39 org=1 project=1 +2026-09-09 11:40:31,194 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.64ms] +2026-09-09 11:40:31,196 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/3d293d7e-1f33-42a1-845d-1a0a012d4c39 - 422 [1.41ms] +2026-09-09 11:40:31,202 INFO app.crud.llm_prompt_config created llm prompt config id=006b71df-fd3a-4ce9-890b-c1e7502f9caf org=1 project=1 +2026-09-09 11:40:31,202 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.96ms] +2026-09-09 11:40:31,206 INFO app.crud.llm_prompt_config updated llm prompt config id=006b71df-fd3a-4ce9-890b-c1e7502f9caf +2026-09-09 11:40:31,207 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/006b71df-fd3a-4ce9-890b-c1e7502f9caf - 200 [4.30ms] +2026-09-09 11:40:31,213 INFO app.crud.llm_prompt_config created llm prompt config id=70c5411f-fc2c-4834-b426-2c39e24a2f5d org=1 project=1 +2026-09-09 11:40:31,214 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.06ms] +2026-09-09 11:40:31,216 INFO app.crud.llm_prompt_config updated llm prompt config id=70c5411f-fc2c-4834-b426-2c39e24a2f5d +2026-09-09 11:40:31,217 INFO http_request_logger PATCH /api/v1/guardrails/llm_prompt_configs/70c5411f-fc2c-4834-b426-2c39e24a2f5d - 200 [2.97ms] +2026-09-09 11:40:31,223 INFO app.crud.llm_prompt_config created llm prompt config id=18fd10e5-4a38-4d3e-9a10-198fd829fb49 org=1 project=1 +2026-09-09 11:40:31,223 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [2.96ms] +2026-09-09 11:40:31,227 INFO app.crud.llm_prompt_config deleted llm prompt config id=18fd10e5-4a38-4d3e-9a10-198fd829fb49 +2026-09-09 11:40:31,228 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/18fd10e5-4a38-4d3e-9a10-198fd829fb49 - 200 [3.94ms] +2026-09-09 11:40:31,236 INFO app.crud.llm_prompt_config created llm prompt config id=1e64ab7e-3c87-40ba-bb19-da37d51ffed4 org=1 project=1 +2026-09-09 11:40:31,236 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [4.39ms] +2026-09-09 11:40:31,239 INFO app.crud.llm_prompt_config deleted llm prompt config id=1e64ab7e-3c87-40ba-bb19-da37d51ffed4 +2026-09-09 11:40:31,239 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/1e64ab7e-3c87-40ba-bb19-da37d51ffed4 - 200 [2.32ms] +2026-09-09 11:40:31,241 INFO http_request_logger GET /api/v1/guardrails/llm_prompt_configs/ - 200 [1.93ms] +2026-09-09 11:40:31,248 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/5b4d7b44-bef8-4cd5-b805-ccad0e721cec - 404 [1.67ms] +2026-09-09 11:40:31,254 INFO app.crud.llm_prompt_config created llm prompt config id=5b555a03-7c3a-4318-8d7d-855987a26035 org=1 project=1 +2026-09-09 11:40:31,254 INFO http_request_logger POST /api/v1/guardrails/llm_prompt_configs/ - 200 [3.03ms] +2026-09-09 11:40:31,256 INFO http_request_logger DELETE /api/v1/guardrails/llm_prompt_configs/5b555a03-7c3a-4318-8d7d-855987a26035 - 404 [1.36ms] +2026-09-09 11:40:31,357 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='hello' +2026-09-09 11:40:31,357 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=True) output='clean text' +2026-09-09 11:40:31,359 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:40:31,359 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,361 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d6fa9e09-698f-467a-b0d0-a2c9998e39c9: Invalid config +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Invalid config +2026-09-09 11:40:31,364 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:40:31,364 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,368 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='bad text' +2026-09-09 11:40:31,368 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,390 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='this is some unsafe content' +2026-09-09 11:40:31,391 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,393 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='some input text' +2026-09-09 11:40:31,393 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,395 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 starting guardrails execution (validators=[]) input='this contains profane words' +2026-09-09 11:40:31,395 INFO guardrails.execution request=d6fa9e09-698f-467a-b0d0-a2c9998e39c9 guardrails execution finished (passed=False) output=None +2026-09-09 11:40:31,397 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d6fa9e09-698f-467a-b0d0-a2c9998e39c9: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: The following sentences in your response were found to be NSFW: + +- this is some unsafe content +2026-09-09 11:40:31,399 ERROR app.api.routes.guardrails [_validate_with_guard] guardrails execution failed for request log d6fa9e09-698f-467a-b0d0-a2c9998e39c9: Validation failed for field with errors: Profanity detected in: this contains profane words +Traceback (most recent call last): + File "/Users/prajna/Desktop/t4d/kaapi-guardrails/backend/app/api/routes/guardrails.py", line 327, in _validate_with_guard + guard = build_guard(validators) + ^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1139, in __call__ + return self._mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1143, in _mock_call + return self._execute_mock_call(*args, **kwargs) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "/Users/prajna/.local/share/uv/python/cpython-3.12.12-macos-aarch64-none/lib/python3.12/unittest/mock.py", line 1198, in _execute_mock_call + raise effect +Exception: Validation failed for field with errors: Profanity detected in: this contains profane words +2026-09-09 11:40:31,416 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:40:31,418 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:40:31,420 INFO app.crud.validator_config updated validator config id=22222222-2222-2222-2222-222222222222 +2026-09-09 11:40:31,431 INFO app.crud.validator_config created validator config id=a73e46c6-b27e-454f-8f08-ae24318e4fbb org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:40:31,432 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.90ms] +2026-09-09 11:40:31,439 INFO app.crud.validator_config created validator config id=524e93a1-e0c1-4a4b-ac9d-5b21f9b32ac3 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:40:31,440 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.82ms] +2026-09-09 11:40:31,442 WARNING app.crud.validator_config create validator config failed: duplicate name (org=1 project=1) +2026-09-09 11:40:31,442 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 400 [1.84ms] +2026-09-09 11:40:31,446 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 422 [0.93ms] +2026-09-09 11:40:31,454 INFO app.crud.validator_config created validator config id=ef15374c-8059-4b58-8c3c-c44df610c791 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:40:31,454 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [5.51ms] +2026-09-09 11:40:31,457 INFO app.crud.validator_config created validator config id=b709030b-b75a-4317-a073-46b7851f0381 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:40:31,458 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.73ms] +2026-09-09 11:40:31,460 INFO app.crud.validator_config created validator config id=0358c97d-ce71-4bed-a42f-48d35eb44d34 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:40:31,460 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.34ms] +2026-09-09 11:40:31,462 INFO app.crud.validator_config created validator config id=aee8fda5-7b65-41b9-895f-6208cc7c053d org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:40:31,463 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.28ms] +2026-09-09 11:40:31,465 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.06ms] +2026-09-09 11:40:31,466 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ef15374c-8059-4b58-8c3c-c44df610c791/ - 307 [0.09ms] +2026-09-09 11:40:31,469 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ef15374c-8059-4b58-8c3c-c44df610c791 - 200 [2.60ms] +2026-09-09 11:40:31,469 INFO http_request_logger GET /api/v1/guardrails/validators/configs/b709030b-b75a-4317-a073-46b7851f0381/ - 307 [0.09ms] +2026-09-09 11:40:31,472 INFO http_request_logger GET /api/v1/guardrails/validators/configs/b709030b-b75a-4317-a073-46b7851f0381 - 200 [2.69ms] +2026-09-09 11:40:31,472 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0358c97d-ce71-4bed-a42f-48d35eb44d34/ - 307 [0.08ms] +2026-09-09 11:40:31,476 INFO http_request_logger GET /api/v1/guardrails/validators/configs/0358c97d-ce71-4bed-a42f-48d35eb44d34 - 200 [2.95ms] +2026-09-09 11:40:31,476 INFO http_request_logger GET /api/v1/guardrails/validators/configs/aee8fda5-7b65-41b9-895f-6208cc7c053d/ - 307 [0.09ms] +2026-09-09 11:40:31,479 INFO http_request_logger GET /api/v1/guardrails/validators/configs/aee8fda5-7b65-41b9-895f-6208cc7c053d - 200 [2.77ms] +2026-09-09 11:40:31,488 INFO app.crud.validator_config created validator config id=f2e9201e-b3c0-4d5f-a3d3-6c084128ff03 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:40:31,489 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [4.64ms] +2026-09-09 11:40:31,492 INFO app.crud.validator_config created validator config id=e9d9838a-f649-4990-8de2-fcb62e39d5c0 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:40:31,493 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.67ms] +2026-09-09 11:40:31,496 INFO app.crud.validator_config created validator config id=a83a34d3-414d-43e3-ab03-17a4ea66e70c org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:40:31,496 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.73ms] +2026-09-09 11:40:31,497 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f2e9201e-b3c0-4d5f-a3d3-6c084128ff03/ - 307 [0.09ms] +2026-09-09 11:40:31,500 INFO app.crud.validator_config updated validator config id=f2e9201e-b3c0-4d5f-a3d3-6c084128ff03 +2026-09-09 11:40:31,501 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/f2e9201e-b3c0-4d5f-a3d3-6c084128ff03 - 200 [3.91ms] +2026-09-09 11:40:31,501 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/e9d9838a-f649-4990-8de2-fcb62e39d5c0/ - 307 [0.11ms] +2026-09-09 11:40:31,504 INFO app.crud.validator_config updated validator config id=e9d9838a-f649-4990-8de2-fcb62e39d5c0 +2026-09-09 11:40:31,505 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/e9d9838a-f649-4990-8de2-fcb62e39d5c0 - 200 [3.22ms] +2026-09-09 11:40:31,505 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/a83a34d3-414d-43e3-ab03-17a4ea66e70c/ - 307 [0.09ms] +2026-09-09 11:40:31,508 INFO app.crud.validator_config updated validator config id=a83a34d3-414d-43e3-ab03-17a4ea66e70c +2026-09-09 11:40:31,509 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/a83a34d3-414d-43e3-ab03-17a4ea66e70c - 200 [3.00ms] +2026-09-09 11:40:31,511 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.29ms] +2026-09-09 11:40:31,519 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.73ms] +2026-09-09 11:40:31,527 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.15ms] +2026-09-09 11:40:31,534 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.97ms] +2026-09-09 11:40:31,539 INFO app.crud.validator_config created validator config id=9c9476ff-b0e6-4774-aa90-958bfe54d998 org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:40:31,540 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.76ms] +2026-09-09 11:40:31,542 INFO app.crud.validator_config created validator config id=53a641c8-550c-449f-bbe5-eee5996fc053 org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:40:31,542 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.42ms] +2026-09-09 11:40:31,546 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [3.10ms] +2026-09-09 11:40:31,552 INFO app.crud.validator_config created validator config id=6acc6355-fa7b-44d0-8bf6-069dbb51403d org=1 project=1 type=ValidatorType.LexicalSlur +2026-09-09 11:40:31,553 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.63ms] +2026-09-09 11:40:31,555 INFO app.crud.validator_config created validator config id=12ca8ec6-f9b8-4808-8404-78803dee79cf org=1 project=1 type=ValidatorType.PIIRemover +2026-09-09 11:40:31,555 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [2.34ms] +2026-09-09 11:40:31,557 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.55ms] +2026-09-09 11:40:31,561 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 422 [0.77ms] +2026-09-09 11:40:31,567 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.63ms] +2026-09-09 11:40:31,573 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.62ms] +2026-09-09 11:40:31,574 INFO http_request_logger GET /api/v1/guardrails/validators/configs/889b65c2-7001-44a9-b2f7-766f71a5bd16/ - 307 [0.09ms] +2026-09-09 11:40:31,575 INFO http_request_logger GET /api/v1/guardrails/validators/configs/889b65c2-7001-44a9-b2f7-766f71a5bd16 - 200 [1.37ms] +2026-09-09 11:40:31,581 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d00acf5f-e831-49e3-8786-27a57b9695eb/ - 307 [0.09ms] +2026-09-09 11:40:31,583 INFO http_request_logger GET /api/v1/guardrails/validators/configs/d00acf5f-e831-49e3-8786-27a57b9695eb - 404 [1.44ms] +2026-09-09 11:40:31,586 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid/ - 307 [0.08ms] +2026-09-09 11:40:31,587 INFO http_request_logger GET /api/v1/guardrails/validators/configs/not-a-uuid - 422 [0.73ms] +2026-09-09 11:40:31,592 INFO app.crud.validator_config created validator config id=7a766cbf-3692-405c-964c-a363bb173f92 org=1 project=1 type=ValidatorType.GenderAssumptionBias +2026-09-09 11:40:31,592 INFO http_request_logger POST /api/v1/guardrails/validators/configs/ - 200 [3.07ms] +2026-09-09 11:40:31,593 INFO http_request_logger GET /api/v1/guardrails/validators/configs/7a766cbf-3692-405c-964c-a363bb173f92/ - 307 [0.12ms] +2026-09-09 11:40:31,596 INFO http_request_logger GET /api/v1/guardrails/validators/configs/7a766cbf-3692-405c-964c-a363bb173f92 - 404 [2.18ms] +2026-09-09 11:40:31,604 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [2.15ms] +2026-09-09 11:40:31,605 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/56d85a58-b23e-46b1-8181-70ab89b35c05/ - 307 [0.08ms] +2026-09-09 11:40:31,607 INFO app.crud.validator_config updated validator config id=56d85a58-b23e-46b1-8181-70ab89b35c05 +2026-09-09 11:40:31,608 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/56d85a58-b23e-46b1-8181-70ab89b35c05 - 200 [2.81ms] +2026-09-09 11:40:31,614 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.70ms] +2026-09-09 11:40:31,615 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/eb297c97-788d-4df1-92d1-2748be90efb0/ - 307 [0.09ms] +2026-09-09 11:40:31,618 INFO app.crud.validator_config updated validator config id=eb297c97-788d-4df1-92d1-2748be90efb0 +2026-09-09 11:40:31,619 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/eb297c97-788d-4df1-92d1-2748be90efb0 - 200 [3.92ms] +2026-09-09 11:40:31,622 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/30efe36c-df5c-473e-b225-305049b445d8/ - 307 [0.08ms] +2026-09-09 11:40:31,624 INFO http_request_logger PATCH /api/v1/guardrails/validators/configs/30efe36c-df5c-473e-b225-305049b445d8 - 404 [1.55ms] +2026-09-09 11:40:31,629 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.53ms] +2026-09-09 11:40:31,630 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/8c1c19ed-2eb0-4746-8457-e01e8ef67406/ - 307 [0.08ms] +2026-09-09 11:40:31,633 INFO app.crud.validator_config deleted validator config id=8c1c19ed-2eb0-4746-8457-e01e8ef67406 +2026-09-09 11:40:31,633 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/8c1c19ed-2eb0-4746-8457-e01e8ef67406 - 200 [2.70ms] +2026-09-09 11:40:31,633 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8c1c19ed-2eb0-4746-8457-e01e8ef67406/ - 307 [0.08ms] +2026-09-09 11:40:31,635 INFO http_request_logger GET /api/v1/guardrails/validators/configs/8c1c19ed-2eb0-4746-8457-e01e8ef67406 - 404 [1.28ms] +2026-09-09 11:40:31,638 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/b0e95deb-55bf-48ca-997c-8ea1d05a32ee/ - 307 [0.20ms] +2026-09-09 11:40:31,639 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/b0e95deb-55bf-48ca-997c-8ea1d05a32ee - 404 [1.31ms] +2026-09-09 11:40:31,645 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [1.70ms] +2026-09-09 11:40:31,646 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/787cf97e-d063-405c-aedb-864124c12263/ - 307 [0.08ms] +2026-09-09 11:40:31,647 INFO http_request_logger DELETE /api/v1/guardrails/validators/configs/787cf97e-d063-405c-aedb-864124c12263 - 404 [1.20ms] +2026-09-09 11:40:31,648 INFO http_request_logger GET /api/v1/guardrails/validators/configs/787cf97e-d063-405c-aedb-864124c12263/ - 307 [0.08ms] +2026-09-09 11:40:31,651 INFO http_request_logger GET /api/v1/guardrails/validators/configs/787cf97e-d063-405c-aedb-864124c12263 - 200 [2.50ms] +2026-09-09 11:40:31,764 INFO presidio-analyzer Loaded recognizer: InAadhaarRecognizer +2026-09-09 11:40:31,764 INFO presidio-analyzer Loaded recognizer: InPanRecognizer +2026-09-09 11:40:31,834 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:34,129 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:34,138 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:35,619 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:35,637 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:36,697 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:36,710 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:38,018 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:38,029 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:39,531 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:39,545 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:40,709 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:40,711 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 11:40:41,866 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 11:40:42,040 INFO watchfiles.main 3 changes detected +2026-09-09 11:48:38,075 INFO watchfiles.main 3 changes detected +2026-09-09 11:48:38,079 WARNING uvicorn.error WatchFiles detected changes in 'app/core/telemetry.py', 'app/crud/validator_config.py', 'app/core/config.py'. Reloading... +2026-09-09 11:48:38,147 INFO uvicorn.error Shutting down +2026-09-09 11:48:38,251 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 11:48:38,252 INFO uvicorn.error Application shutdown complete. +2026-09-09 11:48:38,253 INFO uvicorn.error Finished server process [55706] +2026-09-09 11:48:38,695 INFO watchfiles.main 4 changes detected +2026-09-09 11:48:43,958 INFO presidio-analyzer Using device of type: cpu +2026-09-09 11:48:44,570 INFO watchfiles.main 3 changes detected +2026-09-09 11:48:44,886 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 11:48:44,886 INFO uvicorn.error Started server process [57743] +2026-09-09 11:48:44,887 INFO uvicorn.error Waiting for application startup. +2026-09-09 11:48:44,887 INFO uvicorn.error Application startup complete. +2026-09-09 11:48:44,933 INFO watchfiles.main 3 changes detected +2026-09-09 16:45:10,532 INFO http_request_logger GET /api/v1/guardrails/validators/configs/ - 200 [145.37ms] +2026-09-09 16:45:10,684 INFO guardrails.execution request=817c539c-a776-43ea-b41c-c03f8609599c starting guardrails execution (validators=['gender_assumption_bias', 'answer_relevance_custom_llm']) input='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' +2026-09-09 16:45:10,736 INFO LiteLLM +LiteLLM completion() model= gpt-4o-mini; provider = openai +2026-09-09 16:45:13,062 INFO LiteLLM Wrapper: Completed Call, calling success_handler +2026-09-09 16:45:13,068 INFO guardrails.execution request=817c539c-a776-43ea-b41c-c03f8609599c guardrails execution finished (passed=True) output='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' +2026-09-09 16:45:13,084 INFO guardrails.execution request=817c539c-a776-43ea-b41c-c03f8609599c step=1/2 validator=GenderAssumptionBias stage=output outcome=Outcome.PASS start=2026-09-09T16:45:10.694620 end=2026-09-09T16:45:10.707692 duration_ms=13 input='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' output='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' +2026-09-09 16:45:13,091 INFO guardrails.execution request=817c539c-a776-43ea-b41c-c03f8609599c step=2/2 validator=AnswerRelevanceCustomLLM stage=output outcome=Outcome.PASS start=2026-09-09T16:45:10.707712 end=2026-09-09T16:45:13.066075 duration_ms=2358 input='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' output='Please don’t share someone’s private phone number or use abusive language. If you have a concern about this doctor, cont…' +2026-09-09 16:45:13,096 INFO http_request_logger POST /api/v1/guardrails/ - 200 [2532.63ms] +2026-09-09 16:55:34,693 INFO uvicorn.error Shutting down +2026-09-09 16:55:34,803 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 16:55:34,804 INFO uvicorn.error Application shutdown complete. +2026-09-09 16:55:34,805 INFO uvicorn.error Finished server process [57743] +2026-09-09 16:55:34,837 INFO uvicorn.error Stopping reloader process [31730] +2026-09-09 16:55:58,895 INFO presidio-analyzer Using device of type: cpu +2026-09-09 16:55:59,763 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 16:55:59,793 INFO uvicorn.error Will watch for changes in these directories: ['/Users/prajna/Desktop/t4d/kaapi-guardrails/backend'] +2026-09-09 16:55:59,793 INFO uvicorn.error Uvicorn running on http://127.0.0.1:8001 (Press CTRL+C to quit) +2026-09-09 16:55:59,793 INFO uvicorn.error Started reloader process [71969] using WatchFiles +2026-09-09 16:56:04,301 INFO presidio-analyzer Using device of type: cpu +2026-09-09 16:56:05,104 INFO app.core.telemetry Telemetry initialized (environment=production) +2026-09-09 16:56:05,104 INFO uvicorn.error Started server process [71979] +2026-09-09 16:56:05,105 INFO uvicorn.error Waiting for application startup. +2026-09-09 16:56:05,105 INFO uvicorn.error Application startup complete. +2026-09-09 16:58:26,029 INFO watchfiles.main 89 changes detected +2026-09-09 16:58:26,039 WARNING uvicorn.error WatchFiles detected changes in 'app/schemas/guardrail_config.py', 'app/core/validators/config/answer_relevance_custom_llm_safety_validator_config.py', 'app/schemas/llm_prompt_config.py', 'app/tests/test_guardrails_traceability_integration.py', 'app/core/validators/config/ban_list_safety_validator_config.py', 'app/core/validators/config/llamaguard_7b_safety_validator_config.py', 'app/core/validators/llm_utils.py', 'app/core/middleware.py', 'app/api/routes/guardrails.py', 'app/core/validators/topic_relevance.py', 'app/core/db.py', 'app/main.py', 'app/core/logging_config.py', 'app/core/validators/config/nsfw_text_safety_validator_config.py', 'app/core/validators/answer_relevance_custom_llm.py', 'app/core/validators/lexical_slur.py', 'app/core/validators/config/llm_critic_safety_validator_config.py', 'app/alembic/versions/010_add_traceability_columns.py', 'app/alembic/versions/011_rename_validator_log_request_id.py', 'app/core/exception_handlers.py', 'app/evaluation/toxicity/run.py', 'app/evaluation/ban_list/run.py', 'app/evaluation/pii/entity_metrics.py', 'app/api/deps.py', 'app/core/validators/topic_relevance_llm.py', 'app/core/validators/pii_remover.py', 'app/crud/ban_list.py', 'app/core/config.py', 'app/tests/test_guardrails_api_integration.py', 'app/models/logging/request_log.py', 'app/core/telemetry.py', 'app/core/validators/config/base_validator_config.py', 'app/models/logging/validator_log.py', 'app/core/validators/config/profanity_free_safety_validator_config.py', 'app/crud/validator_config.py', 'app/crud/request_log.py', 'app/tests/test_toxicity_hub_validators.py', 'app/crud/llm_prompt_config.py'. Reloading... +2026-09-09 16:58:26,063 INFO uvicorn.error Shutting down +2026-09-09 16:58:26,169 INFO uvicorn.error Waiting for application shutdown. +2026-09-09 16:58:26,170 INFO uvicorn.error Application shutdown complete. +2026-09-09 16:58:26,171 INFO uvicorn.error Finished server process [71979] +2026-09-09 16:58:26,562 INFO watchfiles.main 1 change detected +2026-09-09 16:58:26,950 INFO watchfiles.main 30 changes detected +2026-09-09 16:58:29,728 INFO watchfiles.main 6 changes detected diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 9fdc6c1e..455c0653 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -33,7 +33,8 @@ dependencies = [ "scikit-learn>=1.6.0,<2.0.0", "huggingface-hub>=1.5.0,<2.0", "transformers>=5.0.0", - "torch>=2.0.0" + "torch>=2.0.0", + "guardrails-ai-ban-list>=0.1.0", ] [dependency-groups] diff --git a/backend/uv.lock b/backend/uv.lock index 5c873fa0..ec7ed0b7 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.10, <3.14" resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'win32'", @@ -18,9 +18,9 @@ resolution-markers = [ name = "aiohappyeyeballs" version = "2.6.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload_time = "2025-03-12T01:42:48.764Z" } +sdist = { url = "https://files.pythonhosted.org/packages/26/30/f84a107a9c4331c14b2b586036f40965c128aa4fee4dda5d3d51cb14ad54/aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558", size = 22760, upload-time = "2025-03-12T01:42:48.764Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload_time = "2025-03-12T01:42:47.083Z" }, + { url = "https://files.pythonhosted.org/packages/0f/15/5bf3b99495fb160b63f95972b81750f18f7f4e02ad051373b669d17d44f2/aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8", size = 15265, upload-time = "2025-03-12T01:42:47.083Z" }, ] [[package]] @@ -37,76 +37,76 @@ dependencies = [ { name = "propcache" }, { name = "yarl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload_time = "2026-01-03T17:33:05.204Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/36/d6/5aec9313ee6ea9c7cde8b891b69f4ff4001416867104580670a31daeba5b/aiohttp-3.13.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7", size = 738950, upload_time = "2026-01-03T17:29:13.002Z" }, - { url = "https://files.pythonhosted.org/packages/68/03/8fa90a7e6d11ff20a18837a8e2b5dd23db01aabc475aa9271c8ad33299f5/aiohttp-3.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821", size = 496099, upload_time = "2026-01-03T17:29:15.268Z" }, - { url = "https://files.pythonhosted.org/packages/d2/23/b81f744d402510a8366b74eb420fc0cc1170d0c43daca12d10814df85f10/aiohttp-3.13.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845", size = 491072, upload_time = "2026-01-03T17:29:16.922Z" }, - { url = "https://files.pythonhosted.org/packages/d5/e1/56d1d1c0dd334cd203dd97706ce004c1aa24b34a813b0b8daf3383039706/aiohttp-3.13.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af", size = 1671588, upload_time = "2026-01-03T17:29:18.539Z" }, - { url = "https://files.pythonhosted.org/packages/5f/34/8d7f962604f4bc2b4e39eb1220dac7d4e4cba91fb9ba0474b4ecd67db165/aiohttp-3.13.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940", size = 1640334, upload_time = "2026-01-03T17:29:21.028Z" }, - { url = "https://files.pythonhosted.org/packages/94/1d/fcccf2c668d87337ddeef9881537baee13c58d8f01f12ba8a24215f2b804/aiohttp-3.13.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160", size = 1722656, upload_time = "2026-01-03T17:29:22.531Z" }, - { url = "https://files.pythonhosted.org/packages/aa/98/c6f3b081c4c606bc1e5f2ec102e87d6411c73a9ef3616fea6f2d5c98c062/aiohttp-3.13.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7", size = 1817625, upload_time = "2026-01-03T17:29:24.276Z" }, - { url = "https://files.pythonhosted.org/packages/2c/c0/cfcc3d2e11b477f86e1af2863f3858c8850d751ce8dc39c4058a072c9e54/aiohttp-3.13.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455", size = 1672604, upload_time = "2026-01-03T17:29:26.099Z" }, - { url = "https://files.pythonhosted.org/packages/1e/77/6b4ffcbcac4c6a5d041343a756f34a6dd26174ae07f977a64fe028dda5b0/aiohttp-3.13.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279", size = 1554370, upload_time = "2026-01-03T17:29:28.121Z" }, - { url = "https://files.pythonhosted.org/packages/f2/f0/e3ddfa93f17d689dbe014ba048f18e0c9f9b456033b70e94349a2e9048be/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e", size = 1642023, upload_time = "2026-01-03T17:29:30.002Z" }, - { url = "https://files.pythonhosted.org/packages/eb/45/c14019c9ec60a8e243d06d601b33dcc4fd92379424bde3021725859d7f99/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d", size = 1649680, upload_time = "2026-01-03T17:29:31.782Z" }, - { url = "https://files.pythonhosted.org/packages/9c/fd/09c9451dae5aa5c5ed756df95ff9ef549d45d4be663bafd1e4954fd836f0/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808", size = 1692407, upload_time = "2026-01-03T17:29:33.392Z" }, - { url = "https://files.pythonhosted.org/packages/a6/81/938bc2ec33c10efd6637ccb3d22f9f3160d08e8f3aa2587a2c2d5ab578eb/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40", size = 1543047, upload_time = "2026-01-03T17:29:34.855Z" }, - { url = "https://files.pythonhosted.org/packages/f7/23/80488ee21c8d567c83045e412e1d9b7077d27171591a4eb7822586e8c06a/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29", size = 1715264, upload_time = "2026-01-03T17:29:36.389Z" }, - { url = "https://files.pythonhosted.org/packages/e2/83/259a8da6683182768200b368120ab3deff5370bed93880fb9a3a86299f34/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11", size = 1657275, upload_time = "2026-01-03T17:29:38.162Z" }, - { url = "https://files.pythonhosted.org/packages/3f/4f/2c41f800a0b560785c10fb316216ac058c105f9be50bdc6a285de88db625/aiohttp-3.13.3-cp310-cp310-win32.whl", hash = "sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd", size = 434053, upload_time = "2026-01-03T17:29:40.074Z" }, - { url = "https://files.pythonhosted.org/packages/80/df/29cd63c7ecfdb65ccc12f7d808cac4fa2a19544660c06c61a4a48462de0c/aiohttp-3.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c", size = 456687, upload_time = "2026-01-03T17:29:41.819Z" }, - { url = "https://files.pythonhosted.org/packages/f1/4c/a164164834f03924d9a29dc3acd9e7ee58f95857e0b467f6d04298594ebb/aiohttp-3.13.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b", size = 746051, upload_time = "2026-01-03T17:29:43.287Z" }, - { url = "https://files.pythonhosted.org/packages/82/71/d5c31390d18d4f58115037c432b7e0348c60f6f53b727cad33172144a112/aiohttp-3.13.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64", size = 499234, upload_time = "2026-01-03T17:29:44.822Z" }, - { url = "https://files.pythonhosted.org/packages/0e/c9/741f8ac91e14b1d2e7100690425a5b2b919a87a5075406582991fb7de920/aiohttp-3.13.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea", size = 494979, upload_time = "2026-01-03T17:29:46.405Z" }, - { url = "https://files.pythonhosted.org/packages/75/b5/31d4d2e802dfd59f74ed47eba48869c1c21552c586d5e81a9d0d5c2ad640/aiohttp-3.13.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a", size = 1748297, upload_time = "2026-01-03T17:29:48.083Z" }, - { url = "https://files.pythonhosted.org/packages/1a/3e/eefad0ad42959f226bb79664826883f2687d602a9ae2941a18e0484a74d3/aiohttp-3.13.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540", size = 1707172, upload_time = "2026-01-03T17:29:49.648Z" }, - { url = "https://files.pythonhosted.org/packages/c5/3a/54a64299fac2891c346cdcf2aa6803f994a2e4beeaf2e5a09dcc54acc842/aiohttp-3.13.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b", size = 1805405, upload_time = "2026-01-03T17:29:51.244Z" }, - { url = "https://files.pythonhosted.org/packages/6c/70/ddc1b7169cf64075e864f64595a14b147a895a868394a48f6a8031979038/aiohttp-3.13.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3", size = 1899449, upload_time = "2026-01-03T17:29:53.938Z" }, - { url = "https://files.pythonhosted.org/packages/a1/7e/6815aab7d3a56610891c76ef79095677b8b5be6646aaf00f69b221765021/aiohttp-3.13.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1", size = 1748444, upload_time = "2026-01-03T17:29:55.484Z" }, - { url = "https://files.pythonhosted.org/packages/6b/f2/073b145c4100da5511f457dc0f7558e99b2987cf72600d42b559db856fbc/aiohttp-3.13.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3", size = 1606038, upload_time = "2026-01-03T17:29:57.179Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c1/778d011920cae03ae01424ec202c513dc69243cf2db303965615b81deeea/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440", size = 1724156, upload_time = "2026-01-03T17:29:58.914Z" }, - { url = "https://files.pythonhosted.org/packages/0e/cb/3419eabf4ec1e9ec6f242c32b689248365a1cf621891f6f0386632525494/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7", size = 1722340, upload_time = "2026-01-03T17:30:01.962Z" }, - { url = "https://files.pythonhosted.org/packages/7a/e5/76cf77bdbc435bf233c1f114edad39ed4177ccbfab7c329482b179cff4f4/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c", size = 1783041, upload_time = "2026-01-03T17:30:03.609Z" }, - { url = "https://files.pythonhosted.org/packages/9d/d4/dd1ca234c794fd29c057ce8c0566b8ef7fd6a51069de5f06fa84b9a1971c/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51", size = 1596024, upload_time = "2026-01-03T17:30:05.132Z" }, - { url = "https://files.pythonhosted.org/packages/55/58/4345b5f26661a6180afa686c473620c30a66afdf120ed3dd545bbc809e85/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4", size = 1804590, upload_time = "2026-01-03T17:30:07.135Z" }, - { url = "https://files.pythonhosted.org/packages/7b/06/05950619af6c2df7e0a431d889ba2813c9f0129cec76f663e547a5ad56f2/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29", size = 1740355, upload_time = "2026-01-03T17:30:09.083Z" }, - { url = "https://files.pythonhosted.org/packages/3e/80/958f16de79ba0422d7c1e284b2abd0c84bc03394fbe631d0a39ffa10e1eb/aiohttp-3.13.3-cp311-cp311-win32.whl", hash = "sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239", size = 433701, upload_time = "2026-01-03T17:30:10.869Z" }, - { url = "https://files.pythonhosted.org/packages/dc/f2/27cdf04c9851712d6c1b99df6821a6623c3c9e55956d4b1e318c337b5a48/aiohttp-3.13.3-cp311-cp311-win_amd64.whl", hash = "sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f", size = 457678, upload_time = "2026-01-03T17:30:12.719Z" }, - { url = "https://files.pythonhosted.org/packages/a0/be/4fc11f202955a69e0db803a12a062b8379c970c7c84f4882b6da17337cc1/aiohttp-3.13.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c", size = 739732, upload_time = "2026-01-03T17:30:14.23Z" }, - { url = "https://files.pythonhosted.org/packages/97/2c/621d5b851f94fa0bb7430d6089b3aa970a9d9b75196bc93bb624b0db237a/aiohttp-3.13.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168", size = 494293, upload_time = "2026-01-03T17:30:15.96Z" }, - { url = "https://files.pythonhosted.org/packages/5d/43/4be01406b78e1be8320bb8316dc9c42dbab553d281c40364e0f862d5661c/aiohttp-3.13.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d", size = 493533, upload_time = "2026-01-03T17:30:17.431Z" }, - { url = "https://files.pythonhosted.org/packages/8d/a8/5a35dc56a06a2c90d4742cbf35294396907027f80eea696637945a106f25/aiohttp-3.13.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29", size = 1737839, upload_time = "2026-01-03T17:30:19.422Z" }, - { url = "https://files.pythonhosted.org/packages/bf/62/4b9eeb331da56530bf2e198a297e5303e1c1ebdceeb00fe9b568a65c5a0c/aiohttp-3.13.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3", size = 1703932, upload_time = "2026-01-03T17:30:21.756Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f6/af16887b5d419e6a367095994c0b1332d154f647e7dc2bd50e61876e8e3d/aiohttp-3.13.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d", size = 1771906, upload_time = "2026-01-03T17:30:23.932Z" }, - { url = "https://files.pythonhosted.org/packages/ce/83/397c634b1bcc24292fa1e0c7822800f9f6569e32934bdeef09dae7992dfb/aiohttp-3.13.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463", size = 1871020, upload_time = "2026-01-03T17:30:26Z" }, - { url = "https://files.pythonhosted.org/packages/86/f6/a62cbbf13f0ac80a70f71b1672feba90fdb21fd7abd8dbf25c0105fb6fa3/aiohttp-3.13.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc", size = 1755181, upload_time = "2026-01-03T17:30:27.554Z" }, - { url = "https://files.pythonhosted.org/packages/0a/87/20a35ad487efdd3fba93d5843efdfaa62d2f1479eaafa7453398a44faf13/aiohttp-3.13.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf", size = 1561794, upload_time = "2026-01-03T17:30:29.254Z" }, - { url = "https://files.pythonhosted.org/packages/de/95/8fd69a66682012f6716e1bc09ef8a1a2a91922c5725cb904689f112309c4/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033", size = 1697900, upload_time = "2026-01-03T17:30:31.033Z" }, - { url = "https://files.pythonhosted.org/packages/e5/66/7b94b3b5ba70e955ff597672dad1691333080e37f50280178967aff68657/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f", size = 1728239, upload_time = "2026-01-03T17:30:32.703Z" }, - { url = "https://files.pythonhosted.org/packages/47/71/6f72f77f9f7d74719692ab65a2a0252584bf8d5f301e2ecb4c0da734530a/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679", size = 1740527, upload_time = "2026-01-03T17:30:34.695Z" }, - { url = "https://files.pythonhosted.org/packages/fa/b4/75ec16cbbd5c01bdaf4a05b19e103e78d7ce1ef7c80867eb0ace42ff4488/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423", size = 1554489, upload_time = "2026-01-03T17:30:36.864Z" }, - { url = "https://files.pythonhosted.org/packages/52/8f/bc518c0eea29f8406dcf7ed1f96c9b48e3bc3995a96159b3fc11f9e08321/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce", size = 1767852, upload_time = "2026-01-03T17:30:39.433Z" }, - { url = "https://files.pythonhosted.org/packages/9d/f2/a07a75173124f31f11ea6f863dc44e6f09afe2bca45dd4e64979490deab1/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a", size = 1722379, upload_time = "2026-01-03T17:30:41.081Z" }, - { url = "https://files.pythonhosted.org/packages/3c/4a/1a3fee7c21350cac78e5c5cef711bac1b94feca07399f3d406972e2d8fcd/aiohttp-3.13.3-cp312-cp312-win32.whl", hash = "sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046", size = 428253, upload_time = "2026-01-03T17:30:42.644Z" }, - { url = "https://files.pythonhosted.org/packages/d9/b7/76175c7cb4eb73d91ad63c34e29fc4f77c9386bba4a65b53ba8e05ee3c39/aiohttp-3.13.3-cp312-cp312-win_amd64.whl", hash = "sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57", size = 455407, upload_time = "2026-01-03T17:30:44.195Z" }, - { url = "https://files.pythonhosted.org/packages/97/8a/12ca489246ca1faaf5432844adbfce7ff2cc4997733e0af120869345643a/aiohttp-3.13.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c", size = 734190, upload_time = "2026-01-03T17:30:45.832Z" }, - { url = "https://files.pythonhosted.org/packages/32/08/de43984c74ed1fca5c014808963cc83cb00d7bb06af228f132d33862ca76/aiohttp-3.13.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9", size = 491783, upload_time = "2026-01-03T17:30:47.466Z" }, - { url = "https://files.pythonhosted.org/packages/17/f8/8dd2cf6112a5a76f81f81a5130c57ca829d101ad583ce57f889179accdda/aiohttp-3.13.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3", size = 490704, upload_time = "2026-01-03T17:30:49.373Z" }, - { url = "https://files.pythonhosted.org/packages/6d/40/a46b03ca03936f832bc7eaa47cfbb1ad012ba1be4790122ee4f4f8cba074/aiohttp-3.13.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf", size = 1720652, upload_time = "2026-01-03T17:30:50.974Z" }, - { url = "https://files.pythonhosted.org/packages/f7/7e/917fe18e3607af92657e4285498f500dca797ff8c918bd7d90b05abf6c2a/aiohttp-3.13.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6", size = 1692014, upload_time = "2026-01-03T17:30:52.729Z" }, - { url = "https://files.pythonhosted.org/packages/71/b6/cefa4cbc00d315d68973b671cf105b21a609c12b82d52e5d0c9ae61d2a09/aiohttp-3.13.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d", size = 1759777, upload_time = "2026-01-03T17:30:54.537Z" }, - { url = "https://files.pythonhosted.org/packages/fb/e3/e06ee07b45e59e6d81498b591fc589629be1553abb2a82ce33efe2a7b068/aiohttp-3.13.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261", size = 1861276, upload_time = "2026-01-03T17:30:56.512Z" }, - { url = "https://files.pythonhosted.org/packages/7c/24/75d274228acf35ceeb2850b8ce04de9dd7355ff7a0b49d607ee60c29c518/aiohttp-3.13.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0", size = 1743131, upload_time = "2026-01-03T17:30:58.256Z" }, - { url = "https://files.pythonhosted.org/packages/04/98/3d21dde21889b17ca2eea54fdcff21b27b93f45b7bb94ca029c31ab59dc3/aiohttp-3.13.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730", size = 1556863, upload_time = "2026-01-03T17:31:00.445Z" }, - { url = "https://files.pythonhosted.org/packages/9e/84/da0c3ab1192eaf64782b03971ab4055b475d0db07b17eff925e8c93b3aa5/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91", size = 1682793, upload_time = "2026-01-03T17:31:03.024Z" }, - { url = "https://files.pythonhosted.org/packages/ff/0f/5802ada182f575afa02cbd0ec5180d7e13a402afb7c2c03a9aa5e5d49060/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3", size = 1716676, upload_time = "2026-01-03T17:31:04.842Z" }, - { url = "https://files.pythonhosted.org/packages/3f/8c/714d53bd8b5a4560667f7bbbb06b20c2382f9c7847d198370ec6526af39c/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4", size = 1733217, upload_time = "2026-01-03T17:31:06.868Z" }, - { url = "https://files.pythonhosted.org/packages/7d/79/e2176f46d2e963facea939f5be2d26368ce543622be6f00a12844d3c991f/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998", size = 1552303, upload_time = "2026-01-03T17:31:08.958Z" }, - { url = "https://files.pythonhosted.org/packages/ab/6a/28ed4dea1759916090587d1fe57087b03e6c784a642b85ef48217b0277ae/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0", size = 1763673, upload_time = "2026-01-03T17:31:10.676Z" }, - { url = "https://files.pythonhosted.org/packages/e8/35/4a3daeb8b9fab49240d21c04d50732313295e4bd813a465d840236dd0ce1/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591", size = 1721120, upload_time = "2026-01-03T17:31:12.575Z" }, - { url = "https://files.pythonhosted.org/packages/bc/9f/d643bb3c5fb99547323e635e251c609fbbc660d983144cfebec529e09264/aiohttp-3.13.3-cp313-cp313-win32.whl", hash = "sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf", size = 427383, upload_time = "2026-01-03T17:31:14.382Z" }, - { url = "https://files.pythonhosted.org/packages/4e/f1/ab0395f8a79933577cdd996dd2f9aa6014af9535f65dddcf88204682fe62/aiohttp-3.13.3-cp313-cp313-win_amd64.whl", hash = "sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e", size = 453899, upload_time = "2026-01-03T17:31:15.958Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/50/42/32cf8e7704ceb4481406eb87161349abb46a57fee3f008ba9cb610968646/aiohttp-3.13.3.tar.gz", hash = "sha256:a949eee43d3782f2daae4f4a2819b2cb9b0c5d3b7f7a927067cc84dafdbb9f88", size = 7844556, upload-time = "2026-01-03T17:33:05.204Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/d6/5aec9313ee6ea9c7cde8b891b69f4ff4001416867104580670a31daeba5b/aiohttp-3.13.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d5a372fd5afd301b3a89582817fdcdb6c34124787c70dbcc616f259013e7eef7", size = 738950, upload-time = "2026-01-03T17:29:13.002Z" }, + { url = "https://files.pythonhosted.org/packages/68/03/8fa90a7e6d11ff20a18837a8e2b5dd23db01aabc475aa9271c8ad33299f5/aiohttp-3.13.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:147e422fd1223005c22b4fe080f5d93ced44460f5f9c105406b753612b587821", size = 496099, upload-time = "2026-01-03T17:29:15.268Z" }, + { url = "https://files.pythonhosted.org/packages/d2/23/b81f744d402510a8366b74eb420fc0cc1170d0c43daca12d10814df85f10/aiohttp-3.13.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:859bd3f2156e81dd01432f5849fc73e2243d4a487c4fd26609b1299534ee1845", size = 491072, upload-time = "2026-01-03T17:29:16.922Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e1/56d1d1c0dd334cd203dd97706ce004c1aa24b34a813b0b8daf3383039706/aiohttp-3.13.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dca68018bf48c251ba17c72ed479f4dafe9dbd5a73707ad8d28a38d11f3d42af", size = 1671588, upload-time = "2026-01-03T17:29:18.539Z" }, + { url = "https://files.pythonhosted.org/packages/5f/34/8d7f962604f4bc2b4e39eb1220dac7d4e4cba91fb9ba0474b4ecd67db165/aiohttp-3.13.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:fee0c6bc7db1de362252affec009707a17478a00ec69f797d23ca256e36d5940", size = 1640334, upload-time = "2026-01-03T17:29:21.028Z" }, + { url = "https://files.pythonhosted.org/packages/94/1d/fcccf2c668d87337ddeef9881537baee13c58d8f01f12ba8a24215f2b804/aiohttp-3.13.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c048058117fd649334d81b4b526e94bde3ccaddb20463a815ced6ecbb7d11160", size = 1722656, upload-time = "2026-01-03T17:29:22.531Z" }, + { url = "https://files.pythonhosted.org/packages/aa/98/c6f3b081c4c606bc1e5f2ec102e87d6411c73a9ef3616fea6f2d5c98c062/aiohttp-3.13.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:215a685b6fbbfcf71dfe96e3eba7a6f58f10da1dfdf4889c7dd856abe430dca7", size = 1817625, upload-time = "2026-01-03T17:29:24.276Z" }, + { url = "https://files.pythonhosted.org/packages/2c/c0/cfcc3d2e11b477f86e1af2863f3858c8850d751ce8dc39c4058a072c9e54/aiohttp-3.13.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2c184bb1fe2cbd2cefba613e9db29a5ab559323f994b6737e370d3da0ac455", size = 1672604, upload-time = "2026-01-03T17:29:26.099Z" }, + { url = "https://files.pythonhosted.org/packages/1e/77/6b4ffcbcac4c6a5d041343a756f34a6dd26174ae07f977a64fe028dda5b0/aiohttp-3.13.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:75ca857eba4e20ce9f546cd59c7007b33906a4cd48f2ff6ccf1ccfc3b646f279", size = 1554370, upload-time = "2026-01-03T17:29:28.121Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f0/e3ddfa93f17d689dbe014ba048f18e0c9f9b456033b70e94349a2e9048be/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:81e97251d9298386c2b7dbeb490d3d1badbdc69107fb8c9299dd04eb39bddc0e", size = 1642023, upload-time = "2026-01-03T17:29:30.002Z" }, + { url = "https://files.pythonhosted.org/packages/eb/45/c14019c9ec60a8e243d06d601b33dcc4fd92379424bde3021725859d7f99/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c0e2d366af265797506f0283487223146af57815b388623f0357ef7eac9b209d", size = 1649680, upload-time = "2026-01-03T17:29:31.782Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fd/09c9451dae5aa5c5ed756df95ff9ef549d45d4be663bafd1e4954fd836f0/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4e239d501f73d6db1522599e14b9b321a7e3b1de66ce33d53a765d975e9f4808", size = 1692407, upload-time = "2026-01-03T17:29:33.392Z" }, + { url = "https://files.pythonhosted.org/packages/a6/81/938bc2ec33c10efd6637ccb3d22f9f3160d08e8f3aa2587a2c2d5ab578eb/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:0db318f7a6f065d84cb1e02662c526294450b314a02bd9e2a8e67f0d8564ce40", size = 1543047, upload-time = "2026-01-03T17:29:34.855Z" }, + { url = "https://files.pythonhosted.org/packages/f7/23/80488ee21c8d567c83045e412e1d9b7077d27171591a4eb7822586e8c06a/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:bfc1cc2fe31a6026a8a88e4ecfb98d7f6b1fec150cfd708adbfd1d2f42257c29", size = 1715264, upload-time = "2026-01-03T17:29:36.389Z" }, + { url = "https://files.pythonhosted.org/packages/e2/83/259a8da6683182768200b368120ab3deff5370bed93880fb9a3a86299f34/aiohttp-3.13.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af71fff7bac6bb7508956696dce8f6eec2bbb045eceb40343944b1ae62b5ef11", size = 1657275, upload-time = "2026-01-03T17:29:38.162Z" }, + { url = "https://files.pythonhosted.org/packages/3f/4f/2c41f800a0b560785c10fb316216ac058c105f9be50bdc6a285de88db625/aiohttp-3.13.3-cp310-cp310-win32.whl", hash = "sha256:37da61e244d1749798c151421602884db5270faf479cf0ef03af0ff68954c9dd", size = 434053, upload-time = "2026-01-03T17:29:40.074Z" }, + { url = "https://files.pythonhosted.org/packages/80/df/29cd63c7ecfdb65ccc12f7d808cac4fa2a19544660c06c61a4a48462de0c/aiohttp-3.13.3-cp310-cp310-win_amd64.whl", hash = "sha256:7e63f210bc1b57ef699035f2b4b6d9ce096b5914414a49b0997c839b2bd2223c", size = 456687, upload-time = "2026-01-03T17:29:41.819Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4c/a164164834f03924d9a29dc3acd9e7ee58f95857e0b467f6d04298594ebb/aiohttp-3.13.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5b6073099fb654e0a068ae678b10feff95c5cae95bbfcbfa7af669d361a8aa6b", size = 746051, upload-time = "2026-01-03T17:29:43.287Z" }, + { url = "https://files.pythonhosted.org/packages/82/71/d5c31390d18d4f58115037c432b7e0348c60f6f53b727cad33172144a112/aiohttp-3.13.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cb93e166e6c28716c8c6aeb5f99dfb6d5ccf482d29fe9bf9a794110e6d0ab64", size = 499234, upload-time = "2026-01-03T17:29:44.822Z" }, + { url = "https://files.pythonhosted.org/packages/0e/c9/741f8ac91e14b1d2e7100690425a5b2b919a87a5075406582991fb7de920/aiohttp-3.13.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:28e027cf2f6b641693a09f631759b4d9ce9165099d2b5d92af9bd4e197690eea", size = 494979, upload-time = "2026-01-03T17:29:46.405Z" }, + { url = "https://files.pythonhosted.org/packages/75/b5/31d4d2e802dfd59f74ed47eba48869c1c21552c586d5e81a9d0d5c2ad640/aiohttp-3.13.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3b61b7169ababd7802f9568ed96142616a9118dd2be0d1866e920e77ec8fa92a", size = 1748297, upload-time = "2026-01-03T17:29:48.083Z" }, + { url = "https://files.pythonhosted.org/packages/1a/3e/eefad0ad42959f226bb79664826883f2687d602a9ae2941a18e0484a74d3/aiohttp-3.13.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:80dd4c21b0f6237676449c6baaa1039abae86b91636b6c91a7f8e61c87f89540", size = 1707172, upload-time = "2026-01-03T17:29:49.648Z" }, + { url = "https://files.pythonhosted.org/packages/c5/3a/54a64299fac2891c346cdcf2aa6803f994a2e4beeaf2e5a09dcc54acc842/aiohttp-3.13.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:65d2ccb7eabee90ce0503c17716fc77226be026dcc3e65cce859a30db715025b", size = 1805405, upload-time = "2026-01-03T17:29:51.244Z" }, + { url = "https://files.pythonhosted.org/packages/6c/70/ddc1b7169cf64075e864f64595a14b147a895a868394a48f6a8031979038/aiohttp-3.13.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5b179331a481cb5529fca8b432d8d3c7001cb217513c94cd72d668d1248688a3", size = 1899449, upload-time = "2026-01-03T17:29:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/a1/7e/6815aab7d3a56610891c76ef79095677b8b5be6646aaf00f69b221765021/aiohttp-3.13.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d4c940f02f49483b18b079d1c27ab948721852b281f8b015c058100e9421dd1", size = 1748444, upload-time = "2026-01-03T17:29:55.484Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f2/073b145c4100da5511f457dc0f7558e99b2987cf72600d42b559db856fbc/aiohttp-3.13.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f9444f105664c4ce47a2a7171a2418bce5b7bae45fb610f4e2c36045d85911d3", size = 1606038, upload-time = "2026-01-03T17:29:57.179Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c1/778d011920cae03ae01424ec202c513dc69243cf2db303965615b81deeea/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:694976222c711d1d00ba131904beb60534f93966562f64440d0c9d41b8cdb440", size = 1724156, upload-time = "2026-01-03T17:29:58.914Z" }, + { url = "https://files.pythonhosted.org/packages/0e/cb/3419eabf4ec1e9ec6f242c32b689248365a1cf621891f6f0386632525494/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f33ed1a2bf1997a36661874b017f5c4b760f41266341af36febaf271d179f6d7", size = 1722340, upload-time = "2026-01-03T17:30:01.962Z" }, + { url = "https://files.pythonhosted.org/packages/7a/e5/76cf77bdbc435bf233c1f114edad39ed4177ccbfab7c329482b179cff4f4/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e636b3c5f61da31a92bf0d91da83e58fdfa96f178ba682f11d24f31944cdd28c", size = 1783041, upload-time = "2026-01-03T17:30:03.609Z" }, + { url = "https://files.pythonhosted.org/packages/9d/d4/dd1ca234c794fd29c057ce8c0566b8ef7fd6a51069de5f06fa84b9a1971c/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:5d2d94f1f5fcbe40838ac51a6ab5704a6f9ea42e72ceda48de5e6b898521da51", size = 1596024, upload-time = "2026-01-03T17:30:05.132Z" }, + { url = "https://files.pythonhosted.org/packages/55/58/4345b5f26661a6180afa686c473620c30a66afdf120ed3dd545bbc809e85/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2be0e9ccf23e8a94f6f0650ce06042cefc6ac703d0d7ab6c7a917289f2539ad4", size = 1804590, upload-time = "2026-01-03T17:30:07.135Z" }, + { url = "https://files.pythonhosted.org/packages/7b/06/05950619af6c2df7e0a431d889ba2813c9f0129cec76f663e547a5ad56f2/aiohttp-3.13.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9af5e68ee47d6534d36791bbe9b646d2a7c7deb6fc24d7943628edfbb3581f29", size = 1740355, upload-time = "2026-01-03T17:30:09.083Z" }, + { url = "https://files.pythonhosted.org/packages/3e/80/958f16de79ba0422d7c1e284b2abd0c84bc03394fbe631d0a39ffa10e1eb/aiohttp-3.13.3-cp311-cp311-win32.whl", hash = "sha256:a2212ad43c0833a873d0fb3c63fa1bacedd4cf6af2fee62bf4b739ceec3ab239", size = 433701, upload-time = "2026-01-03T17:30:10.869Z" }, + { url = "https://files.pythonhosted.org/packages/dc/f2/27cdf04c9851712d6c1b99df6821a6623c3c9e55956d4b1e318c337b5a48/aiohttp-3.13.3-cp311-cp311-win_amd64.whl", hash = "sha256:642f752c3eb117b105acbd87e2c143de710987e09860d674e068c4c2c441034f", size = 457678, upload-time = "2026-01-03T17:30:12.719Z" }, + { url = "https://files.pythonhosted.org/packages/a0/be/4fc11f202955a69e0db803a12a062b8379c970c7c84f4882b6da17337cc1/aiohttp-3.13.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b903a4dfee7d347e2d87697d0713be59e0b87925be030c9178c5faa58ea58d5c", size = 739732, upload-time = "2026-01-03T17:30:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/97/2c/621d5b851f94fa0bb7430d6089b3aa970a9d9b75196bc93bb624b0db237a/aiohttp-3.13.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a45530014d7a1e09f4a55f4f43097ba0fd155089372e105e4bff4ca76cb1b168", size = 494293, upload-time = "2026-01-03T17:30:15.96Z" }, + { url = "https://files.pythonhosted.org/packages/5d/43/4be01406b78e1be8320bb8316dc9c42dbab553d281c40364e0f862d5661c/aiohttp-3.13.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:27234ef6d85c914f9efeb77ff616dbf4ad2380be0cda40b4db086ffc7ddd1b7d", size = 493533, upload-time = "2026-01-03T17:30:17.431Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a8/5a35dc56a06a2c90d4742cbf35294396907027f80eea696637945a106f25/aiohttp-3.13.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d32764c6c9aafb7fb55366a224756387cd50bfa720f32b88e0e6fa45b27dcf29", size = 1737839, upload-time = "2026-01-03T17:30:19.422Z" }, + { url = "https://files.pythonhosted.org/packages/bf/62/4b9eeb331da56530bf2e198a297e5303e1c1ebdceeb00fe9b568a65c5a0c/aiohttp-3.13.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b1a6102b4d3ebc07dad44fbf07b45bb600300f15b552ddf1851b5390202ea2e3", size = 1703932, upload-time = "2026-01-03T17:30:21.756Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f6/af16887b5d419e6a367095994c0b1332d154f647e7dc2bd50e61876e8e3d/aiohttp-3.13.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c014c7ea7fb775dd015b2d3137378b7be0249a448a1612268b5a90c2d81de04d", size = 1771906, upload-time = "2026-01-03T17:30:23.932Z" }, + { url = "https://files.pythonhosted.org/packages/ce/83/397c634b1bcc24292fa1e0c7822800f9f6569e32934bdeef09dae7992dfb/aiohttp-3.13.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2b8d8ddba8f95ba17582226f80e2de99c7a7948e66490ef8d947e272a93e9463", size = 1871020, upload-time = "2026-01-03T17:30:26Z" }, + { url = "https://files.pythonhosted.org/packages/86/f6/a62cbbf13f0ac80a70f71b1672feba90fdb21fd7abd8dbf25c0105fb6fa3/aiohttp-3.13.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ae8dd55c8e6c4257eae3a20fd2c8f41edaea5992ed67156642493b8daf3cecc", size = 1755181, upload-time = "2026-01-03T17:30:27.554Z" }, + { url = "https://files.pythonhosted.org/packages/0a/87/20a35ad487efdd3fba93d5843efdfaa62d2f1479eaafa7453398a44faf13/aiohttp-3.13.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:01ad2529d4b5035578f5081606a465f3b814c542882804e2e8cda61adf5c71bf", size = 1561794, upload-time = "2026-01-03T17:30:29.254Z" }, + { url = "https://files.pythonhosted.org/packages/de/95/8fd69a66682012f6716e1bc09ef8a1a2a91922c5725cb904689f112309c4/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bb4f7475e359992b580559e008c598091c45b5088f28614e855e42d39c2f1033", size = 1697900, upload-time = "2026-01-03T17:30:31.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/66/7b94b3b5ba70e955ff597672dad1691333080e37f50280178967aff68657/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c19b90316ad3b24c69cd78d5c9b4f3aa4497643685901185b65166293d36a00f", size = 1728239, upload-time = "2026-01-03T17:30:32.703Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/6f72f77f9f7d74719692ab65a2a0252584bf8d5f301e2ecb4c0da734530a/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:96d604498a7c782cb15a51c406acaea70d8c027ee6b90c569baa6e7b93073679", size = 1740527, upload-time = "2026-01-03T17:30:34.695Z" }, + { url = "https://files.pythonhosted.org/packages/fa/b4/75ec16cbbd5c01bdaf4a05b19e103e78d7ce1ef7c80867eb0ace42ff4488/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:084911a532763e9d3dd95adf78a78f4096cd5f58cdc18e6fdbc1b58417a45423", size = 1554489, upload-time = "2026-01-03T17:30:36.864Z" }, + { url = "https://files.pythonhosted.org/packages/52/8f/bc518c0eea29f8406dcf7ed1f96c9b48e3bc3995a96159b3fc11f9e08321/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7a4a94eb787e606d0a09404b9c38c113d3b099d508021faa615d70a0131907ce", size = 1767852, upload-time = "2026-01-03T17:30:39.433Z" }, + { url = "https://files.pythonhosted.org/packages/9d/f2/a07a75173124f31f11ea6f863dc44e6f09afe2bca45dd4e64979490deab1/aiohttp-3.13.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:87797e645d9d8e222e04160ee32aa06bc5c163e8499f24db719e7852ec23093a", size = 1722379, upload-time = "2026-01-03T17:30:41.081Z" }, + { url = "https://files.pythonhosted.org/packages/3c/4a/1a3fee7c21350cac78e5c5cef711bac1b94feca07399f3d406972e2d8fcd/aiohttp-3.13.3-cp312-cp312-win32.whl", hash = "sha256:b04be762396457bef43f3597c991e192ee7da460a4953d7e647ee4b1c28e7046", size = 428253, upload-time = "2026-01-03T17:30:42.644Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b7/76175c7cb4eb73d91ad63c34e29fc4f77c9386bba4a65b53ba8e05ee3c39/aiohttp-3.13.3-cp312-cp312-win_amd64.whl", hash = "sha256:e3531d63d3bdfa7e3ac5e9b27b2dd7ec9df3206a98e0b3445fa906f233264c57", size = 455407, upload-time = "2026-01-03T17:30:44.195Z" }, + { url = "https://files.pythonhosted.org/packages/97/8a/12ca489246ca1faaf5432844adbfce7ff2cc4997733e0af120869345643a/aiohttp-3.13.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5dff64413671b0d3e7d5918ea490bdccb97a4ad29b3f311ed423200b2203e01c", size = 734190, upload-time = "2026-01-03T17:30:45.832Z" }, + { url = "https://files.pythonhosted.org/packages/32/08/de43984c74ed1fca5c014808963cc83cb00d7bb06af228f132d33862ca76/aiohttp-3.13.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:87b9aab6d6ed88235aa2970294f496ff1a1f9adcd724d800e9b952395a80ffd9", size = 491783, upload-time = "2026-01-03T17:30:47.466Z" }, + { url = "https://files.pythonhosted.org/packages/17/f8/8dd2cf6112a5a76f81f81a5130c57ca829d101ad583ce57f889179accdda/aiohttp-3.13.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:425c126c0dc43861e22cb1c14ba4c8e45d09516d0a3ae0a3f7494b79f5f233a3", size = 490704, upload-time = "2026-01-03T17:30:49.373Z" }, + { url = "https://files.pythonhosted.org/packages/6d/40/a46b03ca03936f832bc7eaa47cfbb1ad012ba1be4790122ee4f4f8cba074/aiohttp-3.13.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7f9120f7093c2a32d9647abcaf21e6ad275b4fbec5b55969f978b1a97c7c86bf", size = 1720652, upload-time = "2026-01-03T17:30:50.974Z" }, + { url = "https://files.pythonhosted.org/packages/f7/7e/917fe18e3607af92657e4285498f500dca797ff8c918bd7d90b05abf6c2a/aiohttp-3.13.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:697753042d57f4bf7122cab985bf15d0cef23c770864580f5af4f52023a56bd6", size = 1692014, upload-time = "2026-01-03T17:30:52.729Z" }, + { url = "https://files.pythonhosted.org/packages/71/b6/cefa4cbc00d315d68973b671cf105b21a609c12b82d52e5d0c9ae61d2a09/aiohttp-3.13.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6de499a1a44e7de70735d0b39f67c8f25eb3d91eb3103be99ca0fa882cdd987d", size = 1759777, upload-time = "2026-01-03T17:30:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e3/e06ee07b45e59e6d81498b591fc589629be1553abb2a82ce33efe2a7b068/aiohttp-3.13.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:37239e9f9a7ea9ac5bf6b92b0260b01f8a22281996da609206a84df860bc1261", size = 1861276, upload-time = "2026-01-03T17:30:56.512Z" }, + { url = "https://files.pythonhosted.org/packages/7c/24/75d274228acf35ceeb2850b8ce04de9dd7355ff7a0b49d607ee60c29c518/aiohttp-3.13.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f76c1e3fe7d7c8afad7ed193f89a292e1999608170dcc9751a7462a87dfd5bc0", size = 1743131, upload-time = "2026-01-03T17:30:58.256Z" }, + { url = "https://files.pythonhosted.org/packages/04/98/3d21dde21889b17ca2eea54fdcff21b27b93f45b7bb94ca029c31ab59dc3/aiohttp-3.13.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fc290605db2a917f6e81b0e1e0796469871f5af381ce15c604a3c5c7e51cb730", size = 1556863, upload-time = "2026-01-03T17:31:00.445Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/da0c3ab1192eaf64782b03971ab4055b475d0db07b17eff925e8c93b3aa5/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4021b51936308aeea0367b8f006dc999ca02bc118a0cc78c303f50a2ff6afb91", size = 1682793, upload-time = "2026-01-03T17:31:03.024Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0f/5802ada182f575afa02cbd0ec5180d7e13a402afb7c2c03a9aa5e5d49060/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:49a03727c1bba9a97d3e93c9f93ca03a57300f484b6e935463099841261195d3", size = 1716676, upload-time = "2026-01-03T17:31:04.842Z" }, + { url = "https://files.pythonhosted.org/packages/3f/8c/714d53bd8b5a4560667f7bbbb06b20c2382f9c7847d198370ec6526af39c/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3d9908a48eb7416dc1f4524e69f1d32e5d90e3981e4e37eb0aa1cd18f9cfa2a4", size = 1733217, upload-time = "2026-01-03T17:31:06.868Z" }, + { url = "https://files.pythonhosted.org/packages/7d/79/e2176f46d2e963facea939f5be2d26368ce543622be6f00a12844d3c991f/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:2712039939ec963c237286113c68dbad80a82a4281543f3abf766d9d73228998", size = 1552303, upload-time = "2026-01-03T17:31:08.958Z" }, + { url = "https://files.pythonhosted.org/packages/ab/6a/28ed4dea1759916090587d1fe57087b03e6c784a642b85ef48217b0277ae/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:7bfdc049127717581866fa4708791220970ce291c23e28ccf3922c700740fdc0", size = 1763673, upload-time = "2026-01-03T17:31:10.676Z" }, + { url = "https://files.pythonhosted.org/packages/e8/35/4a3daeb8b9fab49240d21c04d50732313295e4bd813a465d840236dd0ce1/aiohttp-3.13.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8057c98e0c8472d8846b9c79f56766bcc57e3e8ac7bfd510482332366c56c591", size = 1721120, upload-time = "2026-01-03T17:31:12.575Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9f/d643bb3c5fb99547323e635e251c609fbbc660d983144cfebec529e09264/aiohttp-3.13.3-cp313-cp313-win32.whl", hash = "sha256:1449ceddcdbcf2e0446957863af03ebaaa03f94c090f945411b61269e2cb5daf", size = 427383, upload-time = "2026-01-03T17:31:14.382Z" }, + { url = "https://files.pythonhosted.org/packages/4e/f1/ab0395f8a79933577cdd996dd2f9aa6014af9535f65dddcf88204682fe62/aiohttp-3.13.3-cp313-cp313-win_amd64.whl", hash = "sha256:693781c45a4033d31d4187d2436f5ac701e7bbfe5df40d917736108c1cc7436e", size = 453899, upload-time = "2026-01-03T17:31:15.958Z" }, ] [[package]] @@ -117,9 +117,9 @@ dependencies = [ { name = "frozenlist" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload_time = "2025-07-03T22:54:43.528Z" } +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload_time = "2025-07-03T22:54:42.156Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, ] [[package]] @@ -132,27 +132,27 @@ dependencies = [ { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/13/8b084e0f2efb0275a1d534838844926f798bd766566b1375174e2448cd31/alembic-1.18.4.tar.gz", hash = "sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc", size = 2056725, upload_time = "2026-02-10T16:00:47.195Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/13/8b084e0f2efb0275a1d534838844926f798bd766566b1375174e2448cd31/alembic-1.18.4.tar.gz", hash = "sha256:cb6e1fd84b6174ab8dbb2329f86d631ba9559dd78df550b57804d607672cedbc", size = 2056725, upload-time = "2026-02-10T16:00:47.195Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/29/6533c317b74f707ea28f8d633734dbda2119bbadfc61b2f3640ba835d0f7/alembic-1.18.4-py3-none-any.whl", hash = "sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a", size = 263893, upload_time = "2026-02-10T16:00:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/d2/29/6533c317b74f707ea28f8d633734dbda2119bbadfc61b2f3640ba835d0f7/alembic-1.18.4-py3-none-any.whl", hash = "sha256:a5ed4adcf6d8a4cb575f3d759f071b03cd6e5c7618eb796cb52497be25bfe19a", size = 263893, upload-time = "2026-02-10T16:00:49.997Z" }, ] [[package]] name = "annotated-doc" version = "0.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload_time = "2025-11-10T22:07:42.062Z" } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload_time = "2025-11-10T22:07:40.673Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, ] [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload_time = "2024-05-20T21:33:25.928Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload_time = "2024-05-20T21:33:24.1Z" }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] [[package]] @@ -164,9 +164,9 @@ dependencies = [ { name = "idna" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload_time = "2026-01-06T11:45:21.246Z" } +sdist = { url = "https://files.pythonhosted.org/packages/96/f0/5eb65b2bb0d09ac6776f2eb54adee6abe8228ea05b20a5ad0e4945de8aac/anyio-4.12.1.tar.gz", hash = "sha256:41cfcc3a4c85d3f05c932da7c26d0201ac36f72abd4435ba90d0464a3ffed703", size = 228685, upload-time = "2026-01-06T11:45:21.246Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload_time = "2026-01-06T11:45:19.497Z" }, + { url = "https://files.pythonhosted.org/packages/38/0e/27be9fdef66e72d64c0cdc3cc2823101b80585f8119b5c112c2e8f5f7dab/anyio-4.12.1-py3-none-any.whl", hash = "sha256:d405828884fc140aa80a3c667b8beed277f1dfedec42ba031bd6ac3db606ab6c", size = 113592, upload-time = "2026-01-06T11:45:19.497Z" }, ] [[package]] @@ -183,6 +183,7 @@ dependencies = [ { name = "fastapi", extra = ["standard"] }, { name = "ftfy" }, { name = "guardrails-ai" }, + { name = "guardrails-ai-ban-list" }, { name = "httpx" }, { name = "huggingface-hub" }, { name = "jinja2" }, @@ -232,6 +233,7 @@ requires-dist = [ { name = "fastapi", extras = ["standard"], specifier = ">=0.114.2,<1.0.0" }, { name = "ftfy" }, { name = "guardrails-ai", git = "https://github.com/guardrails-ai/guardrails.git?rev=379ab72ff643d0d9b8dff4f74c956ce29eab341d" }, + { name = "guardrails-ai-ban-list", specifier = ">=0.1.0" }, { name = "httpx", specifier = ">=0.25.1,<1.0.0" }, { name = "huggingface-hub", specifier = ">=1.5.0,<2.0" }, { name = "jinja2", specifier = ">=3.1.4,<4.0.0" }, @@ -274,9 +276,9 @@ dependencies = [ { name = "python-dateutil" }, { name = "tzdata" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload_time = "2025-10-18T17:46:46.761Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/33/032cdc44182491aa708d06a68b62434140d8c50820a087fac7af37703357/arrow-1.4.0.tar.gz", hash = "sha256:ed0cc050e98001b8779e84d461b0098c4ac597e88704a655582b21d116e526d7", size = 152931, upload-time = "2025-10-18T17:46:46.761Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload_time = "2025-10-18T17:46:45.663Z" }, + { url = "https://files.pythonhosted.org/packages/ed/c9/d7977eaacb9df673210491da99e6a247e93df98c715fc43fd136ce1d3d33/arrow-1.4.0-py3-none-any.whl", hash = "sha256:749f0769958ebdc79c173ff0b0670d59051a535fa26e8eba02953dc19eb43205", size = 68797, upload-time = "2025-10-18T17:46:45.663Z" }, ] [[package]] @@ -287,85 +289,85 @@ dependencies = [ { name = "packaging" }, { name = "starlette" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/ff/a6538245ac1eaa7733ec6740774e9d5add019e2c63caa29e758c16c0afdd/asgi_correlation_id-4.3.4.tar.gz", hash = "sha256:ea6bc310380373cb9f731dc2e8b2b6fb978a76afe33f7a2384f697b8d6cd811d", size = 20075, upload_time = "2024-10-17T11:44:30.324Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/ff/a6538245ac1eaa7733ec6740774e9d5add019e2c63caa29e758c16c0afdd/asgi_correlation_id-4.3.4.tar.gz", hash = "sha256:ea6bc310380373cb9f731dc2e8b2b6fb978a76afe33f7a2384f697b8d6cd811d", size = 20075, upload-time = "2024-10-17T11:44:30.324Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/ab/6936e2663c47a926e0659437b9333ad87d1ff49b1375d239026e0a268eba/asgi_correlation_id-4.3.4-py3-none-any.whl", hash = "sha256:36ce69b06c7d96b4acb89c7556a4c4f01a972463d3d49c675026cbbd08e9a0a2", size = 15262, upload_time = "2024-10-17T11:44:28.739Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ab/6936e2663c47a926e0659437b9333ad87d1ff49b1375d239026e0a268eba/asgi_correlation_id-4.3.4-py3-none-any.whl", hash = "sha256:36ce69b06c7d96b4acb89c7556a4c4f01a972463d3d49c675026cbbd08e9a0a2", size = 15262, upload-time = "2024-10-17T11:44:28.739Z" }, ] [[package]] name = "async-timeout" version = "5.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload_time = "2024-11-06T16:41:39.6Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload_time = "2024-11-06T16:41:37.9Z" }, + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, ] [[package]] name = "attrs" version = "25.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload_time = "2025-10-06T13:54:44.725Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/5c/685e6633917e101e5dcb62b9dd76946cbb57c26e133bae9e0cd36033c0a9/attrs-25.4.0.tar.gz", hash = "sha256:16d5969b87f0859ef33a48b35d55ac1be6e42ae49d5e853b597db70c35c57e11", size = 934251, upload-time = "2025-10-06T13:54:44.725Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload_time = "2025-10-06T13:54:43.17Z" }, + { url = "https://files.pythonhosted.org/packages/3a/2a/7cc015f5b9f5db42b7d48157e23356022889fc354a2813c15934b7cb5c0e/attrs-25.4.0-py3-none-any.whl", hash = "sha256:adcf7e2a1fb3b36ac48d97835bb6d8ade15b8dcce26aba8bf1d14847b57a3373", size = 67615, upload-time = "2025-10-06T13:54:43.17Z" }, ] [[package]] name = "bcrypt" version = "4.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload_time = "2025-02-28T01:24:09.174Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload_time = "2025-02-28T01:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload_time = "2025-02-28T01:22:38.078Z" }, - { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload_time = "2025-02-28T01:22:40.787Z" }, - { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload_time = "2025-02-28T01:22:43.144Z" }, - { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload_time = "2025-02-28T01:22:45.56Z" }, - { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload_time = "2025-02-28T01:22:47.023Z" }, - { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload_time = "2025-02-28T01:22:49.221Z" }, - { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload_time = "2025-02-28T01:22:51.603Z" }, - { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload_time = "2025-02-28T01:22:53.283Z" }, - { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload_time = "2025-02-28T01:22:55.461Z" }, - { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload_time = "2025-02-28T01:22:57.81Z" }, - { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload_time = "2025-02-28T01:22:59.181Z" }, - { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload_time = "2025-02-28T01:23:00.763Z" }, - { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload_time = "2025-02-28T01:23:02.908Z" }, - { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload_time = "2025-02-28T01:23:05.838Z" }, - { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload_time = "2025-02-28T01:23:07.274Z" }, - { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload_time = "2025-02-28T01:23:09.151Z" }, - { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload_time = "2025-02-28T01:23:11.461Z" }, - { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload_time = "2025-02-28T01:23:12.989Z" }, - { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload_time = "2025-02-28T01:23:14.5Z" }, - { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload_time = "2025-02-28T01:23:16.686Z" }, - { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload_time = "2025-02-28T01:23:18.897Z" }, - { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload_time = "2025-02-28T01:23:21.041Z" }, - { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload_time = "2025-02-28T01:23:23.183Z" }, - { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload_time = "2025-02-28T01:23:25.361Z" }, - { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload_time = "2025-02-28T01:23:26.875Z" }, - { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload_time = "2025-02-28T01:23:28.381Z" }, - { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload_time = "2025-02-28T01:23:30.187Z" }, - { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload_time = "2025-02-28T01:23:31.945Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload_time = "2025-02-28T01:23:34.161Z" }, - { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload_time = "2025-02-28T01:23:35.765Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload_time = "2025-02-28T01:23:38.021Z" }, - { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload_time = "2025-02-28T01:23:39.575Z" }, - { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload_time = "2025-02-28T01:23:40.901Z" }, - { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload_time = "2025-02-28T01:23:42.653Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload_time = "2025-02-28T01:23:43.964Z" }, - { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload_time = "2025-02-28T01:23:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload_time = "2025-02-28T01:23:47.575Z" }, - { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload_time = "2025-02-28T01:23:49.059Z" }, - { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload_time = "2025-02-28T01:23:50.399Z" }, - { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload_time = "2025-02-28T01:23:51.775Z" }, - { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload_time = "2025-02-28T01:23:53.139Z" }, - { url = "https://files.pythonhosted.org/packages/55/2d/0c7e5ab0524bf1a443e34cdd3926ec6f5879889b2f3c32b2f5074e99ed53/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c950d682f0952bafcceaf709761da0a32a942272fad381081b51096ffa46cea1", size = 275367, upload_time = "2025-02-28T01:23:54.578Z" }, - { url = "https://files.pythonhosted.org/packages/10/4f/f77509f08bdff8806ecc4dc472b6e187c946c730565a7470db772d25df70/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:107d53b5c67e0bbc3f03ebf5b030e0403d24dda980f8e244795335ba7b4a027d", size = 280644, upload_time = "2025-02-28T01:23:56.547Z" }, - { url = "https://files.pythonhosted.org/packages/35/18/7d9dc16a3a4d530d0a9b845160e9e5d8eb4f00483e05d44bb4116a1861da/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b693dbb82b3c27a1604a3dff5bfc5418a7e6a781bb795288141e5f80cf3a3492", size = 274881, upload_time = "2025-02-28T01:23:57.935Z" }, - { url = "https://files.pythonhosted.org/packages/df/c4/ae6921088adf1e37f2a3a6a688e72e7d9e45fdd3ae5e0bc931870c1ebbda/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:b6354d3760fcd31994a14c89659dee887f1351a06e5dac3c1142307172a79f90", size = 280203, upload_time = "2025-02-28T01:23:59.331Z" }, - { url = "https://files.pythonhosted.org/packages/4c/b1/1289e21d710496b88340369137cc4c5f6ee036401190ea116a7b4ae6d32a/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a839320bf27d474e52ef8cb16449bb2ce0ba03ca9f44daba6d93fa1d8828e48a", size = 275103, upload_time = "2025-02-28T01:24:00.764Z" }, - { url = "https://files.pythonhosted.org/packages/94/41/19be9fe17e4ffc5d10b7b67f10e459fc4eee6ffe9056a88de511920cfd8d/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bdc6a24e754a555d7316fa4774e64c6c3997d27ed2d1964d55920c7c227bc4ce", size = 280513, upload_time = "2025-02-28T01:24:02.243Z" }, - { url = "https://files.pythonhosted.org/packages/aa/73/05687a9ef89edebdd8ad7474c16d8af685eb4591c3c38300bb6aad4f0076/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:55a935b8e9a1d2def0626c4269db3fcd26728cbff1e84f0341465c31c4ee56d8", size = 274685, upload_time = "2025-02-28T01:24:04.512Z" }, - { url = "https://files.pythonhosted.org/packages/63/13/47bba97924ebe86a62ef83dc75b7c8a881d53c535f83e2c54c4bd701e05c/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:57967b7a28d855313a963aaea51bf6df89f833db4320da458e5b3c5ab6d4c938", size = 280110, upload_time = "2025-02-28T01:24:05.896Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/bb/5d/6d7433e0f3cd46ce0b43cd65e1db465ea024dbb8216fb2404e919c2ad77b/bcrypt-4.3.0.tar.gz", hash = "sha256:3a3fd2204178b6d2adcf09cb4f6426ffef54762577a7c9b54c159008cb288c18", size = 25697, upload-time = "2025-02-28T01:24:09.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/2c/3d44e853d1fe969d229bd58d39ae6902b3d924af0e2b5a60d17d4b809ded/bcrypt-4.3.0-cp313-cp313t-macosx_10_12_universal2.whl", hash = "sha256:f01e060f14b6b57bbb72fc5b4a83ac21c443c9a2ee708e04a10e9192f90a6281", size = 483719, upload-time = "2025-02-28T01:22:34.539Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e2/58ff6e2a22eca2e2cff5370ae56dba29d70b1ea6fc08ee9115c3ae367795/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5eeac541cefd0bb887a371ef73c62c3cd78535e4887b310626036a7c0a817bb", size = 272001, upload-time = "2025-02-28T01:22:38.078Z" }, + { url = "https://files.pythonhosted.org/packages/37/1f/c55ed8dbe994b1d088309e366749633c9eb90d139af3c0a50c102ba68a1a/bcrypt-4.3.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59e1aa0e2cd871b08ca146ed08445038f42ff75968c7ae50d2fdd7860ade2180", size = 277451, upload-time = "2025-02-28T01:22:40.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/1c/794feb2ecf22fe73dcfb697ea7057f632061faceb7dcf0f155f3443b4d79/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:0042b2e342e9ae3d2ed22727c1262f76cc4f345683b5c1715f0250cf4277294f", size = 272792, upload-time = "2025-02-28T01:22:43.144Z" }, + { url = "https://files.pythonhosted.org/packages/13/b7/0b289506a3f3598c2ae2bdfa0ea66969812ed200264e3f61df77753eee6d/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74a8d21a09f5e025a9a23e7c0fd2c7fe8e7503e4d356c0a2c1486ba010619f09", size = 289752, upload-time = "2025-02-28T01:22:45.56Z" }, + { url = "https://files.pythonhosted.org/packages/dc/24/d0fb023788afe9e83cc118895a9f6c57e1044e7e1672f045e46733421fe6/bcrypt-4.3.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:0142b2cb84a009f8452c8c5a33ace5e3dfec4159e7735f5afe9a4d50a8ea722d", size = 277762, upload-time = "2025-02-28T01:22:47.023Z" }, + { url = "https://files.pythonhosted.org/packages/e4/38/cde58089492e55ac4ef6c49fea7027600c84fd23f7520c62118c03b4625e/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_aarch64.whl", hash = "sha256:12fa6ce40cde3f0b899729dbd7d5e8811cb892d31b6f7d0334a1f37748b789fd", size = 272384, upload-time = "2025-02-28T01:22:49.221Z" }, + { url = "https://files.pythonhosted.org/packages/de/6a/d5026520843490cfc8135d03012a413e4532a400e471e6188b01b2de853f/bcrypt-4.3.0-cp313-cp313t-manylinux_2_34_x86_64.whl", hash = "sha256:5bd3cca1f2aa5dbcf39e2aa13dd094ea181f48959e1071265de49cc2b82525af", size = 277329, upload-time = "2025-02-28T01:22:51.603Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a3/4fc5255e60486466c389e28c12579d2829b28a527360e9430b4041df4cf9/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:335a420cfd63fc5bc27308e929bee231c15c85cc4c496610ffb17923abf7f231", size = 305241, upload-time = "2025-02-28T01:22:53.283Z" }, + { url = "https://files.pythonhosted.org/packages/c7/15/2b37bc07d6ce27cc94e5b10fd5058900eb8fb11642300e932c8c82e25c4a/bcrypt-4.3.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:0e30e5e67aed0187a1764911af023043b4542e70a7461ad20e837e94d23e1d6c", size = 309617, upload-time = "2025-02-28T01:22:55.461Z" }, + { url = "https://files.pythonhosted.org/packages/5f/1f/99f65edb09e6c935232ba0430c8c13bb98cb3194b6d636e61d93fe60ac59/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b8d62290ebefd49ee0b3ce7500f5dbdcf13b81402c05f6dafab9a1e1b27212f", size = 335751, upload-time = "2025-02-28T01:22:57.81Z" }, + { url = "https://files.pythonhosted.org/packages/00/1b/b324030c706711c99769988fcb694b3cb23f247ad39a7823a78e361bdbb8/bcrypt-4.3.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2ef6630e0ec01376f59a006dc72918b1bf436c3b571b80fa1968d775fa02fe7d", size = 355965, upload-time = "2025-02-28T01:22:59.181Z" }, + { url = "https://files.pythonhosted.org/packages/aa/dd/20372a0579dd915dfc3b1cd4943b3bca431866fcb1dfdfd7518c3caddea6/bcrypt-4.3.0-cp313-cp313t-win32.whl", hash = "sha256:7a4be4cbf241afee43f1c3969b9103a41b40bcb3a3f467ab19f891d9bc4642e4", size = 155316, upload-time = "2025-02-28T01:23:00.763Z" }, + { url = "https://files.pythonhosted.org/packages/6d/52/45d969fcff6b5577c2bf17098dc36269b4c02197d551371c023130c0f890/bcrypt-4.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5c1949bf259a388863ced887c7861da1df681cb2388645766c89fdfd9004c669", size = 147752, upload-time = "2025-02-28T01:23:02.908Z" }, + { url = "https://files.pythonhosted.org/packages/11/22/5ada0b9af72b60cbc4c9a399fdde4af0feaa609d27eb0adc61607997a3fa/bcrypt-4.3.0-cp38-abi3-macosx_10_12_universal2.whl", hash = "sha256:f81b0ed2639568bf14749112298f9e4e2b28853dab50a8b357e31798686a036d", size = 498019, upload-time = "2025-02-28T01:23:05.838Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8c/252a1edc598dc1ce57905be173328eda073083826955ee3c97c7ff5ba584/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:864f8f19adbe13b7de11ba15d85d4a428c7e2f344bac110f667676a0ff84924b", size = 279174, upload-time = "2025-02-28T01:23:07.274Z" }, + { url = "https://files.pythonhosted.org/packages/29/5b/4547d5c49b85f0337c13929f2ccbe08b7283069eea3550a457914fc078aa/bcrypt-4.3.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e36506d001e93bffe59754397572f21bb5dc7c83f54454c990c74a468cd589e", size = 283870, upload-time = "2025-02-28T01:23:09.151Z" }, + { url = "https://files.pythonhosted.org/packages/be/21/7dbaf3fa1745cb63f776bb046e481fbababd7d344c5324eab47f5ca92dd2/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:842d08d75d9fe9fb94b18b071090220697f9f184d4547179b60734846461ed59", size = 279601, upload-time = "2025-02-28T01:23:11.461Z" }, + { url = "https://files.pythonhosted.org/packages/6d/64/e042fc8262e971347d9230d9abbe70d68b0a549acd8611c83cebd3eaec67/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7c03296b85cb87db865d91da79bf63d5609284fc0cab9472fdd8367bbd830753", size = 297660, upload-time = "2025-02-28T01:23:12.989Z" }, + { url = "https://files.pythonhosted.org/packages/50/b8/6294eb84a3fef3b67c69b4470fcdd5326676806bf2519cda79331ab3c3a9/bcrypt-4.3.0-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:62f26585e8b219cdc909b6a0069efc5e4267e25d4a3770a364ac58024f62a761", size = 284083, upload-time = "2025-02-28T01:23:14.5Z" }, + { url = "https://files.pythonhosted.org/packages/62/e6/baff635a4f2c42e8788fe1b1633911c38551ecca9a749d1052d296329da6/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:beeefe437218a65322fbd0069eb437e7c98137e08f22c4660ac2dc795c31f8bb", size = 279237, upload-time = "2025-02-28T01:23:16.686Z" }, + { url = "https://files.pythonhosted.org/packages/39/48/46f623f1b0c7dc2e5de0b8af5e6f5ac4cc26408ac33f3d424e5ad8da4a90/bcrypt-4.3.0-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:97eea7408db3a5bcce4a55d13245ab3fa566e23b4c67cd227062bb49e26c585d", size = 283737, upload-time = "2025-02-28T01:23:18.897Z" }, + { url = "https://files.pythonhosted.org/packages/49/8b/70671c3ce9c0fca4a6cc3cc6ccbaa7e948875a2e62cbd146e04a4011899c/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:191354ebfe305e84f344c5964c7cd5f924a3bfc5d405c75ad07f232b6dffb49f", size = 312741, upload-time = "2025-02-28T01:23:21.041Z" }, + { url = "https://files.pythonhosted.org/packages/27/fb/910d3a1caa2d249b6040a5caf9f9866c52114d51523ac2fb47578a27faee/bcrypt-4.3.0-cp38-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:41261d64150858eeb5ff43c753c4b216991e0ae16614a308a15d909503617732", size = 316472, upload-time = "2025-02-28T01:23:23.183Z" }, + { url = "https://files.pythonhosted.org/packages/dc/cf/7cf3a05b66ce466cfb575dbbda39718d45a609daa78500f57fa9f36fa3c0/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:33752b1ba962ee793fa2b6321404bf20011fe45b9afd2a842139de3011898fef", size = 343606, upload-time = "2025-02-28T01:23:25.361Z" }, + { url = "https://files.pythonhosted.org/packages/e3/b8/e970ecc6d7e355c0d892b7f733480f4aa8509f99b33e71550242cf0b7e63/bcrypt-4.3.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:50e6e80a4bfd23a25f5c05b90167c19030cf9f87930f7cb2eacb99f45d1c3304", size = 362867, upload-time = "2025-02-28T01:23:26.875Z" }, + { url = "https://files.pythonhosted.org/packages/a9/97/8d3118efd8354c555a3422d544163f40d9f236be5b96c714086463f11699/bcrypt-4.3.0-cp38-abi3-win32.whl", hash = "sha256:67a561c4d9fb9465ec866177e7aebcad08fe23aaf6fbd692a6fab69088abfc51", size = 160589, upload-time = "2025-02-28T01:23:28.381Z" }, + { url = "https://files.pythonhosted.org/packages/29/07/416f0b99f7f3997c69815365babbc2e8754181a4b1899d921b3c7d5b6f12/bcrypt-4.3.0-cp38-abi3-win_amd64.whl", hash = "sha256:584027857bc2843772114717a7490a37f68da563b3620f78a849bcb54dc11e62", size = 152794, upload-time = "2025-02-28T01:23:30.187Z" }, + { url = "https://files.pythonhosted.org/packages/6e/c1/3fa0e9e4e0bfd3fd77eb8b52ec198fd6e1fd7e9402052e43f23483f956dd/bcrypt-4.3.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:0d3efb1157edebfd9128e4e46e2ac1a64e0c1fe46fb023158a407c7892b0f8c3", size = 498969, upload-time = "2025-02-28T01:23:31.945Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d4/755ce19b6743394787fbd7dff6bf271b27ee9b5912a97242e3caf125885b/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08bacc884fd302b611226c01014eca277d48f0a05187666bca23aac0dad6fe24", size = 279158, upload-time = "2025-02-28T01:23:34.161Z" }, + { url = "https://files.pythonhosted.org/packages/9b/5d/805ef1a749c965c46b28285dfb5cd272a7ed9fa971f970435a5133250182/bcrypt-4.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6746e6fec103fcd509b96bacdfdaa2fbde9a553245dbada284435173a6f1aef", size = 284285, upload-time = "2025-02-28T01:23:35.765Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/698580547a4a4988e415721b71eb45e80c879f0fb04a62da131f45987b96/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:afe327968aaf13fc143a56a3360cb27d4ad0345e34da12c7290f1b00b8fe9a8b", size = 279583, upload-time = "2025-02-28T01:23:38.021Z" }, + { url = "https://files.pythonhosted.org/packages/f2/87/62e1e426418204db520f955ffd06f1efd389feca893dad7095bf35612eec/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d9af79d322e735b1fc33404b5765108ae0ff232d4b54666d46730f8ac1a43676", size = 297896, upload-time = "2025-02-28T01:23:39.575Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c6/8fedca4c2ada1b6e889c52d2943b2f968d3427e5d65f595620ec4c06fa2f/bcrypt-4.3.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f1e3ffa1365e8702dc48c8b360fef8d7afeca482809c5e45e653af82ccd088c1", size = 284492, upload-time = "2025-02-28T01:23:40.901Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4d/c43332dcaaddb7710a8ff5269fcccba97ed3c85987ddaa808db084267b9a/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3004df1b323d10021fda07a813fd33e0fd57bef0e9a480bb143877f6cba996fe", size = 279213, upload-time = "2025-02-28T01:23:42.653Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/1e36379e169a7df3a14a1c160a49b7b918600a6008de43ff20d479e6f4b5/bcrypt-4.3.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:531457e5c839d8caea9b589a1bcfe3756b0547d7814e9ce3d437f17da75c32b0", size = 284162, upload-time = "2025-02-28T01:23:43.964Z" }, + { url = "https://files.pythonhosted.org/packages/1c/0a/644b2731194b0d7646f3210dc4d80c7fee3ecb3a1f791a6e0ae6bb8684e3/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:17a854d9a7a476a89dcef6c8bd119ad23e0f82557afbd2c442777a16408e614f", size = 312856, upload-time = "2025-02-28T01:23:46.011Z" }, + { url = "https://files.pythonhosted.org/packages/dc/62/2a871837c0bb6ab0c9a88bf54de0fc021a6a08832d4ea313ed92a669d437/bcrypt-4.3.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:6fb1fd3ab08c0cbc6826a2e0447610c6f09e983a281b919ed721ad32236b8b23", size = 316726, upload-time = "2025-02-28T01:23:47.575Z" }, + { url = "https://files.pythonhosted.org/packages/0c/a1/9898ea3faac0b156d457fd73a3cb9c2855c6fd063e44b8522925cdd8ce46/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e965a9c1e9a393b8005031ff52583cedc15b7884fce7deb8b0346388837d6cfe", size = 343664, upload-time = "2025-02-28T01:23:49.059Z" }, + { url = "https://files.pythonhosted.org/packages/40/f2/71b4ed65ce38982ecdda0ff20c3ad1b15e71949c78b2c053df53629ce940/bcrypt-4.3.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:79e70b8342a33b52b55d93b3a59223a844962bef479f6a0ea318ebbcadf71505", size = 363128, upload-time = "2025-02-28T01:23:50.399Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/12f6a58eca6dea4be992d6c681b7ec9410a1d9f5cf368c61437e31daa879/bcrypt-4.3.0-cp39-abi3-win32.whl", hash = "sha256:b4d4e57f0a63fd0b358eb765063ff661328f69a04494427265950c71b992a39a", size = 160598, upload-time = "2025-02-28T01:23:51.775Z" }, + { url = "https://files.pythonhosted.org/packages/a9/cf/45fb5261ece3e6b9817d3d82b2f343a505fd58674a92577923bc500bd1aa/bcrypt-4.3.0-cp39-abi3-win_amd64.whl", hash = "sha256:e53e074b120f2877a35cc6c736b8eb161377caae8925c17688bd46ba56daaa5b", size = 152799, upload-time = "2025-02-28T01:23:53.139Z" }, + { url = "https://files.pythonhosted.org/packages/55/2d/0c7e5ab0524bf1a443e34cdd3926ec6f5879889b2f3c32b2f5074e99ed53/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c950d682f0952bafcceaf709761da0a32a942272fad381081b51096ffa46cea1", size = 275367, upload-time = "2025-02-28T01:23:54.578Z" }, + { url = "https://files.pythonhosted.org/packages/10/4f/f77509f08bdff8806ecc4dc472b6e187c946c730565a7470db772d25df70/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:107d53b5c67e0bbc3f03ebf5b030e0403d24dda980f8e244795335ba7b4a027d", size = 280644, upload-time = "2025-02-28T01:23:56.547Z" }, + { url = "https://files.pythonhosted.org/packages/35/18/7d9dc16a3a4d530d0a9b845160e9e5d8eb4f00483e05d44bb4116a1861da/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b693dbb82b3c27a1604a3dff5bfc5418a7e6a781bb795288141e5f80cf3a3492", size = 274881, upload-time = "2025-02-28T01:23:57.935Z" }, + { url = "https://files.pythonhosted.org/packages/df/c4/ae6921088adf1e37f2a3a6a688e72e7d9e45fdd3ae5e0bc931870c1ebbda/bcrypt-4.3.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:b6354d3760fcd31994a14c89659dee887f1351a06e5dac3c1142307172a79f90", size = 280203, upload-time = "2025-02-28T01:23:59.331Z" }, + { url = "https://files.pythonhosted.org/packages/4c/b1/1289e21d710496b88340369137cc4c5f6ee036401190ea116a7b4ae6d32a/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a839320bf27d474e52ef8cb16449bb2ce0ba03ca9f44daba6d93fa1d8828e48a", size = 275103, upload-time = "2025-02-28T01:24:00.764Z" }, + { url = "https://files.pythonhosted.org/packages/94/41/19be9fe17e4ffc5d10b7b67f10e459fc4eee6ffe9056a88de511920cfd8d/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:bdc6a24e754a555d7316fa4774e64c6c3997d27ed2d1964d55920c7c227bc4ce", size = 280513, upload-time = "2025-02-28T01:24:02.243Z" }, + { url = "https://files.pythonhosted.org/packages/aa/73/05687a9ef89edebdd8ad7474c16d8af685eb4591c3c38300bb6aad4f0076/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:55a935b8e9a1d2def0626c4269db3fcd26728cbff1e84f0341465c31c4ee56d8", size = 274685, upload-time = "2025-02-28T01:24:04.512Z" }, + { url = "https://files.pythonhosted.org/packages/63/13/47bba97924ebe86a62ef83dc75b7c8a881d53c535f83e2c54c4bd701e05c/bcrypt-4.3.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:57967b7a28d855313a963aaea51bf6df89f833db4320da458e5b3c5ab6d4c938", size = 280110, upload-time = "2025-02-28T01:24:05.896Z" }, ] [[package]] @@ -376,63 +378,63 @@ dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d0/d0/d8cc8c9a4488a787e7fa430f6055e5bd1ddb22c340a751d9e901b82e2efe/blis-1.3.3.tar.gz", hash = "sha256:034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd", size = 2644873, upload_time = "2025-11-17T12:28:30.511Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/db/d80daf6c060618c72acecf026410b806f620cdea62b2e72f3235d7389d05/blis-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:650f1d2b28e3c875927c63deebda463a6f9d237dff30e445bfe2127718c1a344", size = 6925724, upload_time = "2025-11-17T12:27:14.23Z" }, - { url = "https://files.pythonhosted.org/packages/06/cd/7ac854c92e33cfccc0eded48e979a9fc26a447952d07a9c7c7da7c1d6eec/blis-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b0d42420ddd543eec51ccb99d38364a0c0833b6895eced37127822de6ecacff", size = 1233606, upload_time = "2025-11-17T12:27:16.107Z" }, - { url = "https://files.pythonhosted.org/packages/c7/ae/ad3165fdbc4ef6afef585686a778c72cd67fb5aa16ab2fd2f4494186705e/blis-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0628a030d44aa71cac5973e40c9e95ec767abaaf2fd366a094b9398885f82f2", size = 2769094, upload_time = "2025-11-17T12:27:17.883Z" }, - { url = "https://files.pythonhosted.org/packages/25/d4/7b0820f139b4ea67606d01b59ba6afbee4552ce7b2fd179f2fb7908e294f/blis-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0114cf2d8f19e0ed210f9ae92594cd0a12efa1bbbce444028b0fc365bbbb8af", size = 11300520, upload_time = "2025-11-17T12:27:20.058Z" }, - { url = "https://files.pythonhosted.org/packages/85/f3/865a4322bdbeb944744c1908e67fdabecd476613a17204956cff12d568c9/blis-1.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7e88181e9dd8430029ebaf22d41bf79e756e8c95363e9471717102c66beb4a6d", size = 2962083, upload_time = "2025-11-17T12:27:22.098Z" }, - { url = "https://files.pythonhosted.org/packages/65/a2/c2842fa1e2e6bd56eb93e41b34859a9af8b5b63669ee0442bea585d8f607/blis-1.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62fb8c731347b0f98f5f81d19d339049e61489798738467d156c66cc329b0754", size = 14177001, upload_time = "2025-11-17T12:27:24.345Z" }, - { url = "https://files.pythonhosted.org/packages/b5/9b/3b1532f23db8bdddf3a976e9acf51e8debd94c63be5dafb8ccbab3e62935/blis-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:631836d4f335e62c30aa50a1aa0170773265c73654d296361f95180006e88c04", size = 6184429, upload_time = "2025-11-17T12:27:27.054Z" }, - { url = "https://files.pythonhosted.org/packages/a1/0a/a4c8736bc497d386b0ffc76d321f478c03f1a4725e52092f93b38beb3786/blis-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e10c8d3e892b1dbdff365b9d00e08291876fc336915bf1a5e9f188ed087e1a91", size = 6925522, upload_time = "2025-11-17T12:27:29.199Z" }, - { url = "https://files.pythonhosted.org/packages/83/5a/3437009282f23684ecd3963a8b034f9307cdd2bf4484972e5a6b096bf9ac/blis-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66e6249564f1db22e8af1e0513ff64134041fa7e03c8dd73df74db3f4d8415a7", size = 1232787, upload_time = "2025-11-17T12:27:30.996Z" }, - { url = "https://files.pythonhosted.org/packages/d1/0e/82221910d16259ce3017c1442c468a3f206a4143a96fbba9f5b5b81d62e8/blis-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7260da065958b4e5475f62f44895ef9d673b0f47dcf61b672b22b7dae1a18505", size = 2844596, upload_time = "2025-11-17T12:27:32.601Z" }, - { url = "https://files.pythonhosted.org/packages/6c/93/ab547f1a5c23e20bca16fbcf04021c32aac3f969be737ea4980509a7ca90/blis-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9327a6ca67de8ae76fe071e8584cc7f3b2e8bfadece4961d40f2826e1cda2df", size = 11377746, upload_time = "2025-11-17T12:27:35.342Z" }, - { url = "https://files.pythonhosted.org/packages/6e/a6/7733820aa62da32526287a63cd85c103b2b323b186c8ee43b7772ff7017c/blis-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c4ae70629cf302035d268858a10ca4eb6242a01b2dc8d64422f8e6dcb8a8ee74", size = 3041954, upload_time = "2025-11-17T12:27:37.479Z" }, - { url = "https://files.pythonhosted.org/packages/87/53/e39d67fd3296b649772780ca6aab081412838ecb54e0b0c6432d01626a50/blis-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45866a9027d43b93e8b59980a23c5d7358b6536fc04606286e39fdcfce1101c2", size = 14251222, upload_time = "2025-11-17T12:27:39.705Z" }, - { url = "https://files.pythonhosted.org/packages/ea/44/b749f8777b020b420bceaaf60f66432fc30cc904ca5b69640ec9cbef11ed/blis-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:27f82b8633030f8d095d2b412dffa7eb6dbc8ee43813139909a20012e54422ea", size = 6171233, upload_time = "2025-11-17T12:27:41.921Z" }, - { url = "https://files.pythonhosted.org/packages/16/d1/429cf0cf693d4c7dc2efed969bd474e315aab636e4a95f66c4ed7264912d/blis-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a1c74e100665f8e918ebdbae2794576adf1f691680b5cdb8b29578432f623ef", size = 6929663, upload_time = "2025-11-17T12:27:44.482Z" }, - { url = "https://files.pythonhosted.org/packages/11/69/363c8df8d98b3cc97be19aad6aabb2c9c53f372490d79316bdee92d476e7/blis-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f6c595185176ce021316263e1a1d636a3425b6c48366c1fd712d08d0b71849a", size = 1230939, upload_time = "2025-11-17T12:27:46.19Z" }, - { url = "https://files.pythonhosted.org/packages/96/2a/fbf65d906d823d839076c5150a6f8eb5ecbc5f9135e0b6510609bda1e6b7/blis-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d734b19fba0be7944f272dfa7b443b37c61f9476d9ab054a9ac53555ceadd2e0", size = 2818835, upload_time = "2025-11-17T12:27:48.167Z" }, - { url = "https://files.pythonhosted.org/packages/d5/ad/58deaa3ad856dd3cc96493e40ffd2ed043d18d4d304f85a65cde1ccbf644/blis-1.3.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ef6d6e2b599a3a2788eb6d9b443533961265aa4ec49d574ed4bb846e548dcdb", size = 11366550, upload_time = "2025-11-17T12:27:49.958Z" }, - { url = "https://files.pythonhosted.org/packages/78/82/816a7adfe1f7acc8151f01ec86ef64467a3c833932d8f19f8e06613b8a4e/blis-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8c888438ae99c500422d50698e3028b65caa8ebb44e24204d87fda2df64058f7", size = 3023686, upload_time = "2025-11-17T12:27:52.062Z" }, - { url = "https://files.pythonhosted.org/packages/1e/e2/0e93b865f648b5519360846669a35f28ee8f4e1d93d054f6850d8afbabde/blis-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8177879fd3590b5eecdd377f9deafb5dc8af6d684f065bd01553302fb3fcf9a7", size = 14250939, upload_time = "2025-11-17T12:27:53.847Z" }, - { url = "https://files.pythonhosted.org/packages/20/07/fb43edc2ff0a6a367e4a94fc39eb3b85aa1e55e24cc857af2db145ce9f0d/blis-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:f20f7ad69aaffd1ce14fe77de557b6df9b61e0c9e582f75a843715d836b5c8af", size = 6192759, upload_time = "2025-11-17T12:27:56.176Z" }, - { url = "https://files.pythonhosted.org/packages/e6/f7/d26e62d9be3d70473a63e0a5d30bae49c2fe138bebac224adddcdef8a7ce/blis-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1e647341f958421a86b028a2efe16ce19c67dba2a05f79e8f7e80b1ff45328aa", size = 6928322, upload_time = "2025-11-17T12:27:57.965Z" }, - { url = "https://files.pythonhosted.org/packages/4a/78/750d12da388f714958eb2f2fd177652323bbe7ec528365c37129edd6eb84/blis-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d563160f874abb78a57e346f07312c5323f7ad67b6370052b6b17087ef234a8e", size = 1229635, upload_time = "2025-11-17T12:28:00.118Z" }, - { url = "https://files.pythonhosted.org/packages/e8/36/eac4199c5b200a5f3e93cad197da8d26d909f218eb444c4f552647c95240/blis-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:30b8a5b90cb6cb81d1ada9ae05aa55fb8e70d9a0ae9db40d2401bb9c1c8f14c4", size = 2815650, upload_time = "2025-11-17T12:28:02.544Z" }, - { url = "https://files.pythonhosted.org/packages/bf/51/472e7b36a6bedb5242a9757e7486f702c3619eff76e256735d0c8b1679c6/blis-1.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9f5c53b277f6ac5b3ca30bc12ebab7ea16c8f8c36b14428abb56924213dc127", size = 11359008, upload_time = "2025-11-17T12:28:04.589Z" }, - { url = "https://files.pythonhosted.org/packages/84/da/d0dfb6d6e6321ae44df0321384c32c322bd07b15740d7422727a1a49fc5d/blis-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6297e7616c158b305c9a8a4e47ca5fc9b0785194dd96c903b1a1591a7ca21ddf", size = 3011959, upload_time = "2025-11-17T12:28:06.862Z" }, - { url = "https://files.pythonhosted.org/packages/20/c5/2b0b5e556fa0364ed671051ea078a6d6d7b979b1cfef78d64ad3ca5f0c7f/blis-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3f966ca74f89f8a33e568b9a1d71992fc9a0d29a423e047f0a212643e21b5458", size = 14232456, upload_time = "2025-11-17T12:28:08.779Z" }, - { url = "https://files.pythonhosted.org/packages/31/07/4cdc81a47bf862c0b06d91f1bc6782064e8b69ac9b5d4ff51d97e4ff03da/blis-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:7a0fc4b237a3a453bdc3c7ab48d91439fcd2d013b665c46948d9eaf9c3e45a97", size = 6192624, upload_time = "2025-11-17T12:28:14.197Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/d0/d0/d8cc8c9a4488a787e7fa430f6055e5bd1ddb22c340a751d9e901b82e2efe/blis-1.3.3.tar.gz", hash = "sha256:034d4560ff3cc43e8aa37e188451b0440e3261d989bb8a42ceee865607715ecd", size = 2644873, upload-time = "2025-11-17T12:28:30.511Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/db/d80daf6c060618c72acecf026410b806f620cdea62b2e72f3235d7389d05/blis-1.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:650f1d2b28e3c875927c63deebda463a6f9d237dff30e445bfe2127718c1a344", size = 6925724, upload-time = "2025-11-17T12:27:14.23Z" }, + { url = "https://files.pythonhosted.org/packages/06/cd/7ac854c92e33cfccc0eded48e979a9fc26a447952d07a9c7c7da7c1d6eec/blis-1.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b0d42420ddd543eec51ccb99d38364a0c0833b6895eced37127822de6ecacff", size = 1233606, upload-time = "2025-11-17T12:27:16.107Z" }, + { url = "https://files.pythonhosted.org/packages/c7/ae/ad3165fdbc4ef6afef585686a778c72cd67fb5aa16ab2fd2f4494186705e/blis-1.3.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f0628a030d44aa71cac5973e40c9e95ec767abaaf2fd366a094b9398885f82f2", size = 2769094, upload-time = "2025-11-17T12:27:17.883Z" }, + { url = "https://files.pythonhosted.org/packages/25/d4/7b0820f139b4ea67606d01b59ba6afbee4552ce7b2fd179f2fb7908e294f/blis-1.3.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0114cf2d8f19e0ed210f9ae92594cd0a12efa1bbbce444028b0fc365bbbb8af", size = 11300520, upload-time = "2025-11-17T12:27:20.058Z" }, + { url = "https://files.pythonhosted.org/packages/85/f3/865a4322bdbeb944744c1908e67fdabecd476613a17204956cff12d568c9/blis-1.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7e88181e9dd8430029ebaf22d41bf79e756e8c95363e9471717102c66beb4a6d", size = 2962083, upload-time = "2025-11-17T12:27:22.098Z" }, + { url = "https://files.pythonhosted.org/packages/65/a2/c2842fa1e2e6bd56eb93e41b34859a9af8b5b63669ee0442bea585d8f607/blis-1.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:62fb8c731347b0f98f5f81d19d339049e61489798738467d156c66cc329b0754", size = 14177001, upload-time = "2025-11-17T12:27:24.345Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9b/3b1532f23db8bdddf3a976e9acf51e8debd94c63be5dafb8ccbab3e62935/blis-1.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:631836d4f335e62c30aa50a1aa0170773265c73654d296361f95180006e88c04", size = 6184429, upload-time = "2025-11-17T12:27:27.054Z" }, + { url = "https://files.pythonhosted.org/packages/a1/0a/a4c8736bc497d386b0ffc76d321f478c03f1a4725e52092f93b38beb3786/blis-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e10c8d3e892b1dbdff365b9d00e08291876fc336915bf1a5e9f188ed087e1a91", size = 6925522, upload-time = "2025-11-17T12:27:29.199Z" }, + { url = "https://files.pythonhosted.org/packages/83/5a/3437009282f23684ecd3963a8b034f9307cdd2bf4484972e5a6b096bf9ac/blis-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66e6249564f1db22e8af1e0513ff64134041fa7e03c8dd73df74db3f4d8415a7", size = 1232787, upload-time = "2025-11-17T12:27:30.996Z" }, + { url = "https://files.pythonhosted.org/packages/d1/0e/82221910d16259ce3017c1442c468a3f206a4143a96fbba9f5b5b81d62e8/blis-1.3.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7260da065958b4e5475f62f44895ef9d673b0f47dcf61b672b22b7dae1a18505", size = 2844596, upload-time = "2025-11-17T12:27:32.601Z" }, + { url = "https://files.pythonhosted.org/packages/6c/93/ab547f1a5c23e20bca16fbcf04021c32aac3f969be737ea4980509a7ca90/blis-1.3.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9327a6ca67de8ae76fe071e8584cc7f3b2e8bfadece4961d40f2826e1cda2df", size = 11377746, upload-time = "2025-11-17T12:27:35.342Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a6/7733820aa62da32526287a63cd85c103b2b323b186c8ee43b7772ff7017c/blis-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c4ae70629cf302035d268858a10ca4eb6242a01b2dc8d64422f8e6dcb8a8ee74", size = 3041954, upload-time = "2025-11-17T12:27:37.479Z" }, + { url = "https://files.pythonhosted.org/packages/87/53/e39d67fd3296b649772780ca6aab081412838ecb54e0b0c6432d01626a50/blis-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:45866a9027d43b93e8b59980a23c5d7358b6536fc04606286e39fdcfce1101c2", size = 14251222, upload-time = "2025-11-17T12:27:39.705Z" }, + { url = "https://files.pythonhosted.org/packages/ea/44/b749f8777b020b420bceaaf60f66432fc30cc904ca5b69640ec9cbef11ed/blis-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:27f82b8633030f8d095d2b412dffa7eb6dbc8ee43813139909a20012e54422ea", size = 6171233, upload-time = "2025-11-17T12:27:41.921Z" }, + { url = "https://files.pythonhosted.org/packages/16/d1/429cf0cf693d4c7dc2efed969bd474e315aab636e4a95f66c4ed7264912d/blis-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2a1c74e100665f8e918ebdbae2794576adf1f691680b5cdb8b29578432f623ef", size = 6929663, upload-time = "2025-11-17T12:27:44.482Z" }, + { url = "https://files.pythonhosted.org/packages/11/69/363c8df8d98b3cc97be19aad6aabb2c9c53f372490d79316bdee92d476e7/blis-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3f6c595185176ce021316263e1a1d636a3425b6c48366c1fd712d08d0b71849a", size = 1230939, upload-time = "2025-11-17T12:27:46.19Z" }, + { url = "https://files.pythonhosted.org/packages/96/2a/fbf65d906d823d839076c5150a6f8eb5ecbc5f9135e0b6510609bda1e6b7/blis-1.3.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d734b19fba0be7944f272dfa7b443b37c61f9476d9ab054a9ac53555ceadd2e0", size = 2818835, upload-time = "2025-11-17T12:27:48.167Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ad/58deaa3ad856dd3cc96493e40ffd2ed043d18d4d304f85a65cde1ccbf644/blis-1.3.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ef6d6e2b599a3a2788eb6d9b443533961265aa4ec49d574ed4bb846e548dcdb", size = 11366550, upload-time = "2025-11-17T12:27:49.958Z" }, + { url = "https://files.pythonhosted.org/packages/78/82/816a7adfe1f7acc8151f01ec86ef64467a3c833932d8f19f8e06613b8a4e/blis-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8c888438ae99c500422d50698e3028b65caa8ebb44e24204d87fda2df64058f7", size = 3023686, upload-time = "2025-11-17T12:27:52.062Z" }, + { url = "https://files.pythonhosted.org/packages/1e/e2/0e93b865f648b5519360846669a35f28ee8f4e1d93d054f6850d8afbabde/blis-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8177879fd3590b5eecdd377f9deafb5dc8af6d684f065bd01553302fb3fcf9a7", size = 14250939, upload-time = "2025-11-17T12:27:53.847Z" }, + { url = "https://files.pythonhosted.org/packages/20/07/fb43edc2ff0a6a367e4a94fc39eb3b85aa1e55e24cc857af2db145ce9f0d/blis-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:f20f7ad69aaffd1ce14fe77de557b6df9b61e0c9e582f75a843715d836b5c8af", size = 6192759, upload-time = "2025-11-17T12:27:56.176Z" }, + { url = "https://files.pythonhosted.org/packages/e6/f7/d26e62d9be3d70473a63e0a5d30bae49c2fe138bebac224adddcdef8a7ce/blis-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1e647341f958421a86b028a2efe16ce19c67dba2a05f79e8f7e80b1ff45328aa", size = 6928322, upload-time = "2025-11-17T12:27:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/4a/78/750d12da388f714958eb2f2fd177652323bbe7ec528365c37129edd6eb84/blis-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d563160f874abb78a57e346f07312c5323f7ad67b6370052b6b17087ef234a8e", size = 1229635, upload-time = "2025-11-17T12:28:00.118Z" }, + { url = "https://files.pythonhosted.org/packages/e8/36/eac4199c5b200a5f3e93cad197da8d26d909f218eb444c4f552647c95240/blis-1.3.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:30b8a5b90cb6cb81d1ada9ae05aa55fb8e70d9a0ae9db40d2401bb9c1c8f14c4", size = 2815650, upload-time = "2025-11-17T12:28:02.544Z" }, + { url = "https://files.pythonhosted.org/packages/bf/51/472e7b36a6bedb5242a9757e7486f702c3619eff76e256735d0c8b1679c6/blis-1.3.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e9f5c53b277f6ac5b3ca30bc12ebab7ea16c8f8c36b14428abb56924213dc127", size = 11359008, upload-time = "2025-11-17T12:28:04.589Z" }, + { url = "https://files.pythonhosted.org/packages/84/da/d0dfb6d6e6321ae44df0321384c32c322bd07b15740d7422727a1a49fc5d/blis-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6297e7616c158b305c9a8a4e47ca5fc9b0785194dd96c903b1a1591a7ca21ddf", size = 3011959, upload-time = "2025-11-17T12:28:06.862Z" }, + { url = "https://files.pythonhosted.org/packages/20/c5/2b0b5e556fa0364ed671051ea078a6d6d7b979b1cfef78d64ad3ca5f0c7f/blis-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3f966ca74f89f8a33e568b9a1d71992fc9a0d29a423e047f0a212643e21b5458", size = 14232456, upload-time = "2025-11-17T12:28:08.779Z" }, + { url = "https://files.pythonhosted.org/packages/31/07/4cdc81a47bf862c0b06d91f1bc6782064e8b69ac9b5d4ff51d97e4ff03da/blis-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:7a0fc4b237a3a453bdc3c7ab48d91439fcd2d013b665c46948d9eaf9c3e45a97", size = 6192624, upload-time = "2025-11-17T12:28:14.197Z" }, ] [[package]] name = "cachetools" version = "7.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d4/07/56595285564e90777d758ebd383d6b0b971b87729bbe2184a849932a3736/cachetools-7.0.1.tar.gz", hash = "sha256:e31e579d2c5b6e2944177a0397150d312888ddf4e16e12f1016068f0c03b8341", size = 36126, upload_time = "2026-02-10T22:24:05.03Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d4/07/56595285564e90777d758ebd383d6b0b971b87729bbe2184a849932a3736/cachetools-7.0.1.tar.gz", hash = "sha256:e31e579d2c5b6e2944177a0397150d312888ddf4e16e12f1016068f0c03b8341", size = 36126, upload-time = "2026-02-10T22:24:05.03Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ed/9e/5faefbf9db1db466d633735faceda1f94aa99ce506ac450d232536266b32/cachetools-7.0.1-py3-none-any.whl", hash = "sha256:8f086515c254d5664ae2146d14fc7f65c9a4bce75152eb247e5a9c5e6d7b2ecf", size = 13484, upload_time = "2026-02-10T22:24:03.741Z" }, + { url = "https://files.pythonhosted.org/packages/ed/9e/5faefbf9db1db466d633735faceda1f94aa99ce506ac450d232536266b32/cachetools-7.0.1-py3-none-any.whl", hash = "sha256:8f086515c254d5664ae2146d14fc7f65c9a4bce75152eb247e5a9c5e6d7b2ecf", size = 13484, upload-time = "2026-02-10T22:24:03.741Z" }, ] [[package]] name = "catalogue" version = "2.0.10" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload_time = "2023-09-25T06:29:24.962Z" } +sdist = { url = "https://files.pythonhosted.org/packages/38/b4/244d58127e1cdf04cf2dc7d9566f0d24ef01d5ce21811bab088ecc62b5ea/catalogue-2.0.10.tar.gz", hash = "sha256:4f56daa940913d3f09d589c191c74e5a6d51762b3a9e37dd53b7437afd6cda15", size = 19561, upload-time = "2023-09-25T06:29:24.962Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload_time = "2023-09-25T06:29:23.337Z" }, + { url = "https://files.pythonhosted.org/packages/9e/96/d32b941a501ab566a16358d68b6eb4e4acc373fab3c3c4d7d9e649f7b4bb/catalogue-2.0.10-py3-none-any.whl", hash = "sha256:58c2de0020aa90f4a2da7dfad161bf7b3b054c86a5f09fcedc0b2b740c109a9f", size = 17325, upload-time = "2023-09-25T06:29:23.337Z" }, ] [[package]] name = "certifi" version = "2026.1.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload_time = "2026-01-04T02:42:41.825Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload_time = "2026-01-04T02:42:40.15Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, ] [[package]] @@ -442,148 +444,148 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pycparser", marker = "implementation_name != 'PyPy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload_time = "2025-09-08T23:24:04.541Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload_time = "2025-09-08T23:22:08.01Z" }, - { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload_time = "2025-09-08T23:22:10.637Z" }, - { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload_time = "2025-09-08T23:22:12.267Z" }, - { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload_time = "2025-09-08T23:22:13.455Z" }, - { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload_time = "2025-09-08T23:22:14.596Z" }, - { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload_time = "2025-09-08T23:22:15.769Z" }, - { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload_time = "2025-09-08T23:22:17.427Z" }, - { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload_time = "2025-09-08T23:22:19.069Z" }, - { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload_time = "2025-09-08T23:22:20.588Z" }, - { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload_time = "2025-09-08T23:22:22.143Z" }, - { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload_time = "2025-09-08T23:22:23.328Z" }, - { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload_time = "2025-09-08T23:22:24.752Z" }, - { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload_time = "2025-09-08T23:22:26.456Z" }, - { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload_time = "2025-09-08T23:22:28.197Z" }, - { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload_time = "2025-09-08T23:22:29.475Z" }, - { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload_time = "2025-09-08T23:22:31.063Z" }, - { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload_time = "2025-09-08T23:22:32.507Z" }, - { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload_time = "2025-09-08T23:22:34.132Z" }, - { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload_time = "2025-09-08T23:22:35.443Z" }, - { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload_time = "2025-09-08T23:22:36.805Z" }, - { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload_time = "2025-09-08T23:22:38.436Z" }, - { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload_time = "2025-09-08T23:22:39.776Z" }, - { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload_time = "2025-09-08T23:22:40.95Z" }, - { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload_time = "2025-09-08T23:22:42.463Z" }, - { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload_time = "2025-09-08T23:22:43.623Z" }, - { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload_time = "2025-09-08T23:22:44.795Z" }, - { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload_time = "2025-09-08T23:22:45.938Z" }, - { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload_time = "2025-09-08T23:22:47.349Z" }, - { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload_time = "2025-09-08T23:22:48.677Z" }, - { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload_time = "2025-09-08T23:22:50.06Z" }, - { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload_time = "2025-09-08T23:22:51.364Z" }, - { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload_time = "2025-09-08T23:22:52.902Z" }, - { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload_time = "2025-09-08T23:22:54.518Z" }, - { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload_time = "2025-09-08T23:22:55.867Z" }, - { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload_time = "2025-09-08T23:22:57.188Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload_time = "2025-09-08T23:22:58.351Z" }, - { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload_time = "2025-09-08T23:22:59.668Z" }, - { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload_time = "2025-09-08T23:23:00.879Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload_time = "2025-09-08T23:23:02.231Z" }, - { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload_time = "2025-09-08T23:23:03.472Z" }, - { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload_time = "2025-09-08T23:23:04.792Z" }, - { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload_time = "2025-09-08T23:23:06.127Z" }, - { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload_time = "2025-09-08T23:23:07.753Z" }, - { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload_time = "2025-09-08T23:23:09.648Z" }, - { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload_time = "2025-09-08T23:23:10.928Z" }, - { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload_time = "2025-09-08T23:23:12.42Z" }, - { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload_time = "2025-09-08T23:23:14.32Z" }, - { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload_time = "2025-09-08T23:23:15.535Z" }, - { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload_time = "2025-09-08T23:23:16.761Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/d7/516d984057745a6cd96575eea814fe1edd6646ee6efd552fb7b0921dec83/cffi-2.0.0-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:0cf2d91ecc3fcc0625c2c530fe004f82c110405f101548512cce44322fa8ac44", size = 184283, upload-time = "2025-09-08T23:22:08.01Z" }, + { url = "https://files.pythonhosted.org/packages/9e/84/ad6a0b408daa859246f57c03efd28e5dd1b33c21737c2db84cae8c237aa5/cffi-2.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f73b96c41e3b2adedc34a7356e64c8eb96e03a3782b535e043a986276ce12a49", size = 180504, upload-time = "2025-09-08T23:22:10.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/bd/b1a6362b80628111e6653c961f987faa55262b4002fcec42308cad1db680/cffi-2.0.0-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53f77cbe57044e88bbd5ed26ac1d0514d2acf0591dd6bb02a3ae37f76811b80c", size = 208811, upload-time = "2025-09-08T23:22:12.267Z" }, + { url = "https://files.pythonhosted.org/packages/4f/27/6933a8b2562d7bd1fb595074cf99cc81fc3789f6a6c05cdabb46284a3188/cffi-2.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:3e837e369566884707ddaf85fc1744b47575005c0a229de3327f8f9a20f4efeb", size = 216402, upload-time = "2025-09-08T23:22:13.455Z" }, + { url = "https://files.pythonhosted.org/packages/05/eb/b86f2a2645b62adcfff53b0dd97e8dfafb5c8aa864bd0d9a2c2049a0d551/cffi-2.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5eda85d6d1879e692d546a078b44251cdd08dd1cfb98dfb77b670c97cee49ea0", size = 203217, upload-time = "2025-09-08T23:22:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/9f/e0/6cbe77a53acf5acc7c08cc186c9928864bd7c005f9efd0d126884858a5fe/cffi-2.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9332088d75dc3241c702d852d4671613136d90fa6881da7d770a483fd05248b4", size = 203079, upload-time = "2025-09-08T23:22:15.769Z" }, + { url = "https://files.pythonhosted.org/packages/98/29/9b366e70e243eb3d14a5cb488dfd3a0b6b2f1fb001a203f653b93ccfac88/cffi-2.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc7de24befaeae77ba923797c7c87834c73648a05a4bde34b3b7e5588973a453", size = 216475, upload-time = "2025-09-08T23:22:17.427Z" }, + { url = "https://files.pythonhosted.org/packages/21/7a/13b24e70d2f90a322f2900c5d8e1f14fa7e2a6b3332b7309ba7b2ba51a5a/cffi-2.0.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:cf364028c016c03078a23b503f02058f1814320a56ad535686f90565636a9495", size = 218829, upload-time = "2025-09-08T23:22:19.069Z" }, + { url = "https://files.pythonhosted.org/packages/60/99/c9dc110974c59cc981b1f5b66e1d8af8af764e00f0293266824d9c4254bc/cffi-2.0.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e11e82b744887154b182fd3e7e8512418446501191994dbf9c9fc1f32cc8efd5", size = 211211, upload-time = "2025-09-08T23:22:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/49/72/ff2d12dbf21aca1b32a40ed792ee6b40f6dc3a9cf1644bd7ef6e95e0ac5e/cffi-2.0.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8ea985900c5c95ce9db1745f7933eeef5d314f0565b27625d9a10ec9881e1bfb", size = 218036, upload-time = "2025-09-08T23:22:22.143Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/027d7fb82e58c48ea717149b03bcadcbdc293553edb283af792bd4bcbb3f/cffi-2.0.0-cp310-cp310-win32.whl", hash = "sha256:1f72fb8906754ac8a2cc3f9f5aaa298070652a0ffae577e0ea9bd480dc3c931a", size = 172184, upload-time = "2025-09-08T23:22:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/33/fa/072dd15ae27fbb4e06b437eb6e944e75b068deb09e2a2826039e49ee2045/cffi-2.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:b18a3ed7d5b3bd8d9ef7a8cb226502c6bf8308df1525e1cc676c3680e7176739", size = 182790, upload-time = "2025-09-08T23:22:24.752Z" }, + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, ] [[package]] name = "cfgv" version = "3.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload_time = "2025-11-19T20:55:51.612Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4e/b5/721b8799b04bf9afe054a3899c6cf4e880fcf8563cc71c15610242490a0c/cfgv-3.5.0.tar.gz", hash = "sha256:d5b1034354820651caa73ede66a6294d6e95c1b00acc5e9b098e917404669132", size = 7334, upload-time = "2025-11-19T20:55:51.612Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload_time = "2025-11-19T20:55:50.744Z" }, + { url = "https://files.pythonhosted.org/packages/db/3c/33bac158f8ab7f89b2e59426d5fe2e4f63f7ed25df84c036890172b412b5/cfgv-3.5.0-py2.py3-none-any.whl", hash = "sha256:a8dc6b26ad22ff227d2634a65cb388215ce6cc96bbcc5cfde7641ae87e8dacc0", size = 7445, upload-time = "2025-11-19T20:55:50.744Z" }, ] [[package]] name = "chardet" version = "5.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload_time = "2023-08-01T19:23:02.662Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/0d/f7b6ab21ec75897ed80c17d79b15951a719226b9fababf1e40ea74d69079/chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7", size = 2069618, upload-time = "2023-08-01T19:23:02.662Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload_time = "2023-08-01T19:23:00.661Z" }, + { url = "https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970", size = 199385, upload-time = "2023-08-01T19:23:00.661Z" }, ] [[package]] name = "charset-normalizer" version = "3.4.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload_time = "2025-10-14T04:42:32.879Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload_time = "2025-10-14T04:40:11.385Z" }, - { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload_time = "2025-10-14T04:40:13.135Z" }, - { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload_time = "2025-10-14T04:40:14.728Z" }, - { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload_time = "2025-10-14T04:40:16.14Z" }, - { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload_time = "2025-10-14T04:40:17.567Z" }, - { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload_time = "2025-10-14T04:40:19.08Z" }, - { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload_time = "2025-10-14T04:40:20.607Z" }, - { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload_time = "2025-10-14T04:40:21.719Z" }, - { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload_time = "2025-10-14T04:40:23.069Z" }, - { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload_time = "2025-10-14T04:40:24.17Z" }, - { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload_time = "2025-10-14T04:40:25.368Z" }, - { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload_time = "2025-10-14T04:40:26.806Z" }, - { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload_time = "2025-10-14T04:40:28.284Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload_time = "2025-10-14T04:40:29.613Z" }, - { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload_time = "2025-10-14T04:40:30.644Z" }, - { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload_time = "2025-10-14T04:40:32.108Z" }, - { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload_time = "2025-10-14T04:40:33.79Z" }, - { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload_time = "2025-10-14T04:40:34.961Z" }, - { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload_time = "2025-10-14T04:40:36.105Z" }, - { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload_time = "2025-10-14T04:40:37.188Z" }, - { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload_time = "2025-10-14T04:40:38.435Z" }, - { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload_time = "2025-10-14T04:40:40.053Z" }, - { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload_time = "2025-10-14T04:40:41.163Z" }, - { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload_time = "2025-10-14T04:40:42.276Z" }, - { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload_time = "2025-10-14T04:40:43.439Z" }, - { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload_time = "2025-10-14T04:40:44.547Z" }, - { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload_time = "2025-10-14T04:40:46.018Z" }, - { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload_time = "2025-10-14T04:40:47.081Z" }, - { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload_time = "2025-10-14T04:40:48.246Z" }, - { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload_time = "2025-10-14T04:40:49.376Z" }, - { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload_time = "2025-10-14T04:40:50.844Z" }, - { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload_time = "2025-10-14T04:40:52.272Z" }, - { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload_time = "2025-10-14T04:40:53.353Z" }, - { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload_time = "2025-10-14T04:40:54.558Z" }, - { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload_time = "2025-10-14T04:40:55.677Z" }, - { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload_time = "2025-10-14T04:40:57.217Z" }, - { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload_time = "2025-10-14T04:40:58.358Z" }, - { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload_time = "2025-10-14T04:40:59.468Z" }, - { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload_time = "2025-10-14T04:41:00.623Z" }, - { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload_time = "2025-10-14T04:41:01.754Z" }, - { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload_time = "2025-10-14T04:41:03.231Z" }, - { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload_time = "2025-10-14T04:41:04.715Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload_time = "2025-10-14T04:41:05.827Z" }, - { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload_time = "2025-10-14T04:41:06.938Z" }, - { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload_time = "2025-10-14T04:41:08.101Z" }, - { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload_time = "2025-10-14T04:41:09.23Z" }, - { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload_time = "2025-10-14T04:41:10.467Z" }, - { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload_time = "2025-10-14T04:41:11.915Z" }, - { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload_time = "2025-10-14T04:41:13.346Z" }, - { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload_time = "2025-10-14T04:41:14.461Z" }, - { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload_time = "2025-10-14T04:41:15.588Z" }, - { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload_time = "2025-10-14T04:41:16.738Z" }, - { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload_time = "2025-10-14T04:41:17.923Z" }, - { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload_time = "2025-10-14T04:41:19.106Z" }, - { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload_time = "2025-10-14T04:41:20.245Z" }, - { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload_time = "2025-10-14T04:41:21.398Z" }, - { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload_time = "2025-10-14T04:41:22.583Z" }, - { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload_time = "2025-10-14T04:41:23.754Z" }, - { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload_time = "2025-10-14T04:41:25.27Z" }, - { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload_time = "2025-10-14T04:41:26.725Z" }, - { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload_time = "2025-10-14T04:41:28.322Z" }, - { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload_time = "2025-10-14T04:41:29.95Z" }, - { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload_time = "2025-10-14T04:41:31.188Z" }, - { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload_time = "2025-10-14T04:41:32.624Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload_time = "2025-10-14T04:42:31.76Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1f/b8/6d51fc1d52cbd52cd4ccedd5b5b2f0f6a11bbf6765c782298b0f3e808541/charset_normalizer-3.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e824f1492727fa856dd6eda4f7cee25f8518a12f3c4a56a74e8095695089cf6d", size = 209709, upload-time = "2025-10-14T04:40:11.385Z" }, + { url = "https://files.pythonhosted.org/packages/5c/af/1f9d7f7faafe2ddfb6f72a2e07a548a629c61ad510fe60f9630309908fef/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4bd5d4137d500351a30687c2d3971758aac9a19208fc110ccb9d7188fbe709e8", size = 148814, upload-time = "2025-10-14T04:40:13.135Z" }, + { url = "https://files.pythonhosted.org/packages/79/3d/f2e3ac2bbc056ca0c204298ea4e3d9db9b4afe437812638759db2c976b5f/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:027f6de494925c0ab2a55eab46ae5129951638a49a34d87f4c3eda90f696b4ad", size = 144467, upload-time = "2025-10-14T04:40:14.728Z" }, + { url = "https://files.pythonhosted.org/packages/ec/85/1bf997003815e60d57de7bd972c57dc6950446a3e4ccac43bc3070721856/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f820802628d2694cb7e56db99213f930856014862f3fd943d290ea8438d07ca8", size = 162280, upload-time = "2025-10-14T04:40:16.14Z" }, + { url = "https://files.pythonhosted.org/packages/3e/8e/6aa1952f56b192f54921c436b87f2aaf7c7a7c3d0d1a765547d64fd83c13/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:798d75d81754988d2565bff1b97ba5a44411867c0cf32b77a7e8f8d84796b10d", size = 159454, upload-time = "2025-10-14T04:40:17.567Z" }, + { url = "https://files.pythonhosted.org/packages/36/3b/60cbd1f8e93aa25d1c669c649b7a655b0b5fb4c571858910ea9332678558/charset_normalizer-3.4.4-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d1bb833febdff5c8927f922386db610b49db6e0d4f4ee29601d71e7c2694313", size = 153609, upload-time = "2025-10-14T04:40:19.08Z" }, + { url = "https://files.pythonhosted.org/packages/64/91/6a13396948b8fd3c4b4fd5bc74d045f5637d78c9675585e8e9fbe5636554/charset_normalizer-3.4.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9cd98cdc06614a2f768d2b7286d66805f94c48cde050acdbbb7db2600ab3197e", size = 151849, upload-time = "2025-10-14T04:40:20.607Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7a/59482e28b9981d105691e968c544cc0df3b7d6133152fb3dcdc8f135da7a/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:077fbb858e903c73f6c9db43374fd213b0b6a778106bc7032446a8e8b5b38b93", size = 151586, upload-time = "2025-10-14T04:40:21.719Z" }, + { url = "https://files.pythonhosted.org/packages/92/59/f64ef6a1c4bdd2baf892b04cd78792ed8684fbc48d4c2afe467d96b4df57/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:244bfb999c71b35de57821b8ea746b24e863398194a4014e4c76adc2bbdfeff0", size = 145290, upload-time = "2025-10-14T04:40:23.069Z" }, + { url = "https://files.pythonhosted.org/packages/6b/63/3bf9f279ddfa641ffa1962b0db6a57a9c294361cc2f5fcac997049a00e9c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:64b55f9dce520635f018f907ff1b0df1fdc31f2795a922fb49dd14fbcdf48c84", size = 163663, upload-time = "2025-10-14T04:40:24.17Z" }, + { url = "https://files.pythonhosted.org/packages/ed/09/c9e38fc8fa9e0849b172b581fd9803bdf6e694041127933934184e19f8c3/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:faa3a41b2b66b6e50f84ae4a68c64fcd0c44355741c6374813a800cd6695db9e", size = 151964, upload-time = "2025-10-14T04:40:25.368Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d1/d28b747e512d0da79d8b6a1ac18b7ab2ecfd81b2944c4c710e166d8dd09c/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6515f3182dbe4ea06ced2d9e8666d97b46ef4c75e326b79bb624110f122551db", size = 161064, upload-time = "2025-10-14T04:40:26.806Z" }, + { url = "https://files.pythonhosted.org/packages/bb/9a/31d62b611d901c3b9e5500c36aab0ff5eb442043fb3a1c254200d3d397d9/charset_normalizer-3.4.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc00f04ed596e9dc0da42ed17ac5e596c6ccba999ba6bd92b0e0aef2f170f2d6", size = 155015, upload-time = "2025-10-14T04:40:28.284Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/107e008fa2bff0c8b9319584174418e5e5285fef32f79d8ee6a430d0039c/charset_normalizer-3.4.4-cp310-cp310-win32.whl", hash = "sha256:f34be2938726fc13801220747472850852fe6b1ea75869a048d6f896838c896f", size = 99792, upload-time = "2025-10-14T04:40:29.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/66/e396e8a408843337d7315bab30dbf106c38966f1819f123257f5520f8a96/charset_normalizer-3.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:a61900df84c667873b292c3de315a786dd8dac506704dea57bc957bd31e22c7d", size = 107198, upload-time = "2025-10-14T04:40:30.644Z" }, + { url = "https://files.pythonhosted.org/packages/b5/58/01b4f815bf0312704c267f2ccb6e5d42bcc7752340cd487bc9f8c3710597/charset_normalizer-3.4.4-cp310-cp310-win_arm64.whl", hash = "sha256:cead0978fc57397645f12578bfd2d5ea9138ea0fac82b2f63f7f7c6877986a69", size = 100262, upload-time = "2025-10-14T04:40:32.108Z" }, + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, ] [[package]] @@ -593,9 +595,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/0f/62ca20172d4f87d93cf89665fbaedcd560ac48b465bd1d92bfc7ea6b0a41/click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d", size = 235857, upload_time = "2025-05-10T22:21:03.111Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/0f/62ca20172d4f87d93cf89665fbaedcd560ac48b465bd1d92bfc7ea6b0a41/click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d", size = 235857, upload-time = "2025-05-10T22:21:03.111Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/58/1f37bf81e3c689cc74ffa42102fa8915b59085f54a6e4a80bc6265c0f6bf/click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c", size = 102156, upload_time = "2025-05-10T22:21:01.352Z" }, + { url = "https://files.pythonhosted.org/packages/a2/58/1f37bf81e3c689cc74ffa42102fa8915b59085f54a6e4a80bc6265c0f6bf/click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c", size = 102156, upload-time = "2025-05-10T22:21:01.352Z" }, ] [[package]] @@ -605,18 +607,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f4/18/2ac35d6b3015a0c74e923d94fc69baf8307f7c3233de015d69f99e17afa8/cloudpathlib-0.23.0.tar.gz", hash = "sha256:eb38a34c6b8a048ecfd2b2f60917f7cbad4a105b7c979196450c2f541f4d6b4b", size = 53126, upload_time = "2025-10-07T22:47:56.278Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f4/18/2ac35d6b3015a0c74e923d94fc69baf8307f7c3233de015d69f99e17afa8/cloudpathlib-0.23.0.tar.gz", hash = "sha256:eb38a34c6b8a048ecfd2b2f60917f7cbad4a105b7c979196450c2f541f4d6b4b", size = 53126, upload-time = "2025-10-07T22:47:56.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/8a/c4bb04426d608be4a3171efa2e233d2c59a5c8937850c10d098e126df18e/cloudpathlib-0.23.0-py3-none-any.whl", hash = "sha256:8520b3b01468fee77de37ab5d50b1b524ea6b4a8731c35d1b7407ac0cd716002", size = 62755, upload_time = "2025-10-07T22:47:54.905Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8a/c4bb04426d608be4a3171efa2e233d2c59a5c8937850c10d098e126df18e/cloudpathlib-0.23.0-py3-none-any.whl", hash = "sha256:8520b3b01468fee77de37ab5d50b1b524ea6b4a8731c35d1b7407ac0cd716002", size = 62755, upload-time = "2025-10-07T22:47:54.905Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload_time = "2022-10-25T02:36:22.414Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload_time = "2022-10-25T02:36:20.889Z" }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] @@ -627,92 +629,92 @@ dependencies = [ { name = "pydantic" }, { name = "srsly" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/51/d3/57c6631159a1b48d273b40865c315cf51f89df7a9d1101094ef12e3a37c2/confection-0.1.5.tar.gz", hash = "sha256:8e72dd3ca6bd4f48913cd220f10b8275978e740411654b6e8ca6d7008c590f0e", size = 38924, upload_time = "2024-05-31T16:17:01.559Z" } +sdist = { url = "https://files.pythonhosted.org/packages/51/d3/57c6631159a1b48d273b40865c315cf51f89df7a9d1101094ef12e3a37c2/confection-0.1.5.tar.gz", hash = "sha256:8e72dd3ca6bd4f48913cd220f10b8275978e740411654b6e8ca6d7008c590f0e", size = 38924, upload-time = "2024-05-31T16:17:01.559Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/00/3106b1854b45bd0474ced037dfe6b73b90fe68a68968cef47c23de3d43d2/confection-0.1.5-py3-none-any.whl", hash = "sha256:e29d3c3f8eac06b3f77eb9dfb4bf2fc6bcc9622a98ca00a698e3d019c6430b14", size = 35451, upload_time = "2024-05-31T16:16:59.075Z" }, + { url = "https://files.pythonhosted.org/packages/0c/00/3106b1854b45bd0474ced037dfe6b73b90fe68a68968cef47c23de3d43d2/confection-0.1.5-py3-none-any.whl", hash = "sha256:e29d3c3f8eac06b3f77eb9dfb4bf2fc6bcc9622a98ca00a698e3d019c6430b14", size = 35451, upload-time = "2024-05-31T16:16:59.075Z" }, ] [[package]] name = "coverage" version = "7.13.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz", hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91", size = 827239, upload_time = "2026-02-09T12:59:03.86Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/44/d4/7827d9ffa34d5d4d752eec907022aa417120936282fc488306f5da08c292/coverage-7.13.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415", size = 219152, upload_time = "2026-02-09T12:56:11.974Z" }, - { url = "https://files.pythonhosted.org/packages/35/b0/d69df26607c64043292644dbb9dc54b0856fabaa2cbb1eeee3331cc9e280/coverage-7.13.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b", size = 219667, upload_time = "2026-02-09T12:56:13.33Z" }, - { url = "https://files.pythonhosted.org/packages/82/a4/c1523f7c9e47b2271dbf8c2a097e7a1f89ef0d66f5840bb59b7e8814157b/coverage-7.13.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a", size = 246425, upload_time = "2026-02-09T12:56:14.552Z" }, - { url = "https://files.pythonhosted.org/packages/f8/02/aa7ec01d1a5023c4b680ab7257f9bfde9defe8fdddfe40be096ac19e8177/coverage-7.13.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8041b6c5bfdc03257666e9881d33b1abc88daccaf73f7b6340fb7946655cd10f", size = 248229, upload_time = "2026-02-09T12:56:16.31Z" }, - { url = "https://files.pythonhosted.org/packages/35/98/85aba0aed5126d896162087ef3f0e789a225697245256fc6181b95f47207/coverage-7.13.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a09cfa6a5862bc2fc6ca7c3def5b2926194a56b8ab78ffcf617d28911123012", size = 250106, upload_time = "2026-02-09T12:56:18.024Z" }, - { url = "https://files.pythonhosted.org/packages/96/72/1db59bd67494bc162e3e4cd5fbc7edba2c7026b22f7c8ef1496d58c2b94c/coverage-7.13.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:296f8b0af861d3970c2a4d8c91d48eb4dd4771bcef9baedec6a9b515d7de3def", size = 252021, upload_time = "2026-02-09T12:56:19.272Z" }, - { url = "https://files.pythonhosted.org/packages/9d/97/72899c59c7066961de6e3daa142d459d47d104956db43e057e034f015c8a/coverage-7.13.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e101609bcbbfb04605ea1027b10dc3735c094d12d40826a60f897b98b1c30256", size = 247114, upload_time = "2026-02-09T12:56:21.051Z" }, - { url = "https://files.pythonhosted.org/packages/39/1f/f1885573b5970235e908da4389176936c8933e86cb316b9620aab1585fa2/coverage-7.13.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aa3feb8db2e87ff5e6d00d7e1480ae241876286691265657b500886c98f38bda", size = 248143, upload_time = "2026-02-09T12:56:22.585Z" }, - { url = "https://files.pythonhosted.org/packages/a8/cf/e80390c5b7480b722fa3e994f8202807799b85bc562aa4f1dde209fbb7be/coverage-7.13.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4fc7fa81bbaf5a02801b65346c8b3e657f1d93763e58c0abdf7c992addd81a92", size = 246152, upload_time = "2026-02-09T12:56:23.748Z" }, - { url = "https://files.pythonhosted.org/packages/44/bf/f89a8350d85572f95412debb0fb9bb4795b1d5b5232bd652923c759e787b/coverage-7.13.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:33901f604424145c6e9c2398684b92e176c0b12df77d52db81c20abd48c3794c", size = 249959, upload_time = "2026-02-09T12:56:25.209Z" }, - { url = "https://files.pythonhosted.org/packages/f7/6e/612a02aece8178c818df273e8d1642190c4875402ca2ba74514394b27aba/coverage-7.13.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:bb28c0f2cf2782508a40cec377935829d5fcc3ad9a3681375af4e84eb34b6b58", size = 246416, upload_time = "2026-02-09T12:56:26.475Z" }, - { url = "https://files.pythonhosted.org/packages/cb/98/b5afc39af67c2fa6786b03c3a7091fc300947387ce8914b096db8a73d67a/coverage-7.13.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9d107aff57a83222ddbd8d9ee705ede2af2cc926608b57abed8ef96b50b7e8f9", size = 247025, upload_time = "2026-02-09T12:56:27.727Z" }, - { url = "https://files.pythonhosted.org/packages/51/30/2bba8ef0682d5bd210c38fe497e12a06c9f8d663f7025e9f5c2c31ce847d/coverage-7.13.4-cp310-cp310-win32.whl", hash = "sha256:a6f94a7d00eb18f1b6d403c91a88fd58cfc92d4b16080dfdb774afc8294469bf", size = 221758, upload_time = "2026-02-09T12:56:29.051Z" }, - { url = "https://files.pythonhosted.org/packages/78/13/331f94934cf6c092b8ea59ff868eb587bc8fe0893f02c55bc6c0183a192e/coverage-7.13.4-cp310-cp310-win_amd64.whl", hash = "sha256:2cb0f1e000ebc419632bbe04366a8990b6e32c4e0b51543a6484ffe15eaeda95", size = 222693, upload_time = "2026-02-09T12:56:30.366Z" }, - { url = "https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053", size = 219278, upload_time = "2026-02-09T12:56:31.673Z" }, - { url = "https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11", size = 219783, upload_time = "2026-02-09T12:56:33.104Z" }, - { url = "https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa", size = 250200, upload_time = "2026-02-09T12:56:34.474Z" }, - { url = "https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7", size = 252114, upload_time = "2026-02-09T12:56:35.749Z" }, - { url = "https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00", size = 254220, upload_time = "2026-02-09T12:56:37.796Z" }, - { url = "https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef", size = 256164, upload_time = "2026-02-09T12:56:39.016Z" }, - { url = "https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903", size = 250325, upload_time = "2026-02-09T12:56:40.668Z" }, - { url = "https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f", size = 251913, upload_time = "2026-02-09T12:56:41.97Z" }, - { url = "https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299", size = 249974, upload_time = "2026-02-09T12:56:43.323Z" }, - { url = "https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505", size = 253741, upload_time = "2026-02-09T12:56:45.155Z" }, - { url = "https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6", size = 249695, upload_time = "2026-02-09T12:56:46.636Z" }, - { url = "https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9", size = 250599, upload_time = "2026-02-09T12:56:48.13Z" }, - { url = "https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl", hash = "sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9", size = 221780, upload_time = "2026-02-09T12:56:50.479Z" }, - { url = "https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl", hash = "sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f", size = 222715, upload_time = "2026-02-09T12:56:51.815Z" }, - { url = "https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl", hash = "sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f", size = 221385, upload_time = "2026-02-09T12:56:53.194Z" }, - { url = "https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459", size = 219449, upload_time = "2026-02-09T12:56:54.889Z" }, - { url = "https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3", size = 219810, upload_time = "2026-02-09T12:56:56.33Z" }, - { url = "https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634", size = 251308, upload_time = "2026-02-09T12:56:57.858Z" }, - { url = "https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3", size = 254052, upload_time = "2026-02-09T12:56:59.754Z" }, - { url = "https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa", size = 255165, upload_time = "2026-02-09T12:57:01.287Z" }, - { url = "https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3", size = 257432, upload_time = "2026-02-09T12:57:02.637Z" }, - { url = "https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a", size = 251716, upload_time = "2026-02-09T12:57:04.056Z" }, - { url = "https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7", size = 253089, upload_time = "2026-02-09T12:57:05.503Z" }, - { url = "https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc", size = 251232, upload_time = "2026-02-09T12:57:06.879Z" }, - { url = "https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47", size = 255299, upload_time = "2026-02-09T12:57:08.245Z" }, - { url = "https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985", size = 250796, upload_time = "2026-02-09T12:57:10.142Z" }, - { url = "https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0", size = 252673, upload_time = "2026-02-09T12:57:12.197Z" }, - { url = "https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl", hash = "sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246", size = 221990, upload_time = "2026-02-09T12:57:14.085Z" }, - { url = "https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl", hash = "sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126", size = 222800, upload_time = "2026-02-09T12:57:15.944Z" }, - { url = "https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl", hash = "sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d", size = 221415, upload_time = "2026-02-09T12:57:17.497Z" }, - { url = "https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9", size = 219474, upload_time = "2026-02-09T12:57:19.332Z" }, - { url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac", size = 219844, upload_time = "2026-02-09T12:57:20.66Z" }, - { url = "https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea", size = 250832, upload_time = "2026-02-09T12:57:22.007Z" }, - { url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b", size = 253434, upload_time = "2026-02-09T12:57:23.339Z" }, - { url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525", size = 254676, upload_time = "2026-02-09T12:57:24.774Z" }, - { url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242", size = 256807, upload_time = "2026-02-09T12:57:26.125Z" }, - { url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148", size = 251058, upload_time = "2026-02-09T12:57:27.614Z" }, - { url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a", size = 252805, upload_time = "2026-02-09T12:57:29.066Z" }, - { url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23", size = 250766, upload_time = "2026-02-09T12:57:30.522Z" }, - { url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80", size = 254923, upload_time = "2026-02-09T12:57:31.946Z" }, - { url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea", size = 250591, upload_time = "2026-02-09T12:57:33.842Z" }, - { url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a", size = 252364, upload_time = "2026-02-09T12:57:35.743Z" }, - { url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl", hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d", size = 222010, upload_time = "2026-02-09T12:57:37.25Z" }, - { url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl", hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd", size = 222818, upload_time = "2026-02-09T12:57:38.734Z" }, - { url = "https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl", hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af", size = 221438, upload_time = "2026-02-09T12:57:40.223Z" }, - { url = "https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d", size = 220165, upload_time = "2026-02-09T12:57:41.639Z" }, - { url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12", size = 220516, upload_time = "2026-02-09T12:57:44.215Z" }, - { url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b", size = 261804, upload_time = "2026-02-09T12:57:45.989Z" }, - { url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9", size = 263885, upload_time = "2026-02-09T12:57:47.42Z" }, - { url = "https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092", size = 266308, upload_time = "2026-02-09T12:57:49.345Z" }, - { url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9", size = 267452, upload_time = "2026-02-09T12:57:50.811Z" }, - { url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26", size = 261057, upload_time = "2026-02-09T12:57:52.447Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2", size = 263875, upload_time = "2026-02-09T12:57:53.938Z" }, - { url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940", size = 261500, upload_time = "2026-02-09T12:57:56.012Z" }, - { url = "https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c", size = 265212, upload_time = "2026-02-09T12:57:57.5Z" }, - { url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0", size = 260398, upload_time = "2026-02-09T12:57:59.027Z" }, - { url = "https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b", size = 262584, upload_time = "2026-02-09T12:58:01.129Z" }, - { url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl", hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9", size = 222688, upload_time = "2026-02-09T12:58:02.736Z" }, - { url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl", hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd", size = 223746, upload_time = "2026-02-09T12:58:05.362Z" }, - { url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl", hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997", size = 222003, upload_time = "2026-02-09T12:58:06.952Z" }, - { url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl", hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0", size = 211242, upload_time = "2026-02-09T12:59:02.032Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/24/56/95b7e30fa389756cb56630faa728da46a27b8c6eb46f9d557c68fff12b65/coverage-7.13.4.tar.gz", hash = "sha256:e5c8f6ed1e61a8b2dcdf31eb0b9bbf0130750ca79c1c49eb898e2ad86f5ccc91", size = 827239, upload-time = "2026-02-09T12:59:03.86Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/d4/7827d9ffa34d5d4d752eec907022aa417120936282fc488306f5da08c292/coverage-7.13.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fc31c787a84f8cd6027eba44010517020e0d18487064cd3d8968941856d1415", size = 219152, upload-time = "2026-02-09T12:56:11.974Z" }, + { url = "https://files.pythonhosted.org/packages/35/b0/d69df26607c64043292644dbb9dc54b0856fabaa2cbb1eeee3331cc9e280/coverage-7.13.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a32ebc02a1805adf637fc8dec324b5cdacd2e493515424f70ee33799573d661b", size = 219667, upload-time = "2026-02-09T12:56:13.33Z" }, + { url = "https://files.pythonhosted.org/packages/82/a4/c1523f7c9e47b2271dbf8c2a097e7a1f89ef0d66f5840bb59b7e8814157b/coverage-7.13.4-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e24f9156097ff9dc286f2f913df3a7f63c0e333dcafa3c196f2c18b4175ca09a", size = 246425, upload-time = "2026-02-09T12:56:14.552Z" }, + { url = "https://files.pythonhosted.org/packages/f8/02/aa7ec01d1a5023c4b680ab7257f9bfde9defe8fdddfe40be096ac19e8177/coverage-7.13.4-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8041b6c5bfdc03257666e9881d33b1abc88daccaf73f7b6340fb7946655cd10f", size = 248229, upload-time = "2026-02-09T12:56:16.31Z" }, + { url = "https://files.pythonhosted.org/packages/35/98/85aba0aed5126d896162087ef3f0e789a225697245256fc6181b95f47207/coverage-7.13.4-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2a09cfa6a5862bc2fc6ca7c3def5b2926194a56b8ab78ffcf617d28911123012", size = 250106, upload-time = "2026-02-09T12:56:18.024Z" }, + { url = "https://files.pythonhosted.org/packages/96/72/1db59bd67494bc162e3e4cd5fbc7edba2c7026b22f7c8ef1496d58c2b94c/coverage-7.13.4-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:296f8b0af861d3970c2a4d8c91d48eb4dd4771bcef9baedec6a9b515d7de3def", size = 252021, upload-time = "2026-02-09T12:56:19.272Z" }, + { url = "https://files.pythonhosted.org/packages/9d/97/72899c59c7066961de6e3daa142d459d47d104956db43e057e034f015c8a/coverage-7.13.4-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e101609bcbbfb04605ea1027b10dc3735c094d12d40826a60f897b98b1c30256", size = 247114, upload-time = "2026-02-09T12:56:21.051Z" }, + { url = "https://files.pythonhosted.org/packages/39/1f/f1885573b5970235e908da4389176936c8933e86cb316b9620aab1585fa2/coverage-7.13.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aa3feb8db2e87ff5e6d00d7e1480ae241876286691265657b500886c98f38bda", size = 248143, upload-time = "2026-02-09T12:56:22.585Z" }, + { url = "https://files.pythonhosted.org/packages/a8/cf/e80390c5b7480b722fa3e994f8202807799b85bc562aa4f1dde209fbb7be/coverage-7.13.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:4fc7fa81bbaf5a02801b65346c8b3e657f1d93763e58c0abdf7c992addd81a92", size = 246152, upload-time = "2026-02-09T12:56:23.748Z" }, + { url = "https://files.pythonhosted.org/packages/44/bf/f89a8350d85572f95412debb0fb9bb4795b1d5b5232bd652923c759e787b/coverage-7.13.4-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:33901f604424145c6e9c2398684b92e176c0b12df77d52db81c20abd48c3794c", size = 249959, upload-time = "2026-02-09T12:56:25.209Z" }, + { url = "https://files.pythonhosted.org/packages/f7/6e/612a02aece8178c818df273e8d1642190c4875402ca2ba74514394b27aba/coverage-7.13.4-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:bb28c0f2cf2782508a40cec377935829d5fcc3ad9a3681375af4e84eb34b6b58", size = 246416, upload-time = "2026-02-09T12:56:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/cb/98/b5afc39af67c2fa6786b03c3a7091fc300947387ce8914b096db8a73d67a/coverage-7.13.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9d107aff57a83222ddbd8d9ee705ede2af2cc926608b57abed8ef96b50b7e8f9", size = 247025, upload-time = "2026-02-09T12:56:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/51/30/2bba8ef0682d5bd210c38fe497e12a06c9f8d663f7025e9f5c2c31ce847d/coverage-7.13.4-cp310-cp310-win32.whl", hash = "sha256:a6f94a7d00eb18f1b6d403c91a88fd58cfc92d4b16080dfdb774afc8294469bf", size = 221758, upload-time = "2026-02-09T12:56:29.051Z" }, + { url = "https://files.pythonhosted.org/packages/78/13/331f94934cf6c092b8ea59ff868eb587bc8fe0893f02c55bc6c0183a192e/coverage-7.13.4-cp310-cp310-win_amd64.whl", hash = "sha256:2cb0f1e000ebc419632bbe04366a8990b6e32c4e0b51543a6484ffe15eaeda95", size = 222693, upload-time = "2026-02-09T12:56:30.366Z" }, + { url = "https://files.pythonhosted.org/packages/b4/ad/b59e5b451cf7172b8d1043dc0fa718f23aab379bc1521ee13d4bd9bfa960/coverage-7.13.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d490ba50c3f35dd7c17953c68f3270e7ccd1c6642e2d2afe2d8e720b98f5a053", size = 219278, upload-time = "2026-02-09T12:56:31.673Z" }, + { url = "https://files.pythonhosted.org/packages/f1/17/0cb7ca3de72e5f4ef2ec2fa0089beafbcaaaead1844e8b8a63d35173d77d/coverage-7.13.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:19bc3c88078789f8ef36acb014d7241961dbf883fd2533d18cb1e7a5b4e28b11", size = 219783, upload-time = "2026-02-09T12:56:33.104Z" }, + { url = "https://files.pythonhosted.org/packages/ab/63/325d8e5b11e0eaf6d0f6a44fad444ae58820929a9b0de943fa377fe73e85/coverage-7.13.4-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3998e5a32e62fdf410c0dbd3115df86297995d6e3429af80b8798aad894ca7aa", size = 250200, upload-time = "2026-02-09T12:56:34.474Z" }, + { url = "https://files.pythonhosted.org/packages/76/53/c16972708cbb79f2942922571a687c52bd109a7bd51175aeb7558dff2236/coverage-7.13.4-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:8e264226ec98e01a8e1054314af91ee6cde0eacac4f465cc93b03dbe0bce2fd7", size = 252114, upload-time = "2026-02-09T12:56:35.749Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c2/7ab36d8b8cc412bec9ea2d07c83c48930eb4ba649634ba00cb7e4e0f9017/coverage-7.13.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3aa4e7b9e416774b21797365b358a6e827ffadaaca81b69ee02946852449f00", size = 254220, upload-time = "2026-02-09T12:56:37.796Z" }, + { url = "https://files.pythonhosted.org/packages/d6/4d/cf52c9a3322c89a0e6febdfbc83bb45c0ed3c64ad14081b9503adee702e7/coverage-7.13.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:71ca20079dd8f27fcf808817e281e90220475cd75115162218d0e27549f95fef", size = 256164, upload-time = "2026-02-09T12:56:39.016Z" }, + { url = "https://files.pythonhosted.org/packages/78/e9/eb1dd17bd6de8289df3580e967e78294f352a5df8a57ff4671ee5fc3dcd0/coverage-7.13.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e2f25215f1a359ab17320b47bcdaca3e6e6356652e8256f2441e4ef972052903", size = 250325, upload-time = "2026-02-09T12:56:40.668Z" }, + { url = "https://files.pythonhosted.org/packages/71/07/8c1542aa873728f72267c07278c5cc0ec91356daf974df21335ccdb46368/coverage-7.13.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d65b2d373032411e86960604dc4edac91fdfb5dca539461cf2cbe78327d1e64f", size = 251913, upload-time = "2026-02-09T12:56:41.97Z" }, + { url = "https://files.pythonhosted.org/packages/74/d7/c62e2c5e4483a748e27868e4c32ad3daa9bdddbba58e1bc7a15e252baa74/coverage-7.13.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94eb63f9b363180aff17de3e7c8760c3ba94664ea2695c52f10111244d16a299", size = 249974, upload-time = "2026-02-09T12:56:43.323Z" }, + { url = "https://files.pythonhosted.org/packages/98/9f/4c5c015a6e98ced54efd0f5cf8d31b88e5504ecb6857585fc0161bb1e600/coverage-7.13.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e856bf6616714c3a9fbc270ab54103f4e685ba236fa98c054e8f87f266c93505", size = 253741, upload-time = "2026-02-09T12:56:45.155Z" }, + { url = "https://files.pythonhosted.org/packages/bd/59/0f4eef89b9f0fcd9633b5d350016f54126ab49426a70ff4c4e87446cabdc/coverage-7.13.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:65dfcbe305c3dfe658492df2d85259e0d79ead4177f9ae724b6fb245198f55d6", size = 249695, upload-time = "2026-02-09T12:56:46.636Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2c/b7476f938deb07166f3eb281a385c262675d688ff4659ad56c6c6b8e2e70/coverage-7.13.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b507778ae8a4c915436ed5c2e05b4a6cecfa70f734e19c22a005152a11c7b6a9", size = 250599, upload-time = "2026-02-09T12:56:48.13Z" }, + { url = "https://files.pythonhosted.org/packages/b8/34/c3420709d9846ee3785b9f2831b4d94f276f38884032dca1457fa83f7476/coverage-7.13.4-cp311-cp311-win32.whl", hash = "sha256:784fc3cf8be001197b652d51d3fd259b1e2262888693a4636e18879f613a62a9", size = 221780, upload-time = "2026-02-09T12:56:50.479Z" }, + { url = "https://files.pythonhosted.org/packages/61/08/3d9c8613079d2b11c185b865de9a4c1a68850cfda2b357fae365cf609f29/coverage-7.13.4-cp311-cp311-win_amd64.whl", hash = "sha256:2421d591f8ca05b308cf0092807308b2facbefe54af7c02ac22548b88b95c98f", size = 222715, upload-time = "2026-02-09T12:56:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/18/1a/54c3c80b2f056164cc0a6cdcb040733760c7c4be9d780fe655f356f433e4/coverage-7.13.4-cp311-cp311-win_arm64.whl", hash = "sha256:79e73a76b854d9c6088fe5d8b2ebe745f8681c55f7397c3c0a016192d681045f", size = 221385, upload-time = "2026-02-09T12:56:53.194Z" }, + { url = "https://files.pythonhosted.org/packages/d1/81/4ce2fdd909c5a0ed1f6dedb88aa57ab79b6d1fbd9b588c1ac7ef45659566/coverage-7.13.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:02231499b08dabbe2b96612993e5fc34217cdae907a51b906ac7fca8027a4459", size = 219449, upload-time = "2026-02-09T12:56:54.889Z" }, + { url = "https://files.pythonhosted.org/packages/5d/96/5238b1efc5922ddbdc9b0db9243152c09777804fb7c02ad1741eb18a11c0/coverage-7.13.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40aa8808140e55dc022b15d8aa7f651b6b3d68b365ea0398f1441e0b04d859c3", size = 219810, upload-time = "2026-02-09T12:56:56.33Z" }, + { url = "https://files.pythonhosted.org/packages/78/72/2f372b726d433c9c35e56377cf1d513b4c16fe51841060d826b95caacec1/coverage-7.13.4-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5b856a8ccf749480024ff3bd7310adaef57bf31fd17e1bfc404b7940b6986634", size = 251308, upload-time = "2026-02-09T12:56:57.858Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a0/2ea570925524ef4e00bb6c82649f5682a77fac5ab910a65c9284de422600/coverage-7.13.4-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c048ea43875fbf8b45d476ad79f179809c590ec7b79e2035c662e7afa3192e3", size = 254052, upload-time = "2026-02-09T12:56:59.754Z" }, + { url = "https://files.pythonhosted.org/packages/e8/ac/45dc2e19a1939098d783c846e130b8f862fbb50d09e0af663988f2f21973/coverage-7.13.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b7b38448866e83176e28086674fe7368ab8590e4610fb662b44e345b86d63ffa", size = 255165, upload-time = "2026-02-09T12:57:01.287Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4d/26d236ff35abc3b5e63540d3386e4c3b192168c1d96da5cb2f43c640970f/coverage-7.13.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:de6defc1c9badbf8b9e67ae90fd00519186d6ab64e5cc5f3d21359c2a9b2c1d3", size = 257432, upload-time = "2026-02-09T12:57:02.637Z" }, + { url = "https://files.pythonhosted.org/packages/ec/55/14a966c757d1348b2e19caf699415a2a4c4f7feaa4bbc6326a51f5c7dd1b/coverage-7.13.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:7eda778067ad7ffccd23ecffce537dface96212576a07924cbf0d8799d2ded5a", size = 251716, upload-time = "2026-02-09T12:57:04.056Z" }, + { url = "https://files.pythonhosted.org/packages/77/33/50116647905837c66d28b2af1321b845d5f5d19be9655cb84d4a0ea806b4/coverage-7.13.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e87f6c587c3f34356c3759f0420693e35e7eb0e2e41e4c011cb6ec6ecbbf1db7", size = 253089, upload-time = "2026-02-09T12:57:05.503Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b4/8efb11a46e3665d92635a56e4f2d4529de6d33f2cb38afd47d779d15fc99/coverage-7.13.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:8248977c2e33aecb2ced42fef99f2d319e9904a36e55a8a68b69207fb7e43edc", size = 251232, upload-time = "2026-02-09T12:57:06.879Z" }, + { url = "https://files.pythonhosted.org/packages/51/24/8cd73dd399b812cc76bb0ac260e671c4163093441847ffe058ac9fda1e32/coverage-7.13.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:25381386e80ae727608e662474db537d4df1ecd42379b5ba33c84633a2b36d47", size = 255299, upload-time = "2026-02-09T12:57:08.245Z" }, + { url = "https://files.pythonhosted.org/packages/03/94/0a4b12f1d0e029ce1ccc1c800944a9984cbe7d678e470bb6d3c6bc38a0da/coverage-7.13.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:ee756f00726693e5ba94d6df2bdfd64d4852d23b09bb0bc700e3b30e6f333985", size = 250796, upload-time = "2026-02-09T12:57:10.142Z" }, + { url = "https://files.pythonhosted.org/packages/73/44/6002fbf88f6698ca034360ce474c406be6d5a985b3fdb3401128031eef6b/coverage-7.13.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fdfc1e28e7c7cdce44985b3043bc13bbd9c747520f94a4d7164af8260b3d91f0", size = 252673, upload-time = "2026-02-09T12:57:12.197Z" }, + { url = "https://files.pythonhosted.org/packages/de/c6/a0279f7c00e786be75a749a5674e6fa267bcbd8209cd10c9a450c655dfa7/coverage-7.13.4-cp312-cp312-win32.whl", hash = "sha256:01d4cbc3c283a17fc1e42d614a119f7f438eabb593391283adca8dc86eff1246", size = 221990, upload-time = "2026-02-09T12:57:14.085Z" }, + { url = "https://files.pythonhosted.org/packages/77/4e/c0a25a425fcf5557d9abd18419c95b63922e897bc86c1f327f155ef234a9/coverage-7.13.4-cp312-cp312-win_amd64.whl", hash = "sha256:9401ebc7ef522f01d01d45532c68c5ac40fb27113019b6b7d8b208f6e9baa126", size = 222800, upload-time = "2026-02-09T12:57:15.944Z" }, + { url = "https://files.pythonhosted.org/packages/47/ac/92da44ad9a6f4e3a7debd178949d6f3769bedca33830ce9b1dcdab589a37/coverage-7.13.4-cp312-cp312-win_arm64.whl", hash = "sha256:b1ec7b6b6e93255f952e27ab58fbc68dcc468844b16ecbee881aeb29b6ab4d8d", size = 221415, upload-time = "2026-02-09T12:57:17.497Z" }, + { url = "https://files.pythonhosted.org/packages/db/23/aad45061a31677d68e47499197a131eea55da4875d16c1f42021ab963503/coverage-7.13.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b66a2da594b6068b48b2692f043f35d4d3693fb639d5ea8b39533c2ad9ac3ab9", size = 219474, upload-time = "2026-02-09T12:57:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/a5/70/9b8b67a0945f3dfec1fd896c5cefb7c19d5a3a6d74630b99a895170999ae/coverage-7.13.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3599eb3992d814d23b35c536c28df1a882caa950f8f507cef23d1cbf334995ac", size = 219844, upload-time = "2026-02-09T12:57:20.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/fd/7e859f8fab324cef6c4ad7cff156ca7c489fef9179d5749b0c8d321281c2/coverage-7.13.4-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:93550784d9281e374fb5a12bf1324cc8a963fd63b2d2f223503ef0fd4aa339ea", size = 250832, upload-time = "2026-02-09T12:57:22.007Z" }, + { url = "https://files.pythonhosted.org/packages/e4/dc/b2442d10020c2f52617828862d8b6ee337859cd8f3a1f13d607dddda9cf7/coverage-7.13.4-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b720ce6a88a2755f7c697c23268ddc47a571b88052e6b155224347389fdf6a3b", size = 253434, upload-time = "2026-02-09T12:57:23.339Z" }, + { url = "https://files.pythonhosted.org/packages/5a/88/6728a7ad17428b18d836540630487231f5470fb82454871149502f5e5aa2/coverage-7.13.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7b322db1284a2ed3aa28ffd8ebe3db91c929b7a333c0820abec3d838ef5b3525", size = 254676, upload-time = "2026-02-09T12:57:24.774Z" }, + { url = "https://files.pythonhosted.org/packages/7c/bc/21244b1b8cedf0dff0a2b53b208015fe798d5f2a8d5348dbfece04224fff/coverage-7.13.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4594c67d8a7c89cf922d9df0438c7c7bb022ad506eddb0fdb2863359ff78242", size = 256807, upload-time = "2026-02-09T12:57:26.125Z" }, + { url = "https://files.pythonhosted.org/packages/97/a0/ddba7ed3251cff51006737a727d84e05b61517d1784a9988a846ba508877/coverage-7.13.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:53d133df809c743eb8bce33b24bcababb371f4441340578cd406e084d94a6148", size = 251058, upload-time = "2026-02-09T12:57:27.614Z" }, + { url = "https://files.pythonhosted.org/packages/9b/55/e289addf7ff54d3a540526f33751951bf0878f3809b47f6dfb3def69c6f7/coverage-7.13.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:76451d1978b95ba6507a039090ba076105c87cc76fc3efd5d35d72093964d49a", size = 252805, upload-time = "2026-02-09T12:57:29.066Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/cc276b1fa4a59be56d96f1dabddbdc30f4ba22e3b1cd42504c37b3313255/coverage-7.13.4-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7f57b33491e281e962021de110b451ab8a24182589be17e12a22c79047935e23", size = 250766, upload-time = "2026-02-09T12:57:30.522Z" }, + { url = "https://files.pythonhosted.org/packages/94/44/1093b8f93018f8b41a8cf29636c9292502f05e4a113d4d107d14a3acd044/coverage-7.13.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:1731dc33dc276dafc410a885cbf5992f1ff171393e48a21453b78727d090de80", size = 254923, upload-time = "2026-02-09T12:57:31.946Z" }, + { url = "https://files.pythonhosted.org/packages/8b/55/ea2796da2d42257f37dbea1aab239ba9263b31bd91d5527cdd6db5efe174/coverage-7.13.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:bd60d4fe2f6fa7dff9223ca1bbc9f05d2b6697bc5961072e5d3b952d46e1b1ea", size = 250591, upload-time = "2026-02-09T12:57:33.842Z" }, + { url = "https://files.pythonhosted.org/packages/d4/fa/7c4bb72aacf8af5020675aa633e59c1fbe296d22aed191b6a5b711eb2bc7/coverage-7.13.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9181a3ccead280b828fae232df12b16652702b49d41e99d657f46cc7b1f6ec7a", size = 252364, upload-time = "2026-02-09T12:57:35.743Z" }, + { url = "https://files.pythonhosted.org/packages/5c/38/a8d2ec0146479c20bbaa7181b5b455a0c41101eed57f10dd19a78ab44c80/coverage-7.13.4-cp313-cp313-win32.whl", hash = "sha256:f53d492307962561ac7de4cd1de3e363589b000ab69617c6156a16ba7237998d", size = 222010, upload-time = "2026-02-09T12:57:37.25Z" }, + { url = "https://files.pythonhosted.org/packages/e2/0c/dbfafbe90a185943dcfbc766fe0e1909f658811492d79b741523a414a6cc/coverage-7.13.4-cp313-cp313-win_amd64.whl", hash = "sha256:e6f70dec1cc557e52df5306d051ef56003f74d56e9c4dd7ddb07e07ef32a84dd", size = 222818, upload-time = "2026-02-09T12:57:38.734Z" }, + { url = "https://files.pythonhosted.org/packages/04/d1/934918a138c932c90d78301f45f677fb05c39a3112b96fd2c8e60503cdc7/coverage-7.13.4-cp313-cp313-win_arm64.whl", hash = "sha256:fb07dc5da7e849e2ad31a5d74e9bece81f30ecf5a42909d0a695f8bd1874d6af", size = 221438, upload-time = "2026-02-09T12:57:40.223Z" }, + { url = "https://files.pythonhosted.org/packages/52/57/ee93ced533bcb3e6df961c0c6e42da2fc6addae53fb95b94a89b1e33ebd7/coverage-7.13.4-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40d74da8e6c4b9ac18b15331c4b5ebc35a17069410cad462ad4f40dcd2d50c0d", size = 220165, upload-time = "2026-02-09T12:57:41.639Z" }, + { url = "https://files.pythonhosted.org/packages/c5/e0/969fc285a6fbdda49d91af278488d904dcd7651b2693872f0ff94e40e84a/coverage-7.13.4-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4223b4230a376138939a9173f1bdd6521994f2aff8047fae100d6d94d50c5a12", size = 220516, upload-time = "2026-02-09T12:57:44.215Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b8/9531944e16267e2735a30a9641ff49671f07e8138ecf1ca13db9fd2560c7/coverage-7.13.4-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1d4be36a5114c499f9f1f9195e95ebf979460dbe2d88e6816ea202010ba1c34b", size = 261804, upload-time = "2026-02-09T12:57:45.989Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f3/e63df6d500314a2a60390d1989240d5f27318a7a68fa30ad3806e2a9323e/coverage-7.13.4-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:200dea7d1e8095cc6e98cdabe3fd1d21ab17d3cee6dab00cadbb2fe35d9c15b9", size = 263885, upload-time = "2026-02-09T12:57:47.42Z" }, + { url = "https://files.pythonhosted.org/packages/f3/67/7654810de580e14b37670b60a09c599fa348e48312db5b216d730857ffe6/coverage-7.13.4-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8eb931ee8e6d8243e253e5ed7336deea6904369d2fd8ae6e43f68abbf167092", size = 266308, upload-time = "2026-02-09T12:57:49.345Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/39d41eca0eab3cc82115953ad41c4e77935286c930e8fad15eaed1389d83/coverage-7.13.4-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:75eab1ebe4f2f64d9509b984f9314d4aa788540368218b858dad56dc8f3e5eb9", size = 267452, upload-time = "2026-02-09T12:57:50.811Z" }, + { url = "https://files.pythonhosted.org/packages/50/6d/39c0fbb8fc5cd4d2090811e553c2108cf5112e882f82505ee7495349a6bf/coverage-7.13.4-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c35eb28c1d085eb7d8c9b3296567a1bebe03ce72962e932431b9a61f28facf26", size = 261057, upload-time = "2026-02-09T12:57:52.447Z" }, + { url = "https://files.pythonhosted.org/packages/a4/a2/60010c669df5fa603bb5a97fb75407e191a846510da70ac657eb696b7fce/coverage-7.13.4-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:eb88b316ec33760714a4720feb2816a3a59180fd58c1985012054fa7aebee4c2", size = 263875, upload-time = "2026-02-09T12:57:53.938Z" }, + { url = "https://files.pythonhosted.org/packages/3e/d9/63b22a6bdbd17f1f96e9ed58604c2a6b0e72a9133e37d663bef185877cf6/coverage-7.13.4-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d41eead3cc673cbd38a4417deb7fd0b4ca26954ff7dc6078e33f6ff97bed940", size = 261500, upload-time = "2026-02-09T12:57:56.012Z" }, + { url = "https://files.pythonhosted.org/packages/70/bf/69f86ba1ad85bc3ad240e4c0e57a2e620fbc0e1645a47b5c62f0e941ad7f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:fb26a934946a6afe0e326aebe0730cdff393a8bc0bbb65a2f41e30feddca399c", size = 265212, upload-time = "2026-02-09T12:57:57.5Z" }, + { url = "https://files.pythonhosted.org/packages/ae/f2/5f65a278a8c2148731831574c73e42f57204243d33bedaaf18fa79c5958f/coverage-7.13.4-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:dae88bc0fc77edaa65c14be099bd57ee140cf507e6bfdeea7938457ab387efb0", size = 260398, upload-time = "2026-02-09T12:57:59.027Z" }, + { url = "https://files.pythonhosted.org/packages/ef/80/6e8280a350ee9fea92f14b8357448a242dcaa243cb2c72ab0ca591f66c8c/coverage-7.13.4-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:845f352911777a8e722bfce168958214951e07e47e5d5d9744109fa5fe77f79b", size = 262584, upload-time = "2026-02-09T12:58:01.129Z" }, + { url = "https://files.pythonhosted.org/packages/22/63/01ff182fc95f260b539590fb12c11ad3e21332c15f9799cb5e2386f71d9f/coverage-7.13.4-cp313-cp313t-win32.whl", hash = "sha256:2fa8d5f8de70688a28240de9e139fa16b153cc3cbb01c5f16d88d6505ebdadf9", size = 222688, upload-time = "2026-02-09T12:58:02.736Z" }, + { url = "https://files.pythonhosted.org/packages/a9/43/89de4ef5d3cd53b886afa114065f7e9d3707bdb3e5efae13535b46ae483d/coverage-7.13.4-cp313-cp313t-win_amd64.whl", hash = "sha256:9351229c8c8407645840edcc277f4a2d44814d1bc34a2128c11c2a031d45a5dd", size = 223746, upload-time = "2026-02-09T12:58:05.362Z" }, + { url = "https://files.pythonhosted.org/packages/35/39/7cf0aa9a10d470a5309b38b289b9bb07ddeac5d61af9b664fe9775a4cb3e/coverage-7.13.4-cp313-cp313t-win_arm64.whl", hash = "sha256:30b8d0512f2dc8c8747557e8fb459d6176a2c9e5731e2b74d311c03b78451997", size = 222003, upload-time = "2026-02-09T12:58:06.952Z" }, + { url = "https://files.pythonhosted.org/packages/0d/4a/331fe2caf6799d591109bb9c08083080f6de90a823695d412a935622abb2/coverage-7.13.4-py3-none-any.whl", hash = "sha256:1af1641e57cf7ba1bd67d677c9abdbcd6cc2ab7da3bca7fa1e2b7e50e65f2ad0", size = 211242, upload-time = "2026-02-09T12:59:02.032Z" }, ] [[package]] @@ -723,51 +725,51 @@ dependencies = [ { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload_time = "2026-02-10T19:18:38.255Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload_time = "2026-02-10T19:17:08.274Z" }, - { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload_time = "2026-02-10T19:17:10.53Z" }, - { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload_time = "2026-02-10T19:17:12.388Z" }, - { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload_time = "2026-02-10T19:17:13.853Z" }, - { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload_time = "2026-02-10T19:17:15.618Z" }, - { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload_time = "2026-02-10T19:17:17.221Z" }, - { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload_time = "2026-02-10T19:17:18.792Z" }, - { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload_time = "2026-02-10T19:17:20.256Z" }, - { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload_time = "2026-02-10T19:17:21.825Z" }, - { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload_time = "2026-02-10T19:17:25.133Z" }, - { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload_time = "2026-02-10T19:17:26.66Z" }, - { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload_time = "2026-02-10T19:17:28.569Z" }, - { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload_time = "2026-02-10T19:17:30.518Z" }, - { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload_time = "2026-02-10T19:17:32.083Z" }, - { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload_time = "2026-02-10T19:17:56.267Z" }, - { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload_time = "2026-02-10T19:17:58.419Z" }, - { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload_time = "2026-02-10T19:18:00.619Z" }, - { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload_time = "2026-02-10T19:18:02.379Z" }, - { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload_time = "2026-02-10T19:18:03.964Z" }, - { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload_time = "2026-02-10T19:18:05.588Z" }, - { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload_time = "2026-02-10T19:18:07.167Z" }, - { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload_time = "2026-02-10T19:18:09.813Z" }, - { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload_time = "2026-02-10T19:18:11.263Z" }, - { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload_time = "2026-02-10T19:18:12.914Z" }, - { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload_time = "2026-02-10T19:18:14.375Z" }, - { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload_time = "2026-02-10T19:18:15.886Z" }, - { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload_time = "2026-02-10T19:18:17.361Z" }, - { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload_time = "2026-02-10T19:18:18.899Z" }, - { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload_time = "2026-02-10T19:18:20.687Z" }, - { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload_time = "2026-02-10T19:18:22.349Z" }, - { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload_time = "2026-02-10T19:18:24.529Z" }, - { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload_time = "2026-02-10T19:18:25.957Z" }, - { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload_time = "2026-02-10T19:18:27.496Z" }, - { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload_time = "2026-02-10T19:18:29.233Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" }, + { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" }, + { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" }, + { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" }, + { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" }, + { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" }, + { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" }, + { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" }, + { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" }, + { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload-time = "2026-02-10T19:17:30.518Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload-time = "2026-02-10T19:17:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" }, + { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" }, + { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" }, + { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" }, + { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" }, + { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" }, + { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" }, + { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" }, + { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" }, + { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" }, + { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" }, + { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload-time = "2026-02-10T19:18:17.361Z" }, + { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload-time = "2026-02-10T19:18:18.899Z" }, + { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" }, + { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" }, + { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" }, + { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" }, + { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" }, + { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload-time = "2026-02-10T19:18:29.233Z" }, ] [[package]] name = "cssselect" version = "1.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ec/2e/cdfd8b01c37cbf4f9482eefd455853a3cf9c995029a46acd31dfaa9c1dd6/cssselect-1.4.0.tar.gz", hash = "sha256:fdaf0a1425e17dfe8c5cf66191d211b357cf7872ae8afc4c6762ddd8ac47fc92", size = 40589, upload_time = "2026-01-29T07:00:26.701Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/2e/cdfd8b01c37cbf4f9482eefd455853a3cf9c995029a46acd31dfaa9c1dd6/cssselect-1.4.0.tar.gz", hash = "sha256:fdaf0a1425e17dfe8c5cf66191d211b357cf7872ae8afc4c6762ddd8ac47fc92", size = 40589, upload-time = "2026-01-29T07:00:26.701Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/0c/7bb51e3acfafd16c48875bf3db03607674df16f5b6ef8d056586af7e2b8b/cssselect-1.4.0-py3-none-any.whl", hash = "sha256:c0ec5c0191c8ee39fcc8afc1540331d8b55b0183478c50e9c8a79d44dbceb1d8", size = 18540, upload_time = "2026-01-29T07:00:24.994Z" }, + { url = "https://files.pythonhosted.org/packages/20/0c/7bb51e3acfafd16c48875bf3db03607674df16f5b6ef8d056586af7e2b8b/cssselect-1.4.0-py3-none-any.whl", hash = "sha256:c0ec5c0191c8ee39fcc8afc1540331d8b55b0183478c50e9c8a79d44dbceb1d8", size = 18540, upload-time = "2026-01-29T07:00:24.994Z" }, ] [[package]] @@ -777,102 +779,102 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "more-itertools" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/33/9f/329d26121fe165be44b1dfff21aa0dc348f04633931f1d20ed6cf448a236/cssutils-2.11.1.tar.gz", hash = "sha256:0563a76513b6af6eebbe788c3bf3d01c920e46b3f90c8416738c5cfc773ff8e2", size = 711657, upload_time = "2024-06-04T15:51:39.373Z" } +sdist = { url = "https://files.pythonhosted.org/packages/33/9f/329d26121fe165be44b1dfff21aa0dc348f04633931f1d20ed6cf448a236/cssutils-2.11.1.tar.gz", hash = "sha256:0563a76513b6af6eebbe788c3bf3d01c920e46b3f90c8416738c5cfc773ff8e2", size = 711657, upload-time = "2024-06-04T15:51:39.373Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/ec/bb273b7208c606890dc36540fe667d06ce840a6f62f9fae7e658fcdc90fb/cssutils-2.11.1-py3-none-any.whl", hash = "sha256:a67bfdfdff4f3867fab43698ec4897c1a828eca5973f4073321b3bccaf1199b1", size = 385747, upload_time = "2024-06-04T15:51:37.499Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ec/bb273b7208c606890dc36540fe667d06ce840a6f62f9fae7e658fcdc90fb/cssutils-2.11.1-py3-none-any.whl", hash = "sha256:a67bfdfdff4f3867fab43698ec4897c1a828eca5973f4073321b3bccaf1199b1", size = 385747, upload-time = "2024-06-04T15:51:37.499Z" }, ] [[package]] name = "cymem" version = "2.0.13" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/2f0fbb32535c3731b7c2974c569fb9325e0a38ed5565a08e1139a3b71e82/cymem-2.0.13.tar.gz", hash = "sha256:1c91a92ae8c7104275ac26bd4d29b08ccd3e7faff5893d3858cb6fadf1bc1588", size = 12320, upload_time = "2025-11-14T14:58:36.902Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5d/14/462018dd384ee1848ac9c1951534a813a325abbfc161a74e2cbcb38d2469/cymem-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8efc4f308169237aade0e82877a65a563833dec32eb7ab2326120253e0e9e918", size = 43747, upload_time = "2025-11-14T14:57:11.287Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9b/c123ba65dddcd8a2bc0b3c9046766c15abe0e257c315b3040eed22cce1e2/cymem-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e03bb575a96c59bc210d7d59862747f0012696b0dac3427ce8af33c7afb3d4a2", size = 43328, upload_time = "2025-11-14T14:57:12.578Z" }, - { url = "https://files.pythonhosted.org/packages/bd/be/7b7a4cf9cd2d37e674612a86fc90b3d59bff12177f83430e62b25afaf7fc/cymem-2.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1775d3fd34cf099929b79c3e48469283642463f977af6801231f3c0e5d9c9369", size = 231539, upload_time = "2025-11-14T14:57:14.441Z" }, - { url = "https://files.pythonhosted.org/packages/79/6d/d165c38cd4caaaf60942e2cec9998b667008f2384047ccfe0b4b5f7a1ffe/cymem-2.0.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84e2976e38cd663f758e40b5497fa5cd183d7c5fb0d04ce81a4b42a1ba124ff0", size = 229674, upload_time = "2025-11-14T14:57:15.685Z" }, - { url = "https://files.pythonhosted.org/packages/95/c1/af83c03a93f890ca81149561b18a4a67a9aa36a1109f15e291dd2703ab12/cymem-2.0.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed9de1b9b042f76fe5c312e4359eab58bf52ac7dfdf6887368a760410d809440", size = 229805, upload_time = "2025-11-14T14:57:17.289Z" }, - { url = "https://files.pythonhosted.org/packages/03/2d/12900758b80345d9aed5892a9d61e8a5f6abbbe5837e4def373a53cd0da2/cymem-2.0.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1366c7437a209230f4b797fae10227a8206d4021d37c9f9c0d31fd97ea4feb35", size = 234018, upload_time = "2025-11-14T14:57:18.512Z" }, - { url = "https://files.pythonhosted.org/packages/a6/8b/5fcf5430fc81098aef58cc20340e51f37b49b9d8c15766e0d5d63e7288a3/cymem-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:7700b116524b087e0169f10f267539223b48240ef2734c3a727a9e6b4db9a671", size = 40102, upload_time = "2025-11-14T14:57:19.972Z" }, - { url = "https://files.pythonhosted.org/packages/0d/d3/cb6c83758fe399443b858faafb7096b72535621a7af7dd9a54ff0989fa14/cymem-2.0.13-cp310-cp310-win_arm64.whl", hash = "sha256:c8dbfddfe5c604974e17c6f373cedd4d25cd67f84812ede7dea12128fa0c2015", size = 36282, upload_time = "2025-11-14T14:57:21.398Z" }, - { url = "https://files.pythonhosted.org/packages/10/64/1db41f7576a6b69f70367e3c15e968fd775ba7419e12059c9966ceb826f8/cymem-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:673183466b0ff2e060d97ec5116711d44200b8f7be524323e080d215ee2d44a5", size = 43587, upload_time = "2025-11-14T14:57:22.39Z" }, - { url = "https://files.pythonhosted.org/packages/81/13/57f936fc08551323aab3f92ff6b7f4d4b89d5b4e495c870a67cb8d279757/cymem-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bee2791b3f6fc034ce41268851462bf662ff87e8947e35fb6dd0115b4644a61f", size = 43139, upload_time = "2025-11-14T14:57:23.363Z" }, - { url = "https://files.pythonhosted.org/packages/32/a6/9345754be51e0479aa387b7b6cffc289d0fd3201aaeb8dade4623abd1e02/cymem-2.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f3aee3adf16272bca81c5826eed55ba3c938add6d8c9e273f01c6b829ecfde22", size = 245063, upload_time = "2025-11-14T14:57:24.839Z" }, - { url = "https://files.pythonhosted.org/packages/d6/01/6bc654101526fa86e82bf6b05d99b2cd47c30a333cfe8622c26c0592beb2/cymem-2.0.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:30c4e75a3a1d809e89106b0b21803eb78e839881aa1f5b9bd27b454bc73afde3", size = 244496, upload_time = "2025-11-14T14:57:26.42Z" }, - { url = "https://files.pythonhosted.org/packages/c4/fb/853b7b021e701a1f41687f3704d5f469aeb2a4f898c3fbb8076806885955/cymem-2.0.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec99efa03cf8ec11c8906aa4d4cc0c47df393bc9095c9dd64b89b9b43e220b04", size = 243287, upload_time = "2025-11-14T14:57:27.542Z" }, - { url = "https://files.pythonhosted.org/packages/d4/2b/0e4664cafc581de2896d75000651fd2ce7094d33263f466185c28ffc96e4/cymem-2.0.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c90a6ecba994a15b17a3f45d7ec74d34081df2f73bd1b090e2adc0317e4e01b6", size = 248287, upload_time = "2025-11-14T14:57:29.055Z" }, - { url = "https://files.pythonhosted.org/packages/21/0f/f94c6950edbfc2aafb81194fc40b6cacc8e994e9359d3cb4328c5705b9b5/cymem-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:ce821e6ba59148ed17c4567113b8683a6a0be9c9ac86f14e969919121efb61a5", size = 40116, upload_time = "2025-11-14T14:57:30.592Z" }, - { url = "https://files.pythonhosted.org/packages/00/df/2455eff6ac0381ff165db6883b311f7016e222e3dd62185517f8e8187ed0/cymem-2.0.13-cp311-cp311-win_arm64.whl", hash = "sha256:0dca715e708e545fd1d97693542378a00394b20a37779c1ae2c8bdbb43acef79", size = 36349, upload_time = "2025-11-14T14:57:31.573Z" }, - { url = "https://files.pythonhosted.org/packages/c9/52/478a2911ab5028cb710b4900d64aceba6f4f882fcb13fd8d40a456a1b6dc/cymem-2.0.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8afbc5162a0fe14b6463e1c4e45248a1b2fe2cbcecc8a5b9e511117080da0eb", size = 43745, upload_time = "2025-11-14T14:57:32.52Z" }, - { url = "https://files.pythonhosted.org/packages/f9/71/f0f8adee945524774b16af326bd314a14a478ed369a728a22834e6785a18/cymem-2.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9251d889348fe79a75e9b3e4d1b5fa651fca8a64500820685d73a3acc21b6a8", size = 42927, upload_time = "2025-11-14T14:57:33.827Z" }, - { url = "https://files.pythonhosted.org/packages/62/6d/159780fe162ff715d62b809246e5fc20901cef87ca28b67d255a8d741861/cymem-2.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:742fc19764467a49ed22e56a4d2134c262d73a6c635409584ae3bf9afa092c33", size = 258346, upload_time = "2025-11-14T14:57:34.917Z" }, - { url = "https://files.pythonhosted.org/packages/eb/12/678d16f7aa1996f947bf17b8cfb917ea9c9674ef5e2bd3690c04123d5680/cymem-2.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f190a92fe46197ee64d32560eb121c2809bb843341733227f51538ce77b3410d", size = 260843, upload_time = "2025-11-14T14:57:36.503Z" }, - { url = "https://files.pythonhosted.org/packages/31/5d/0dd8c167c08cd85e70d274b7235cfe1e31b3cebc99221178eaf4bbb95c6f/cymem-2.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d670329ee8dbbbf241b7c08069fe3f1d3a1a3e2d69c7d05ea008a7010d826298", size = 254607, upload_time = "2025-11-14T14:57:38.036Z" }, - { url = "https://files.pythonhosted.org/packages/b7/c9/d6514a412a1160aa65db539836b3d47f9b59f6675f294ec34ae32f867c82/cymem-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a84ba3178d9128b9ffb52ce81ebab456e9fe959125b51109f5b73ebdfc6b60d6", size = 262421, upload_time = "2025-11-14T14:57:39.265Z" }, - { url = "https://files.pythonhosted.org/packages/dd/fe/3ee37d02ca4040f2fb22d34eb415198f955862b5dd47eee01df4c8f5454c/cymem-2.0.13-cp312-cp312-win_amd64.whl", hash = "sha256:2ff1c41fd59b789579fdace78aa587c5fc091991fa59458c382b116fc36e30dc", size = 40176, upload_time = "2025-11-14T14:57:40.706Z" }, - { url = "https://files.pythonhosted.org/packages/94/fb/1b681635bfd5f2274d0caa8f934b58435db6c091b97f5593738065ddb786/cymem-2.0.13-cp312-cp312-win_arm64.whl", hash = "sha256:6bbd701338df7bf408648191dff52472a9b334f71bcd31a21a41d83821050f67", size = 35959, upload_time = "2025-11-14T14:57:41.682Z" }, - { url = "https://files.pythonhosted.org/packages/ce/0f/95a4d1e3bebfdfa7829252369357cf9a764f67569328cd9221f21e2c952e/cymem-2.0.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:891fd9030293a8b652dc7fb9fdc79a910a6c76fc679cd775e6741b819ffea476", size = 43478, upload_time = "2025-11-14T14:57:42.682Z" }, - { url = "https://files.pythonhosted.org/packages/bf/a0/8fc929cc29ae466b7b4efc23ece99cbd3ea34992ccff319089c624d667fd/cymem-2.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89c4889bd16513ce1644ccfe1e7c473ba7ca150f0621e66feac3a571bde09e7e", size = 42695, upload_time = "2025-11-14T14:57:43.741Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b3/deeb01354ebaf384438083ffe0310209ef903db3e7ba5a8f584b06d28387/cymem-2.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:45dcaba0f48bef9cc3d8b0b92058640244a95a9f12542210b51318da97c2cf28", size = 250573, upload_time = "2025-11-14T14:57:44.81Z" }, - { url = "https://files.pythonhosted.org/packages/36/36/bc980b9a14409f3356309c45a8d88d58797d02002a9d794dd6c84e809d3a/cymem-2.0.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e96848faaafccc0abd631f1c5fb194eac0caee4f5a8777fdbb3e349d3a21741c", size = 254572, upload_time = "2025-11-14T14:57:46.023Z" }, - { url = "https://files.pythonhosted.org/packages/fd/dd/a12522952624685bd0f8968e26d2ed6d059c967413ce6eb52292f538f1b0/cymem-2.0.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e02d3e2c3bfeb21185d5a4a70790d9df40629a87d8d7617dc22b4e864f665fa3", size = 248060, upload_time = "2025-11-14T14:57:47.605Z" }, - { url = "https://files.pythonhosted.org/packages/08/11/5dc933ddfeb2dfea747a0b935cb965b9a7580b324d96fc5f5a1b5ff8df29/cymem-2.0.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fece5229fd5ecdcd7a0738affb8c59890e13073ae5626544e13825f26c019d3c", size = 254601, upload_time = "2025-11-14T14:57:48.861Z" }, - { url = "https://files.pythonhosted.org/packages/70/66/d23b06166864fa94e13a98e5922986ce774832936473578febce64448d75/cymem-2.0.13-cp313-cp313-win_amd64.whl", hash = "sha256:38aefeb269597c1a0c2ddf1567dd8605489b661fa0369c6406c1acd433b4c7ba", size = 40103, upload_time = "2025-11-14T14:57:50.396Z" }, - { url = "https://files.pythonhosted.org/packages/2f/9e/c7b21271ab88a21760f3afdec84d2bc09ffa9e6c8d774ad9d4f1afab0416/cymem-2.0.13-cp313-cp313-win_arm64.whl", hash = "sha256:717270dcfd8c8096b479c42708b151002ff98e434a7b6f1f916387a6c791e2ad", size = 36016, upload_time = "2025-11-14T14:57:51.611Z" }, - { url = "https://files.pythonhosted.org/packages/7f/28/d3b03427edc04ae04910edf1c24b993881c3ba93a9729a42bcbb816a1808/cymem-2.0.13-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7e1a863a7f144ffb345397813701509cfc74fc9ed360a4d92799805b4b865dd1", size = 46429, upload_time = "2025-11-14T14:57:52.582Z" }, - { url = "https://files.pythonhosted.org/packages/35/a9/7ed53e481f47ebfb922b0b42e980cec83e98ccb2137dc597ea156642440c/cymem-2.0.13-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c16cb80efc017b054f78998c6b4b013cef509c7b3d802707ce1f85a1d68361bf", size = 46205, upload_time = "2025-11-14T14:57:53.64Z" }, - { url = "https://files.pythonhosted.org/packages/61/39/a3d6ad073cf7f0fbbb8bbf09698c3c8fac11be3f791d710239a4e8dd3438/cymem-2.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0d78a27c88b26c89bd1ece247d1d5939dba05a1dae6305aad8fd8056b17ddb51", size = 296083, upload_time = "2025-11-14T14:57:55.922Z" }, - { url = "https://files.pythonhosted.org/packages/36/0c/20697c8bc19f624a595833e566f37d7bcb9167b0ce69de896eba7cfc9c2d/cymem-2.0.13-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d36710760f817194dacb09d9fc45cb6a5062ed75e85f0ef7ad7aeeb13d80cc3", size = 286159, upload_time = "2025-11-14T14:57:57.106Z" }, - { url = "https://files.pythonhosted.org/packages/82/d4/9326e3422d1c2d2b4a8fb859bdcce80138f6ab721ddafa4cba328a505c71/cymem-2.0.13-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c8f30971cadd5dcf73bcfbbc5849b1f1e1f40db8cd846c4aa7d3b5e035c7b583", size = 288186, upload_time = "2025-11-14T14:57:58.334Z" }, - { url = "https://files.pythonhosted.org/packages/ed/bc/68da7dd749b72884dc22e898562f335002d70306069d496376e5ff3b6153/cymem-2.0.13-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9d441d0e45798ec1fd330373bf7ffa6b795f229275f64016b6a193e6e2a51522", size = 290353, upload_time = "2025-11-14T14:58:00.562Z" }, - { url = "https://files.pythonhosted.org/packages/50/23/dbf2ad6ecd19b99b3aab6203b1a06608bbd04a09c522d836b854f2f30f73/cymem-2.0.13-cp313-cp313t-win_amd64.whl", hash = "sha256:d1c950eebb9f0f15e3ef3591313482a5a611d16fc12d545e2018cd607f40f472", size = 44764, upload_time = "2025-11-14T14:58:01.793Z" }, - { url = "https://files.pythonhosted.org/packages/54/3f/35701c13e1fc7b0895198c8b20068c569a841e0daf8e0b14d1dc0816b28f/cymem-2.0.13-cp313-cp313t-win_arm64.whl", hash = "sha256:042e8611ef862c34a97b13241f5d0da86d58aca3cecc45c533496678e75c5a1f", size = 38964, upload_time = "2025-11-14T14:58:02.87Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/2f0fbb32535c3731b7c2974c569fb9325e0a38ed5565a08e1139a3b71e82/cymem-2.0.13.tar.gz", hash = "sha256:1c91a92ae8c7104275ac26bd4d29b08ccd3e7faff5893d3858cb6fadf1bc1588", size = 12320, upload-time = "2025-11-14T14:58:36.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/14/462018dd384ee1848ac9c1951534a813a325abbfc161a74e2cbcb38d2469/cymem-2.0.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8efc4f308169237aade0e82877a65a563833dec32eb7ab2326120253e0e9e918", size = 43747, upload-time = "2025-11-14T14:57:11.287Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9b/c123ba65dddcd8a2bc0b3c9046766c15abe0e257c315b3040eed22cce1e2/cymem-2.0.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e03bb575a96c59bc210d7d59862747f0012696b0dac3427ce8af33c7afb3d4a2", size = 43328, upload-time = "2025-11-14T14:57:12.578Z" }, + { url = "https://files.pythonhosted.org/packages/bd/be/7b7a4cf9cd2d37e674612a86fc90b3d59bff12177f83430e62b25afaf7fc/cymem-2.0.13-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1775d3fd34cf099929b79c3e48469283642463f977af6801231f3c0e5d9c9369", size = 231539, upload-time = "2025-11-14T14:57:14.441Z" }, + { url = "https://files.pythonhosted.org/packages/79/6d/d165c38cd4caaaf60942e2cec9998b667008f2384047ccfe0b4b5f7a1ffe/cymem-2.0.13-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84e2976e38cd663f758e40b5497fa5cd183d7c5fb0d04ce81a4b42a1ba124ff0", size = 229674, upload-time = "2025-11-14T14:57:15.685Z" }, + { url = "https://files.pythonhosted.org/packages/95/c1/af83c03a93f890ca81149561b18a4a67a9aa36a1109f15e291dd2703ab12/cymem-2.0.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed9de1b9b042f76fe5c312e4359eab58bf52ac7dfdf6887368a760410d809440", size = 229805, upload-time = "2025-11-14T14:57:17.289Z" }, + { url = "https://files.pythonhosted.org/packages/03/2d/12900758b80345d9aed5892a9d61e8a5f6abbbe5837e4def373a53cd0da2/cymem-2.0.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1366c7437a209230f4b797fae10227a8206d4021d37c9f9c0d31fd97ea4feb35", size = 234018, upload-time = "2025-11-14T14:57:18.512Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8b/5fcf5430fc81098aef58cc20340e51f37b49b9d8c15766e0d5d63e7288a3/cymem-2.0.13-cp310-cp310-win_amd64.whl", hash = "sha256:7700b116524b087e0169f10f267539223b48240ef2734c3a727a9e6b4db9a671", size = 40102, upload-time = "2025-11-14T14:57:19.972Z" }, + { url = "https://files.pythonhosted.org/packages/0d/d3/cb6c83758fe399443b858faafb7096b72535621a7af7dd9a54ff0989fa14/cymem-2.0.13-cp310-cp310-win_arm64.whl", hash = "sha256:c8dbfddfe5c604974e17c6f373cedd4d25cd67f84812ede7dea12128fa0c2015", size = 36282, upload-time = "2025-11-14T14:57:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/10/64/1db41f7576a6b69f70367e3c15e968fd775ba7419e12059c9966ceb826f8/cymem-2.0.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:673183466b0ff2e060d97ec5116711d44200b8f7be524323e080d215ee2d44a5", size = 43587, upload-time = "2025-11-14T14:57:22.39Z" }, + { url = "https://files.pythonhosted.org/packages/81/13/57f936fc08551323aab3f92ff6b7f4d4b89d5b4e495c870a67cb8d279757/cymem-2.0.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bee2791b3f6fc034ce41268851462bf662ff87e8947e35fb6dd0115b4644a61f", size = 43139, upload-time = "2025-11-14T14:57:23.363Z" }, + { url = "https://files.pythonhosted.org/packages/32/a6/9345754be51e0479aa387b7b6cffc289d0fd3201aaeb8dade4623abd1e02/cymem-2.0.13-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f3aee3adf16272bca81c5826eed55ba3c938add6d8c9e273f01c6b829ecfde22", size = 245063, upload-time = "2025-11-14T14:57:24.839Z" }, + { url = "https://files.pythonhosted.org/packages/d6/01/6bc654101526fa86e82bf6b05d99b2cd47c30a333cfe8622c26c0592beb2/cymem-2.0.13-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:30c4e75a3a1d809e89106b0b21803eb78e839881aa1f5b9bd27b454bc73afde3", size = 244496, upload-time = "2025-11-14T14:57:26.42Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fb/853b7b021e701a1f41687f3704d5f469aeb2a4f898c3fbb8076806885955/cymem-2.0.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec99efa03cf8ec11c8906aa4d4cc0c47df393bc9095c9dd64b89b9b43e220b04", size = 243287, upload-time = "2025-11-14T14:57:27.542Z" }, + { url = "https://files.pythonhosted.org/packages/d4/2b/0e4664cafc581de2896d75000651fd2ce7094d33263f466185c28ffc96e4/cymem-2.0.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c90a6ecba994a15b17a3f45d7ec74d34081df2f73bd1b090e2adc0317e4e01b6", size = 248287, upload-time = "2025-11-14T14:57:29.055Z" }, + { url = "https://files.pythonhosted.org/packages/21/0f/f94c6950edbfc2aafb81194fc40b6cacc8e994e9359d3cb4328c5705b9b5/cymem-2.0.13-cp311-cp311-win_amd64.whl", hash = "sha256:ce821e6ba59148ed17c4567113b8683a6a0be9c9ac86f14e969919121efb61a5", size = 40116, upload-time = "2025-11-14T14:57:30.592Z" }, + { url = "https://files.pythonhosted.org/packages/00/df/2455eff6ac0381ff165db6883b311f7016e222e3dd62185517f8e8187ed0/cymem-2.0.13-cp311-cp311-win_arm64.whl", hash = "sha256:0dca715e708e545fd1d97693542378a00394b20a37779c1ae2c8bdbb43acef79", size = 36349, upload-time = "2025-11-14T14:57:31.573Z" }, + { url = "https://files.pythonhosted.org/packages/c9/52/478a2911ab5028cb710b4900d64aceba6f4f882fcb13fd8d40a456a1b6dc/cymem-2.0.13-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8afbc5162a0fe14b6463e1c4e45248a1b2fe2cbcecc8a5b9e511117080da0eb", size = 43745, upload-time = "2025-11-14T14:57:32.52Z" }, + { url = "https://files.pythonhosted.org/packages/f9/71/f0f8adee945524774b16af326bd314a14a478ed369a728a22834e6785a18/cymem-2.0.13-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9251d889348fe79a75e9b3e4d1b5fa651fca8a64500820685d73a3acc21b6a8", size = 42927, upload-time = "2025-11-14T14:57:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/62/6d/159780fe162ff715d62b809246e5fc20901cef87ca28b67d255a8d741861/cymem-2.0.13-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:742fc19764467a49ed22e56a4d2134c262d73a6c635409584ae3bf9afa092c33", size = 258346, upload-time = "2025-11-14T14:57:34.917Z" }, + { url = "https://files.pythonhosted.org/packages/eb/12/678d16f7aa1996f947bf17b8cfb917ea9c9674ef5e2bd3690c04123d5680/cymem-2.0.13-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f190a92fe46197ee64d32560eb121c2809bb843341733227f51538ce77b3410d", size = 260843, upload-time = "2025-11-14T14:57:36.503Z" }, + { url = "https://files.pythonhosted.org/packages/31/5d/0dd8c167c08cd85e70d274b7235cfe1e31b3cebc99221178eaf4bbb95c6f/cymem-2.0.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d670329ee8dbbbf241b7c08069fe3f1d3a1a3e2d69c7d05ea008a7010d826298", size = 254607, upload-time = "2025-11-14T14:57:38.036Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c9/d6514a412a1160aa65db539836b3d47f9b59f6675f294ec34ae32f867c82/cymem-2.0.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a84ba3178d9128b9ffb52ce81ebab456e9fe959125b51109f5b73ebdfc6b60d6", size = 262421, upload-time = "2025-11-14T14:57:39.265Z" }, + { url = "https://files.pythonhosted.org/packages/dd/fe/3ee37d02ca4040f2fb22d34eb415198f955862b5dd47eee01df4c8f5454c/cymem-2.0.13-cp312-cp312-win_amd64.whl", hash = "sha256:2ff1c41fd59b789579fdace78aa587c5fc091991fa59458c382b116fc36e30dc", size = 40176, upload-time = "2025-11-14T14:57:40.706Z" }, + { url = "https://files.pythonhosted.org/packages/94/fb/1b681635bfd5f2274d0caa8f934b58435db6c091b97f5593738065ddb786/cymem-2.0.13-cp312-cp312-win_arm64.whl", hash = "sha256:6bbd701338df7bf408648191dff52472a9b334f71bcd31a21a41d83821050f67", size = 35959, upload-time = "2025-11-14T14:57:41.682Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/95a4d1e3bebfdfa7829252369357cf9a764f67569328cd9221f21e2c952e/cymem-2.0.13-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:891fd9030293a8b652dc7fb9fdc79a910a6c76fc679cd775e6741b819ffea476", size = 43478, upload-time = "2025-11-14T14:57:42.682Z" }, + { url = "https://files.pythonhosted.org/packages/bf/a0/8fc929cc29ae466b7b4efc23ece99cbd3ea34992ccff319089c624d667fd/cymem-2.0.13-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:89c4889bd16513ce1644ccfe1e7c473ba7ca150f0621e66feac3a571bde09e7e", size = 42695, upload-time = "2025-11-14T14:57:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b3/deeb01354ebaf384438083ffe0310209ef903db3e7ba5a8f584b06d28387/cymem-2.0.13-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:45dcaba0f48bef9cc3d8b0b92058640244a95a9f12542210b51318da97c2cf28", size = 250573, upload-time = "2025-11-14T14:57:44.81Z" }, + { url = "https://files.pythonhosted.org/packages/36/36/bc980b9a14409f3356309c45a8d88d58797d02002a9d794dd6c84e809d3a/cymem-2.0.13-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e96848faaafccc0abd631f1c5fb194eac0caee4f5a8777fdbb3e349d3a21741c", size = 254572, upload-time = "2025-11-14T14:57:46.023Z" }, + { url = "https://files.pythonhosted.org/packages/fd/dd/a12522952624685bd0f8968e26d2ed6d059c967413ce6eb52292f538f1b0/cymem-2.0.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e02d3e2c3bfeb21185d5a4a70790d9df40629a87d8d7617dc22b4e864f665fa3", size = 248060, upload-time = "2025-11-14T14:57:47.605Z" }, + { url = "https://files.pythonhosted.org/packages/08/11/5dc933ddfeb2dfea747a0b935cb965b9a7580b324d96fc5f5a1b5ff8df29/cymem-2.0.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fece5229fd5ecdcd7a0738affb8c59890e13073ae5626544e13825f26c019d3c", size = 254601, upload-time = "2025-11-14T14:57:48.861Z" }, + { url = "https://files.pythonhosted.org/packages/70/66/d23b06166864fa94e13a98e5922986ce774832936473578febce64448d75/cymem-2.0.13-cp313-cp313-win_amd64.whl", hash = "sha256:38aefeb269597c1a0c2ddf1567dd8605489b661fa0369c6406c1acd433b4c7ba", size = 40103, upload-time = "2025-11-14T14:57:50.396Z" }, + { url = "https://files.pythonhosted.org/packages/2f/9e/c7b21271ab88a21760f3afdec84d2bc09ffa9e6c8d774ad9d4f1afab0416/cymem-2.0.13-cp313-cp313-win_arm64.whl", hash = "sha256:717270dcfd8c8096b479c42708b151002ff98e434a7b6f1f916387a6c791e2ad", size = 36016, upload-time = "2025-11-14T14:57:51.611Z" }, + { url = "https://files.pythonhosted.org/packages/7f/28/d3b03427edc04ae04910edf1c24b993881c3ba93a9729a42bcbb816a1808/cymem-2.0.13-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7e1a863a7f144ffb345397813701509cfc74fc9ed360a4d92799805b4b865dd1", size = 46429, upload-time = "2025-11-14T14:57:52.582Z" }, + { url = "https://files.pythonhosted.org/packages/35/a9/7ed53e481f47ebfb922b0b42e980cec83e98ccb2137dc597ea156642440c/cymem-2.0.13-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c16cb80efc017b054f78998c6b4b013cef509c7b3d802707ce1f85a1d68361bf", size = 46205, upload-time = "2025-11-14T14:57:53.64Z" }, + { url = "https://files.pythonhosted.org/packages/61/39/a3d6ad073cf7f0fbbb8bbf09698c3c8fac11be3f791d710239a4e8dd3438/cymem-2.0.13-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0d78a27c88b26c89bd1ece247d1d5939dba05a1dae6305aad8fd8056b17ddb51", size = 296083, upload-time = "2025-11-14T14:57:55.922Z" }, + { url = "https://files.pythonhosted.org/packages/36/0c/20697c8bc19f624a595833e566f37d7bcb9167b0ce69de896eba7cfc9c2d/cymem-2.0.13-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6d36710760f817194dacb09d9fc45cb6a5062ed75e85f0ef7ad7aeeb13d80cc3", size = 286159, upload-time = "2025-11-14T14:57:57.106Z" }, + { url = "https://files.pythonhosted.org/packages/82/d4/9326e3422d1c2d2b4a8fb859bdcce80138f6ab721ddafa4cba328a505c71/cymem-2.0.13-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c8f30971cadd5dcf73bcfbbc5849b1f1e1f40db8cd846c4aa7d3b5e035c7b583", size = 288186, upload-time = "2025-11-14T14:57:58.334Z" }, + { url = "https://files.pythonhosted.org/packages/ed/bc/68da7dd749b72884dc22e898562f335002d70306069d496376e5ff3b6153/cymem-2.0.13-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:9d441d0e45798ec1fd330373bf7ffa6b795f229275f64016b6a193e6e2a51522", size = 290353, upload-time = "2025-11-14T14:58:00.562Z" }, + { url = "https://files.pythonhosted.org/packages/50/23/dbf2ad6ecd19b99b3aab6203b1a06608bbd04a09c522d836b854f2f30f73/cymem-2.0.13-cp313-cp313t-win_amd64.whl", hash = "sha256:d1c950eebb9f0f15e3ef3591313482a5a611d16fc12d545e2018cd607f40f472", size = 44764, upload-time = "2025-11-14T14:58:01.793Z" }, + { url = "https://files.pythonhosted.org/packages/54/3f/35701c13e1fc7b0895198c8b20068c569a841e0daf8e0b14d1dc0816b28f/cymem-2.0.13-cp313-cp313t-win_arm64.whl", hash = "sha256:042e8611ef862c34a97b13241f5d0da86d58aca3cecc45c533496678e75c5a1f", size = 38964, upload-time = "2025-11-14T14:58:02.87Z" }, ] [[package]] name = "diff-match-patch" version = "20241021" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0e/ad/32e1777dd57d8e85fa31e3a243af66c538245b8d64b7265bec9a61f2ca33/diff_match_patch-20241021.tar.gz", hash = "sha256:beae57a99fa48084532935ee2968b8661db861862ec82c6f21f4acdd6d835073", size = 39962, upload_time = "2024-10-21T19:41:21.094Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0e/ad/32e1777dd57d8e85fa31e3a243af66c538245b8d64b7265bec9a61f2ca33/diff_match_patch-20241021.tar.gz", hash = "sha256:beae57a99fa48084532935ee2968b8661db861862ec82c6f21f4acdd6d835073", size = 39962, upload-time = "2024-10-21T19:41:21.094Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/bb/2aa9b46a01197398b901e458974c20ed107935c26e44e37ad5b0e5511e44/diff_match_patch-20241021-py3-none-any.whl", hash = "sha256:93cea333fb8b2bc0d181b0de5e16df50dd344ce64828226bda07728818936782", size = 43252, upload_time = "2024-10-21T19:41:19.914Z" }, + { url = "https://files.pythonhosted.org/packages/f7/bb/2aa9b46a01197398b901e458974c20ed107935c26e44e37ad5b0e5511e44/diff_match_patch-20241021-py3-none-any.whl", hash = "sha256:93cea333fb8b2bc0d181b0de5e16df50dd344ce64828226bda07728818936782", size = 43252, upload-time = "2024-10-21T19:41:19.914Z" }, ] [[package]] name = "distlib" version = "0.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload_time = "2025-07-17T16:52:00.465Z" } +sdist = { url = "https://files.pythonhosted.org/packages/96/8e/709914eb2b5749865801041647dc7f4e6d00b549cfe88b65ca192995f07c/distlib-0.4.0.tar.gz", hash = "sha256:feec40075be03a04501a973d81f633735b4b69f98b05450592310c0f401a4e0d", size = 614605, upload-time = "2025-07-17T16:52:00.465Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload_time = "2025-07-17T16:51:58.613Z" }, + { url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" }, ] [[package]] name = "distro" version = "1.9.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload_time = "2023-12-24T09:54:32.31Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload_time = "2023-12-24T09:54:30.421Z" }, + { url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" }, ] [[package]] name = "dnspython" version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload_time = "2025-09-07T18:58:00.022Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/8b/57666417c0f90f08bcafa776861060426765fdb422eb10212086fb811d26/dnspython-2.8.0.tar.gz", hash = "sha256:181d3c6996452cb1189c4046c61599b84a5a86e099562ffde77d26984ff26d0f", size = 368251, upload-time = "2025-09-07T18:58:00.022Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload_time = "2025-09-07T18:57:58.071Z" }, + { url = "https://files.pythonhosted.org/packages/ba/5a/18ad964b0086c6e62e2e7500f7edc89e3faa45033c71c1893d34eed2b2de/dnspython-2.8.0-py3-none-any.whl", hash = "sha256:01d9bbc4a2d76bf0db7c1f729812ded6d912bd318d3b1cf81d30c0f845dbf3af", size = 331094, upload-time = "2025-09-07T18:57:58.071Z" }, ] [[package]] name = "docutils" version = "0.23" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/39/a4/5180d9afc57e8fca05601dd652bdff19604c218814037fe90ffc7625a50a/docutils-0.23.tar.gz", hash = "sha256:746f5060322511280a1e50eb76846ed6bf2342984b2ac04dc42caa1a8d78799e", size = 2303823, upload_time = "2026-05-27T17:41:06.934Z" } +sdist = { url = "https://files.pythonhosted.org/packages/39/a4/5180d9afc57e8fca05601dd652bdff19604c218814037fe90ffc7625a50a/docutils-0.23.tar.gz", hash = "sha256:746f5060322511280a1e50eb76846ed6bf2342984b2ac04dc42caa1a8d78799e", size = 2303823, upload-time = "2026-05-27T17:41:06.934Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/91/30151a39f7570f448ed84529390628a651d7f27c87d73c9b887f8189695e/docutils-0.23-py3-none-any.whl", hash = "sha256:25d013af9bf23bc1c7b2b093dff4208166c53a94786c9e447808335ef1185fea", size = 634701, upload_time = "2026-05-27T17:40:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/32/91/30151a39f7570f448ed84529390628a651d7f27c87d73c9b887f8189695e/docutils-0.23-py3-none-any.whl", hash = "sha256:25d013af9bf23bc1c7b2b093dff4208166c53a94786c9e447808335ef1185fea", size = 634701, upload-time = "2026-05-27T17:40:58.442Z" }, ] [[package]] @@ -883,9 +885,9 @@ dependencies = [ { name = "dnspython" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload_time = "2025-08-26T13:09:06.831Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/22/900cb125c76b7aaa450ce02fd727f452243f2e91a61af068b40adba60ea9/email_validator-2.3.0.tar.gz", hash = "sha256:9fc05c37f2f6cf439ff414f8fc46d917929974a82244c20eb10231ba60c54426", size = 51238, upload-time = "2025-08-26T13:09:06.831Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload_time = "2025-08-26T13:09:05.858Z" }, + { url = "https://files.pythonhosted.org/packages/de/15/545e2b6cf2e3be84bc1ed85613edd75b8aea69807a71c26f4ca6a9258e82/email_validator-2.3.0-py3-none-any.whl", hash = "sha256:80f13f623413e6b197ae73bb10bf4eb0908faf509ad8362c5edeb0be7fd450b4", size = 35604, upload-time = "2025-08-26T13:09:05.858Z" }, ] [[package]] @@ -900,18 +902,18 @@ dependencies = [ { name = "python-dateutil" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/c1e315aa82ed9f037186c30109200fb4b4c51b5483b8065daa0ca836a336/emails-0.6.tar.gz", hash = "sha256:a4c2d67ea8b8831967a750d8edc6e77040d7693143fe280e6d2a367d9c36ff88", size = 44066, upload_time = "2020-06-19T11:20:41.644Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/f9/c1e315aa82ed9f037186c30109200fb4b4c51b5483b8065daa0ca836a336/emails-0.6.tar.gz", hash = "sha256:a4c2d67ea8b8831967a750d8edc6e77040d7693143fe280e6d2a367d9c36ff88", size = 44066, upload-time = "2020-06-19T11:20:41.644Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/55/7e/b648d640d88d31de49e566832aca9cce025c52d6349b0a0fc65e9df1f4c5/emails-0.6-py2.py3-none-any.whl", hash = "sha256:72c1e3198075709cc35f67e1b49e2da1a2bc087e9b444073db61a379adfb7f3c", size = 56250, upload_time = "2020-06-19T11:20:40.466Z" }, + { url = "https://files.pythonhosted.org/packages/55/7e/b648d640d88d31de49e566832aca9cce025c52d6349b0a0fc65e9df1f4c5/emails-0.6-py2.py3-none-any.whl", hash = "sha256:72c1e3198075709cc35f67e1b49e2da1a2bc087e9b444073db61a379adfb7f3c", size = 56250, upload-time = "2020-06-19T11:20:40.466Z" }, ] [[package]] name = "emoji" version = "2.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload_time = "2025-09-21T12:13:02.755Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/78/0d2db9382c92a163d7095fc08efff7800880f830a152cfced40161e7638d/emoji-2.15.0.tar.gz", hash = "sha256:eae4ab7d86456a70a00a985125a03263a5eac54cd55e51d7e184b1ed3b6757e4", size = 615483, upload-time = "2025-09-21T12:13:02.755Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload_time = "2025-09-21T12:13:01.197Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/4b5aaaabddfacfe36ba7768817bd1f71a7a810a43705e531f3ae4c690767/emoji-2.15.0-py3-none-any.whl", hash = "sha256:205296793d66a89d88af4688fa57fd6496732eb48917a87175a023c8138995eb", size = 608433, upload-time = "2025-09-21T12:13:01.197Z" }, ] [[package]] @@ -921,9 +923,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload_time = "2025-11-21T23:01:54.787Z" } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload_time = "2025-11-21T23:01:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] @@ -933,9 +935,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "tzdata" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3d/84/e95acaa848b855e15c83331d0401ee5f84b2f60889255c2e055cb4fb6bdf/faker-37.12.0.tar.gz", hash = "sha256:7505e59a7e02fa9010f06c3e1e92f8250d4cfbb30632296140c2d6dbef09b0fa", size = 1935741, upload_time = "2025-10-24T15:19:58.764Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3d/84/e95acaa848b855e15c83331d0401ee5f84b2f60889255c2e055cb4fb6bdf/faker-37.12.0.tar.gz", hash = "sha256:7505e59a7e02fa9010f06c3e1e92f8250d4cfbb30632296140c2d6dbef09b0fa", size = 1935741, upload-time = "2025-10-24T15:19:58.764Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8e/98/2c050dec90e295a524c9b65c4cb9e7c302386a296b2938710448cbd267d5/faker-37.12.0-py3-none-any.whl", hash = "sha256:afe7ccc038da92f2fbae30d8e16d19d91e92e242f8401ce9caf44de892bab4c4", size = 1975461, upload_time = "2025-10-24T15:19:55.739Z" }, + { url = "https://files.pythonhosted.org/packages/8e/98/2c050dec90e295a524c9b65c4cb9e7c302386a296b2938710448cbd267d5/faker-37.12.0-py3-none-any.whl", hash = "sha256:afe7ccc038da92f2fbae30d8e16d19d91e92e242f8401ce9caf44de892bab4c4", size = 1975461, upload-time = "2025-10-24T15:19:55.739Z" }, ] [[package]] @@ -947,9 +949,9 @@ dependencies = [ { name = "starlette" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ca/53/8c38a874844a8b0fa10dd8adf3836ac154082cf88d3f22b544e9ceea0a15/fastapi-0.115.14.tar.gz", hash = "sha256:b1de15cdc1c499a4da47914db35d0e4ef8f1ce62b624e94e0e5824421df99739", size = 296263, upload_time = "2025-06-26T15:29:08.21Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ca/53/8c38a874844a8b0fa10dd8adf3836ac154082cf88d3f22b544e9ceea0a15/fastapi-0.115.14.tar.gz", hash = "sha256:b1de15cdc1c499a4da47914db35d0e4ef8f1ce62b624e94e0e5824421df99739", size = 296263, upload-time = "2025-06-26T15:29:08.21Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/53/50/b1222562c6d270fea83e9c9075b8e8600b8479150a18e4516a6138b980d1/fastapi-0.115.14-py3-none-any.whl", hash = "sha256:6c0c8bf9420bd58f565e585036d971872472b4f7d3f6c73b698e10cffdefb3ca", size = 95514, upload_time = "2025-06-26T15:29:06.49Z" }, + { url = "https://files.pythonhosted.org/packages/53/50/b1222562c6d270fea83e9c9075b8e8600b8479150a18e4516a6138b980d1/fastapi-0.115.14-py3-none-any.whl", hash = "sha256:6c0c8bf9420bd58f565e585036d971872472b4f7d3f6c73b698e10cffdefb3ca", size = 95514, upload-time = "2025-06-26T15:29:06.49Z" }, ] [package.optional-dependencies] @@ -971,9 +973,9 @@ dependencies = [ { name = "typer" }, { name = "uvicorn", extra = ["standard"] }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fe/73/82a5831fbbf8ed75905bacf5b2d9d3dfd6f04d6968b29fe6f72a5ae9ceb1/fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e", size = 16753, upload_time = "2024-12-15T14:28:10.028Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/73/82a5831fbbf8ed75905bacf5b2d9d3dfd6f04d6968b29fe6f72a5ae9ceb1/fastapi_cli-0.0.7.tar.gz", hash = "sha256:02b3b65956f526412515907a0793c9094abd4bfb5457b389f645b0ea6ba3605e", size = 16753, upload-time = "2024-12-15T14:28:10.028Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/e6/5daefc851b514ce2287d8f5d358ae4341089185f78f3217a69d0ce3a390c/fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4", size = 10705, upload_time = "2024-12-15T14:28:06.18Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e6/5daefc851b514ce2287d8f5d358ae4341089185f78f3217a69d0ce3a390c/fastapi_cli-0.0.7-py3-none-any.whl", hash = "sha256:d549368ff584b2804336c61f192d86ddea080c11255f375959627911944804f4", size = 10705, upload-time = "2024-12-15T14:28:06.18Z" }, ] [package.optional-dependencies] @@ -985,168 +987,168 @@ standard = [ name = "fastuuid" version = "0.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/7d/d9daedf0f2ebcacd20d599928f8913e9d2aea1d56d2d355a93bfa2b611d7/fastuuid-0.14.0.tar.gz", hash = "sha256:178947fc2f995b38497a74172adee64fdeb8b7ec18f2a5934d037641ba265d26", size = 18232, upload_time = "2025-10-19T22:19:22.402Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/b2/731a6696e37cd20eed353f69a09f37a984a43c9713764ee3f7ad5f57f7f9/fastuuid-0.14.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:6e6243d40f6c793c3e2ee14c13769e341b90be5ef0c23c82fa6515a96145181a", size = 516760, upload_time = "2025-10-19T22:25:21.509Z" }, - { url = "https://files.pythonhosted.org/packages/c5/79/c73c47be2a3b8734d16e628982653517f80bbe0570e27185d91af6096507/fastuuid-0.14.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:13ec4f2c3b04271f62be2e1ce7e95ad2dd1cf97e94503a3760db739afbd48f00", size = 264748, upload_time = "2025-10-19T22:41:52.873Z" }, - { url = "https://files.pythonhosted.org/packages/24/c5/84c1eea05977c8ba5173555b0133e3558dc628bcf868d6bf1689ff14aedc/fastuuid-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b2fdd48b5e4236df145a149d7125badb28e0a383372add3fbaac9a6b7a394470", size = 254537, upload_time = "2025-10-19T22:33:55.603Z" }, - { url = "https://files.pythonhosted.org/packages/0e/23/4e362367b7fa17dbed646922f216b9921efb486e7abe02147e4b917359f8/fastuuid-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f74631b8322d2780ebcf2d2d75d58045c3e9378625ec51865fe0b5620800c39d", size = 278994, upload_time = "2025-10-19T22:26:17.631Z" }, - { url = "https://files.pythonhosted.org/packages/b2/72/3985be633b5a428e9eaec4287ed4b873b7c4c53a9639a8b416637223c4cd/fastuuid-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cffc144dc93eb604b87b179837f2ce2af44871a7b323f2bfed40e8acb40ba8", size = 280003, upload_time = "2025-10-19T22:23:45.415Z" }, - { url = "https://files.pythonhosted.org/packages/b3/6d/6ef192a6df34e2266d5c9deb39cd3eea986df650cbcfeaf171aa52a059c3/fastuuid-0.14.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a771f135ab4523eb786e95493803942a5d1fc1610915f131b363f55af53b219", size = 303583, upload_time = "2025-10-19T22:26:00.756Z" }, - { url = "https://files.pythonhosted.org/packages/9d/11/8a2ea753c68d4fece29d5d7c6f3f903948cc6e82d1823bc9f7f7c0355db3/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4edc56b877d960b4eda2c4232f953a61490c3134da94f3c28af129fb9c62a4f6", size = 460955, upload_time = "2025-10-19T22:36:25.196Z" }, - { url = "https://files.pythonhosted.org/packages/23/42/7a32c93b6ce12642d9a152ee4753a078f372c9ebb893bc489d838dd4afd5/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bcc96ee819c282e7c09b2eed2b9bd13084e3b749fdb2faf58c318d498df2efbe", size = 480763, upload_time = "2025-10-19T22:24:28.451Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e9/a5f6f686b46e3ed4ed3b93770111c233baac87dd6586a411b4988018ef1d/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7a3c0bca61eacc1843ea97b288d6789fbad7400d16db24e36a66c28c268cfe3d", size = 452613, upload_time = "2025-10-19T22:25:06.827Z" }, - { url = "https://files.pythonhosted.org/packages/b4/c9/18abc73c9c5b7fc0e476c1733b678783b2e8a35b0be9babd423571d44e98/fastuuid-0.14.0-cp310-cp310-win32.whl", hash = "sha256:7f2f3efade4937fae4e77efae1af571902263de7b78a0aee1a1653795a093b2a", size = 155045, upload_time = "2025-10-19T22:28:32.732Z" }, - { url = "https://files.pythonhosted.org/packages/5e/8a/d9e33f4eb4d4f6d9f2c5c7d7e96b5cdbb535c93f3b1ad6acce97ee9d4bf8/fastuuid-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:ae64ba730d179f439b0736208b4c279b8bc9c089b102aec23f86512ea458c8a4", size = 156122, upload_time = "2025-10-19T22:23:15.59Z" }, - { url = "https://files.pythonhosted.org/packages/98/f3/12481bda4e5b6d3e698fbf525df4443cc7dce746f246b86b6fcb2fba1844/fastuuid-0.14.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:73946cb950c8caf65127d4e9a325e2b6be0442a224fd51ba3b6ac44e1912ce34", size = 516386, upload_time = "2025-10-19T22:42:40.176Z" }, - { url = "https://files.pythonhosted.org/packages/59/19/2fc58a1446e4d72b655648eb0879b04e88ed6fa70d474efcf550f640f6ec/fastuuid-0.14.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:12ac85024637586a5b69645e7ed986f7535106ed3013640a393a03e461740cb7", size = 264569, upload_time = "2025-10-19T22:25:50.977Z" }, - { url = "https://files.pythonhosted.org/packages/78/29/3c74756e5b02c40cfcc8b1d8b5bac4edbd532b55917a6bcc9113550e99d1/fastuuid-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:05a8dde1f395e0c9b4be515b7a521403d1e8349443e7641761af07c7ad1624b1", size = 254366, upload_time = "2025-10-19T22:29:49.166Z" }, - { url = "https://files.pythonhosted.org/packages/52/96/d761da3fccfa84f0f353ce6e3eb8b7f76b3aa21fd25e1b00a19f9c80a063/fastuuid-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09378a05020e3e4883dfdab438926f31fea15fd17604908f3d39cbeb22a0b4dc", size = 278978, upload_time = "2025-10-19T22:35:41.306Z" }, - { url = "https://files.pythonhosted.org/packages/fc/c2/f84c90167cc7765cb82b3ff7808057608b21c14a38531845d933a4637307/fastuuid-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbb0c4b15d66b435d2538f3827f05e44e2baafcc003dd7d8472dc67807ab8fd8", size = 279692, upload_time = "2025-10-19T22:25:36.997Z" }, - { url = "https://files.pythonhosted.org/packages/af/7b/4bacd03897b88c12348e7bd77943bac32ccf80ff98100598fcff74f75f2e/fastuuid-0.14.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cd5a7f648d4365b41dbf0e38fe8da4884e57bed4e77c83598e076ac0c93995e7", size = 303384, upload_time = "2025-10-19T22:29:46.578Z" }, - { url = "https://files.pythonhosted.org/packages/c0/a2/584f2c29641df8bd810d00c1f21d408c12e9ad0c0dafdb8b7b29e5ddf787/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c0a94245afae4d7af8c43b3159d5e3934c53f47140be0be624b96acd672ceb73", size = 460921, upload_time = "2025-10-19T22:36:42.006Z" }, - { url = "https://files.pythonhosted.org/packages/24/68/c6b77443bb7764c760e211002c8638c0c7cce11cb584927e723215ba1398/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:2b29e23c97e77c3a9514d70ce343571e469098ac7f5a269320a0f0b3e193ab36", size = 480575, upload_time = "2025-10-19T22:28:18.975Z" }, - { url = "https://files.pythonhosted.org/packages/5a/87/93f553111b33f9bb83145be12868c3c475bf8ea87c107063d01377cc0e8e/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1e690d48f923c253f28151b3a6b4e335f2b06bf669c68a02665bc150b7839e94", size = 452317, upload_time = "2025-10-19T22:25:32.75Z" }, - { url = "https://files.pythonhosted.org/packages/9e/8c/a04d486ca55b5abb7eaa65b39df8d891b7b1635b22db2163734dc273579a/fastuuid-0.14.0-cp311-cp311-win32.whl", hash = "sha256:a6f46790d59ab38c6aa0e35c681c0484b50dc0acf9e2679c005d61e019313c24", size = 154804, upload_time = "2025-10-19T22:24:15.615Z" }, - { url = "https://files.pythonhosted.org/packages/9c/b2/2d40bf00820de94b9280366a122cbaa60090c8cf59e89ac3938cf5d75895/fastuuid-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:e150eab56c95dc9e3fefc234a0eedb342fac433dacc273cd4d150a5b0871e1fa", size = 156099, upload_time = "2025-10-19T22:24:31.646Z" }, - { url = "https://files.pythonhosted.org/packages/02/a2/e78fcc5df65467f0d207661b7ef86c5b7ac62eea337c0c0fcedbeee6fb13/fastuuid-0.14.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:77e94728324b63660ebf8adb27055e92d2e4611645bf12ed9d88d30486471d0a", size = 510164, upload_time = "2025-10-19T22:31:45.635Z" }, - { url = "https://files.pythonhosted.org/packages/2b/b3/c846f933f22f581f558ee63f81f29fa924acd971ce903dab1a9b6701816e/fastuuid-0.14.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:caa1f14d2102cb8d353096bc6ef6c13b2c81f347e6ab9d6fbd48b9dea41c153d", size = 261837, upload_time = "2025-10-19T22:38:38.53Z" }, - { url = "https://files.pythonhosted.org/packages/54/ea/682551030f8c4fa9a769d9825570ad28c0c71e30cf34020b85c1f7ee7382/fastuuid-0.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d23ef06f9e67163be38cece704170486715b177f6baae338110983f99a72c070", size = 251370, upload_time = "2025-10-19T22:40:26.07Z" }, - { url = "https://files.pythonhosted.org/packages/14/dd/5927f0a523d8e6a76b70968e6004966ee7df30322f5fc9b6cdfb0276646a/fastuuid-0.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c9ec605ace243b6dbe3bd27ebdd5d33b00d8d1d3f580b39fdd15cd96fd71796", size = 277766, upload_time = "2025-10-19T22:37:23.779Z" }, - { url = "https://files.pythonhosted.org/packages/16/6e/c0fb547eef61293153348f12e0f75a06abb322664b34a1573a7760501336/fastuuid-0.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:808527f2407f58a76c916d6aa15d58692a4a019fdf8d4c32ac7ff303b7d7af09", size = 278105, upload_time = "2025-10-19T22:26:56.821Z" }, - { url = "https://files.pythonhosted.org/packages/2d/b1/b9c75e03b768f61cf2e84ee193dc18601aeaf89a4684b20f2f0e9f52b62c/fastuuid-0.14.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fb3c0d7fef6674bbeacdd6dbd386924a7b60b26de849266d1ff6602937675c8", size = 301564, upload_time = "2025-10-19T22:30:31.604Z" }, - { url = "https://files.pythonhosted.org/packages/fc/fa/f7395fdac07c7a54f18f801744573707321ca0cee082e638e36452355a9d/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab3f5d36e4393e628a4df337c2c039069344db5f4b9d2a3c9cea48284f1dd741", size = 459659, upload_time = "2025-10-19T22:31:32.341Z" }, - { url = "https://files.pythonhosted.org/packages/66/49/c9fd06a4a0b1f0f048aacb6599e7d96e5d6bc6fa680ed0d46bf111929d1b/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b9a0ca4f03b7e0b01425281ffd44e99d360e15c895f1907ca105854ed85e2057", size = 478430, upload_time = "2025-10-19T22:26:22.962Z" }, - { url = "https://files.pythonhosted.org/packages/be/9c/909e8c95b494e8e140e8be6165d5fc3f61fdc46198c1554df7b3e1764471/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3acdf655684cc09e60fb7e4cf524e8f42ea760031945aa8086c7eae2eeeabeb8", size = 450894, upload_time = "2025-10-19T22:27:01.647Z" }, - { url = "https://files.pythonhosted.org/packages/90/eb/d29d17521976e673c55ef7f210d4cdd72091a9ec6755d0fd4710d9b3c871/fastuuid-0.14.0-cp312-cp312-win32.whl", hash = "sha256:9579618be6280700ae36ac42c3efd157049fe4dd40ca49b021280481c78c3176", size = 154374, upload_time = "2025-10-19T22:29:19.879Z" }, - { url = "https://files.pythonhosted.org/packages/cc/fc/f5c799a6ea6d877faec0472d0b27c079b47c86b1cdc577720a5386483b36/fastuuid-0.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:d9e4332dc4ba054434a9594cbfaf7823b57993d7d8e7267831c3e059857cf397", size = 156550, upload_time = "2025-10-19T22:27:49.658Z" }, - { url = "https://files.pythonhosted.org/packages/a5/83/ae12dd39b9a39b55d7f90abb8971f1a5f3c321fd72d5aa83f90dc67fe9ed/fastuuid-0.14.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:77a09cb7427e7af74c594e409f7731a0cf887221de2f698e1ca0ebf0f3139021", size = 510720, upload_time = "2025-10-19T22:42:34.633Z" }, - { url = "https://files.pythonhosted.org/packages/53/b0/a4b03ff5d00f563cc7546b933c28cb3f2a07344b2aec5834e874f7d44143/fastuuid-0.14.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:9bd57289daf7b153bfa3e8013446aa144ce5e8c825e9e366d455155ede5ea2dc", size = 262024, upload_time = "2025-10-19T22:30:25.482Z" }, - { url = "https://files.pythonhosted.org/packages/9c/6d/64aee0a0f6a58eeabadd582e55d0d7d70258ffdd01d093b30c53d668303b/fastuuid-0.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ac60fc860cdf3c3f327374db87ab8e064c86566ca8c49d2e30df15eda1b0c2d5", size = 251679, upload_time = "2025-10-19T22:36:14.096Z" }, - { url = "https://files.pythonhosted.org/packages/60/f5/a7e9cda8369e4f7919d36552db9b2ae21db7915083bc6336f1b0082c8b2e/fastuuid-0.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab32f74bd56565b186f036e33129da77db8be09178cd2f5206a5d4035fb2a23f", size = 277862, upload_time = "2025-10-19T22:36:23.302Z" }, - { url = "https://files.pythonhosted.org/packages/f0/d3/8ce11827c783affffd5bd4d6378b28eb6cc6d2ddf41474006b8d62e7448e/fastuuid-0.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33e678459cf4addaedd9936bbb038e35b3f6b2061330fd8f2f6a1d80414c0f87", size = 278278, upload_time = "2025-10-19T22:29:43.809Z" }, - { url = "https://files.pythonhosted.org/packages/a2/51/680fb6352d0bbade04036da46264a8001f74b7484e2fd1f4da9e3db1c666/fastuuid-0.14.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1e3cc56742f76cd25ecb98e4b82a25f978ccffba02e4bdce8aba857b6d85d87b", size = 301788, upload_time = "2025-10-19T22:36:06.825Z" }, - { url = "https://files.pythonhosted.org/packages/fa/7c/2014b5785bd8ebdab04ec857635ebd84d5ee4950186a577db9eff0fb8ff6/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cb9a030f609194b679e1660f7e32733b7a0f332d519c5d5a6a0a580991290022", size = 459819, upload_time = "2025-10-19T22:35:31.623Z" }, - { url = "https://files.pythonhosted.org/packages/01/d2/524d4ceeba9160e7a9bc2ea3e8f4ccf1ad78f3bde34090ca0c51f09a5e91/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:09098762aad4f8da3a888eb9ae01c84430c907a297b97166b8abc07b640f2995", size = 478546, upload_time = "2025-10-19T22:26:03.023Z" }, - { url = "https://files.pythonhosted.org/packages/bc/17/354d04951ce114bf4afc78e27a18cfbd6ee319ab1829c2d5fb5e94063ac6/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1383fff584fa249b16329a059c68ad45d030d5a4b70fb7c73a08d98fd53bcdab", size = 450921, upload_time = "2025-10-19T22:31:02.151Z" }, - { url = "https://files.pythonhosted.org/packages/fb/be/d7be8670151d16d88f15bb121c5b66cdb5ea6a0c2a362d0dcf30276ade53/fastuuid-0.14.0-cp313-cp313-win32.whl", hash = "sha256:a0809f8cc5731c066c909047f9a314d5f536c871a7a22e815cc4967c110ac9ad", size = 154559, upload_time = "2025-10-19T22:36:36.011Z" }, - { url = "https://files.pythonhosted.org/packages/22/1d/5573ef3624ceb7abf4a46073d3554e37191c868abc3aecd5289a72f9810a/fastuuid-0.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:0df14e92e7ad3276327631c9e7cec09e32572ce82089c55cb1bb8df71cf394ed", size = 156539, upload_time = "2025-10-19T22:33:35.898Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/c3/7d/d9daedf0f2ebcacd20d599928f8913e9d2aea1d56d2d355a93bfa2b611d7/fastuuid-0.14.0.tar.gz", hash = "sha256:178947fc2f995b38497a74172adee64fdeb8b7ec18f2a5934d037641ba265d26", size = 18232, upload-time = "2025-10-19T22:19:22.402Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/b2/731a6696e37cd20eed353f69a09f37a984a43c9713764ee3f7ad5f57f7f9/fastuuid-0.14.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:6e6243d40f6c793c3e2ee14c13769e341b90be5ef0c23c82fa6515a96145181a", size = 516760, upload-time = "2025-10-19T22:25:21.509Z" }, + { url = "https://files.pythonhosted.org/packages/c5/79/c73c47be2a3b8734d16e628982653517f80bbe0570e27185d91af6096507/fastuuid-0.14.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:13ec4f2c3b04271f62be2e1ce7e95ad2dd1cf97e94503a3760db739afbd48f00", size = 264748, upload-time = "2025-10-19T22:41:52.873Z" }, + { url = "https://files.pythonhosted.org/packages/24/c5/84c1eea05977c8ba5173555b0133e3558dc628bcf868d6bf1689ff14aedc/fastuuid-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b2fdd48b5e4236df145a149d7125badb28e0a383372add3fbaac9a6b7a394470", size = 254537, upload-time = "2025-10-19T22:33:55.603Z" }, + { url = "https://files.pythonhosted.org/packages/0e/23/4e362367b7fa17dbed646922f216b9921efb486e7abe02147e4b917359f8/fastuuid-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f74631b8322d2780ebcf2d2d75d58045c3e9378625ec51865fe0b5620800c39d", size = 278994, upload-time = "2025-10-19T22:26:17.631Z" }, + { url = "https://files.pythonhosted.org/packages/b2/72/3985be633b5a428e9eaec4287ed4b873b7c4c53a9639a8b416637223c4cd/fastuuid-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83cffc144dc93eb604b87b179837f2ce2af44871a7b323f2bfed40e8acb40ba8", size = 280003, upload-time = "2025-10-19T22:23:45.415Z" }, + { url = "https://files.pythonhosted.org/packages/b3/6d/6ef192a6df34e2266d5c9deb39cd3eea986df650cbcfeaf171aa52a059c3/fastuuid-0.14.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a771f135ab4523eb786e95493803942a5d1fc1610915f131b363f55af53b219", size = 303583, upload-time = "2025-10-19T22:26:00.756Z" }, + { url = "https://files.pythonhosted.org/packages/9d/11/8a2ea753c68d4fece29d5d7c6f3f903948cc6e82d1823bc9f7f7c0355db3/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4edc56b877d960b4eda2c4232f953a61490c3134da94f3c28af129fb9c62a4f6", size = 460955, upload-time = "2025-10-19T22:36:25.196Z" }, + { url = "https://files.pythonhosted.org/packages/23/42/7a32c93b6ce12642d9a152ee4753a078f372c9ebb893bc489d838dd4afd5/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bcc96ee819c282e7c09b2eed2b9bd13084e3b749fdb2faf58c318d498df2efbe", size = 480763, upload-time = "2025-10-19T22:24:28.451Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e9/a5f6f686b46e3ed4ed3b93770111c233baac87dd6586a411b4988018ef1d/fastuuid-0.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7a3c0bca61eacc1843ea97b288d6789fbad7400d16db24e36a66c28c268cfe3d", size = 452613, upload-time = "2025-10-19T22:25:06.827Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c9/18abc73c9c5b7fc0e476c1733b678783b2e8a35b0be9babd423571d44e98/fastuuid-0.14.0-cp310-cp310-win32.whl", hash = "sha256:7f2f3efade4937fae4e77efae1af571902263de7b78a0aee1a1653795a093b2a", size = 155045, upload-time = "2025-10-19T22:28:32.732Z" }, + { url = "https://files.pythonhosted.org/packages/5e/8a/d9e33f4eb4d4f6d9f2c5c7d7e96b5cdbb535c93f3b1ad6acce97ee9d4bf8/fastuuid-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:ae64ba730d179f439b0736208b4c279b8bc9c089b102aec23f86512ea458c8a4", size = 156122, upload-time = "2025-10-19T22:23:15.59Z" }, + { url = "https://files.pythonhosted.org/packages/98/f3/12481bda4e5b6d3e698fbf525df4443cc7dce746f246b86b6fcb2fba1844/fastuuid-0.14.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:73946cb950c8caf65127d4e9a325e2b6be0442a224fd51ba3b6ac44e1912ce34", size = 516386, upload-time = "2025-10-19T22:42:40.176Z" }, + { url = "https://files.pythonhosted.org/packages/59/19/2fc58a1446e4d72b655648eb0879b04e88ed6fa70d474efcf550f640f6ec/fastuuid-0.14.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:12ac85024637586a5b69645e7ed986f7535106ed3013640a393a03e461740cb7", size = 264569, upload-time = "2025-10-19T22:25:50.977Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/3c74756e5b02c40cfcc8b1d8b5bac4edbd532b55917a6bcc9113550e99d1/fastuuid-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:05a8dde1f395e0c9b4be515b7a521403d1e8349443e7641761af07c7ad1624b1", size = 254366, upload-time = "2025-10-19T22:29:49.166Z" }, + { url = "https://files.pythonhosted.org/packages/52/96/d761da3fccfa84f0f353ce6e3eb8b7f76b3aa21fd25e1b00a19f9c80a063/fastuuid-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09378a05020e3e4883dfdab438926f31fea15fd17604908f3d39cbeb22a0b4dc", size = 278978, upload-time = "2025-10-19T22:35:41.306Z" }, + { url = "https://files.pythonhosted.org/packages/fc/c2/f84c90167cc7765cb82b3ff7808057608b21c14a38531845d933a4637307/fastuuid-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bbb0c4b15d66b435d2538f3827f05e44e2baafcc003dd7d8472dc67807ab8fd8", size = 279692, upload-time = "2025-10-19T22:25:36.997Z" }, + { url = "https://files.pythonhosted.org/packages/af/7b/4bacd03897b88c12348e7bd77943bac32ccf80ff98100598fcff74f75f2e/fastuuid-0.14.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cd5a7f648d4365b41dbf0e38fe8da4884e57bed4e77c83598e076ac0c93995e7", size = 303384, upload-time = "2025-10-19T22:29:46.578Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a2/584f2c29641df8bd810d00c1f21d408c12e9ad0c0dafdb8b7b29e5ddf787/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c0a94245afae4d7af8c43b3159d5e3934c53f47140be0be624b96acd672ceb73", size = 460921, upload-time = "2025-10-19T22:36:42.006Z" }, + { url = "https://files.pythonhosted.org/packages/24/68/c6b77443bb7764c760e211002c8638c0c7cce11cb584927e723215ba1398/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:2b29e23c97e77c3a9514d70ce343571e469098ac7f5a269320a0f0b3e193ab36", size = 480575, upload-time = "2025-10-19T22:28:18.975Z" }, + { url = "https://files.pythonhosted.org/packages/5a/87/93f553111b33f9bb83145be12868c3c475bf8ea87c107063d01377cc0e8e/fastuuid-0.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1e690d48f923c253f28151b3a6b4e335f2b06bf669c68a02665bc150b7839e94", size = 452317, upload-time = "2025-10-19T22:25:32.75Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8c/a04d486ca55b5abb7eaa65b39df8d891b7b1635b22db2163734dc273579a/fastuuid-0.14.0-cp311-cp311-win32.whl", hash = "sha256:a6f46790d59ab38c6aa0e35c681c0484b50dc0acf9e2679c005d61e019313c24", size = 154804, upload-time = "2025-10-19T22:24:15.615Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b2/2d40bf00820de94b9280366a122cbaa60090c8cf59e89ac3938cf5d75895/fastuuid-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:e150eab56c95dc9e3fefc234a0eedb342fac433dacc273cd4d150a5b0871e1fa", size = 156099, upload-time = "2025-10-19T22:24:31.646Z" }, + { url = "https://files.pythonhosted.org/packages/02/a2/e78fcc5df65467f0d207661b7ef86c5b7ac62eea337c0c0fcedbeee6fb13/fastuuid-0.14.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:77e94728324b63660ebf8adb27055e92d2e4611645bf12ed9d88d30486471d0a", size = 510164, upload-time = "2025-10-19T22:31:45.635Z" }, + { url = "https://files.pythonhosted.org/packages/2b/b3/c846f933f22f581f558ee63f81f29fa924acd971ce903dab1a9b6701816e/fastuuid-0.14.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:caa1f14d2102cb8d353096bc6ef6c13b2c81f347e6ab9d6fbd48b9dea41c153d", size = 261837, upload-time = "2025-10-19T22:38:38.53Z" }, + { url = "https://files.pythonhosted.org/packages/54/ea/682551030f8c4fa9a769d9825570ad28c0c71e30cf34020b85c1f7ee7382/fastuuid-0.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d23ef06f9e67163be38cece704170486715b177f6baae338110983f99a72c070", size = 251370, upload-time = "2025-10-19T22:40:26.07Z" }, + { url = "https://files.pythonhosted.org/packages/14/dd/5927f0a523d8e6a76b70968e6004966ee7df30322f5fc9b6cdfb0276646a/fastuuid-0.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c9ec605ace243b6dbe3bd27ebdd5d33b00d8d1d3f580b39fdd15cd96fd71796", size = 277766, upload-time = "2025-10-19T22:37:23.779Z" }, + { url = "https://files.pythonhosted.org/packages/16/6e/c0fb547eef61293153348f12e0f75a06abb322664b34a1573a7760501336/fastuuid-0.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:808527f2407f58a76c916d6aa15d58692a4a019fdf8d4c32ac7ff303b7d7af09", size = 278105, upload-time = "2025-10-19T22:26:56.821Z" }, + { url = "https://files.pythonhosted.org/packages/2d/b1/b9c75e03b768f61cf2e84ee193dc18601aeaf89a4684b20f2f0e9f52b62c/fastuuid-0.14.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fb3c0d7fef6674bbeacdd6dbd386924a7b60b26de849266d1ff6602937675c8", size = 301564, upload-time = "2025-10-19T22:30:31.604Z" }, + { url = "https://files.pythonhosted.org/packages/fc/fa/f7395fdac07c7a54f18f801744573707321ca0cee082e638e36452355a9d/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab3f5d36e4393e628a4df337c2c039069344db5f4b9d2a3c9cea48284f1dd741", size = 459659, upload-time = "2025-10-19T22:31:32.341Z" }, + { url = "https://files.pythonhosted.org/packages/66/49/c9fd06a4a0b1f0f048aacb6599e7d96e5d6bc6fa680ed0d46bf111929d1b/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:b9a0ca4f03b7e0b01425281ffd44e99d360e15c895f1907ca105854ed85e2057", size = 478430, upload-time = "2025-10-19T22:26:22.962Z" }, + { url = "https://files.pythonhosted.org/packages/be/9c/909e8c95b494e8e140e8be6165d5fc3f61fdc46198c1554df7b3e1764471/fastuuid-0.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3acdf655684cc09e60fb7e4cf524e8f42ea760031945aa8086c7eae2eeeabeb8", size = 450894, upload-time = "2025-10-19T22:27:01.647Z" }, + { url = "https://files.pythonhosted.org/packages/90/eb/d29d17521976e673c55ef7f210d4cdd72091a9ec6755d0fd4710d9b3c871/fastuuid-0.14.0-cp312-cp312-win32.whl", hash = "sha256:9579618be6280700ae36ac42c3efd157049fe4dd40ca49b021280481c78c3176", size = 154374, upload-time = "2025-10-19T22:29:19.879Z" }, + { url = "https://files.pythonhosted.org/packages/cc/fc/f5c799a6ea6d877faec0472d0b27c079b47c86b1cdc577720a5386483b36/fastuuid-0.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:d9e4332dc4ba054434a9594cbfaf7823b57993d7d8e7267831c3e059857cf397", size = 156550, upload-time = "2025-10-19T22:27:49.658Z" }, + { url = "https://files.pythonhosted.org/packages/a5/83/ae12dd39b9a39b55d7f90abb8971f1a5f3c321fd72d5aa83f90dc67fe9ed/fastuuid-0.14.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:77a09cb7427e7af74c594e409f7731a0cf887221de2f698e1ca0ebf0f3139021", size = 510720, upload-time = "2025-10-19T22:42:34.633Z" }, + { url = "https://files.pythonhosted.org/packages/53/b0/a4b03ff5d00f563cc7546b933c28cb3f2a07344b2aec5834e874f7d44143/fastuuid-0.14.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:9bd57289daf7b153bfa3e8013446aa144ce5e8c825e9e366d455155ede5ea2dc", size = 262024, upload-time = "2025-10-19T22:30:25.482Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6d/64aee0a0f6a58eeabadd582e55d0d7d70258ffdd01d093b30c53d668303b/fastuuid-0.14.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ac60fc860cdf3c3f327374db87ab8e064c86566ca8c49d2e30df15eda1b0c2d5", size = 251679, upload-time = "2025-10-19T22:36:14.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/f5/a7e9cda8369e4f7919d36552db9b2ae21db7915083bc6336f1b0082c8b2e/fastuuid-0.14.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab32f74bd56565b186f036e33129da77db8be09178cd2f5206a5d4035fb2a23f", size = 277862, upload-time = "2025-10-19T22:36:23.302Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d3/8ce11827c783affffd5bd4d6378b28eb6cc6d2ddf41474006b8d62e7448e/fastuuid-0.14.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33e678459cf4addaedd9936bbb038e35b3f6b2061330fd8f2f6a1d80414c0f87", size = 278278, upload-time = "2025-10-19T22:29:43.809Z" }, + { url = "https://files.pythonhosted.org/packages/a2/51/680fb6352d0bbade04036da46264a8001f74b7484e2fd1f4da9e3db1c666/fastuuid-0.14.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1e3cc56742f76cd25ecb98e4b82a25f978ccffba02e4bdce8aba857b6d85d87b", size = 301788, upload-time = "2025-10-19T22:36:06.825Z" }, + { url = "https://files.pythonhosted.org/packages/fa/7c/2014b5785bd8ebdab04ec857635ebd84d5ee4950186a577db9eff0fb8ff6/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cb9a030f609194b679e1660f7e32733b7a0f332d519c5d5a6a0a580991290022", size = 459819, upload-time = "2025-10-19T22:35:31.623Z" }, + { url = "https://files.pythonhosted.org/packages/01/d2/524d4ceeba9160e7a9bc2ea3e8f4ccf1ad78f3bde34090ca0c51f09a5e91/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:09098762aad4f8da3a888eb9ae01c84430c907a297b97166b8abc07b640f2995", size = 478546, upload-time = "2025-10-19T22:26:03.023Z" }, + { url = "https://files.pythonhosted.org/packages/bc/17/354d04951ce114bf4afc78e27a18cfbd6ee319ab1829c2d5fb5e94063ac6/fastuuid-0.14.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:1383fff584fa249b16329a059c68ad45d030d5a4b70fb7c73a08d98fd53bcdab", size = 450921, upload-time = "2025-10-19T22:31:02.151Z" }, + { url = "https://files.pythonhosted.org/packages/fb/be/d7be8670151d16d88f15bb121c5b66cdb5ea6a0c2a362d0dcf30276ade53/fastuuid-0.14.0-cp313-cp313-win32.whl", hash = "sha256:a0809f8cc5731c066c909047f9a314d5f536c871a7a22e815cc4967c110ac9ad", size = 154559, upload-time = "2025-10-19T22:36:36.011Z" }, + { url = "https://files.pythonhosted.org/packages/22/1d/5573ef3624ceb7abf4a46073d3554e37191c868abc3aecd5289a72f9810a/fastuuid-0.14.0-cp313-cp313-win_amd64.whl", hash = "sha256:0df14e92e7ad3276327631c9e7cec09e32572ce82089c55cb1bb8df71cf394ed", size = 156539, upload-time = "2025-10-19T22:33:35.898Z" }, ] [[package]] name = "filelock" version = "3.24.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/a8/dae62680be63cbb3ff87cfa2f51cf766269514ea5488479d42fec5aa6f3a/filelock-3.24.2.tar.gz", hash = "sha256:c22803117490f156e59fafce621f0550a7a853e2bbf4f87f112b11d469b6c81b", size = 37601, upload_time = "2026-02-16T02:50:45.614Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/a8/dae62680be63cbb3ff87cfa2f51cf766269514ea5488479d42fec5aa6f3a/filelock-3.24.2.tar.gz", hash = "sha256:c22803117490f156e59fafce621f0550a7a853e2bbf4f87f112b11d469b6c81b", size = 37601, upload-time = "2026-02-16T02:50:45.614Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/04/a94ebfb4eaaa08db56725a40de2887e95de4e8641b9e902c311bfa00aa39/filelock-3.24.2-py3-none-any.whl", hash = "sha256:667d7dc0b7d1e1064dd5f8f8e80bdac157a6482e8d2e02cd16fd3b6b33bd6556", size = 24152, upload_time = "2026-02-16T02:50:44Z" }, + { url = "https://files.pythonhosted.org/packages/e7/04/a94ebfb4eaaa08db56725a40de2887e95de4e8641b9e902c311bfa00aa39/filelock-3.24.2-py3-none-any.whl", hash = "sha256:667d7dc0b7d1e1064dd5f8f8e80bdac157a6482e8d2e02cd16fd3b6b33bd6556", size = 24152, upload-time = "2026-02-16T02:50:44Z" }, ] [[package]] name = "fqdn" version = "1.5.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload_time = "2021-03-11T07:16:29.08Z" } +sdist = { url = "https://files.pythonhosted.org/packages/30/3e/a80a8c077fd798951169626cde3e239adeba7dab75deb3555716415bd9b0/fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f", size = 6015, upload-time = "2021-03-11T07:16:29.08Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload_time = "2021-03-11T07:16:28.351Z" }, + { url = "https://files.pythonhosted.org/packages/cf/58/8acf1b3e91c58313ce5cb67df61001fc9dcd21be4fadb76c1a2d540e09ed/fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014", size = 9121, upload-time = "2021-03-11T07:16:28.351Z" }, ] [[package]] name = "frozenlist" version = "1.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload_time = "2025-10-06T05:38:17.865Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230, upload_time = "2025-10-06T05:35:23.699Z" }, - { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621, upload_time = "2025-10-06T05:35:25.341Z" }, - { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889, upload_time = "2025-10-06T05:35:26.797Z" }, - { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464, upload_time = "2025-10-06T05:35:28.254Z" }, - { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649, upload_time = "2025-10-06T05:35:29.454Z" }, - { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188, upload_time = "2025-10-06T05:35:30.951Z" }, - { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748, upload_time = "2025-10-06T05:35:32.101Z" }, - { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351, upload_time = "2025-10-06T05:35:33.834Z" }, - { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767, upload_time = "2025-10-06T05:35:35.205Z" }, - { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887, upload_time = "2025-10-06T05:35:36.354Z" }, - { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785, upload_time = "2025-10-06T05:35:37.949Z" }, - { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312, upload_time = "2025-10-06T05:35:39.178Z" }, - { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650, upload_time = "2025-10-06T05:35:40.377Z" }, - { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659, upload_time = "2025-10-06T05:35:41.863Z" }, - { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837, upload_time = "2025-10-06T05:35:43.205Z" }, - { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989, upload_time = "2025-10-06T05:35:44.596Z" }, - { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload_time = "2025-10-06T05:35:45.98Z" }, - { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload_time = "2025-10-06T05:35:47.009Z" }, - { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload_time = "2025-10-06T05:35:48.38Z" }, - { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload_time = "2025-10-06T05:35:49.97Z" }, - { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload_time = "2025-10-06T05:35:51.729Z" }, - { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload_time = "2025-10-06T05:35:53.246Z" }, - { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload_time = "2025-10-06T05:35:54.497Z" }, - { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload_time = "2025-10-06T05:35:55.861Z" }, - { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload_time = "2025-10-06T05:35:57.399Z" }, - { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload_time = "2025-10-06T05:35:58.563Z" }, - { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload_time = "2025-10-06T05:35:59.719Z" }, - { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload_time = "2025-10-06T05:36:00.959Z" }, - { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload_time = "2025-10-06T05:36:02.22Z" }, - { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload_time = "2025-10-06T05:36:03.409Z" }, - { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload_time = "2025-10-06T05:36:04.368Z" }, - { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload_time = "2025-10-06T05:36:05.669Z" }, - { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload_time = "2025-10-06T05:36:06.649Z" }, - { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload_time = "2025-10-06T05:36:07.69Z" }, - { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload_time = "2025-10-06T05:36:08.78Z" }, - { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload_time = "2025-10-06T05:36:09.801Z" }, - { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload_time = "2025-10-06T05:36:11.394Z" }, - { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload_time = "2025-10-06T05:36:12.598Z" }, - { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload_time = "2025-10-06T05:36:14.065Z" }, - { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload_time = "2025-10-06T05:36:15.39Z" }, - { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload_time = "2025-10-06T05:36:16.558Z" }, - { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload_time = "2025-10-06T05:36:17.821Z" }, - { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload_time = "2025-10-06T05:36:19.046Z" }, - { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload_time = "2025-10-06T05:36:20.763Z" }, - { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload_time = "2025-10-06T05:36:22.129Z" }, - { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload_time = "2025-10-06T05:36:23.661Z" }, - { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload_time = "2025-10-06T05:36:24.958Z" }, - { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload_time = "2025-10-06T05:36:26.333Z" }, - { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload_time = "2025-10-06T05:36:27.341Z" }, - { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload_time = "2025-10-06T05:36:28.855Z" }, - { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload_time = "2025-10-06T05:36:29.877Z" }, - { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload_time = "2025-10-06T05:36:31.301Z" }, - { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload_time = "2025-10-06T05:36:32.531Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload_time = "2025-10-06T05:36:33.706Z" }, - { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload_time = "2025-10-06T05:36:34.947Z" }, - { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload_time = "2025-10-06T05:36:36.534Z" }, - { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload_time = "2025-10-06T05:36:38.582Z" }, - { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload_time = "2025-10-06T05:36:40.152Z" }, - { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload_time = "2025-10-06T05:36:41.355Z" }, - { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload_time = "2025-10-06T05:36:42.716Z" }, - { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload_time = "2025-10-06T05:36:44.251Z" }, - { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload_time = "2025-10-06T05:36:45.423Z" }, - { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload_time = "2025-10-06T05:36:46.796Z" }, - { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload_time = "2025-10-06T05:36:47.8Z" }, - { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload_time = "2025-10-06T05:36:48.78Z" }, - { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload_time = "2025-10-06T05:36:49.837Z" }, - { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload_time = "2025-10-06T05:36:50.851Z" }, - { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload_time = "2025-10-06T05:36:51.898Z" }, - { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload_time = "2025-10-06T05:36:53.101Z" }, - { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload_time = "2025-10-06T05:36:54.309Z" }, - { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload_time = "2025-10-06T05:36:55.566Z" }, - { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload_time = "2025-10-06T05:36:56.758Z" }, - { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload_time = "2025-10-06T05:36:57.965Z" }, - { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload_time = "2025-10-06T05:36:59.237Z" }, - { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload_time = "2025-10-06T05:37:00.811Z" }, - { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload_time = "2025-10-06T05:37:02.115Z" }, - { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload_time = "2025-10-06T05:37:03.711Z" }, - { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload_time = "2025-10-06T05:37:04.915Z" }, - { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload_time = "2025-10-06T05:37:06.343Z" }, - { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload_time = "2025-10-06T05:37:07.431Z" }, - { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload_time = "2025-10-06T05:38:16.721Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/4a/557715d5047da48d54e659203b9335be7bfaafda2c3f627b7c47e0b3aaf3/frozenlist-1.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b37f6d31b3dcea7deb5e9696e529a6aa4a898adc33db82da12e4c60a7c4d2011", size = 86230, upload-time = "2025-10-06T05:35:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/a2/fb/c85f9fed3ea8fe8740e5b46a59cc141c23b842eca617da8876cfce5f760e/frozenlist-1.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef2b7b394f208233e471abc541cc6991f907ffd47dc72584acee3147899d6565", size = 49621, upload-time = "2025-10-06T05:35:25.341Z" }, + { url = "https://files.pythonhosted.org/packages/63/70/26ca3f06aace16f2352796b08704338d74b6d1a24ca38f2771afbb7ed915/frozenlist-1.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a88f062f072d1589b7b46e951698950e7da00442fc1cacbe17e19e025dc327ad", size = 49889, upload-time = "2025-10-06T05:35:26.797Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ed/c7895fd2fde7f3ee70d248175f9b6cdf792fb741ab92dc59cd9ef3bd241b/frozenlist-1.8.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f57fb59d9f385710aa7060e89410aeb5058b99e62f4d16b08b91986b9a2140c2", size = 219464, upload-time = "2025-10-06T05:35:28.254Z" }, + { url = "https://files.pythonhosted.org/packages/6b/83/4d587dccbfca74cb8b810472392ad62bfa100bf8108c7223eb4c4fa2f7b3/frozenlist-1.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:799345ab092bee59f01a915620b5d014698547afd011e691a208637312db9186", size = 221649, upload-time = "2025-10-06T05:35:29.454Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c6/fd3b9cd046ec5fff9dab66831083bc2077006a874a2d3d9247dea93ddf7e/frozenlist-1.8.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c23c3ff005322a6e16f71bf8692fcf4d5a304aaafe1e262c98c6d4adc7be863e", size = 219188, upload-time = "2025-10-06T05:35:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ce/80/6693f55eb2e085fc8afb28cf611448fb5b90e98e068fa1d1b8d8e66e5c7d/frozenlist-1.8.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8a76ea0f0b9dfa06f254ee06053d93a600865b3274358ca48a352ce4f0798450", size = 231748, upload-time = "2025-10-06T05:35:32.101Z" }, + { url = "https://files.pythonhosted.org/packages/97/d6/e9459f7c5183854abd989ba384fe0cc1a0fb795a83c033f0571ec5933ca4/frozenlist-1.8.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c7366fe1418a6133d5aa824ee53d406550110984de7637d65a178010f759c6ef", size = 236351, upload-time = "2025-10-06T05:35:33.834Z" }, + { url = "https://files.pythonhosted.org/packages/97/92/24e97474b65c0262e9ecd076e826bfd1d3074adcc165a256e42e7b8a7249/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:13d23a45c4cebade99340c4165bd90eeb4a56c6d8a9d8aa49568cac19a6d0dc4", size = 218767, upload-time = "2025-10-06T05:35:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/ee/bf/dc394a097508f15abff383c5108cb8ad880d1f64a725ed3b90d5c2fbf0bb/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:e4a3408834f65da56c83528fb52ce7911484f0d1eaf7b761fc66001db1646eff", size = 235887, upload-time = "2025-10-06T05:35:36.354Z" }, + { url = "https://files.pythonhosted.org/packages/40/90/25b201b9c015dbc999a5baf475a257010471a1fa8c200c843fd4abbee725/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:42145cd2748ca39f32801dad54aeea10039da6f86e303659db90db1c4b614c8c", size = 228785, upload-time = "2025-10-06T05:35:37.949Z" }, + { url = "https://files.pythonhosted.org/packages/84/f4/b5bc148df03082f05d2dd30c089e269acdbe251ac9a9cf4e727b2dbb8a3d/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e2de870d16a7a53901e41b64ffdf26f2fbb8917b3e6ebf398098d72c5b20bd7f", size = 230312, upload-time = "2025-10-06T05:35:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/db/4b/87e95b5d15097c302430e647136b7d7ab2398a702390cf4c8601975709e7/frozenlist-1.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:20e63c9493d33ee48536600d1a5c95eefc870cd71e7ab037763d1fbb89cc51e7", size = 217650, upload-time = "2025-10-06T05:35:40.377Z" }, + { url = "https://files.pythonhosted.org/packages/e5/70/78a0315d1fea97120591a83e0acd644da638c872f142fd72a6cebee825f3/frozenlist-1.8.0-cp310-cp310-win32.whl", hash = "sha256:adbeebaebae3526afc3c96fad434367cafbfd1b25d72369a9e5858453b1bb71a", size = 39659, upload-time = "2025-10-06T05:35:41.863Z" }, + { url = "https://files.pythonhosted.org/packages/66/aa/3f04523fb189a00e147e60c5b2205126118f216b0aa908035c45336e27e4/frozenlist-1.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:667c3777ca571e5dbeb76f331562ff98b957431df140b54c85fd4d52eea8d8f6", size = 43837, upload-time = "2025-10-06T05:35:43.205Z" }, + { url = "https://files.pythonhosted.org/packages/39/75/1135feecdd7c336938bd55b4dc3b0dfc46d85b9be12ef2628574b28de776/frozenlist-1.8.0-cp310-cp310-win_arm64.whl", hash = "sha256:80f85f0a7cc86e7a54c46d99c9e1318ff01f4687c172ede30fd52d19d1da1c8e", size = 39989, upload-time = "2025-10-06T05:35:44.596Z" }, + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, ] [[package]] name = "fsspec" version = "2026.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/7c/f60c259dcbf4f0c47cc4ddb8f7720d2dcdc8888c8e5ad84c73ea4531cc5b/fsspec-2026.2.0.tar.gz", hash = "sha256:6544e34b16869f5aacd5b90bdf1a71acb37792ea3ddf6125ee69a22a53fb8bff", size = 313441, upload_time = "2026-02-05T21:50:53.743Z" } +sdist = { url = "https://files.pythonhosted.org/packages/51/7c/f60c259dcbf4f0c47cc4ddb8f7720d2dcdc8888c8e5ad84c73ea4531cc5b/fsspec-2026.2.0.tar.gz", hash = "sha256:6544e34b16869f5aacd5b90bdf1a71acb37792ea3ddf6125ee69a22a53fb8bff", size = 313441, upload-time = "2026-02-05T21:50:53.743Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl", hash = "sha256:98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437", size = 202505, upload_time = "2026-02-05T21:50:51.819Z" }, + { url = "https://files.pythonhosted.org/packages/e6/ab/fb21f4c939bb440104cc2b396d3be1d9b7a9fd3c6c2a53d98c45b3d7c954/fsspec-2026.2.0-py3-none-any.whl", hash = "sha256:98de475b5cb3bd66bedd5c4679e87b4fdfe1a3bf4d707b151b3c07e58c9a2437", size = 202505, upload-time = "2026-02-05T21:50:51.819Z" }, ] [[package]] @@ -1156,9 +1158,44 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wcwidth" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/d3/8650919bc3c7c6e90ee3fa7fd618bf373cbbe55dff043bd67353dbb20cd8/ftfy-6.3.1.tar.gz", hash = "sha256:9b3c3d90f84fb267fe64d375a07b7f8912d817cf86009ae134aa03e1819506ec", size = 308927, upload_time = "2024-10-26T00:50:35.149Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/d3/8650919bc3c7c6e90ee3fa7fd618bf373cbbe55dff043bd67353dbb20cd8/ftfy-6.3.1.tar.gz", hash = "sha256:9b3c3d90f84fb267fe64d375a07b7f8912d817cf86009ae134aa03e1819506ec", size = 308927, upload-time = "2024-10-26T00:50:35.149Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/6e/81d47999aebc1b155f81eca4477a616a70f238a2549848c38983f3c22a82/ftfy-6.3.1-py3-none-any.whl", hash = "sha256:7c70eb532015cd2f9adb53f101fb6c7945988d023a085d127d1573dc49dd0083", size = 44821, upload_time = "2024-10-26T00:50:33.425Z" }, + { url = "https://files.pythonhosted.org/packages/ab/6e/81d47999aebc1b155f81eca4477a616a70f238a2549848c38983f3c22a82/ftfy-6.3.1-py3-none-any.whl", hash = "sha256:7c70eb532015cd2f9adb53f101fb6c7945988d023a085d127d1573dc49dd0083", size = 44821, upload-time = "2024-10-26T00:50:33.425Z" }, +] + +[[package]] +name = "fuzzysearch" +version = "0.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/b4/d92b429ba4bfe5461faa358f84092eceb5ea8985cd2e448daf38bba17737/fuzzysearch-0.8.1.tar.gz", hash = "sha256:e5f50962c6b1c3dfc6c8cdfd5e2604838c95cb10118e4cab518e5292e9e0b1c6", size = 39510, upload-time = "2025-11-11T08:47:10.321Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/60/07436c45651c310dac13f0eb383da5e3b34d717ffecf769b019ff5ab6b4c/fuzzysearch-0.8.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9d25c1e260f38dfda74cbbfd51211e4e644867d023131a5b8061050212d9a0d6", size = 31826, upload-time = "2025-11-11T08:46:20.779Z" }, + { url = "https://files.pythonhosted.org/packages/ce/6d/a771c014836bed5e074abf7bdd670370359453b7f935b664f86f899bb935/fuzzysearch-0.8.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:757f8d680411df73828bd3981613a8322ba18f9cf7e4a53792ad52c0f5203e09", size = 32541, upload-time = "2025-11-11T08:46:22.48Z" }, + { url = "https://files.pythonhosted.org/packages/75/55/b2c854fcdfde9a893985181495d05659739fc0d17f4515c0f3a7f4763058/fuzzysearch-0.8.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bd4f9e18b5decb8603d96b477e49dd3b81743bdc77dc5389f51eb4f8abc621", size = 54539, upload-time = "2025-11-11T08:46:23.502Z" }, + { url = "https://files.pythonhosted.org/packages/e8/9c/f85a643489dc9f3bd549940e6c47e44393f35684730f935fd23583244f84/fuzzysearch-0.8.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2acd7c3940f063e35bf34619100fa58ff88985264777f908458503a89b9bb33", size = 56279, upload-time = "2025-11-11T08:46:24.934Z" }, + { url = "https://files.pythonhosted.org/packages/98/0b/778a54487be30a7e1e5b3788cac7d2ee4e7134460a1db258fb72691958b0/fuzzysearch-0.8.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:928cef6c24b21120abb37e5bdd8a89dd2f71fb07af1e867c6ced282de81c0cc8", size = 55449, upload-time = "2025-11-11T08:46:26.025Z" }, + { url = "https://files.pythonhosted.org/packages/6e/80/70e5f0940555b62885c9a39e6fbc339875cd71d4149f66f28cfaf982d1fe/fuzzysearch-0.8.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e04ec175642e945b16ce01d2d61d1640385577b470301cf8d8c9545c01eb9ae0", size = 55619, upload-time = "2025-11-11T08:46:27.51Z" }, + { url = "https://files.pythonhosted.org/packages/ca/08/c2c6d04585f44ed8f6145bba383cace482237ae3d1acae9cc577d01f387a/fuzzysearch-0.8.1-cp310-cp310-win32.whl", hash = "sha256:7fac1c6db91dbaf9c5874ec9e87db884aa48bfdc264e8868af315d61140ba629", size = 35192, upload-time = "2025-11-11T08:46:28.96Z" }, + { url = "https://files.pythonhosted.org/packages/db/ee/4af7df35303ef8a3f095de2c6bea0ec2eeaf149e4b324c9f1408b778a7cb/fuzzysearch-0.8.1-cp310-cp310-win_amd64.whl", hash = "sha256:797d4f6470e8287cdd0ca8de9993fdc932ce51ea75cd4ea963ce1e71dc20bc2a", size = 36798, upload-time = "2025-11-11T08:46:30.317Z" }, + { url = "https://files.pythonhosted.org/packages/f8/20/5fdd4fb37746a0b87104731e7237e7efb98e12cb0d91181ea9249a6ad14b/fuzzysearch-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:def3fc3379d3390cba7e2a34c55888b619484172f59b985f10e9784d79d6f14b", size = 31825, upload-time = "2025-11-11T08:46:31.723Z" }, + { url = "https://files.pythonhosted.org/packages/0a/e4/6aba3595fa67ab9bd0ff98fea2c6453b4a9587372b80d28fdbc51927b41b/fuzzysearch-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c0e9bbcf199907beac9b3d616bf3fec1695095bf4c813ef6c90307791fe18664", size = 32540, upload-time = "2025-11-11T08:46:32.745Z" }, + { url = "https://files.pythonhosted.org/packages/b7/71/7e4bd895b69538a6fe6744308eebf2742e2ad50aec50b433374c4a30b491/fuzzysearch-0.8.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4bc99cacb03c0f64ad64e0caaeb31298819cc7db63491fc9b876dd7f88ef81d", size = 54611, upload-time = "2025-11-11T08:46:33.799Z" }, + { url = "https://files.pythonhosted.org/packages/88/96/50a2c640e5c3a161a09235a262234792d01317fab466af64ad05180389db/fuzzysearch-0.8.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:066c3dafa48b3967f7d4a343c0a7ea081af9edafb99f2915a80d33a9b0a4bfc9", size = 56286, upload-time = "2025-11-11T08:46:35.057Z" }, + { url = "https://files.pythonhosted.org/packages/4a/59/645c1c3101875d9f07d7e28b6dc5ee2bb1d4c40ae42dbea22cb858f50042/fuzzysearch-0.8.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5eda34e841745c99873e02b2b425d806dbfc075d823f813d8cd68ff12e375095", size = 55523, upload-time = "2025-11-11T08:46:36.163Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/55433fcbcfa681a0253b7bca17b1147ff771512b2f00f986c34b5beb014e/fuzzysearch-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:75d4669836d986135942268209e2b7686ed31dca552a7cf56c98e3802dbc5d9c", size = 55667, upload-time = "2025-11-11T08:46:37.852Z" }, + { url = "https://files.pythonhosted.org/packages/48/4a/064436a220277190fc2887ef5f050009d941adda9fb7232b9780e0c8d73e/fuzzysearch-0.8.1-cp311-cp311-win32.whl", hash = "sha256:80967eafa2cf44168fcd798a4bf62e6d8fd195cfb57ae62dff037cce2262b497", size = 35189, upload-time = "2025-11-11T08:46:39.382Z" }, + { url = "https://files.pythonhosted.org/packages/46/39/b5534c7b81b24d207343684f1403b16aa8f59d22e2931310a398bce650a3/fuzzysearch-0.8.1-cp311-cp311-win_amd64.whl", hash = "sha256:b3aaa93889e309efa06754570fda8e98b5a7fd63cef8b67701deac7ef201acbf", size = 36798, upload-time = "2025-11-11T08:46:40.747Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5f/0b0b2a56d59472becda3b7788e532e25d6a74451679d7d99b411a24553e7/fuzzysearch-0.8.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d3caa5c635ac87c67f58b8a50792073014989e0689263c494e81f5d2ced24101", size = 31830, upload-time = "2025-11-11T08:46:42.163Z" }, + { url = "https://files.pythonhosted.org/packages/2b/ce/f75349a22df809ea7a4433ff9e24edfbc3cfa160600f159b50e0e4e272a4/fuzzysearch-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a8187ebcfea9f76387b57a618480ff536ff2a5da67d5dd31af4c252bf8842d45", size = 32507, upload-time = "2025-11-11T08:46:43.315Z" }, + { url = "https://files.pythonhosted.org/packages/36/3c/d193b6b80d88d7e3b2c3a45fd582dedcb3b47c3bf2ffb2b85083e3b3ba8a/fuzzysearch-0.8.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5d19cf0ebfefe54737a0477defc218123a0addb9d52f43711286aab94603e288", size = 55361, upload-time = "2025-11-11T08:46:44.714Z" }, + { url = "https://files.pythonhosted.org/packages/7d/36/71a9bd65e361083ed3cbab135cd3a82ae2b089cbca6608af6106acc9017c/fuzzysearch-0.8.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85e5a4f8099517b2bfa384668160fd06b020106e86c6077d21e93a6b4fb348eb", size = 57213, upload-time = "2025-11-11T08:46:45.826Z" }, + { url = "https://files.pythonhosted.org/packages/0f/7d/23f8d9d137187f5dfececd14f16f79e8257eb0fd2e85397306474f987710/fuzzysearch-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea17a28427fb750bbec47f2169f223f81a8388e81535f90d0590efd94489f803", size = 56287, upload-time = "2025-11-11T08:46:46.924Z" }, + { url = "https://files.pythonhosted.org/packages/ac/a6/c73e8ebc7e6e4ee7f8d2c509c232781dfc79451ebda2254915e0cef17566/fuzzysearch-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f4f11634b0d22dbd36513dae77b2f794d63b0275879da050b379f91bab398225", size = 56718, upload-time = "2025-11-11T08:46:47.921Z" }, + { url = "https://files.pythonhosted.org/packages/9b/3f/29d666a60f711a77354a5b23082fe210b4d0277e5d6e9e5146cf56162315/fuzzysearch-0.8.1-cp312-cp312-win32.whl", hash = "sha256:040693ed5c6c3b15807a240b7acf535cacd12771ca5094cec1df62c960010642", size = 35104, upload-time = "2025-11-11T08:46:49.378Z" }, + { url = "https://files.pythonhosted.org/packages/58/10/f2cef42d66311554723cfc1f7295ba1a83b3dd763845219bba3120bb3c08/fuzzysearch-0.8.1-cp312-cp312-win_amd64.whl", hash = "sha256:46bb36a6c5a966d951125136379a8674377ceea9f755fd542536065a6d47d23e", size = 36766, upload-time = "2025-11-11T08:46:50.362Z" }, ] [[package]] @@ -1168,52 +1205,52 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e5/7b/adfd75544c415c487b33061fe7ae526165241c1ea133f9a9125a56b39fd8/googleapis_common_protos-1.72.0.tar.gz", hash = "sha256:e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5", size = 147433, upload_time = "2025-11-06T18:29:24.087Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e5/7b/adfd75544c415c487b33061fe7ae526165241c1ea133f9a9125a56b39fd8/googleapis_common_protos-1.72.0.tar.gz", hash = "sha256:e55a601c1b32b52d7a3e65f43563e2aa61bcd737998ee672ac9b951cd49319f5", size = 147433, upload-time = "2025-11-06T18:29:24.087Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/ab/09169d5a4612a5f92490806649ac8d41e3ec9129c636754575b3553f4ea4/googleapis_common_protos-1.72.0-py3-none-any.whl", hash = "sha256:4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", size = 297515, upload_time = "2025-11-06T18:29:13.14Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ab/09169d5a4612a5f92490806649ac8d41e3ec9129c636754575b3553f4ea4/googleapis_common_protos-1.72.0-py3-none-any.whl", hash = "sha256:4299c5a82d5ae1a9702ada957347726b167f9f8d1fc352477702a1e851ff4038", size = 297515, upload-time = "2025-11-06T18:29:13.14Z" }, ] [[package]] name = "greenlet" version = "3.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/99/1cd3411c56a410994669062bd73dd58270c00cc074cac15f385a1fd91f8a/greenlet-3.3.1.tar.gz", hash = "sha256:41848f3230b58c08bb43dee542e74a2a2e34d3c59dc3076cec9151aeeedcae98", size = 184690, upload_time = "2026-01-23T15:31:02.076Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/65/5b235b40581ad75ab97dcd8b4218022ae8e3ab77c13c919f1a1dfe9171fd/greenlet-3.3.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:04bee4775f40ecefcdaa9d115ab44736cd4b9c5fba733575bfe9379419582e13", size = 273723, upload_time = "2026-01-23T15:30:37.521Z" }, - { url = "https://files.pythonhosted.org/packages/ce/ad/eb4729b85cba2d29499e0a04ca6fbdd8f540afd7be142fd571eea43d712f/greenlet-3.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e1457f4fed12a50e427988a07f0f9df53cf0ee8da23fab16e6732c2ec909d4", size = 574874, upload_time = "2026-01-23T16:00:54.551Z" }, - { url = "https://files.pythonhosted.org/packages/87/32/57cad7fe4c8b82fdaa098c89498ef85ad92dfbb09d5eb713adedfc2ae1f5/greenlet-3.3.1-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:070472cd156f0656f86f92e954591644e158fd65aa415ffbe2d44ca77656a8f5", size = 586309, upload_time = "2026-01-23T16:05:25.18Z" }, - { url = "https://files.pythonhosted.org/packages/66/66/f041005cb87055e62b0d68680e88ec1a57f4688523d5e2fb305841bc8307/greenlet-3.3.1-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1108b61b06b5224656121c3c8ee8876161c491cbe74e5c519e0634c837cf93d5", size = 597461, upload_time = "2026-01-23T16:15:51.943Z" }, - { url = "https://files.pythonhosted.org/packages/87/eb/8a1ec2da4d55824f160594a75a9d8354a5fe0a300fb1c48e7944265217e1/greenlet-3.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a300354f27dd86bae5fbf7002e6dd2b3255cd372e9242c933faf5e859b703fe", size = 586985, upload_time = "2026-01-23T15:32:47.968Z" }, - { url = "https://files.pythonhosted.org/packages/15/1c/0621dd4321dd8c351372ee8f9308136acb628600658a49be1b7504208738/greenlet-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e84b51cbebf9ae573b5fbd15df88887815e3253fc000a7d0ff95170e8f7e9729", size = 1547271, upload_time = "2026-01-23T16:04:18.977Z" }, - { url = "https://files.pythonhosted.org/packages/9d/53/24047f8924c83bea7a59c8678d9571209c6bfe5f4c17c94a78c06024e9f2/greenlet-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0093bd1a06d899892427217f0ff2a3c8f306182b8c754336d32e2d587c131b4", size = 1613427, upload_time = "2026-01-23T15:33:44.428Z" }, - { url = "https://files.pythonhosted.org/packages/ff/07/ac9bf1ec008916d1a3373cae212884c1dcff4a4ba0d41127ce81a8deb4e9/greenlet-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:7932f5f57609b6a3b82cc11877709aa7a98e3308983ed93552a1c377069b20c8", size = 226100, upload_time = "2026-01-23T15:30:56.957Z" }, - { url = "https://files.pythonhosted.org/packages/ec/e8/2e1462c8fdbe0f210feb5ac7ad2d9029af8be3bf45bd9fa39765f821642f/greenlet-3.3.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5fd23b9bc6d37b563211c6abbb1b3cab27db385a4449af5c32e932f93017080c", size = 274974, upload_time = "2026-01-23T15:31:02.891Z" }, - { url = "https://files.pythonhosted.org/packages/7e/a8/530a401419a6b302af59f67aaf0b9ba1015855ea7e56c036b5928793c5bd/greenlet-3.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f51496a0bfbaa9d74d36a52d2580d1ef5ed4fdfcff0a73730abfbbbe1403dd", size = 577175, upload_time = "2026-01-23T16:00:56.213Z" }, - { url = "https://files.pythonhosted.org/packages/8e/89/7e812bb9c05e1aaef9b597ac1d0962b9021d2c6269354966451e885c4e6b/greenlet-3.3.1-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb0feb07fe6e6a74615ee62a880007d976cf739b6669cce95daa7373d4fc69c5", size = 590401, upload_time = "2026-01-23T16:05:26.365Z" }, - { url = "https://files.pythonhosted.org/packages/70/ae/e2d5f0e59b94a2269b68a629173263fa40b63da32f5c231307c349315871/greenlet-3.3.1-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:67ea3fc73c8cd92f42467a72b75e8f05ed51a0e9b1d15398c913416f2dafd49f", size = 601161, upload_time = "2026-01-23T16:15:53.456Z" }, - { url = "https://files.pythonhosted.org/packages/5c/ae/8d472e1f5ac5efe55c563f3eabb38c98a44b832602e12910750a7c025802/greenlet-3.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39eda9ba259cc9801da05351eaa8576e9aa83eb9411e8f0c299e05d712a210f2", size = 590272, upload_time = "2026-01-23T15:32:49.411Z" }, - { url = "https://files.pythonhosted.org/packages/a8/51/0fde34bebfcadc833550717eade64e35ec8738e6b097d5d248274a01258b/greenlet-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e2e7e882f83149f0a71ac822ebf156d902e7a5d22c9045e3e0d1daf59cee2cc9", size = 1550729, upload_time = "2026-01-23T16:04:20.867Z" }, - { url = "https://files.pythonhosted.org/packages/16/c9/2fb47bee83b25b119d5a35d580807bb8b92480a54b68fef009a02945629f/greenlet-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80aa4d79eb5564f2e0a6144fcc744b5a37c56c4a92d60920720e99210d88db0f", size = 1615552, upload_time = "2026-01-23T15:33:45.743Z" }, - { url = "https://files.pythonhosted.org/packages/1f/54/dcf9f737b96606f82f8dd05becfb8d238db0633dd7397d542a296fe9cad3/greenlet-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:32e4ca9777c5addcbf42ff3915d99030d8e00173a56f80001fb3875998fe410b", size = 226462, upload_time = "2026-01-23T15:36:50.422Z" }, - { url = "https://files.pythonhosted.org/packages/91/37/61e1015cf944ddd2337447d8e97fb423ac9bc21f9963fb5f206b53d65649/greenlet-3.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:da19609432f353fed186cc1b85e9440db93d489f198b4bdf42ae19cc9d9ac9b4", size = 225715, upload_time = "2026-01-23T15:33:17.298Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload_time = "2026-01-23T15:30:10.066Z" }, - { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload_time = "2026-01-23T16:00:57.394Z" }, - { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload_time = "2026-01-23T16:05:28.068Z" }, - { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload_time = "2026-01-23T16:15:54.754Z" }, - { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload_time = "2026-01-23T15:32:51.004Z" }, - { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload_time = "2026-01-23T16:04:22.125Z" }, - { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload_time = "2026-01-23T15:33:47.486Z" }, - { url = "https://files.pythonhosted.org/packages/34/2f/5e0e41f33c69655300a5e54aeb637cf8ff57f1786a3aba374eacc0228c1d/greenlet-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cc98b9c4e4870fa983436afa999d4eb16b12872fab7071423d5262fa7120d57a", size = 227156, upload_time = "2026-01-23T15:34:34.808Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ab/717c58343cf02c5265b531384b248787e04d8160b8afe53d9eec053d7b44/greenlet-3.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bfb2d1763d777de5ee495c85309460f6fd8146e50ec9d0ae0183dbf6f0a829d1", size = 226403, upload_time = "2026-01-23T15:31:39.372Z" }, - { url = "https://files.pythonhosted.org/packages/ec/ab/d26750f2b7242c2b90ea2ad71de70cfcd73a948a49513188a0fc0d6fc15a/greenlet-3.3.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7ab327905cabb0622adca5971e488064e35115430cec2c35a50fd36e72a315b3", size = 275205, upload_time = "2026-01-23T15:30:24.556Z" }, - { url = "https://files.pythonhosted.org/packages/10/d3/be7d19e8fad7c5a78eeefb2d896a08cd4643e1e90c605c4be3b46264998f/greenlet-3.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65be2f026ca6a176f88fb935ee23c18333ccea97048076aef4db1ef5bc0713ac", size = 599284, upload_time = "2026-01-23T16:00:58.584Z" }, - { url = "https://files.pythonhosted.org/packages/ae/21/fe703aaa056fdb0f17e5afd4b5c80195bbdab701208918938bd15b00d39b/greenlet-3.3.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a3ae05b3d225b4155bda56b072ceb09d05e974bc74be6c3fc15463cf69f33fd", size = 610274, upload_time = "2026-01-23T16:05:29.312Z" }, - { url = "https://files.pythonhosted.org/packages/06/00/95df0b6a935103c0452dad2203f5be8377e551b8466a29650c4c5a5af6cc/greenlet-3.3.1-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:12184c61e5d64268a160226fb4818af4df02cfead8379d7f8b99a56c3a54ff3e", size = 624375, upload_time = "2026-01-23T16:15:55.915Z" }, - { url = "https://files.pythonhosted.org/packages/cb/86/5c6ab23bb3c28c21ed6bebad006515cfe08b04613eb105ca0041fecca852/greenlet-3.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6423481193bbbe871313de5fd06a082f2649e7ce6e08015d2a76c1e9186ca5b3", size = 612904, upload_time = "2026-01-23T15:32:52.317Z" }, - { url = "https://files.pythonhosted.org/packages/c2/f3/7949994264e22639e40718c2daf6f6df5169bf48fb038c008a489ec53a50/greenlet-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33a956fe78bbbda82bfc95e128d61129b32d66bcf0a20a1f0c08aa4839ffa951", size = 1567316, upload_time = "2026-01-23T16:04:23.316Z" }, - { url = "https://files.pythonhosted.org/packages/8d/6e/d73c94d13b6465e9f7cd6231c68abde838bb22408596c05d9059830b7872/greenlet-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b065d3284be43728dd280f6f9a13990b56470b81be20375a207cdc814a983f2", size = 1636549, upload_time = "2026-01-23T15:33:48.643Z" }, - { url = "https://files.pythonhosted.org/packages/5e/b3/c9c23a6478b3bcc91f979ce4ca50879e4d0b2bd7b9a53d8ecded719b92e2/greenlet-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:27289986f4e5b0edec7b5a91063c109f0276abb09a7e9bdab08437525977c946", size = 227042, upload_time = "2026-01-23T15:33:58.216Z" }, - { url = "https://files.pythonhosted.org/packages/90/e7/824beda656097edee36ab15809fd063447b200cc03a7f6a24c34d520bc88/greenlet-3.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:2f080e028001c5273e0b42690eaf359aeef9cb1389da0f171ea51a5dc3c7608d", size = 226294, upload_time = "2026-01-23T15:30:52.73Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/8a/99/1cd3411c56a410994669062bd73dd58270c00cc074cac15f385a1fd91f8a/greenlet-3.3.1.tar.gz", hash = "sha256:41848f3230b58c08bb43dee542e74a2a2e34d3c59dc3076cec9151aeeedcae98", size = 184690, upload-time = "2026-01-23T15:31:02.076Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/65/5b235b40581ad75ab97dcd8b4218022ae8e3ab77c13c919f1a1dfe9171fd/greenlet-3.3.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:04bee4775f40ecefcdaa9d115ab44736cd4b9c5fba733575bfe9379419582e13", size = 273723, upload-time = "2026-01-23T15:30:37.521Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ad/eb4729b85cba2d29499e0a04ca6fbdd8f540afd7be142fd571eea43d712f/greenlet-3.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e1457f4fed12a50e427988a07f0f9df53cf0ee8da23fab16e6732c2ec909d4", size = 574874, upload-time = "2026-01-23T16:00:54.551Z" }, + { url = "https://files.pythonhosted.org/packages/87/32/57cad7fe4c8b82fdaa098c89498ef85ad92dfbb09d5eb713adedfc2ae1f5/greenlet-3.3.1-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:070472cd156f0656f86f92e954591644e158fd65aa415ffbe2d44ca77656a8f5", size = 586309, upload-time = "2026-01-23T16:05:25.18Z" }, + { url = "https://files.pythonhosted.org/packages/66/66/f041005cb87055e62b0d68680e88ec1a57f4688523d5e2fb305841bc8307/greenlet-3.3.1-cp310-cp310-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1108b61b06b5224656121c3c8ee8876161c491cbe74e5c519e0634c837cf93d5", size = 597461, upload-time = "2026-01-23T16:15:51.943Z" }, + { url = "https://files.pythonhosted.org/packages/87/eb/8a1ec2da4d55824f160594a75a9d8354a5fe0a300fb1c48e7944265217e1/greenlet-3.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a300354f27dd86bae5fbf7002e6dd2b3255cd372e9242c933faf5e859b703fe", size = 586985, upload-time = "2026-01-23T15:32:47.968Z" }, + { url = "https://files.pythonhosted.org/packages/15/1c/0621dd4321dd8c351372ee8f9308136acb628600658a49be1b7504208738/greenlet-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e84b51cbebf9ae573b5fbd15df88887815e3253fc000a7d0ff95170e8f7e9729", size = 1547271, upload-time = "2026-01-23T16:04:18.977Z" }, + { url = "https://files.pythonhosted.org/packages/9d/53/24047f8924c83bea7a59c8678d9571209c6bfe5f4c17c94a78c06024e9f2/greenlet-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0093bd1a06d899892427217f0ff2a3c8f306182b8c754336d32e2d587c131b4", size = 1613427, upload-time = "2026-01-23T15:33:44.428Z" }, + { url = "https://files.pythonhosted.org/packages/ff/07/ac9bf1ec008916d1a3373cae212884c1dcff4a4ba0d41127ce81a8deb4e9/greenlet-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:7932f5f57609b6a3b82cc11877709aa7a98e3308983ed93552a1c377069b20c8", size = 226100, upload-time = "2026-01-23T15:30:56.957Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e8/2e1462c8fdbe0f210feb5ac7ad2d9029af8be3bf45bd9fa39765f821642f/greenlet-3.3.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5fd23b9bc6d37b563211c6abbb1b3cab27db385a4449af5c32e932f93017080c", size = 274974, upload-time = "2026-01-23T15:31:02.891Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a8/530a401419a6b302af59f67aaf0b9ba1015855ea7e56c036b5928793c5bd/greenlet-3.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f51496a0bfbaa9d74d36a52d2580d1ef5ed4fdfcff0a73730abfbbbe1403dd", size = 577175, upload-time = "2026-01-23T16:00:56.213Z" }, + { url = "https://files.pythonhosted.org/packages/8e/89/7e812bb9c05e1aaef9b597ac1d0962b9021d2c6269354966451e885c4e6b/greenlet-3.3.1-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb0feb07fe6e6a74615ee62a880007d976cf739b6669cce95daa7373d4fc69c5", size = 590401, upload-time = "2026-01-23T16:05:26.365Z" }, + { url = "https://files.pythonhosted.org/packages/70/ae/e2d5f0e59b94a2269b68a629173263fa40b63da32f5c231307c349315871/greenlet-3.3.1-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:67ea3fc73c8cd92f42467a72b75e8f05ed51a0e9b1d15398c913416f2dafd49f", size = 601161, upload-time = "2026-01-23T16:15:53.456Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ae/8d472e1f5ac5efe55c563f3eabb38c98a44b832602e12910750a7c025802/greenlet-3.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39eda9ba259cc9801da05351eaa8576e9aa83eb9411e8f0c299e05d712a210f2", size = 590272, upload-time = "2026-01-23T15:32:49.411Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/0fde34bebfcadc833550717eade64e35ec8738e6b097d5d248274a01258b/greenlet-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e2e7e882f83149f0a71ac822ebf156d902e7a5d22c9045e3e0d1daf59cee2cc9", size = 1550729, upload-time = "2026-01-23T16:04:20.867Z" }, + { url = "https://files.pythonhosted.org/packages/16/c9/2fb47bee83b25b119d5a35d580807bb8b92480a54b68fef009a02945629f/greenlet-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80aa4d79eb5564f2e0a6144fcc744b5a37c56c4a92d60920720e99210d88db0f", size = 1615552, upload-time = "2026-01-23T15:33:45.743Z" }, + { url = "https://files.pythonhosted.org/packages/1f/54/dcf9f737b96606f82f8dd05becfb8d238db0633dd7397d542a296fe9cad3/greenlet-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:32e4ca9777c5addcbf42ff3915d99030d8e00173a56f80001fb3875998fe410b", size = 226462, upload-time = "2026-01-23T15:36:50.422Z" }, + { url = "https://files.pythonhosted.org/packages/91/37/61e1015cf944ddd2337447d8e97fb423ac9bc21f9963fb5f206b53d65649/greenlet-3.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:da19609432f353fed186cc1b85e9440db93d489f198b4bdf42ae19cc9d9ac9b4", size = 225715, upload-time = "2026-01-23T15:33:17.298Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, + { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, + { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, + { url = "https://files.pythonhosted.org/packages/3b/cd/7a7ca57588dac3389e97f7c9521cb6641fd8b6602faf1eaa4188384757df/greenlet-3.3.1-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c620051669fd04ac6b60ebc70478210119c56e2d5d5df848baec4312e260e4ca", size = 622363, upload-time = "2026-01-23T16:15:54.754Z" }, + { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, + { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, + { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, + { url = "https://files.pythonhosted.org/packages/34/2f/5e0e41f33c69655300a5e54aeb637cf8ff57f1786a3aba374eacc0228c1d/greenlet-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cc98b9c4e4870fa983436afa999d4eb16b12872fab7071423d5262fa7120d57a", size = 227156, upload-time = "2026-01-23T15:34:34.808Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ab/717c58343cf02c5265b531384b248787e04d8160b8afe53d9eec053d7b44/greenlet-3.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bfb2d1763d777de5ee495c85309460f6fd8146e50ec9d0ae0183dbf6f0a829d1", size = 226403, upload-time = "2026-01-23T15:31:39.372Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ab/d26750f2b7242c2b90ea2ad71de70cfcd73a948a49513188a0fc0d6fc15a/greenlet-3.3.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7ab327905cabb0622adca5971e488064e35115430cec2c35a50fd36e72a315b3", size = 275205, upload-time = "2026-01-23T15:30:24.556Z" }, + { url = "https://files.pythonhosted.org/packages/10/d3/be7d19e8fad7c5a78eeefb2d896a08cd4643e1e90c605c4be3b46264998f/greenlet-3.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65be2f026ca6a176f88fb935ee23c18333ccea97048076aef4db1ef5bc0713ac", size = 599284, upload-time = "2026-01-23T16:00:58.584Z" }, + { url = "https://files.pythonhosted.org/packages/ae/21/fe703aaa056fdb0f17e5afd4b5c80195bbdab701208918938bd15b00d39b/greenlet-3.3.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a3ae05b3d225b4155bda56b072ceb09d05e974bc74be6c3fc15463cf69f33fd", size = 610274, upload-time = "2026-01-23T16:05:29.312Z" }, + { url = "https://files.pythonhosted.org/packages/06/00/95df0b6a935103c0452dad2203f5be8377e551b8466a29650c4c5a5af6cc/greenlet-3.3.1-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:12184c61e5d64268a160226fb4818af4df02cfead8379d7f8b99a56c3a54ff3e", size = 624375, upload-time = "2026-01-23T16:15:55.915Z" }, + { url = "https://files.pythonhosted.org/packages/cb/86/5c6ab23bb3c28c21ed6bebad006515cfe08b04613eb105ca0041fecca852/greenlet-3.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6423481193bbbe871313de5fd06a082f2649e7ce6e08015d2a76c1e9186ca5b3", size = 612904, upload-time = "2026-01-23T15:32:52.317Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f3/7949994264e22639e40718c2daf6f6df5169bf48fb038c008a489ec53a50/greenlet-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33a956fe78bbbda82bfc95e128d61129b32d66bcf0a20a1f0c08aa4839ffa951", size = 1567316, upload-time = "2026-01-23T16:04:23.316Z" }, + { url = "https://files.pythonhosted.org/packages/8d/6e/d73c94d13b6465e9f7cd6231c68abde838bb22408596c05d9059830b7872/greenlet-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b065d3284be43728dd280f6f9a13990b56470b81be20375a207cdc814a983f2", size = 1636549, upload-time = "2026-01-23T15:33:48.643Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b3/c9c23a6478b3bcc91f979ce4ca50879e4d0b2bd7b9a53d8ecded719b92e2/greenlet-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:27289986f4e5b0edec7b5a91063c109f0276abb09a7e9bdab08437525977c946", size = 227042, upload-time = "2026-01-23T15:33:58.216Z" }, + { url = "https://files.pythonhosted.org/packages/90/e7/824beda656097edee36ab15809fd063447b200cc03a7f6a24c34d520bc88/greenlet-3.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:2f080e028001c5273e0b42690eaf359aeef9cb1389da0f171ea51a5dc3c7608d", size = 226294, upload-time = "2026-01-23T15:30:52.73Z" }, ] [[package]] @@ -1223,48 +1260,48 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/8a/3d098f35c143a89520e568e6539cc098fcd294495910e359889ce8741c84/grpcio-1.78.0.tar.gz", hash = "sha256:7382b95189546f375c174f53a5fa873cef91c4b8005faa05cc5b3beea9c4f1c5", size = 12852416, upload_time = "2026-02-06T09:57:18.093Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/a8/690a085b4d1fe066130de97a87de32c45062cf2ecd218df9675add895550/grpcio-1.78.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:7cc47943d524ee0096f973e1081cb8f4f17a4615f2116882a5f1416e4cfe92b5", size = 5946986, upload_time = "2026-02-06T09:54:34.043Z" }, - { url = "https://files.pythonhosted.org/packages/c7/1b/e5213c5c0ced9d2d92778d30529ad5bb2dcfb6c48c4e2d01b1f302d33d64/grpcio-1.78.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c3f293fdc675ccba4db5a561048cca627b5e7bd1c8a6973ffedabe7d116e22e2", size = 11816533, upload_time = "2026-02-06T09:54:37.04Z" }, - { url = "https://files.pythonhosted.org/packages/18/37/1ba32dccf0a324cc5ace744c44331e300b000a924bf14840f948c559ede7/grpcio-1.78.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10a9a644b5dd5aec3b82b5b0b90d41c0fa94c85ef42cb42cf78a23291ddb5e7d", size = 6519964, upload_time = "2026-02-06T09:54:40.268Z" }, - { url = "https://files.pythonhosted.org/packages/ed/f5/c0e178721b818072f2e8b6fde13faaba942406c634009caf065121ce246b/grpcio-1.78.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4c5533d03a6cbd7f56acfc9cfb44ea64f63d29091e40e44010d34178d392d7eb", size = 7198058, upload_time = "2026-02-06T09:54:42.389Z" }, - { url = "https://files.pythonhosted.org/packages/5b/b2/40d43c91ae9cd667edc960135f9f08e58faa1576dc95af29f66ec912985f/grpcio-1.78.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ff870aebe9a93a85283837801d35cd5f8814fe2ad01e606861a7fb47c762a2b7", size = 6727212, upload_time = "2026-02-06T09:54:44.91Z" }, - { url = "https://files.pythonhosted.org/packages/ed/88/9da42eed498f0efcfcd9156e48ae63c0cde3bea398a16c99fb5198c885b6/grpcio-1.78.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:391e93548644e6b2726f1bb84ed60048d4bcc424ce5e4af0843d28ca0b754fec", size = 7300845, upload_time = "2026-02-06T09:54:47.562Z" }, - { url = "https://files.pythonhosted.org/packages/23/3f/1c66b7b1b19a8828890e37868411a6e6925df5a9030bfa87ab318f34095d/grpcio-1.78.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:df2c8f3141f7cbd112a6ebbd760290b5849cda01884554f7c67acc14e7b1758a", size = 8284605, upload_time = "2026-02-06T09:54:50.475Z" }, - { url = "https://files.pythonhosted.org/packages/94/c4/ca1bd87394f7b033e88525384b4d1e269e8424ab441ea2fba1a0c5b50986/grpcio-1.78.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd8cb8026e5f5b50498a3c4f196f57f9db344dad829ffae16b82e4fdbaea2813", size = 7726672, upload_time = "2026-02-06T09:54:53.11Z" }, - { url = "https://files.pythonhosted.org/packages/41/09/f16e487d4cc65ccaf670f6ebdd1a17566b965c74fc3d93999d3b2821e052/grpcio-1.78.0-cp310-cp310-win32.whl", hash = "sha256:f8dff3d9777e5d2703a962ee5c286c239bf0ba173877cc68dc02c17d042e29de", size = 4076715, upload_time = "2026-02-06T09:54:55.549Z" }, - { url = "https://files.pythonhosted.org/packages/2a/32/4ce60d94e242725fd3bcc5673c04502c82a8e87b21ea411a63992dc39f8f/grpcio-1.78.0-cp310-cp310-win_amd64.whl", hash = "sha256:94f95cf5d532d0e717eed4fc1810e8e6eded04621342ec54c89a7c2f14b581bf", size = 4799157, upload_time = "2026-02-06T09:54:59.838Z" }, - { url = "https://files.pythonhosted.org/packages/86/c7/d0b780a29b0837bf4ca9580904dfb275c1fc321ded7897d620af7047ec57/grpcio-1.78.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2777b783f6c13b92bd7b716667452c329eefd646bfb3f2e9dabea2e05dbd34f6", size = 5951525, upload_time = "2026-02-06T09:55:01.989Z" }, - { url = "https://files.pythonhosted.org/packages/c5/b1/96920bf2ee61df85a9503cb6f733fe711c0ff321a5a697d791b075673281/grpcio-1.78.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:9dca934f24c732750389ce49d638069c3892ad065df86cb465b3fa3012b70c9e", size = 11830418, upload_time = "2026-02-06T09:55:04.462Z" }, - { url = "https://files.pythonhosted.org/packages/83/0c/7c1528f098aeb75a97de2bae18c530f56959fb7ad6c882db45d9884d6edc/grpcio-1.78.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:459ab414b35f4496138d0ecd735fed26f1318af5e52cb1efbc82a09f0d5aa911", size = 6524477, upload_time = "2026-02-06T09:55:07.111Z" }, - { url = "https://files.pythonhosted.org/packages/8d/52/e7c1f3688f949058e19a011c4e0dec973da3d0ae5e033909677f967ae1f4/grpcio-1.78.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:082653eecbdf290e6e3e2c276ab2c54b9e7c299e07f4221872380312d8cf395e", size = 7198266, upload_time = "2026-02-06T09:55:10.016Z" }, - { url = "https://files.pythonhosted.org/packages/e5/61/8ac32517c1e856677282c34f2e7812d6c328fa02b8f4067ab80e77fdc9c9/grpcio-1.78.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85f93781028ec63f383f6bc90db785a016319c561cc11151fbb7b34e0d012303", size = 6730552, upload_time = "2026-02-06T09:55:12.207Z" }, - { url = "https://files.pythonhosted.org/packages/bd/98/b8ee0158199250220734f620b12e4a345955ac7329cfd908d0bf0fda77f0/grpcio-1.78.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f12857d24d98441af6a1d5c87442d624411db486f7ba12550b07788f74b67b04", size = 7304296, upload_time = "2026-02-06T09:55:15.044Z" }, - { url = "https://files.pythonhosted.org/packages/bd/0f/7b72762e0d8840b58032a56fdbd02b78fc645b9fa993d71abf04edbc54f4/grpcio-1.78.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5397fff416b79e4b284959642a4e95ac4b0f1ece82c9993658e0e477d40551ec", size = 8288298, upload_time = "2026-02-06T09:55:17.276Z" }, - { url = "https://files.pythonhosted.org/packages/24/ae/ae4ce56bc5bb5caa3a486d60f5f6083ac3469228faa734362487176c15c5/grpcio-1.78.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fbe6e89c7ffb48518384068321621b2a69cab509f58e40e4399fdd378fa6d074", size = 7730953, upload_time = "2026-02-06T09:55:19.545Z" }, - { url = "https://files.pythonhosted.org/packages/b5/6e/8052e3a28eb6a820c372b2eb4b5e32d195c661e137d3eca94d534a4cfd8a/grpcio-1.78.0-cp311-cp311-win32.whl", hash = "sha256:6092beabe1966a3229f599d7088b38dfc8ffa1608b5b5cdda31e591e6500f856", size = 4076503, upload_time = "2026-02-06T09:55:21.521Z" }, - { url = "https://files.pythonhosted.org/packages/08/62/f22c98c5265dfad327251fa2f840b591b1df5f5e15d88b19c18c86965b27/grpcio-1.78.0-cp311-cp311-win_amd64.whl", hash = "sha256:1afa62af6e23f88629f2b29ec9e52ec7c65a7176c1e0a83292b93c76ca882558", size = 4799767, upload_time = "2026-02-06T09:55:24.107Z" }, - { url = "https://files.pythonhosted.org/packages/4e/f4/7384ed0178203d6074446b3c4f46c90a22ddf7ae0b3aee521627f54cfc2a/grpcio-1.78.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f9ab915a267fc47c7e88c387a3a28325b58c898e23d4995f765728f4e3dedb97", size = 5913985, upload_time = "2026-02-06T09:55:26.832Z" }, - { url = "https://files.pythonhosted.org/packages/81/ed/be1caa25f06594463f685b3790b320f18aea49b33166f4141bfdc2bfb236/grpcio-1.78.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3f8904a8165ab21e07e58bf3e30a73f4dffc7a1e0dbc32d51c61b5360d26f43e", size = 11811853, upload_time = "2026-02-06T09:55:29.224Z" }, - { url = "https://files.pythonhosted.org/packages/24/a7/f06d151afc4e64b7e3cc3e872d331d011c279aaab02831e40a81c691fb65/grpcio-1.78.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:859b13906ce098c0b493af92142ad051bf64c7870fa58a123911c88606714996", size = 6475766, upload_time = "2026-02-06T09:55:31.825Z" }, - { url = "https://files.pythonhosted.org/packages/8a/a8/4482922da832ec0082d0f2cc3a10976d84a7424707f25780b82814aafc0a/grpcio-1.78.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b2342d87af32790f934a79c3112641e7b27d63c261b8b4395350dad43eff1dc7", size = 7170027, upload_time = "2026-02-06T09:55:34.7Z" }, - { url = "https://files.pythonhosted.org/packages/54/bf/f4a3b9693e35d25b24b0b39fa46d7d8a3c439e0a3036c3451764678fec20/grpcio-1.78.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:12a771591ae40bc65ba67048fa52ef4f0e6db8279e595fd349f9dfddeef571f9", size = 6690766, upload_time = "2026-02-06T09:55:36.902Z" }, - { url = "https://files.pythonhosted.org/packages/c7/b9/521875265cc99fe5ad4c5a17010018085cae2810a928bf15ebe7d8bcd9cc/grpcio-1.78.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:185dea0d5260cbb2d224c507bf2a5444d5abbb1fa3594c1ed7e4c709d5eb8383", size = 7266161, upload_time = "2026-02-06T09:55:39.824Z" }, - { url = "https://files.pythonhosted.org/packages/05/86/296a82844fd40a4ad4a95f100b55044b4f817dece732bf686aea1a284147/grpcio-1.78.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:51b13f9aed9d59ee389ad666b8c2214cc87b5de258fa712f9ab05f922e3896c6", size = 8253303, upload_time = "2026-02-06T09:55:42.353Z" }, - { url = "https://files.pythonhosted.org/packages/f3/e4/ea3c0caf5468537f27ad5aab92b681ed7cc0ef5f8c9196d3fd42c8c2286b/grpcio-1.78.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fd5f135b1bd58ab088930b3c613455796dfa0393626a6972663ccdda5b4ac6ce", size = 7698222, upload_time = "2026-02-06T09:55:44.629Z" }, - { url = "https://files.pythonhosted.org/packages/d7/47/7f05f81e4bb6b831e93271fb12fd52ba7b319b5402cbc101d588f435df00/grpcio-1.78.0-cp312-cp312-win32.whl", hash = "sha256:94309f498bcc07e5a7d16089ab984d42ad96af1d94b5a4eb966a266d9fcabf68", size = 4066123, upload_time = "2026-02-06T09:55:47.644Z" }, - { url = "https://files.pythonhosted.org/packages/ad/e7/d6914822c88aa2974dbbd10903d801a28a19ce9cd8bad7e694cbbcf61528/grpcio-1.78.0-cp312-cp312-win_amd64.whl", hash = "sha256:9566fe4ababbb2610c39190791e5b829869351d14369603702e890ef3ad2d06e", size = 4797657, upload_time = "2026-02-06T09:55:49.86Z" }, - { url = "https://files.pythonhosted.org/packages/05/a9/8f75894993895f361ed8636cd9237f4ab39ef87fd30db17467235ed1c045/grpcio-1.78.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:ce3a90455492bf8bfa38e56fbbe1dbd4f872a3d8eeaf7337dc3b1c8aa28c271b", size = 5920143, upload_time = "2026-02-06T09:55:52.035Z" }, - { url = "https://files.pythonhosted.org/packages/55/06/0b78408e938ac424100100fd081189451b472236e8a3a1f6500390dc4954/grpcio-1.78.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:2bf5e2e163b356978b23652c4818ce4759d40f4712ee9ec5a83c4be6f8c23a3a", size = 11803926, upload_time = "2026-02-06T09:55:55.494Z" }, - { url = "https://files.pythonhosted.org/packages/88/93/b59fe7832ff6ae3c78b813ea43dac60e295fa03606d14d89d2e0ec29f4f3/grpcio-1.78.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8f2ac84905d12918e4e55a16da17939eb63e433dc11b677267c35568aa63fc84", size = 6478628, upload_time = "2026-02-06T09:55:58.533Z" }, - { url = "https://files.pythonhosted.org/packages/ed/df/e67e3734527f9926b7d9c0dde6cd998d1d26850c3ed8eeec81297967ac67/grpcio-1.78.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b58f37edab4a3881bc6c9bca52670610e0c9ca14e2ea3cf9debf185b870457fb", size = 7173574, upload_time = "2026-02-06T09:56:01.786Z" }, - { url = "https://files.pythonhosted.org/packages/a6/62/cc03fffb07bfba982a9ec097b164e8835546980aec25ecfa5f9c1a47e022/grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:735e38e176a88ce41840c21bb49098ab66177c64c82426e24e0082500cc68af5", size = 6692639, upload_time = "2026-02-06T09:56:04.529Z" }, - { url = "https://files.pythonhosted.org/packages/bf/9a/289c32e301b85bdb67d7ec68b752155e674ee3ba2173a1858f118e399ef3/grpcio-1.78.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2045397e63a7a0ee7957c25f7dbb36ddc110e0cfb418403d110c0a7a68a844e9", size = 7268838, upload_time = "2026-02-06T09:56:08.397Z" }, - { url = "https://files.pythonhosted.org/packages/0e/79/1be93f32add280461fa4773880196572563e9c8510861ac2da0ea0f892b6/grpcio-1.78.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9f136fbafe7ccf4ac7e8e0c28b31066e810be52d6e344ef954a3a70234e1702", size = 8251878, upload_time = "2026-02-06T09:56:10.914Z" }, - { url = "https://files.pythonhosted.org/packages/65/65/793f8e95296ab92e4164593674ae6291b204bb5f67f9d4a711489cd30ffa/grpcio-1.78.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:748b6138585379c737adc08aeffd21222abbda1a86a0dca2a39682feb9196c20", size = 7695412, upload_time = "2026-02-06T09:56:13.593Z" }, - { url = "https://files.pythonhosted.org/packages/1c/9f/1e233fe697ecc82845942c2822ed06bb522e70d6771c28d5528e4c50f6a4/grpcio-1.78.0-cp313-cp313-win32.whl", hash = "sha256:271c73e6e5676afe4fc52907686670c7cea22ab2310b76a59b678403ed40d670", size = 4064899, upload_time = "2026-02-06T09:56:15.601Z" }, - { url = "https://files.pythonhosted.org/packages/4d/27/d86b89e36de8a951501fb06a0f38df19853210f341d0b28f83f4aa0ffa08/grpcio-1.78.0-cp313-cp313-win_amd64.whl", hash = "sha256:f2d4e43ee362adfc05994ed479334d5a451ab7bc3f3fee1b796b8ca66895acb4", size = 4797393, upload_time = "2026-02-06T09:56:17.882Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/06/8a/3d098f35c143a89520e568e6539cc098fcd294495910e359889ce8741c84/grpcio-1.78.0.tar.gz", hash = "sha256:7382b95189546f375c174f53a5fa873cef91c4b8005faa05cc5b3beea9c4f1c5", size = 12852416, upload-time = "2026-02-06T09:57:18.093Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/a8/690a085b4d1fe066130de97a87de32c45062cf2ecd218df9675add895550/grpcio-1.78.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:7cc47943d524ee0096f973e1081cb8f4f17a4615f2116882a5f1416e4cfe92b5", size = 5946986, upload-time = "2026-02-06T09:54:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/c7/1b/e5213c5c0ced9d2d92778d30529ad5bb2dcfb6c48c4e2d01b1f302d33d64/grpcio-1.78.0-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:c3f293fdc675ccba4db5a561048cca627b5e7bd1c8a6973ffedabe7d116e22e2", size = 11816533, upload-time = "2026-02-06T09:54:37.04Z" }, + { url = "https://files.pythonhosted.org/packages/18/37/1ba32dccf0a324cc5ace744c44331e300b000a924bf14840f948c559ede7/grpcio-1.78.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:10a9a644b5dd5aec3b82b5b0b90d41c0fa94c85ef42cb42cf78a23291ddb5e7d", size = 6519964, upload-time = "2026-02-06T09:54:40.268Z" }, + { url = "https://files.pythonhosted.org/packages/ed/f5/c0e178721b818072f2e8b6fde13faaba942406c634009caf065121ce246b/grpcio-1.78.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4c5533d03a6cbd7f56acfc9cfb44ea64f63d29091e40e44010d34178d392d7eb", size = 7198058, upload-time = "2026-02-06T09:54:42.389Z" }, + { url = "https://files.pythonhosted.org/packages/5b/b2/40d43c91ae9cd667edc960135f9f08e58faa1576dc95af29f66ec912985f/grpcio-1.78.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ff870aebe9a93a85283837801d35cd5f8814fe2ad01e606861a7fb47c762a2b7", size = 6727212, upload-time = "2026-02-06T09:54:44.91Z" }, + { url = "https://files.pythonhosted.org/packages/ed/88/9da42eed498f0efcfcd9156e48ae63c0cde3bea398a16c99fb5198c885b6/grpcio-1.78.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:391e93548644e6b2726f1bb84ed60048d4bcc424ce5e4af0843d28ca0b754fec", size = 7300845, upload-time = "2026-02-06T09:54:47.562Z" }, + { url = "https://files.pythonhosted.org/packages/23/3f/1c66b7b1b19a8828890e37868411a6e6925df5a9030bfa87ab318f34095d/grpcio-1.78.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:df2c8f3141f7cbd112a6ebbd760290b5849cda01884554f7c67acc14e7b1758a", size = 8284605, upload-time = "2026-02-06T09:54:50.475Z" }, + { url = "https://files.pythonhosted.org/packages/94/c4/ca1bd87394f7b033e88525384b4d1e269e8424ab441ea2fba1a0c5b50986/grpcio-1.78.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bd8cb8026e5f5b50498a3c4f196f57f9db344dad829ffae16b82e4fdbaea2813", size = 7726672, upload-time = "2026-02-06T09:54:53.11Z" }, + { url = "https://files.pythonhosted.org/packages/41/09/f16e487d4cc65ccaf670f6ebdd1a17566b965c74fc3d93999d3b2821e052/grpcio-1.78.0-cp310-cp310-win32.whl", hash = "sha256:f8dff3d9777e5d2703a962ee5c286c239bf0ba173877cc68dc02c17d042e29de", size = 4076715, upload-time = "2026-02-06T09:54:55.549Z" }, + { url = "https://files.pythonhosted.org/packages/2a/32/4ce60d94e242725fd3bcc5673c04502c82a8e87b21ea411a63992dc39f8f/grpcio-1.78.0-cp310-cp310-win_amd64.whl", hash = "sha256:94f95cf5d532d0e717eed4fc1810e8e6eded04621342ec54c89a7c2f14b581bf", size = 4799157, upload-time = "2026-02-06T09:54:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/86/c7/d0b780a29b0837bf4ca9580904dfb275c1fc321ded7897d620af7047ec57/grpcio-1.78.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2777b783f6c13b92bd7b716667452c329eefd646bfb3f2e9dabea2e05dbd34f6", size = 5951525, upload-time = "2026-02-06T09:55:01.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/b1/96920bf2ee61df85a9503cb6f733fe711c0ff321a5a697d791b075673281/grpcio-1.78.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:9dca934f24c732750389ce49d638069c3892ad065df86cb465b3fa3012b70c9e", size = 11830418, upload-time = "2026-02-06T09:55:04.462Z" }, + { url = "https://files.pythonhosted.org/packages/83/0c/7c1528f098aeb75a97de2bae18c530f56959fb7ad6c882db45d9884d6edc/grpcio-1.78.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:459ab414b35f4496138d0ecd735fed26f1318af5e52cb1efbc82a09f0d5aa911", size = 6524477, upload-time = "2026-02-06T09:55:07.111Z" }, + { url = "https://files.pythonhosted.org/packages/8d/52/e7c1f3688f949058e19a011c4e0dec973da3d0ae5e033909677f967ae1f4/grpcio-1.78.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:082653eecbdf290e6e3e2c276ab2c54b9e7c299e07f4221872380312d8cf395e", size = 7198266, upload-time = "2026-02-06T09:55:10.016Z" }, + { url = "https://files.pythonhosted.org/packages/e5/61/8ac32517c1e856677282c34f2e7812d6c328fa02b8f4067ab80e77fdc9c9/grpcio-1.78.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85f93781028ec63f383f6bc90db785a016319c561cc11151fbb7b34e0d012303", size = 6730552, upload-time = "2026-02-06T09:55:12.207Z" }, + { url = "https://files.pythonhosted.org/packages/bd/98/b8ee0158199250220734f620b12e4a345955ac7329cfd908d0bf0fda77f0/grpcio-1.78.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f12857d24d98441af6a1d5c87442d624411db486f7ba12550b07788f74b67b04", size = 7304296, upload-time = "2026-02-06T09:55:15.044Z" }, + { url = "https://files.pythonhosted.org/packages/bd/0f/7b72762e0d8840b58032a56fdbd02b78fc645b9fa993d71abf04edbc54f4/grpcio-1.78.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5397fff416b79e4b284959642a4e95ac4b0f1ece82c9993658e0e477d40551ec", size = 8288298, upload-time = "2026-02-06T09:55:17.276Z" }, + { url = "https://files.pythonhosted.org/packages/24/ae/ae4ce56bc5bb5caa3a486d60f5f6083ac3469228faa734362487176c15c5/grpcio-1.78.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fbe6e89c7ffb48518384068321621b2a69cab509f58e40e4399fdd378fa6d074", size = 7730953, upload-time = "2026-02-06T09:55:19.545Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6e/8052e3a28eb6a820c372b2eb4b5e32d195c661e137d3eca94d534a4cfd8a/grpcio-1.78.0-cp311-cp311-win32.whl", hash = "sha256:6092beabe1966a3229f599d7088b38dfc8ffa1608b5b5cdda31e591e6500f856", size = 4076503, upload-time = "2026-02-06T09:55:21.521Z" }, + { url = "https://files.pythonhosted.org/packages/08/62/f22c98c5265dfad327251fa2f840b591b1df5f5e15d88b19c18c86965b27/grpcio-1.78.0-cp311-cp311-win_amd64.whl", hash = "sha256:1afa62af6e23f88629f2b29ec9e52ec7c65a7176c1e0a83292b93c76ca882558", size = 4799767, upload-time = "2026-02-06T09:55:24.107Z" }, + { url = "https://files.pythonhosted.org/packages/4e/f4/7384ed0178203d6074446b3c4f46c90a22ddf7ae0b3aee521627f54cfc2a/grpcio-1.78.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:f9ab915a267fc47c7e88c387a3a28325b58c898e23d4995f765728f4e3dedb97", size = 5913985, upload-time = "2026-02-06T09:55:26.832Z" }, + { url = "https://files.pythonhosted.org/packages/81/ed/be1caa25f06594463f685b3790b320f18aea49b33166f4141bfdc2bfb236/grpcio-1.78.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:3f8904a8165ab21e07e58bf3e30a73f4dffc7a1e0dbc32d51c61b5360d26f43e", size = 11811853, upload-time = "2026-02-06T09:55:29.224Z" }, + { url = "https://files.pythonhosted.org/packages/24/a7/f06d151afc4e64b7e3cc3e872d331d011c279aaab02831e40a81c691fb65/grpcio-1.78.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:859b13906ce098c0b493af92142ad051bf64c7870fa58a123911c88606714996", size = 6475766, upload-time = "2026-02-06T09:55:31.825Z" }, + { url = "https://files.pythonhosted.org/packages/8a/a8/4482922da832ec0082d0f2cc3a10976d84a7424707f25780b82814aafc0a/grpcio-1.78.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b2342d87af32790f934a79c3112641e7b27d63c261b8b4395350dad43eff1dc7", size = 7170027, upload-time = "2026-02-06T09:55:34.7Z" }, + { url = "https://files.pythonhosted.org/packages/54/bf/f4a3b9693e35d25b24b0b39fa46d7d8a3c439e0a3036c3451764678fec20/grpcio-1.78.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:12a771591ae40bc65ba67048fa52ef4f0e6db8279e595fd349f9dfddeef571f9", size = 6690766, upload-time = "2026-02-06T09:55:36.902Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b9/521875265cc99fe5ad4c5a17010018085cae2810a928bf15ebe7d8bcd9cc/grpcio-1.78.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:185dea0d5260cbb2d224c507bf2a5444d5abbb1fa3594c1ed7e4c709d5eb8383", size = 7266161, upload-time = "2026-02-06T09:55:39.824Z" }, + { url = "https://files.pythonhosted.org/packages/05/86/296a82844fd40a4ad4a95f100b55044b4f817dece732bf686aea1a284147/grpcio-1.78.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:51b13f9aed9d59ee389ad666b8c2214cc87b5de258fa712f9ab05f922e3896c6", size = 8253303, upload-time = "2026-02-06T09:55:42.353Z" }, + { url = "https://files.pythonhosted.org/packages/f3/e4/ea3c0caf5468537f27ad5aab92b681ed7cc0ef5f8c9196d3fd42c8c2286b/grpcio-1.78.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fd5f135b1bd58ab088930b3c613455796dfa0393626a6972663ccdda5b4ac6ce", size = 7698222, upload-time = "2026-02-06T09:55:44.629Z" }, + { url = "https://files.pythonhosted.org/packages/d7/47/7f05f81e4bb6b831e93271fb12fd52ba7b319b5402cbc101d588f435df00/grpcio-1.78.0-cp312-cp312-win32.whl", hash = "sha256:94309f498bcc07e5a7d16089ab984d42ad96af1d94b5a4eb966a266d9fcabf68", size = 4066123, upload-time = "2026-02-06T09:55:47.644Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e7/d6914822c88aa2974dbbd10903d801a28a19ce9cd8bad7e694cbbcf61528/grpcio-1.78.0-cp312-cp312-win_amd64.whl", hash = "sha256:9566fe4ababbb2610c39190791e5b829869351d14369603702e890ef3ad2d06e", size = 4797657, upload-time = "2026-02-06T09:55:49.86Z" }, + { url = "https://files.pythonhosted.org/packages/05/a9/8f75894993895f361ed8636cd9237f4ab39ef87fd30db17467235ed1c045/grpcio-1.78.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:ce3a90455492bf8bfa38e56fbbe1dbd4f872a3d8eeaf7337dc3b1c8aa28c271b", size = 5920143, upload-time = "2026-02-06T09:55:52.035Z" }, + { url = "https://files.pythonhosted.org/packages/55/06/0b78408e938ac424100100fd081189451b472236e8a3a1f6500390dc4954/grpcio-1.78.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:2bf5e2e163b356978b23652c4818ce4759d40f4712ee9ec5a83c4be6f8c23a3a", size = 11803926, upload-time = "2026-02-06T09:55:55.494Z" }, + { url = "https://files.pythonhosted.org/packages/88/93/b59fe7832ff6ae3c78b813ea43dac60e295fa03606d14d89d2e0ec29f4f3/grpcio-1.78.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8f2ac84905d12918e4e55a16da17939eb63e433dc11b677267c35568aa63fc84", size = 6478628, upload-time = "2026-02-06T09:55:58.533Z" }, + { url = "https://files.pythonhosted.org/packages/ed/df/e67e3734527f9926b7d9c0dde6cd998d1d26850c3ed8eeec81297967ac67/grpcio-1.78.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:b58f37edab4a3881bc6c9bca52670610e0c9ca14e2ea3cf9debf185b870457fb", size = 7173574, upload-time = "2026-02-06T09:56:01.786Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/cc03fffb07bfba982a9ec097b164e8835546980aec25ecfa5f9c1a47e022/grpcio-1.78.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:735e38e176a88ce41840c21bb49098ab66177c64c82426e24e0082500cc68af5", size = 6692639, upload-time = "2026-02-06T09:56:04.529Z" }, + { url = "https://files.pythonhosted.org/packages/bf/9a/289c32e301b85bdb67d7ec68b752155e674ee3ba2173a1858f118e399ef3/grpcio-1.78.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:2045397e63a7a0ee7957c25f7dbb36ddc110e0cfb418403d110c0a7a68a844e9", size = 7268838, upload-time = "2026-02-06T09:56:08.397Z" }, + { url = "https://files.pythonhosted.org/packages/0e/79/1be93f32add280461fa4773880196572563e9c8510861ac2da0ea0f892b6/grpcio-1.78.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9f136fbafe7ccf4ac7e8e0c28b31066e810be52d6e344ef954a3a70234e1702", size = 8251878, upload-time = "2026-02-06T09:56:10.914Z" }, + { url = "https://files.pythonhosted.org/packages/65/65/793f8e95296ab92e4164593674ae6291b204bb5f67f9d4a711489cd30ffa/grpcio-1.78.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:748b6138585379c737adc08aeffd21222abbda1a86a0dca2a39682feb9196c20", size = 7695412, upload-time = "2026-02-06T09:56:13.593Z" }, + { url = "https://files.pythonhosted.org/packages/1c/9f/1e233fe697ecc82845942c2822ed06bb522e70d6771c28d5528e4c50f6a4/grpcio-1.78.0-cp313-cp313-win32.whl", hash = "sha256:271c73e6e5676afe4fc52907686670c7cea22ab2310b76a59b678403ed40d670", size = 4064899, upload-time = "2026-02-06T09:56:15.601Z" }, + { url = "https://files.pythonhosted.org/packages/4d/27/d86b89e36de8a951501fb06a0f38df19853210f341d0b28f83f4aa0ffa08/grpcio-1.78.0-cp313-cp313-win_amd64.whl", hash = "sha256:f2d4e43ee362adfc05994ed479334d5a451ab7bc3f3fee1b796b8ca66895acb4", size = 4797393, upload-time = "2026-02-06T09:56:17.882Z" }, ] [[package]] @@ -1301,6 +1338,19 @@ dependencies = [ { name = "typing-extensions" }, ] +[[package]] +name = "guardrails-ai-ban-list" +version = "0.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fuzzysearch" }, + { name = "guardrails-ai" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/94/49/8ab9d0d8cf475e0b501399971010d220e4b5caf7ed9945d885a94878f21d/guardrails_ai_ban_list-0.1.0.tar.gz", hash = "sha256:e547c24e69eb45bb2d483d8aa79b302568c2057d8b5c3f47b0a6aff20e67a2a6", size = 4338, upload-time = "2026-06-24T19:15:58.562Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/06/f7e79429d68159af2a9a2504bf09dcc024eabacb036845da63f67c43f295/guardrails_ai_ban_list-0.1.0-py3-none-any.whl", hash = "sha256:c685527dc6f808d43bcc81e587b21e6ce20f4f855f248ec089959458c69b7bde", size = 4407, upload-time = "2026-06-24T19:15:57.353Z" }, +] + [[package]] name = "guardrails-ai-types" version = "0.4.0" @@ -1308,51 +1358,51 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d2/c9/f29c6dcf8f0c98618173ff9be834869b68190e7980915b3d76a369ef5f80/guardrails_ai_types-0.4.0.tar.gz", hash = "sha256:82bb9802c29c8a5cd85130abec3104cdf3f35c9b5d5d4b98bfaa9329b8080711", size = 17109, upload_time = "2026-04-02T16:55:22.972Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/c9/f29c6dcf8f0c98618173ff9be834869b68190e7980915b3d76a369ef5f80/guardrails_ai_types-0.4.0.tar.gz", hash = "sha256:82bb9802c29c8a5cd85130abec3104cdf3f35c9b5d5d4b98bfaa9329b8080711", size = 17109, upload-time = "2026-04-02T16:55:22.972Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/aa/28/7efe998779eb353846835e4b56ffc96f8f2bb6ea968a16336d14fe9ef4b4/guardrails_ai_types-0.4.0-py3-none-any.whl", hash = "sha256:f9d218a01e23823d986837a91c38713fbd969d56a4eb2994fc732332e5a0fe3b", size = 14966, upload_time = "2026-04-02T16:55:22.078Z" }, + { url = "https://files.pythonhosted.org/packages/aa/28/7efe998779eb353846835e4b56ffc96f8f2bb6ea968a16336d14fe9ef4b4/guardrails_ai_types-0.4.0-py3-none-any.whl", hash = "sha256:f9d218a01e23823d986837a91c38713fbd969d56a4eb2994fc732332e5a0fe3b", size = 14966, upload-time = "2026-04-02T16:55:22.078Z" }, ] [[package]] name = "guardrails-hub-types" version = "0.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a4/e7/6fa86cbcf9e7e144e2a2cbad8c2df791a06567b7a7731a055c645a7820a8/guardrails_hub_types-0.0.4.tar.gz", hash = "sha256:a5ad863fd6b354e41c3d83d8c1e835f7243a0ae0ec944b6601d1e3ee5d806a51", size = 20587, upload_time = "2024-08-12T22:51:02.295Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a4/e7/6fa86cbcf9e7e144e2a2cbad8c2df791a06567b7a7731a055c645a7820a8/guardrails_hub_types-0.0.4.tar.gz", hash = "sha256:a5ad863fd6b354e41c3d83d8c1e835f7243a0ae0ec944b6601d1e3ee5d806a51", size = 20587, upload-time = "2024-08-12T22:51:02.295Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/f8/e543dda7db28afa1b8b7d6219f6e08d419736b43a679e054b8134b98c8b4/guardrails_hub_types-0.0.4-py3-none-any.whl", hash = "sha256:ad86faecc142e853d6c6fa24ecb50723c86f834fbe1f2e6b932f2921a08b60b3", size = 36263, upload_time = "2024-08-12T22:51:00.725Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f8/e543dda7db28afa1b8b7d6219f6e08d419736b43a679e054b8134b98c8b4/guardrails_hub_types-0.0.4-py3-none-any.whl", hash = "sha256:ad86faecc142e853d6c6fa24ecb50723c86f834fbe1f2e6b932f2921a08b60b3", size = 36263, upload-time = "2024-08-12T22:51:00.725Z" }, ] [[package]] name = "h11" version = "0.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload_time = "2025-04-24T03:35:25.427Z" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload_time = "2025-04-24T03:35:24.344Z" }, + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] [[package]] name = "hf-xet" version = "1.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/74/d8/5c06fc76461418326a7decf8367480c35be11a41fd938633929c60a9ec6b/hf_xet-1.5.0.tar.gz", hash = "sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948", size = 837196, upload_time = "2026-05-06T06:18:15.583Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/d8/5c06fc76461418326a7decf8367480c35be11a41fd938633929c60a9ec6b/hf_xet-1.5.0.tar.gz", hash = "sha256:e0fb0a34d9f406eed88233e829a67ec016bec5af19e480eac65a233ea289a948", size = 837196, upload-time = "2026-05-06T06:18:15.583Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/68/9b/6912c99070915a4f28119e3c5b52a9abd1eec0ad5cb293b8c967a0c6f5a2/hf_xet-1.5.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c", size = 4023383, upload_time = "2026-05-06T06:17:53.947Z" }, - { url = "https://files.pythonhosted.org/packages/0f/6d/9563cfde59b5d8128a9c7ec972a087f4c782e4f7bac5a85234edfd5d5e49/hf_xet-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42", size = 3792751, upload_time = "2026-05-06T06:17:51.791Z" }, - { url = "https://files.pythonhosted.org/packages/07/a5/ed5a0cf35b49a0571af5a8f53416dad1877a718c021c9937c3a53cb45781/hf_xet-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a", size = 4456058, upload_time = "2026-05-06T06:17:40.735Z" }, - { url = "https://files.pythonhosted.org/packages/60/fb/3ae8bf2a7a37a4197d0195d7247fd25b3952e15cb8a599e285dfaa6f52b3/hf_xet-1.5.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480", size = 4250783, upload_time = "2026-05-06T06:17:38.412Z" }, - { url = "https://files.pythonhosted.org/packages/a2/9b/8bae40d4d91525085137196e84eb0ed49cf65b5e96e5c3ecdadd8bd0fac2/hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216", size = 4445594, upload_time = "2026-05-06T06:18:04.219Z" }, - { url = "https://files.pythonhosted.org/packages/13/59/c74efbbd4e8728172b2cc72a2bc014d2947a4b7bdced932fbd3f5da1a4e5/hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60", size = 4663995, upload_time = "2026-05-06T06:18:06.1Z" }, - { url = "https://files.pythonhosted.org/packages/73/32/8e1e0410af64cda9b139d1dcebdc993a8ff9c8c7c0e2696ae356d75ccc0d/hf_xet-1.5.0-cp313-cp313t-win_amd64.whl", hash = "sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d", size = 3966608, upload_time = "2026-05-06T06:18:19.74Z" }, - { url = "https://files.pythonhosted.org/packages/fc/34/a8febc8f4edbea8b3e21b02ebc8b628679b84ba7e45cde624a7736b51500/hf_xet-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4", size = 3796946, upload_time = "2026-05-06T06:18:17.568Z" }, - { url = "https://files.pythonhosted.org/packages/3d/fb/69ff198a82cae7eb1a69fb84d93b3a3e4816564d76817fe541ddc96874eb/hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56", size = 4030814, upload_time = "2026-05-06T06:17:57.933Z" }, - { url = "https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a", size = 3798444, upload_time = "2026-05-06T06:17:55.79Z" }, - { url = "https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949", size = 4465986, upload_time = "2026-05-06T06:17:44.886Z" }, - { url = "https://files.pythonhosted.org/packages/c4/a2/546f47f464737b3edbab6f8ddb57f2599b93d2cbb66f06abb475ccb48651/hf_xet-1.5.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b", size = 4259865, upload_time = "2026-05-06T06:17:42.639Z" }, - { url = "https://files.pythonhosted.org/packages/95/7f/1be593c1f28613be2e196473481cd81bfc5910795e30a34e8f744f6cac4f/hf_xet-1.5.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18", size = 4459835, upload_time = "2026-05-06T06:18:08.026Z" }, - { url = "https://files.pythonhosted.org/packages/aa/b2/703569fc881f3284487e68cda7b42179978480da3c438042a6bbbb4a671c/hf_xet-1.5.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690", size = 4672414, upload_time = "2026-05-06T06:18:09.864Z" }, - { url = "https://files.pythonhosted.org/packages/af/37/1b6def445c567286b50aa3b33828158e135b1be44938dde59f11382a500c/hf_xet-1.5.0-cp37-abi3-win_amd64.whl", hash = "sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4", size = 3977238, upload_time = "2026-05-06T06:18:23.621Z" }, - { url = "https://files.pythonhosted.org/packages/62/94/3b66b148778ee100dcfd69c2ca22b57b41b44d3063ceec934f209e9184ce/hf_xet-1.5.0-cp37-abi3-win_arm64.whl", hash = "sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be", size = 3806916, upload_time = "2026-05-06T06:18:21.7Z" }, + { url = "https://files.pythonhosted.org/packages/68/9b/6912c99070915a4f28119e3c5b52a9abd1eec0ad5cb293b8c967a0c6f5a2/hf_xet-1.5.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:7d70fe2ce97b9db73b9c9b9c81fe3693640aec83416a966c446afea54acfae3c", size = 4023383, upload-time = "2026-05-06T06:17:53.947Z" }, + { url = "https://files.pythonhosted.org/packages/0f/6d/9563cfde59b5d8128a9c7ec972a087f4c782e4f7bac5a85234edfd5d5e49/hf_xet-1.5.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:73a0dae8c71de3b0633a45c73f4a4a5ed09e94b43441d82981a781d4f12baa42", size = 3792751, upload-time = "2026-05-06T06:17:51.791Z" }, + { url = "https://files.pythonhosted.org/packages/07/a5/ed5a0cf35b49a0571af5a8f53416dad1877a718c021c9937c3a53cb45781/hf_xet-1.5.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a60290ec57e9b71767fba7c3645ddafdd0759974b540441510c629c6db6db24a", size = 4456058, upload-time = "2026-05-06T06:17:40.735Z" }, + { url = "https://files.pythonhosted.org/packages/60/fb/3ae8bf2a7a37a4197d0195d7247fd25b3952e15cb8a599e285dfaa6f52b3/hf_xet-1.5.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:e5de0f6deada0dada870bb376a11bcd1f08abf3a968a6d118f33e72d1b1eb480", size = 4250783, upload-time = "2026-05-06T06:17:38.412Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/8bae40d4d91525085137196e84eb0ed49cf65b5e96e5c3ecdadd8bd0fac2/hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c799d49f1a5544a0ef7591c0ee75e0d6b93d6f56dc7a4979f59f7518d2872216", size = 4445594, upload-time = "2026-05-06T06:18:04.219Z" }, + { url = "https://files.pythonhosted.org/packages/13/59/c74efbbd4e8728172b2cc72a2bc014d2947a4b7bdced932fbd3f5da1a4e5/hf_xet-1.5.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2baea1b0b989e5c152fe81425f7745ddc8901280ba3d97c98d8cdece7b706c60", size = 4663995, upload-time = "2026-05-06T06:18:06.1Z" }, + { url = "https://files.pythonhosted.org/packages/73/32/8e1e0410af64cda9b139d1dcebdc993a8ff9c8c7c0e2696ae356d75ccc0d/hf_xet-1.5.0-cp313-cp313t-win_amd64.whl", hash = "sha256:526345b3ed45f374f6317349df489167606736c876241ba984105afe7fd4839d", size = 3966608, upload-time = "2026-05-06T06:18:19.74Z" }, + { url = "https://files.pythonhosted.org/packages/fc/34/a8febc8f4edbea8b3e21b02ebc8b628679b84ba7e45cde624a7736b51500/hf_xet-1.5.0-cp313-cp313t-win_arm64.whl", hash = "sha256:786d28e2eb8315d5035544b9d137b4a842d600c434bb91bf7d0d953cce906ad4", size = 3796946, upload-time = "2026-05-06T06:18:17.568Z" }, + { url = "https://files.pythonhosted.org/packages/3d/fb/69ff198a82cae7eb1a69fb84d93b3a3e4816564d76817fe541ddc96874eb/hf_xet-1.5.0-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:dad0dc84e941b8ba3c860659fe1fdc35c049d47cce293f003287757e971a8f56", size = 4030814, upload-time = "2026-05-06T06:17:57.933Z" }, + { url = "https://files.pythonhosted.org/packages/9b/ff/edcc2b40162bef3ff78e14ab637e5f3b89243d6aee72f5949d3bb6a5af83/hf_xet-1.5.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:fd6e5a9b0fdac4ed03ed45ef79254a655b1aaab514a02202617fbf643f5fdf7a", size = 3798444, upload-time = "2026-05-06T06:17:55.79Z" }, + { url = "https://files.pythonhosted.org/packages/49/4d/103f76b04310e5e57656696cc184690d20c466af0bca3ca88f8c8ea5d4f3/hf_xet-1.5.0-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3531b1823a0e6d77d80f9ed15ca0e00f0d115094f8ac033d5cae88f4564cc949", size = 4465986, upload-time = "2026-05-06T06:17:44.886Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a2/546f47f464737b3edbab6f8ddb57f2599b93d2cbb66f06abb475ccb48651/hf_xet-1.5.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:9a0ee58cd18d5ea799f7ed11290bbccbe56bdd8b1d97ca74b9cc49a3945d7a3b", size = 4259865, upload-time = "2026-05-06T06:17:42.639Z" }, + { url = "https://files.pythonhosted.org/packages/95/7f/1be593c1f28613be2e196473481cd81bfc5910795e30a34e8f744f6cac4f/hf_xet-1.5.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:1e60df5a42e9bed8628b6416af2cba4cba57ae9f02de226a06b020d98e1aab18", size = 4459835, upload-time = "2026-05-06T06:18:08.026Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b2/703569fc881f3284487e68cda7b42179978480da3c438042a6bbbb4a671c/hf_xet-1.5.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4b35549ce62601b84da4ff9b24d970032ace3d4430f52d91bcbb26c901d6c690", size = 4672414, upload-time = "2026-05-06T06:18:09.864Z" }, + { url = "https://files.pythonhosted.org/packages/af/37/1b6def445c567286b50aa3b33828158e135b1be44938dde59f11382a500c/hf_xet-1.5.0-cp37-abi3-win_amd64.whl", hash = "sha256:2806c7c17b4d23f8d88f7c4814f838c3b6150773fe339c20af23e1cfaf2797e4", size = 3977238, upload-time = "2026-05-06T06:18:23.621Z" }, + { url = "https://files.pythonhosted.org/packages/62/94/3b66b148778ee100dcfd69c2ca22b57b41b44d3063ceec934f209e9184ce/hf_xet-1.5.0-cp37-abi3-win_arm64.whl", hash = "sha256:b6c9df403040248c76d808d3e047d64db2d923bae593eb244c41e425cf6cd7be", size = 3806916, upload-time = "2026-05-06T06:18:21.7Z" }, ] [[package]] @@ -1363,45 +1413,45 @@ dependencies = [ { name = "certifi" }, { name = "h11" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload_time = "2025-04-24T22:06:22.219Z" } +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload_time = "2025-04-24T22:06:20.566Z" }, + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, ] [[package]] name = "httptools" version = "0.7.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload_time = "2025-10-10T03:55:08.559Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78", size = 204531, upload_time = "2025-10-10T03:54:20.887Z" }, - { url = "https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4", size = 109408, upload_time = "2025-10-10T03:54:22.455Z" }, - { url = "https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05", size = 440889, upload_time = "2025-10-10T03:54:23.753Z" }, - { url = "https://files.pythonhosted.org/packages/eb/d9/2e34811397b76718750fea44658cb0205b84566e895192115252e008b152/httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed", size = 440460, upload_time = "2025-10-10T03:54:25.313Z" }, - { url = "https://files.pythonhosted.org/packages/01/3f/a04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb/httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a", size = 425267, upload_time = "2025-10-10T03:54:26.81Z" }, - { url = "https://files.pythonhosted.org/packages/a5/99/adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9/httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b", size = 424429, upload_time = "2025-10-10T03:54:28.174Z" }, - { url = "https://files.pythonhosted.org/packages/d5/72/ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c/httptools-0.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568", size = 86173, upload_time = "2025-10-10T03:54:29.5Z" }, - { url = "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657", size = 206521, upload_time = "2025-10-10T03:54:31.002Z" }, - { url = "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70", size = 110375, upload_time = "2025-10-10T03:54:31.941Z" }, - { url = "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df", size = 456621, upload_time = "2025-10-10T03:54:33.176Z" }, - { url = "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e", size = 454954, upload_time = "2025-10-10T03:54:34.226Z" }, - { url = "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274", size = 440175, upload_time = "2025-10-10T03:54:35.942Z" }, - { url = "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec", size = 440310, upload_time = "2025-10-10T03:54:37.1Z" }, - { url = "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb", size = 86875, upload_time = "2025-10-10T03:54:38.421Z" }, - { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload_time = "2025-10-10T03:54:39.274Z" }, - { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload_time = "2025-10-10T03:54:40.403Z" }, - { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload_time = "2025-10-10T03:54:41.347Z" }, - { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload_time = "2025-10-10T03:54:42.452Z" }, - { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload_time = "2025-10-10T03:54:43.937Z" }, - { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload_time = "2025-10-10T03:54:45.003Z" }, - { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload_time = "2025-10-10T03:54:45.923Z" }, - { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload_time = "2025-10-10T03:54:47.089Z" }, - { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload_time = "2025-10-10T03:54:48.052Z" }, - { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload_time = "2025-10-10T03:54:48.919Z" }, - { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload_time = "2025-10-10T03:54:49.993Z" }, - { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload_time = "2025-10-10T03:54:51.066Z" }, - { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload_time = "2025-10-10T03:54:52.196Z" }, - { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload_time = "2025-10-10T03:54:53.448Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/b5/46/120a669232c7bdedb9d52d4aeae7e6c7dfe151e99dc70802e2fc7a5e1993/httptools-0.7.1.tar.gz", hash = "sha256:abd72556974f8e7c74a259655924a717a2365b236c882c3f6f8a45fe94703ac9", size = 258961, upload-time = "2025-10-10T03:55:08.559Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/e5/c07e0bcf4ec8db8164e9f6738c048b2e66aabf30e7506f440c4cc6953f60/httptools-0.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:11d01b0ff1fe02c4c32d60af61a4d613b74fad069e47e06e9067758c01e9ac78", size = 204531, upload-time = "2025-10-10T03:54:20.887Z" }, + { url = "https://files.pythonhosted.org/packages/7e/4f/35e3a63f863a659f92ffd92bef131f3e81cf849af26e6435b49bd9f6f751/httptools-0.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:84d86c1e5afdc479a6fdabf570be0d3eb791df0ae727e8dbc0259ed1249998d4", size = 109408, upload-time = "2025-10-10T03:54:22.455Z" }, + { url = "https://files.pythonhosted.org/packages/f5/71/b0a9193641d9e2471ac541d3b1b869538a5fb6419d52fd2669fa9c79e4b8/httptools-0.7.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c8c751014e13d88d2be5f5f14fc8b89612fcfa92a9cc480f2bc1598357a23a05", size = 440889, upload-time = "2025-10-10T03:54:23.753Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d9/2e34811397b76718750fea44658cb0205b84566e895192115252e008b152/httptools-0.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:654968cb6b6c77e37b832a9be3d3ecabb243bbe7a0b8f65fbc5b6b04c8fcabed", size = 440460, upload-time = "2025-10-10T03:54:25.313Z" }, + { url = "https://files.pythonhosted.org/packages/01/3f/a04626ebeacc489866bb4d82362c0657b2262bef381d68310134be7f40bb/httptools-0.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b580968316348b474b020edf3988eecd5d6eec4634ee6561e72ae3a2a0e00a8a", size = 425267, upload-time = "2025-10-10T03:54:26.81Z" }, + { url = "https://files.pythonhosted.org/packages/a5/99/adcd4f66614db627b587627c8ad6f4c55f18881549bab10ecf180562e7b9/httptools-0.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d496e2f5245319da9d764296e86c5bb6fcf0cf7a8806d3d000717a889c8c0b7b", size = 424429, upload-time = "2025-10-10T03:54:28.174Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/ec8fc904a8fd30ba022dfa85f3bbc64c3c7cd75b669e24242c0658e22f3c/httptools-0.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cbf8317bfccf0fed3b5680c559d3459cccf1abe9039bfa159e62e391c7270568", size = 86173, upload-time = "2025-10-10T03:54:29.5Z" }, + { url = "https://files.pythonhosted.org/packages/9c/08/17e07e8d89ab8f343c134616d72eebfe03798835058e2ab579dcc8353c06/httptools-0.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:474d3b7ab469fefcca3697a10d11a32ee2b9573250206ba1e50d5980910da657", size = 206521, upload-time = "2025-10-10T03:54:31.002Z" }, + { url = "https://files.pythonhosted.org/packages/aa/06/c9c1b41ff52f16aee526fd10fbda99fa4787938aa776858ddc4a1ea825ec/httptools-0.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3c3b7366bb6c7b96bd72d0dbe7f7d5eead261361f013be5f6d9590465ea1c70", size = 110375, upload-time = "2025-10-10T03:54:31.941Z" }, + { url = "https://files.pythonhosted.org/packages/cc/cc/10935db22fda0ee34c76f047590ca0a8bd9de531406a3ccb10a90e12ea21/httptools-0.7.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:379b479408b8747f47f3b253326183d7c009a3936518cdb70db58cffd369d9df", size = 456621, upload-time = "2025-10-10T03:54:33.176Z" }, + { url = "https://files.pythonhosted.org/packages/0e/84/875382b10d271b0c11aa5d414b44f92f8dd53e9b658aec338a79164fa548/httptools-0.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cad6b591a682dcc6cf1397c3900527f9affef1e55a06c4547264796bbd17cf5e", size = 454954, upload-time = "2025-10-10T03:54:34.226Z" }, + { url = "https://files.pythonhosted.org/packages/30/e1/44f89b280f7e46c0b1b2ccee5737d46b3bb13136383958f20b580a821ca0/httptools-0.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:eb844698d11433d2139bbeeb56499102143beb582bd6c194e3ba69c22f25c274", size = 440175, upload-time = "2025-10-10T03:54:35.942Z" }, + { url = "https://files.pythonhosted.org/packages/6f/7e/b9287763159e700e335028bc1824359dc736fa9b829dacedace91a39b37e/httptools-0.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f65744d7a8bdb4bda5e1fa23e4ba16832860606fcc09d674d56e425e991539ec", size = 440310, upload-time = "2025-10-10T03:54:37.1Z" }, + { url = "https://files.pythonhosted.org/packages/b3/07/5b614f592868e07f5c94b1f301b5e14a21df4e8076215a3bccb830a687d8/httptools-0.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:135fbe974b3718eada677229312e97f3b31f8a9c8ffa3ae6f565bf808d5b6bcb", size = 86875, upload-time = "2025-10-10T03:54:38.421Z" }, + { url = "https://files.pythonhosted.org/packages/53/7f/403e5d787dc4942316e515e949b0c8a013d84078a915910e9f391ba9b3ed/httptools-0.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:38e0c83a2ea9746ebbd643bdfb521b9aa4a91703e2cd705c20443405d2fd16a5", size = 206280, upload-time = "2025-10-10T03:54:39.274Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0d/7f3fd28e2ce311ccc998c388dd1c53b18120fda3b70ebb022b135dc9839b/httptools-0.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f25bbaf1235e27704f1a7b86cd3304eabc04f569c828101d94a0e605ef7205a5", size = 110004, upload-time = "2025-10-10T03:54:40.403Z" }, + { url = "https://files.pythonhosted.org/packages/84/a6/b3965e1e146ef5762870bbe76117876ceba51a201e18cc31f5703e454596/httptools-0.7.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2c15f37ef679ab9ecc06bfc4e6e8628c32a8e4b305459de7cf6785acd57e4d03", size = 517655, upload-time = "2025-10-10T03:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/11/7d/71fee6f1844e6fa378f2eddde6c3e41ce3a1fb4b2d81118dd544e3441ec0/httptools-0.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7fe6e96090df46b36ccfaf746f03034e5ab723162bc51b0a4cf58305324036f2", size = 511440, upload-time = "2025-10-10T03:54:42.452Z" }, + { url = "https://files.pythonhosted.org/packages/22/a5/079d216712a4f3ffa24af4a0381b108aa9c45b7a5cc6eb141f81726b1823/httptools-0.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f72fdbae2dbc6e68b8239defb48e6a5937b12218e6ffc2c7846cc37befa84362", size = 495186, upload-time = "2025-10-10T03:54:43.937Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/025ad7b65278745dee3bd0ebf9314934c4592560878308a6121f7f812084/httptools-0.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e99c7b90a29fd82fea9ef57943d501a16f3404d7b9ee81799d41639bdaae412c", size = 499192, upload-time = "2025-10-10T03:54:45.003Z" }, + { url = "https://files.pythonhosted.org/packages/6d/de/40a8f202b987d43afc4d54689600ff03ce65680ede2f31df348d7f368b8f/httptools-0.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:3e14f530fefa7499334a79b0cf7e7cd2992870eb893526fb097d51b4f2d0f321", size = 86694, upload-time = "2025-10-10T03:54:45.923Z" }, + { url = "https://files.pythonhosted.org/packages/09/8f/c77b1fcbfd262d422f12da02feb0d218fa228d52485b77b953832105bb90/httptools-0.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6babce6cfa2a99545c60bfef8bee0cc0545413cb0018f617c8059a30ad985de3", size = 202889, upload-time = "2025-10-10T03:54:47.089Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1a/22887f53602feaa066354867bc49a68fc295c2293433177ee90870a7d517/httptools-0.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:601b7628de7504077dd3dcb3791c6b8694bbd967148a6d1f01806509254fb1ca", size = 108180, upload-time = "2025-10-10T03:54:48.052Z" }, + { url = "https://files.pythonhosted.org/packages/32/6a/6aaa91937f0010d288d3d124ca2946d48d60c3a5ee7ca62afe870e3ea011/httptools-0.7.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04c6c0e6c5fb0739c5b8a9eb046d298650a0ff38cf42537fc372b28dc7e4472c", size = 478596, upload-time = "2025-10-10T03:54:48.919Z" }, + { url = "https://files.pythonhosted.org/packages/6d/70/023d7ce117993107be88d2cbca566a7c1323ccbaf0af7eabf2064fe356f6/httptools-0.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:69d4f9705c405ae3ee83d6a12283dc9feba8cc6aaec671b412917e644ab4fa66", size = 473268, upload-time = "2025-10-10T03:54:49.993Z" }, + { url = "https://files.pythonhosted.org/packages/32/4d/9dd616c38da088e3f436e9a616e1d0cc66544b8cdac405cc4e81c8679fc7/httptools-0.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:44c8f4347d4b31269c8a9205d8a5ee2df5322b09bbbd30f8f862185bb6b05346", size = 455517, upload-time = "2025-10-10T03:54:51.066Z" }, + { url = "https://files.pythonhosted.org/packages/1d/3a/a6c595c310b7df958e739aae88724e24f9246a514d909547778d776799be/httptools-0.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:465275d76db4d554918aba40bf1cbebe324670f3dfc979eaffaa5d108e2ed650", size = 458337, upload-time = "2025-10-10T03:54:52.196Z" }, + { url = "https://files.pythonhosted.org/packages/fd/82/88e8d6d2c51edc1cc391b6e044c6c435b6aebe97b1abc33db1b0b24cd582/httptools-0.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:322d00c2068d125bd570f7bf78b2d367dad02b919d8581d7476d8b75b294e3e6", size = 85743, upload-time = "2025-10-10T03:54:53.448Z" }, ] [[package]] @@ -1414,9 +1464,9 @@ dependencies = [ { name = "httpcore" }, { name = "idna" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload_time = "2024-12-06T15:37:23.222Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload_time = "2024-12-06T15:37:21.509Z" }, + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] [[package]] @@ -1434,27 +1484,27 @@ dependencies = [ { name = "typer" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/89/ff/ec7ed2eb43bd7ce8bb2233d109cc235c3e807ffe5e469dc09db261fac05e/huggingface_hub-1.13.0.tar.gz", hash = "sha256:f6df2dac5abe82ce2fe05873d10d5ff47bc677d616a2f521f4ee26db9415d9d0", size = 781788, upload_time = "2026-04-30T11:57:33.858Z" } +sdist = { url = "https://files.pythonhosted.org/packages/89/ff/ec7ed2eb43bd7ce8bb2233d109cc235c3e807ffe5e469dc09db261fac05e/huggingface_hub-1.13.0.tar.gz", hash = "sha256:f6df2dac5abe82ce2fe05873d10d5ff47bc677d616a2f521f4ee26db9415d9d0", size = 781788, upload-time = "2026-04-30T11:57:33.858Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/93/db/4b1cdae9460ae1f3ca020cd767f013430ce23eb1d9c890ae3a0609b38d26/huggingface_hub-1.13.0-py3-none-any.whl", hash = "sha256:e942cb50d6a08dd5306688b1ac05bda157fd2fcc88b63dae405f7bd0d3234005", size = 660643, upload_time = "2026-04-30T11:57:31.802Z" }, + { url = "https://files.pythonhosted.org/packages/93/db/4b1cdae9460ae1f3ca020cd767f013430ce23eb1d9c890ae3a0609b38d26/huggingface_hub-1.13.0-py3-none-any.whl", hash = "sha256:e942cb50d6a08dd5306688b1ac05bda157fd2fcc88b63dae405f7bd0d3234005", size = 660643, upload-time = "2026-04-30T11:57:31.802Z" }, ] [[package]] name = "identify" version = "2.6.16" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5b/8d/e8b97e6bd3fb6fb271346f7981362f1e04d6a7463abd0de79e1fda17c067/identify-2.6.16.tar.gz", hash = "sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980", size = 99360, upload_time = "2026-01-12T18:58:58.201Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/8d/e8b97e6bd3fb6fb271346f7981362f1e04d6a7463abd0de79e1fda17c067/identify-2.6.16.tar.gz", hash = "sha256:846857203b5511bbe94d5a352a48ef2359532bc8f6727b5544077a0dcfb24980", size = 99360, upload-time = "2026-01-12T18:58:58.201Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b8/58/40fbbcefeda82364720eba5cf2270f98496bdfa19ea75b4cccae79c698e6/identify-2.6.16-py2.py3-none-any.whl", hash = "sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0", size = 99202, upload_time = "2026-01-12T18:58:56.627Z" }, + { url = "https://files.pythonhosted.org/packages/b8/58/40fbbcefeda82364720eba5cf2270f98496bdfa19ea75b4cccae79c698e6/identify-2.6.16-py2.py3-none-any.whl", hash = "sha256:391ee4d77741d994189522896270b787aed8670389bfd60f326d677d64a6dfb0", size = 99202, upload-time = "2026-01-12T18:58:56.627Z" }, ] [[package]] name = "idna" version = "3.11" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload_time = "2025-10-12T14:55:20.501Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload_time = "2025-10-12T14:55:18.883Z" }, + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, ] [[package]] @@ -1464,18 +1514,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "zipp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload_time = "2025-12-21T10:00:19.278Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload_time = "2025-12-21T10:00:18.329Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, ] [[package]] name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload_time = "2025-10-18T21:55:43.219Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload_time = "2025-10-18T21:55:41.639Z" }, + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] @@ -1485,18 +1535,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "arrow" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload_time = "2020-11-01T11:00:00.312Z" } +sdist = { url = "https://files.pythonhosted.org/packages/7c/1a/3c8edc664e06e6bd06cce40c6b22da5f1429aa4224d0c590f3be21c91ead/isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9", size = 11649, upload-time = "2020-11-01T11:00:00.312Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload_time = "2020-11-01T10:59:58.02Z" }, + { url = "https://files.pythonhosted.org/packages/7b/55/e5326141505c5d5e34c5e0935d2908a74e4561eca44108fbfb9c13d2911a/isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042", size = 11321, upload-time = "2020-11-01T10:59:58.02Z" }, ] [[package]] name = "itsdangerous" version = "2.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload_time = "2024-04-16T21:28:15.614Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9c/cb/8ac0172223afbccb63986cc25049b154ecfb5e85932587206f42317be31d/itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173", size = 54410, upload-time = "2024-04-16T21:28:15.614Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload_time = "2024-04-16T21:28:14.499Z" }, + { url = "https://files.pythonhosted.org/packages/04/96/92447566d16df59b2a776c0fb82dbc4d9e07cd95062562af01e408583fc4/itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef", size = 16234, upload-time = "2024-04-16T21:28:14.499Z" }, ] [[package]] @@ -1506,9 +1556,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "parso" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload_time = "2024-11-11T01:41:42.873Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/3a/79a912fbd4d8dd6fbb02bf69afd3bb72cf0c729bb3063c6f4498603db17a/jedi-0.19.2.tar.gz", hash = "sha256:4770dc3de41bde3966b02eb84fbcf557fb33cce26ad23da12c742fb50ecb11f0", size = 1231287, upload-time = "2024-11-11T01:41:42.873Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload_time = "2024-11-11T01:41:40.175Z" }, + { url = "https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl", hash = "sha256:a8ef22bde8490f57fe5c7681a3c83cb58874daf72b4784de3cce5b6ef6edb5b9", size = 1572278, upload-time = "2024-11-11T01:41:40.175Z" }, ] [[package]] @@ -1518,90 +1568,90 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload_time = "2025-03-05T20:05:02.478Z" } +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload_time = "2025-03-05T20:05:00.369Z" }, + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, ] [[package]] name = "jiter" version = "0.13.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0d/5e/4ec91646aee381d01cdb9974e30882c9cd3b8c5d1079d6b5ff4af522439a/jiter-0.13.0.tar.gz", hash = "sha256:f2839f9c2c7e2dffc1bc5929a510e14ce0a946be9365fd1219e7ef342dae14f4", size = 164847, upload_time = "2026-02-02T12:37:56.441Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d0/5a/41da76c5ea07bec1b0472b6b2fdb1b651074d504b19374d7e130e0cdfb25/jiter-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2ffc63785fd6c7977defe49b9824ae6ce2b2e2b77ce539bdaf006c26da06342e", size = 311164, upload_time = "2026-02-02T12:35:17.688Z" }, - { url = "https://files.pythonhosted.org/packages/40/cb/4a1bf994a3e869f0d39d10e11efb471b76d0ad70ecbfb591427a46c880c2/jiter-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a638816427006c1e3f0013eb66d391d7a3acda99a7b0cf091eff4497ccea33a", size = 320296, upload_time = "2026-02-02T12:35:19.828Z" }, - { url = "https://files.pythonhosted.org/packages/09/82/acd71ca9b50ecebadc3979c541cd717cce2fe2bc86236f4fa597565d8f1a/jiter-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19928b5d1ce0ff8c1ee1b9bdef3b5bfc19e8304f1b904e436caf30bc15dc6cf5", size = 352742, upload_time = "2026-02-02T12:35:21.258Z" }, - { url = "https://files.pythonhosted.org/packages/71/03/d1fc996f3aecfd42eb70922edecfb6dd26421c874503e241153ad41df94f/jiter-0.13.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:309549b778b949d731a2f0e1594a3f805716be704a73bf3ad9a807eed5eb5721", size = 363145, upload_time = "2026-02-02T12:35:24.653Z" }, - { url = "https://files.pythonhosted.org/packages/f1/61/a30492366378cc7a93088858f8991acd7d959759fe6138c12a4644e58e81/jiter-0.13.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcdabaea26cb04e25df3103ce47f97466627999260290349a88c8136ecae0060", size = 487683, upload_time = "2026-02-02T12:35:26.162Z" }, - { url = "https://files.pythonhosted.org/packages/20/4e/4223cffa9dbbbc96ed821c5aeb6bca510848c72c02086d1ed3f1da3d58a7/jiter-0.13.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3a377af27b236abbf665a69b2bdd680e3b5a0bd2af825cd3b81245279a7606c", size = 373579, upload_time = "2026-02-02T12:35:27.582Z" }, - { url = "https://files.pythonhosted.org/packages/fe/c9/b0489a01329ab07a83812d9ebcffe7820a38163c6d9e7da644f926ff877c/jiter-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe49d3ff6db74321f144dff9addd4a5874d3105ac5ba7c5b77fac099cfae31ae", size = 362904, upload_time = "2026-02-02T12:35:28.925Z" }, - { url = "https://files.pythonhosted.org/packages/05/af/53e561352a44afcba9a9bc67ee1d320b05a370aed8df54eafe714c4e454d/jiter-0.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2113c17c9a67071b0f820733c0893ed1d467b5fcf4414068169e5c2cabddb1e2", size = 392380, upload_time = "2026-02-02T12:35:30.385Z" }, - { url = "https://files.pythonhosted.org/packages/76/2a/dd805c3afb8ed5b326c5ae49e725d1b1255b9754b1b77dbecdc621b20773/jiter-0.13.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ab1185ca5c8b9491b55ebf6c1e8866b8f68258612899693e24a92c5fdb9455d5", size = 517939, upload_time = "2026-02-02T12:35:31.865Z" }, - { url = "https://files.pythonhosted.org/packages/20/2a/7b67d76f55b8fe14c937e7640389612f05f9a4145fc28ae128aaa5e62257/jiter-0.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9621ca242547edc16400981ca3231e0c91c0c4c1ab8573a596cd9bb3575d5c2b", size = 551696, upload_time = "2026-02-02T12:35:33.306Z" }, - { url = "https://files.pythonhosted.org/packages/85/9c/57cdd64dac8f4c6ab8f994fe0eb04dc9fd1db102856a4458fcf8a99dfa62/jiter-0.13.0-cp310-cp310-win32.whl", hash = "sha256:a7637d92b1c9d7a771e8c56f445c7f84396d48f2e756e5978840ecba2fac0894", size = 204592, upload_time = "2026-02-02T12:35:34.58Z" }, - { url = "https://files.pythonhosted.org/packages/a7/38/f4f3ea5788b8a5bae7510a678cdc747eda0c45ffe534f9878ff37e7cf3b3/jiter-0.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c1b609e5cbd2f52bb74fb721515745b407df26d7b800458bd97cb3b972c29e7d", size = 206016, upload_time = "2026-02-02T12:35:36.435Z" }, - { url = "https://files.pythonhosted.org/packages/71/29/499f8c9eaa8a16751b1c0e45e6f5f1761d180da873d417996cc7bddc8eef/jiter-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ea026e70a9a28ebbdddcbcf0f1323128a8db66898a06eaad3a4e62d2f554d096", size = 311157, upload_time = "2026-02-02T12:35:37.758Z" }, - { url = "https://files.pythonhosted.org/packages/50/f6/566364c777d2ab450b92100bea11333c64c38d32caf8dc378b48e5b20c46/jiter-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66aa3e663840152d18cc8ff1e4faad3dd181373491b9cfdc6004b92198d67911", size = 319729, upload_time = "2026-02-02T12:35:39.246Z" }, - { url = "https://files.pythonhosted.org/packages/73/dd/560f13ec5e4f116d8ad2658781646cca91b617ae3b8758d4a5076b278f70/jiter-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3524798e70655ff19aec58c7d05adb1f074fecff62da857ea9be2b908b6d701", size = 354766, upload_time = "2026-02-02T12:35:40.662Z" }, - { url = "https://files.pythonhosted.org/packages/7c/0d/061faffcfe94608cbc28a0d42a77a74222bdf5055ccdbe5fd2292b94f510/jiter-0.13.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec7e287d7fbd02cb6e22f9a00dd9c9cd504c40a61f2c61e7e1f9690a82726b4c", size = 362587, upload_time = "2026-02-02T12:35:42.025Z" }, - { url = "https://files.pythonhosted.org/packages/92/c9/c66a7864982fd38a9773ec6e932e0398d1262677b8c60faecd02ffb67bf3/jiter-0.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47455245307e4debf2ce6c6e65a717550a0244231240dcf3b8f7d64e4c2f22f4", size = 487537, upload_time = "2026-02-02T12:35:43.459Z" }, - { url = "https://files.pythonhosted.org/packages/6c/86/84eb4352cd3668f16d1a88929b5888a3fe0418ea8c1dfc2ad4e7bf6e069a/jiter-0.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9da221dca6e0429c2704c1b3655fe7b025204a71d4d9b73390c759d776d165", size = 373717, upload_time = "2026-02-02T12:35:44.928Z" }, - { url = "https://files.pythonhosted.org/packages/6e/09/9fe4c159358176f82d4390407a03f506a8659ed13ca3ac93a843402acecf/jiter-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24ab43126d5e05f3d53a36a8e11eb2f23304c6c1117844aaaf9a0aa5e40b5018", size = 362683, upload_time = "2026-02-02T12:35:46.636Z" }, - { url = "https://files.pythonhosted.org/packages/c9/5e/85f3ab9caca0c1d0897937d378b4a515cae9e119730563572361ea0c48ae/jiter-0.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9da38b4fedde4fb528c740c2564628fbab737166a0e73d6d46cb4bb5463ff411", size = 392345, upload_time = "2026-02-02T12:35:48.088Z" }, - { url = "https://files.pythonhosted.org/packages/12/4c/05b8629ad546191939e6f0c2f17e29f542a398f4a52fb987bc70b6d1eb8b/jiter-0.13.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0b34c519e17658ed88d5047999a93547f8889f3c1824120c26ad6be5f27b6cf5", size = 517775, upload_time = "2026-02-02T12:35:49.482Z" }, - { url = "https://files.pythonhosted.org/packages/4d/88/367ea2eb6bc582c7052e4baf5ddf57ebe5ab924a88e0e09830dfb585c02d/jiter-0.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2a6394e6af690d462310a86b53c47ad75ac8c21dc79f120714ea449979cb1d3", size = 551325, upload_time = "2026-02-02T12:35:51.104Z" }, - { url = "https://files.pythonhosted.org/packages/f3/12/fa377ffb94a2f28c41afaed093e0d70cfe512035d5ecb0cad0ae4792d35e/jiter-0.13.0-cp311-cp311-win32.whl", hash = "sha256:0f0c065695f616a27c920a56ad0d4fc46415ef8b806bf8fc1cacf25002bd24e1", size = 204709, upload_time = "2026-02-02T12:35:52.467Z" }, - { url = "https://files.pythonhosted.org/packages/cb/16/8e8203ce92f844dfcd3d9d6a5a7322c77077248dbb12da52d23193a839cd/jiter-0.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:0733312953b909688ae3c2d58d043aa040f9f1a6a75693defed7bc2cc4bf2654", size = 204560, upload_time = "2026-02-02T12:35:53.925Z" }, - { url = "https://files.pythonhosted.org/packages/44/26/97cc40663deb17b9e13c3a5cf29251788c271b18ee4d262c8f94798b8336/jiter-0.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:5d9b34ad56761b3bf0fbe8f7e55468704107608512350962d3317ffd7a4382d5", size = 189608, upload_time = "2026-02-02T12:35:55.304Z" }, - { url = "https://files.pythonhosted.org/packages/2e/30/7687e4f87086829955013ca12a9233523349767f69653ebc27036313def9/jiter-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0a2bd69fc1d902e89925fc34d1da51b2128019423d7b339a45d9e99c894e0663", size = 307958, upload_time = "2026-02-02T12:35:57.165Z" }, - { url = "https://files.pythonhosted.org/packages/c3/27/e57f9a783246ed95481e6749cc5002a8a767a73177a83c63ea71f0528b90/jiter-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f917a04240ef31898182f76a332f508f2cc4b57d2b4d7ad2dbfebbfe167eb505", size = 318597, upload_time = "2026-02-02T12:35:58.591Z" }, - { url = "https://files.pythonhosted.org/packages/cf/52/e5719a60ac5d4d7c5995461a94ad5ef962a37c8bf5b088390e6fad59b2ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e2b199f446d3e82246b4fd9236d7cb502dc2222b18698ba0d986d2fecc6152", size = 348821, upload_time = "2026-02-02T12:36:00.093Z" }, - { url = "https://files.pythonhosted.org/packages/61/db/c1efc32b8ba4c740ab3fc2d037d8753f67685f475e26b9d6536a4322bcdd/jiter-0.13.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04670992b576fa65bd056dbac0c39fe8bd67681c380cb2b48efa885711d9d726", size = 364163, upload_time = "2026-02-02T12:36:01.937Z" }, - { url = "https://files.pythonhosted.org/packages/55/8a/fb75556236047c8806995671a18e4a0ad646ed255276f51a20f32dceaeec/jiter-0.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a1aff1fbdb803a376d4d22a8f63f8e7ccbce0b4890c26cc7af9e501ab339ef0", size = 483709, upload_time = "2026-02-02T12:36:03.41Z" }, - { url = "https://files.pythonhosted.org/packages/7e/16/43512e6ee863875693a8e6f6d532e19d650779d6ba9a81593ae40a9088ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b3fb8c2053acaef8580809ac1d1f7481a0a0bdc012fd7f5d8b18fb696a5a089", size = 370480, upload_time = "2026-02-02T12:36:04.791Z" }, - { url = "https://files.pythonhosted.org/packages/f8/4c/09b93e30e984a187bc8aaa3510e1ec8dcbdcd71ca05d2f56aac0492453aa/jiter-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdaba7d87e66f26a2c45d8cbadcbfc4bf7884182317907baf39cfe9775bb4d93", size = 360735, upload_time = "2026-02-02T12:36:06.994Z" }, - { url = "https://files.pythonhosted.org/packages/1a/1b/46c5e349019874ec5dfa508c14c37e29864ea108d376ae26d90bee238cd7/jiter-0.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b88d649135aca526da172e48083da915ec086b54e8e73a425ba50999468cc08", size = 391814, upload_time = "2026-02-02T12:36:08.368Z" }, - { url = "https://files.pythonhosted.org/packages/15/9e/26184760e85baee7162ad37b7912797d2077718476bf91517641c92b3639/jiter-0.13.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e404ea551d35438013c64b4f357b0474c7abf9f781c06d44fcaf7a14c69ff9e2", size = 513990, upload_time = "2026-02-02T12:36:09.993Z" }, - { url = "https://files.pythonhosted.org/packages/e9/34/2c9355247d6debad57a0a15e76ab1566ab799388042743656e566b3b7de1/jiter-0.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f4748aad1b4a93c8bdd70f604d0f748cdc0e8744c5547798acfa52f10e79228", size = 548021, upload_time = "2026-02-02T12:36:11.376Z" }, - { url = "https://files.pythonhosted.org/packages/ac/4a/9f2c23255d04a834398b9c2e0e665382116911dc4d06b795710503cdad25/jiter-0.13.0-cp312-cp312-win32.whl", hash = "sha256:0bf670e3b1445fc4d31612199f1744f67f889ee1bbae703c4b54dc097e5dd394", size = 203024, upload_time = "2026-02-02T12:36:12.682Z" }, - { url = "https://files.pythonhosted.org/packages/09/ee/f0ae675a957ae5a8f160be3e87acea6b11dc7b89f6b7ab057e77b2d2b13a/jiter-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:15db60e121e11fe186c0b15236bd5d18381b9ddacdcf4e659feb96fc6c969c92", size = 205424, upload_time = "2026-02-02T12:36:13.93Z" }, - { url = "https://files.pythonhosted.org/packages/1b/02/ae611edf913d3cbf02c97cdb90374af2082c48d7190d74c1111dde08bcdd/jiter-0.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:41f92313d17989102f3cb5dd533a02787cdb99454d494344b0361355da52fcb9", size = 186818, upload_time = "2026-02-02T12:36:15.308Z" }, - { url = "https://files.pythonhosted.org/packages/91/9c/7ee5a6ff4b9991e1a45263bfc46731634c4a2bde27dfda6c8251df2d958c/jiter-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1f8a55b848cbabf97d861495cd65f1e5c590246fabca8b48e1747c4dfc8f85bf", size = 306897, upload_time = "2026-02-02T12:36:16.748Z" }, - { url = "https://files.pythonhosted.org/packages/7c/02/be5b870d1d2be5dd6a91bdfb90f248fbb7dcbd21338f092c6b89817c3dbf/jiter-0.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f556aa591c00f2c45eb1b89f68f52441a016034d18b65da60e2d2875bbbf344a", size = 317507, upload_time = "2026-02-02T12:36:18.351Z" }, - { url = "https://files.pythonhosted.org/packages/da/92/b25d2ec333615f5f284f3a4024f7ce68cfa0604c322c6808b2344c7f5d2b/jiter-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7e1d61da332ec412350463891923f960c3073cf1aae93b538f0bb4c8cd46efb", size = 350560, upload_time = "2026-02-02T12:36:19.746Z" }, - { url = "https://files.pythonhosted.org/packages/be/ec/74dcb99fef0aca9fbe56b303bf79f6bd839010cb18ad41000bf6cc71eec0/jiter-0.13.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3097d665a27bc96fd9bbf7f86178037db139f319f785e4757ce7ccbf390db6c2", size = 363232, upload_time = "2026-02-02T12:36:21.243Z" }, - { url = "https://files.pythonhosted.org/packages/1b/37/f17375e0bb2f6a812d4dd92d7616e41917f740f3e71343627da9db2824ce/jiter-0.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d01ecc3a8cbdb6f25a37bd500510550b64ddf9f7d64a107d92f3ccb25035d0f", size = 483727, upload_time = "2026-02-02T12:36:22.688Z" }, - { url = "https://files.pythonhosted.org/packages/77/d2/a71160a5ae1a1e66c1395b37ef77da67513b0adba73b993a27fbe47eb048/jiter-0.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed9bbc30f5d60a3bdf63ae76beb3f9db280d7f195dfcfa61af792d6ce912d159", size = 370799, upload_time = "2026-02-02T12:36:24.106Z" }, - { url = "https://files.pythonhosted.org/packages/01/99/ed5e478ff0eb4e8aa5fd998f9d69603c9fd3f32de3bd16c2b1194f68361c/jiter-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fbafb6e88256f4454de33c1f40203d09fc33ed19162a68b3b257b29ca7f663", size = 359120, upload_time = "2026-02-02T12:36:25.519Z" }, - { url = "https://files.pythonhosted.org/packages/16/be/7ffd08203277a813f732ba897352797fa9493faf8dc7995b31f3d9cb9488/jiter-0.13.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5467696f6b827f1116556cb0db620440380434591e93ecee7fd14d1a491b6daa", size = 390664, upload_time = "2026-02-02T12:36:26.866Z" }, - { url = "https://files.pythonhosted.org/packages/d1/84/e0787856196d6d346264d6dcccb01f741e5f0bd014c1d9a2ebe149caf4f3/jiter-0.13.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2d08c9475d48b92892583df9da592a0e2ac49bcd41fae1fec4f39ba6cf107820", size = 513543, upload_time = "2026-02-02T12:36:28.217Z" }, - { url = "https://files.pythonhosted.org/packages/65/50/ecbd258181c4313cf79bca6c88fb63207d04d5bf5e4f65174114d072aa55/jiter-0.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:aed40e099404721d7fcaf5b89bd3b4568a4666358bcac7b6b15c09fb6252ab68", size = 547262, upload_time = "2026-02-02T12:36:29.678Z" }, - { url = "https://files.pythonhosted.org/packages/27/da/68f38d12e7111d2016cd198161b36e1f042bd115c169255bcb7ec823a3bf/jiter-0.13.0-cp313-cp313-win32.whl", hash = "sha256:36ebfbcffafb146d0e6ffb3e74d51e03d9c35ce7c625c8066cdbfc7b953bdc72", size = 200630, upload_time = "2026-02-02T12:36:31.808Z" }, - { url = "https://files.pythonhosted.org/packages/25/65/3bd1a972c9a08ecd22eb3b08a95d1941ebe6938aea620c246cf426ae09c2/jiter-0.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:8d76029f077379374cf0dbc78dbe45b38dec4a2eb78b08b5194ce836b2517afc", size = 202602, upload_time = "2026-02-02T12:36:33.679Z" }, - { url = "https://files.pythonhosted.org/packages/15/fe/13bd3678a311aa67686bb303654792c48206a112068f8b0b21426eb6851e/jiter-0.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:bb7613e1a427cfcb6ea4544f9ac566b93d5bf67e0d48c787eca673ff9c9dff2b", size = 185939, upload_time = "2026-02-02T12:36:35.065Z" }, - { url = "https://files.pythonhosted.org/packages/49/19/a929ec002ad3228bc97ca01dbb14f7632fffdc84a95ec92ceaf4145688ae/jiter-0.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fa476ab5dd49f3bf3a168e05f89358c75a17608dbabb080ef65f96b27c19ab10", size = 316616, upload_time = "2026-02-02T12:36:36.579Z" }, - { url = "https://files.pythonhosted.org/packages/52/56/d19a9a194afa37c1728831e5fb81b7722c3de18a3109e8f282bfc23e587a/jiter-0.13.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade8cb6ff5632a62b7dbd4757d8c5573f7a2e9ae285d6b5b841707d8363205ef", size = 346850, upload_time = "2026-02-02T12:36:38.058Z" }, - { url = "https://files.pythonhosted.org/packages/36/4a/94e831c6bf287754a8a019cb966ed39ff8be6ab78cadecf08df3bb02d505/jiter-0.13.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9950290340acc1adaded363edd94baebcee7dabdfa8bee4790794cd5cfad2af6", size = 358551, upload_time = "2026-02-02T12:36:39.417Z" }, - { url = "https://files.pythonhosted.org/packages/a2/ec/a4c72c822695fa80e55d2b4142b73f0012035d9fcf90eccc56bc060db37c/jiter-0.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2b4972c6df33731aac0742b64fd0d18e0a69bc7d6e03108ce7d40c85fd9e3e6d", size = 201950, upload_time = "2026-02-02T12:36:40.791Z" }, - { url = "https://files.pythonhosted.org/packages/b6/00/393553ec27b824fbc29047e9c7cd4a3951d7fbe4a76743f17e44034fa4e4/jiter-0.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:701a1e77d1e593c1b435315ff625fd071f0998c5f02792038a5ca98899261b7d", size = 185852, upload_time = "2026-02-02T12:36:42.077Z" }, - { url = "https://files.pythonhosted.org/packages/79/b3/3c29819a27178d0e461a8571fb63c6ae38be6dc36b78b3ec2876bbd6a910/jiter-0.13.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b1cbfa133241d0e6bdab48dcdc2604e8ba81512f6bbd68ec3e8e1357dd3c316c", size = 307016, upload_time = "2026-02-02T12:37:42.755Z" }, - { url = "https://files.pythonhosted.org/packages/eb/ae/60993e4b07b1ac5ebe46da7aa99fdbb802eb986c38d26e3883ac0125c4e0/jiter-0.13.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:db367d8be9fad6e8ebbac4a7578b7af562e506211036cba2c06c3b998603c3d2", size = 305024, upload_time = "2026-02-02T12:37:44.774Z" }, - { url = "https://files.pythonhosted.org/packages/77/fa/2227e590e9cf98803db2811f172b2d6460a21539ab73006f251c66f44b14/jiter-0.13.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45f6f8efb2f3b0603092401dc2df79fa89ccbc027aaba4174d2d4133ed661434", size = 339337, upload_time = "2026-02-02T12:37:46.668Z" }, - { url = "https://files.pythonhosted.org/packages/2d/92/015173281f7eb96c0ef580c997da8ef50870d4f7f4c9e03c845a1d62ae04/jiter-0.13.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:597245258e6ad085d064780abfb23a284d418d3e61c57362d9449c6c7317ee2d", size = 346395, upload_time = "2026-02-02T12:37:48.09Z" }, - { url = "https://files.pythonhosted.org/packages/80/60/e50fa45dd7e2eae049f0ce964663849e897300433921198aef94b6ffa23a/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:3d744a6061afba08dd7ae375dcde870cffb14429b7477e10f67e9e6d68772a0a", size = 305169, upload_time = "2026-02-02T12:37:50.376Z" }, - { url = "https://files.pythonhosted.org/packages/d2/73/a009f41c5eed71c49bec53036c4b33555afcdee70682a18c6f66e396c039/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:ff732bd0a0e778f43d5009840f20b935e79087b4dc65bd36f1cd0f9b04b8ff7f", size = 303808, upload_time = "2026-02-02T12:37:52.092Z" }, - { url = "https://files.pythonhosted.org/packages/c4/10/528b439290763bff3d939268085d03382471b442f212dca4ff5f12802d43/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab44b178f7981fcaea7e0a5df20e773c663d06ffda0198f1a524e91b2fde7e59", size = 337384, upload_time = "2026-02-02T12:37:53.582Z" }, - { url = "https://files.pythonhosted.org/packages/67/8a/a342b2f0251f3dac4ca17618265d93bf244a2a4d089126e81e4c1056ac50/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bb00b6d26db67a05fe3e12c76edc75f32077fb51deed13822dc648fa373bc19", size = 343768, upload_time = "2026-02-02T12:37:55.055Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/0d/5e/4ec91646aee381d01cdb9974e30882c9cd3b8c5d1079d6b5ff4af522439a/jiter-0.13.0.tar.gz", hash = "sha256:f2839f9c2c7e2dffc1bc5929a510e14ce0a946be9365fd1219e7ef342dae14f4", size = 164847, upload-time = "2026-02-02T12:37:56.441Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d0/5a/41da76c5ea07bec1b0472b6b2fdb1b651074d504b19374d7e130e0cdfb25/jiter-0.13.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2ffc63785fd6c7977defe49b9824ae6ce2b2e2b77ce539bdaf006c26da06342e", size = 311164, upload-time = "2026-02-02T12:35:17.688Z" }, + { url = "https://files.pythonhosted.org/packages/40/cb/4a1bf994a3e869f0d39d10e11efb471b76d0ad70ecbfb591427a46c880c2/jiter-0.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4a638816427006c1e3f0013eb66d391d7a3acda99a7b0cf091eff4497ccea33a", size = 320296, upload-time = "2026-02-02T12:35:19.828Z" }, + { url = "https://files.pythonhosted.org/packages/09/82/acd71ca9b50ecebadc3979c541cd717cce2fe2bc86236f4fa597565d8f1a/jiter-0.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19928b5d1ce0ff8c1ee1b9bdef3b5bfc19e8304f1b904e436caf30bc15dc6cf5", size = 352742, upload-time = "2026-02-02T12:35:21.258Z" }, + { url = "https://files.pythonhosted.org/packages/71/03/d1fc996f3aecfd42eb70922edecfb6dd26421c874503e241153ad41df94f/jiter-0.13.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:309549b778b949d731a2f0e1594a3f805716be704a73bf3ad9a807eed5eb5721", size = 363145, upload-time = "2026-02-02T12:35:24.653Z" }, + { url = "https://files.pythonhosted.org/packages/f1/61/a30492366378cc7a93088858f8991acd7d959759fe6138c12a4644e58e81/jiter-0.13.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bcdabaea26cb04e25df3103ce47f97466627999260290349a88c8136ecae0060", size = 487683, upload-time = "2026-02-02T12:35:26.162Z" }, + { url = "https://files.pythonhosted.org/packages/20/4e/4223cffa9dbbbc96ed821c5aeb6bca510848c72c02086d1ed3f1da3d58a7/jiter-0.13.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a3a377af27b236abbf665a69b2bdd680e3b5a0bd2af825cd3b81245279a7606c", size = 373579, upload-time = "2026-02-02T12:35:27.582Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c9/b0489a01329ab07a83812d9ebcffe7820a38163c6d9e7da644f926ff877c/jiter-0.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe49d3ff6db74321f144dff9addd4a5874d3105ac5ba7c5b77fac099cfae31ae", size = 362904, upload-time = "2026-02-02T12:35:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/05/af/53e561352a44afcba9a9bc67ee1d320b05a370aed8df54eafe714c4e454d/jiter-0.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2113c17c9a67071b0f820733c0893ed1d467b5fcf4414068169e5c2cabddb1e2", size = 392380, upload-time = "2026-02-02T12:35:30.385Z" }, + { url = "https://files.pythonhosted.org/packages/76/2a/dd805c3afb8ed5b326c5ae49e725d1b1255b9754b1b77dbecdc621b20773/jiter-0.13.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ab1185ca5c8b9491b55ebf6c1e8866b8f68258612899693e24a92c5fdb9455d5", size = 517939, upload-time = "2026-02-02T12:35:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/20/2a/7b67d76f55b8fe14c937e7640389612f05f9a4145fc28ae128aaa5e62257/jiter-0.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9621ca242547edc16400981ca3231e0c91c0c4c1ab8573a596cd9bb3575d5c2b", size = 551696, upload-time = "2026-02-02T12:35:33.306Z" }, + { url = "https://files.pythonhosted.org/packages/85/9c/57cdd64dac8f4c6ab8f994fe0eb04dc9fd1db102856a4458fcf8a99dfa62/jiter-0.13.0-cp310-cp310-win32.whl", hash = "sha256:a7637d92b1c9d7a771e8c56f445c7f84396d48f2e756e5978840ecba2fac0894", size = 204592, upload-time = "2026-02-02T12:35:34.58Z" }, + { url = "https://files.pythonhosted.org/packages/a7/38/f4f3ea5788b8a5bae7510a678cdc747eda0c45ffe534f9878ff37e7cf3b3/jiter-0.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c1b609e5cbd2f52bb74fb721515745b407df26d7b800458bd97cb3b972c29e7d", size = 206016, upload-time = "2026-02-02T12:35:36.435Z" }, + { url = "https://files.pythonhosted.org/packages/71/29/499f8c9eaa8a16751b1c0e45e6f5f1761d180da873d417996cc7bddc8eef/jiter-0.13.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ea026e70a9a28ebbdddcbcf0f1323128a8db66898a06eaad3a4e62d2f554d096", size = 311157, upload-time = "2026-02-02T12:35:37.758Z" }, + { url = "https://files.pythonhosted.org/packages/50/f6/566364c777d2ab450b92100bea11333c64c38d32caf8dc378b48e5b20c46/jiter-0.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66aa3e663840152d18cc8ff1e4faad3dd181373491b9cfdc6004b92198d67911", size = 319729, upload-time = "2026-02-02T12:35:39.246Z" }, + { url = "https://files.pythonhosted.org/packages/73/dd/560f13ec5e4f116d8ad2658781646cca91b617ae3b8758d4a5076b278f70/jiter-0.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c3524798e70655ff19aec58c7d05adb1f074fecff62da857ea9be2b908b6d701", size = 354766, upload-time = "2026-02-02T12:35:40.662Z" }, + { url = "https://files.pythonhosted.org/packages/7c/0d/061faffcfe94608cbc28a0d42a77a74222bdf5055ccdbe5fd2292b94f510/jiter-0.13.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec7e287d7fbd02cb6e22f9a00dd9c9cd504c40a61f2c61e7e1f9690a82726b4c", size = 362587, upload-time = "2026-02-02T12:35:42.025Z" }, + { url = "https://files.pythonhosted.org/packages/92/c9/c66a7864982fd38a9773ec6e932e0398d1262677b8c60faecd02ffb67bf3/jiter-0.13.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:47455245307e4debf2ce6c6e65a717550a0244231240dcf3b8f7d64e4c2f22f4", size = 487537, upload-time = "2026-02-02T12:35:43.459Z" }, + { url = "https://files.pythonhosted.org/packages/6c/86/84eb4352cd3668f16d1a88929b5888a3fe0418ea8c1dfc2ad4e7bf6e069a/jiter-0.13.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ee9da221dca6e0429c2704c1b3655fe7b025204a71d4d9b73390c759d776d165", size = 373717, upload-time = "2026-02-02T12:35:44.928Z" }, + { url = "https://files.pythonhosted.org/packages/6e/09/9fe4c159358176f82d4390407a03f506a8659ed13ca3ac93a843402acecf/jiter-0.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24ab43126d5e05f3d53a36a8e11eb2f23304c6c1117844aaaf9a0aa5e40b5018", size = 362683, upload-time = "2026-02-02T12:35:46.636Z" }, + { url = "https://files.pythonhosted.org/packages/c9/5e/85f3ab9caca0c1d0897937d378b4a515cae9e119730563572361ea0c48ae/jiter-0.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9da38b4fedde4fb528c740c2564628fbab737166a0e73d6d46cb4bb5463ff411", size = 392345, upload-time = "2026-02-02T12:35:48.088Z" }, + { url = "https://files.pythonhosted.org/packages/12/4c/05b8629ad546191939e6f0c2f17e29f542a398f4a52fb987bc70b6d1eb8b/jiter-0.13.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0b34c519e17658ed88d5047999a93547f8889f3c1824120c26ad6be5f27b6cf5", size = 517775, upload-time = "2026-02-02T12:35:49.482Z" }, + { url = "https://files.pythonhosted.org/packages/4d/88/367ea2eb6bc582c7052e4baf5ddf57ebe5ab924a88e0e09830dfb585c02d/jiter-0.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2a6394e6af690d462310a86b53c47ad75ac8c21dc79f120714ea449979cb1d3", size = 551325, upload-time = "2026-02-02T12:35:51.104Z" }, + { url = "https://files.pythonhosted.org/packages/f3/12/fa377ffb94a2f28c41afaed093e0d70cfe512035d5ecb0cad0ae4792d35e/jiter-0.13.0-cp311-cp311-win32.whl", hash = "sha256:0f0c065695f616a27c920a56ad0d4fc46415ef8b806bf8fc1cacf25002bd24e1", size = 204709, upload-time = "2026-02-02T12:35:52.467Z" }, + { url = "https://files.pythonhosted.org/packages/cb/16/8e8203ce92f844dfcd3d9d6a5a7322c77077248dbb12da52d23193a839cd/jiter-0.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:0733312953b909688ae3c2d58d043aa040f9f1a6a75693defed7bc2cc4bf2654", size = 204560, upload-time = "2026-02-02T12:35:53.925Z" }, + { url = "https://files.pythonhosted.org/packages/44/26/97cc40663deb17b9e13c3a5cf29251788c271b18ee4d262c8f94798b8336/jiter-0.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:5d9b34ad56761b3bf0fbe8f7e55468704107608512350962d3317ffd7a4382d5", size = 189608, upload-time = "2026-02-02T12:35:55.304Z" }, + { url = "https://files.pythonhosted.org/packages/2e/30/7687e4f87086829955013ca12a9233523349767f69653ebc27036313def9/jiter-0.13.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:0a2bd69fc1d902e89925fc34d1da51b2128019423d7b339a45d9e99c894e0663", size = 307958, upload-time = "2026-02-02T12:35:57.165Z" }, + { url = "https://files.pythonhosted.org/packages/c3/27/e57f9a783246ed95481e6749cc5002a8a767a73177a83c63ea71f0528b90/jiter-0.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f917a04240ef31898182f76a332f508f2cc4b57d2b4d7ad2dbfebbfe167eb505", size = 318597, upload-time = "2026-02-02T12:35:58.591Z" }, + { url = "https://files.pythonhosted.org/packages/cf/52/e5719a60ac5d4d7c5995461a94ad5ef962a37c8bf5b088390e6fad59b2ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1e2b199f446d3e82246b4fd9236d7cb502dc2222b18698ba0d986d2fecc6152", size = 348821, upload-time = "2026-02-02T12:36:00.093Z" }, + { url = "https://files.pythonhosted.org/packages/61/db/c1efc32b8ba4c740ab3fc2d037d8753f67685f475e26b9d6536a4322bcdd/jiter-0.13.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04670992b576fa65bd056dbac0c39fe8bd67681c380cb2b48efa885711d9d726", size = 364163, upload-time = "2026-02-02T12:36:01.937Z" }, + { url = "https://files.pythonhosted.org/packages/55/8a/fb75556236047c8806995671a18e4a0ad646ed255276f51a20f32dceaeec/jiter-0.13.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5a1aff1fbdb803a376d4d22a8f63f8e7ccbce0b4890c26cc7af9e501ab339ef0", size = 483709, upload-time = "2026-02-02T12:36:03.41Z" }, + { url = "https://files.pythonhosted.org/packages/7e/16/43512e6ee863875693a8e6f6d532e19d650779d6ba9a81593ae40a9088ff/jiter-0.13.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b3fb8c2053acaef8580809ac1d1f7481a0a0bdc012fd7f5d8b18fb696a5a089", size = 370480, upload-time = "2026-02-02T12:36:04.791Z" }, + { url = "https://files.pythonhosted.org/packages/f8/4c/09b93e30e984a187bc8aaa3510e1ec8dcbdcd71ca05d2f56aac0492453aa/jiter-0.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bdaba7d87e66f26a2c45d8cbadcbfc4bf7884182317907baf39cfe9775bb4d93", size = 360735, upload-time = "2026-02-02T12:36:06.994Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1b/46c5e349019874ec5dfa508c14c37e29864ea108d376ae26d90bee238cd7/jiter-0.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b88d649135aca526da172e48083da915ec086b54e8e73a425ba50999468cc08", size = 391814, upload-time = "2026-02-02T12:36:08.368Z" }, + { url = "https://files.pythonhosted.org/packages/15/9e/26184760e85baee7162ad37b7912797d2077718476bf91517641c92b3639/jiter-0.13.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e404ea551d35438013c64b4f357b0474c7abf9f781c06d44fcaf7a14c69ff9e2", size = 513990, upload-time = "2026-02-02T12:36:09.993Z" }, + { url = "https://files.pythonhosted.org/packages/e9/34/2c9355247d6debad57a0a15e76ab1566ab799388042743656e566b3b7de1/jiter-0.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:1f4748aad1b4a93c8bdd70f604d0f748cdc0e8744c5547798acfa52f10e79228", size = 548021, upload-time = "2026-02-02T12:36:11.376Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4a/9f2c23255d04a834398b9c2e0e665382116911dc4d06b795710503cdad25/jiter-0.13.0-cp312-cp312-win32.whl", hash = "sha256:0bf670e3b1445fc4d31612199f1744f67f889ee1bbae703c4b54dc097e5dd394", size = 203024, upload-time = "2026-02-02T12:36:12.682Z" }, + { url = "https://files.pythonhosted.org/packages/09/ee/f0ae675a957ae5a8f160be3e87acea6b11dc7b89f6b7ab057e77b2d2b13a/jiter-0.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:15db60e121e11fe186c0b15236bd5d18381b9ddacdcf4e659feb96fc6c969c92", size = 205424, upload-time = "2026-02-02T12:36:13.93Z" }, + { url = "https://files.pythonhosted.org/packages/1b/02/ae611edf913d3cbf02c97cdb90374af2082c48d7190d74c1111dde08bcdd/jiter-0.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:41f92313d17989102f3cb5dd533a02787cdb99454d494344b0361355da52fcb9", size = 186818, upload-time = "2026-02-02T12:36:15.308Z" }, + { url = "https://files.pythonhosted.org/packages/91/9c/7ee5a6ff4b9991e1a45263bfc46731634c4a2bde27dfda6c8251df2d958c/jiter-0.13.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1f8a55b848cbabf97d861495cd65f1e5c590246fabca8b48e1747c4dfc8f85bf", size = 306897, upload-time = "2026-02-02T12:36:16.748Z" }, + { url = "https://files.pythonhosted.org/packages/7c/02/be5b870d1d2be5dd6a91bdfb90f248fbb7dcbd21338f092c6b89817c3dbf/jiter-0.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f556aa591c00f2c45eb1b89f68f52441a016034d18b65da60e2d2875bbbf344a", size = 317507, upload-time = "2026-02-02T12:36:18.351Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/b25d2ec333615f5f284f3a4024f7ce68cfa0604c322c6808b2344c7f5d2b/jiter-0.13.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f7e1d61da332ec412350463891923f960c3073cf1aae93b538f0bb4c8cd46efb", size = 350560, upload-time = "2026-02-02T12:36:19.746Z" }, + { url = "https://files.pythonhosted.org/packages/be/ec/74dcb99fef0aca9fbe56b303bf79f6bd839010cb18ad41000bf6cc71eec0/jiter-0.13.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3097d665a27bc96fd9bbf7f86178037db139f319f785e4757ce7ccbf390db6c2", size = 363232, upload-time = "2026-02-02T12:36:21.243Z" }, + { url = "https://files.pythonhosted.org/packages/1b/37/f17375e0bb2f6a812d4dd92d7616e41917f740f3e71343627da9db2824ce/jiter-0.13.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d01ecc3a8cbdb6f25a37bd500510550b64ddf9f7d64a107d92f3ccb25035d0f", size = 483727, upload-time = "2026-02-02T12:36:22.688Z" }, + { url = "https://files.pythonhosted.org/packages/77/d2/a71160a5ae1a1e66c1395b37ef77da67513b0adba73b993a27fbe47eb048/jiter-0.13.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ed9bbc30f5d60a3bdf63ae76beb3f9db280d7f195dfcfa61af792d6ce912d159", size = 370799, upload-time = "2026-02-02T12:36:24.106Z" }, + { url = "https://files.pythonhosted.org/packages/01/99/ed5e478ff0eb4e8aa5fd998f9d69603c9fd3f32de3bd16c2b1194f68361c/jiter-0.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98fbafb6e88256f4454de33c1f40203d09fc33ed19162a68b3b257b29ca7f663", size = 359120, upload-time = "2026-02-02T12:36:25.519Z" }, + { url = "https://files.pythonhosted.org/packages/16/be/7ffd08203277a813f732ba897352797fa9493faf8dc7995b31f3d9cb9488/jiter-0.13.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5467696f6b827f1116556cb0db620440380434591e93ecee7fd14d1a491b6daa", size = 390664, upload-time = "2026-02-02T12:36:26.866Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/e0787856196d6d346264d6dcccb01f741e5f0bd014c1d9a2ebe149caf4f3/jiter-0.13.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:2d08c9475d48b92892583df9da592a0e2ac49bcd41fae1fec4f39ba6cf107820", size = 513543, upload-time = "2026-02-02T12:36:28.217Z" }, + { url = "https://files.pythonhosted.org/packages/65/50/ecbd258181c4313cf79bca6c88fb63207d04d5bf5e4f65174114d072aa55/jiter-0.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:aed40e099404721d7fcaf5b89bd3b4568a4666358bcac7b6b15c09fb6252ab68", size = 547262, upload-time = "2026-02-02T12:36:29.678Z" }, + { url = "https://files.pythonhosted.org/packages/27/da/68f38d12e7111d2016cd198161b36e1f042bd115c169255bcb7ec823a3bf/jiter-0.13.0-cp313-cp313-win32.whl", hash = "sha256:36ebfbcffafb146d0e6ffb3e74d51e03d9c35ce7c625c8066cdbfc7b953bdc72", size = 200630, upload-time = "2026-02-02T12:36:31.808Z" }, + { url = "https://files.pythonhosted.org/packages/25/65/3bd1a972c9a08ecd22eb3b08a95d1941ebe6938aea620c246cf426ae09c2/jiter-0.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:8d76029f077379374cf0dbc78dbe45b38dec4a2eb78b08b5194ce836b2517afc", size = 202602, upload-time = "2026-02-02T12:36:33.679Z" }, + { url = "https://files.pythonhosted.org/packages/15/fe/13bd3678a311aa67686bb303654792c48206a112068f8b0b21426eb6851e/jiter-0.13.0-cp313-cp313-win_arm64.whl", hash = "sha256:bb7613e1a427cfcb6ea4544f9ac566b93d5bf67e0d48c787eca673ff9c9dff2b", size = 185939, upload-time = "2026-02-02T12:36:35.065Z" }, + { url = "https://files.pythonhosted.org/packages/49/19/a929ec002ad3228bc97ca01dbb14f7632fffdc84a95ec92ceaf4145688ae/jiter-0.13.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fa476ab5dd49f3bf3a168e05f89358c75a17608dbabb080ef65f96b27c19ab10", size = 316616, upload-time = "2026-02-02T12:36:36.579Z" }, + { url = "https://files.pythonhosted.org/packages/52/56/d19a9a194afa37c1728831e5fb81b7722c3de18a3109e8f282bfc23e587a/jiter-0.13.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ade8cb6ff5632a62b7dbd4757d8c5573f7a2e9ae285d6b5b841707d8363205ef", size = 346850, upload-time = "2026-02-02T12:36:38.058Z" }, + { url = "https://files.pythonhosted.org/packages/36/4a/94e831c6bf287754a8a019cb966ed39ff8be6ab78cadecf08df3bb02d505/jiter-0.13.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9950290340acc1adaded363edd94baebcee7dabdfa8bee4790794cd5cfad2af6", size = 358551, upload-time = "2026-02-02T12:36:39.417Z" }, + { url = "https://files.pythonhosted.org/packages/a2/ec/a4c72c822695fa80e55d2b4142b73f0012035d9fcf90eccc56bc060db37c/jiter-0.13.0-cp313-cp313t-win_amd64.whl", hash = "sha256:2b4972c6df33731aac0742b64fd0d18e0a69bc7d6e03108ce7d40c85fd9e3e6d", size = 201950, upload-time = "2026-02-02T12:36:40.791Z" }, + { url = "https://files.pythonhosted.org/packages/b6/00/393553ec27b824fbc29047e9c7cd4a3951d7fbe4a76743f17e44034fa4e4/jiter-0.13.0-cp313-cp313t-win_arm64.whl", hash = "sha256:701a1e77d1e593c1b435315ff625fd071f0998c5f02792038a5ca98899261b7d", size = 185852, upload-time = "2026-02-02T12:36:42.077Z" }, + { url = "https://files.pythonhosted.org/packages/79/b3/3c29819a27178d0e461a8571fb63c6ae38be6dc36b78b3ec2876bbd6a910/jiter-0.13.0-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b1cbfa133241d0e6bdab48dcdc2604e8ba81512f6bbd68ec3e8e1357dd3c316c", size = 307016, upload-time = "2026-02-02T12:37:42.755Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ae/60993e4b07b1ac5ebe46da7aa99fdbb802eb986c38d26e3883ac0125c4e0/jiter-0.13.0-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:db367d8be9fad6e8ebbac4a7578b7af562e506211036cba2c06c3b998603c3d2", size = 305024, upload-time = "2026-02-02T12:37:44.774Z" }, + { url = "https://files.pythonhosted.org/packages/77/fa/2227e590e9cf98803db2811f172b2d6460a21539ab73006f251c66f44b14/jiter-0.13.0-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45f6f8efb2f3b0603092401dc2df79fa89ccbc027aaba4174d2d4133ed661434", size = 339337, upload-time = "2026-02-02T12:37:46.668Z" }, + { url = "https://files.pythonhosted.org/packages/2d/92/015173281f7eb96c0ef580c997da8ef50870d4f7f4c9e03c845a1d62ae04/jiter-0.13.0-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:597245258e6ad085d064780abfb23a284d418d3e61c57362d9449c6c7317ee2d", size = 346395, upload-time = "2026-02-02T12:37:48.09Z" }, + { url = "https://files.pythonhosted.org/packages/80/60/e50fa45dd7e2eae049f0ce964663849e897300433921198aef94b6ffa23a/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:3d744a6061afba08dd7ae375dcde870cffb14429b7477e10f67e9e6d68772a0a", size = 305169, upload-time = "2026-02-02T12:37:50.376Z" }, + { url = "https://files.pythonhosted.org/packages/d2/73/a009f41c5eed71c49bec53036c4b33555afcdee70682a18c6f66e396c039/jiter-0.13.0-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:ff732bd0a0e778f43d5009840f20b935e79087b4dc65bd36f1cd0f9b04b8ff7f", size = 303808, upload-time = "2026-02-02T12:37:52.092Z" }, + { url = "https://files.pythonhosted.org/packages/c4/10/528b439290763bff3d939268085d03382471b442f212dca4ff5f12802d43/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab44b178f7981fcaea7e0a5df20e773c663d06ffda0198f1a524e91b2fde7e59", size = 337384, upload-time = "2026-02-02T12:37:53.582Z" }, + { url = "https://files.pythonhosted.org/packages/67/8a/a342b2f0251f3dac4ca17618265d93bf244a2a4d089126e81e4c1056ac50/jiter-0.13.0-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bb00b6d26db67a05fe3e12c76edc75f32077fb51deed13822dc648fa373bc19", size = 343768, upload-time = "2026-02-02T12:37:55.055Z" }, ] [[package]] name = "joblib" version = "1.5.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload_time = "2025-12-15T08:41:46.427Z" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload_time = "2025-12-15T08:41:44.973Z" }, + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, ] [[package]] @@ -1611,27 +1661,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpointer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload_time = "2023-06-26T12:07:29.144Z" } +sdist = { url = "https://files.pythonhosted.org/packages/42/78/18813351fe5d63acad16aec57f94ec2b70a09e53ca98145589e185423873/jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c", size = 21699, upload-time = "2023-06-26T12:07:29.144Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload_time = "2023-06-16T21:01:28.466Z" }, + { url = "https://files.pythonhosted.org/packages/73/07/02e16ed01e04a374e644b575638ec7987ae846d25ad97bcc9945a3ee4b0e/jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade", size = 12898, upload-time = "2023-06-16T21:01:28.466Z" }, ] [[package]] name = "jsonpointer" version = "3.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload_time = "2024-06-10T19:24:42.462Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/0a/eebeb1fa92507ea94016a2a790b93c2ae41a7e18778f85471dc54475ed25/jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef", size = 9114, upload-time = "2024-06-10T19:24:42.462Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload_time = "2024-06-10T19:24:40.698Z" }, + { url = "https://files.pythonhosted.org/packages/71/92/5e77f98553e9e75130c78900d000368476aed74276eb8ae8796f65f00918/jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942", size = 7595, upload-time = "2024-06-10T19:24:40.698Z" }, ] [[package]] name = "jsonref" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload_time = "2023-01-16T16:10:04.455Z" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/0d/c1f3277e90ccdb50d33ed5ba1ec5b3f0a242ed8c1b1a85d3afeb68464dca/jsonref-1.1.0.tar.gz", hash = "sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552", size = 8814, upload-time = "2023-01-16T16:10:04.455Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload_time = "2023-01-16T16:10:02.255Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ec/e1db9922bceb168197a558a2b8c03a7963f1afe93517ddd3cf99f202f996/jsonref-1.1.0-py3-none-any.whl", hash = "sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9", size = 9425, upload-time = "2023-01-16T16:10:02.255Z" }, ] [[package]] @@ -1644,9 +1694,9 @@ dependencies = [ { name = "referencing" }, { name = "rpds-py" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload_time = "2026-01-07T13:41:07.246Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/fc/e067678238fa451312d4c62bf6e6cf5ec56375422aee02f9cb5f909b3047/jsonschema-4.26.0.tar.gz", hash = "sha256:0c26707e2efad8aa1bfc5b7ce170f3fccc2e4918ff85989ba9ffa9facb2be326", size = 366583, upload-time = "2026-01-07T13:41:07.246Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload_time = "2026-01-07T13:41:05.306Z" }, + { url = "https://files.pythonhosted.org/packages/69/90/f63fb5873511e014207a475e2bb4e8b2e570d655b00ac19a9a0ca0a385ee/jsonschema-4.26.0-py3-none-any.whl", hash = "sha256:d489f15263b8d200f8387e64b4c3a75f06629559fb73deb8fdfb525f2dab50ce", size = 90630, upload-time = "2026-01-07T13:41:05.306Z" }, ] [package.optional-dependencies] @@ -1669,9 +1719,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "referencing" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload_time = "2025-09-08T01:34:59.186Z" } +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload_time = "2025-09-08T01:34:57.871Z" }, + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, ] [[package]] @@ -1688,9 +1738,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "uuid-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fb/bb/c501ca60556c11ac80d1454bdcac63cb33583ce4e64fc4535ad5a7d5c6ba/langchain_core-1.2.13.tar.gz", hash = "sha256:d2773d0d0130a356378db9a858cfeef64c3d64bc03722f1d4d6c40eb46fdf01b", size = 831612, upload_time = "2026-02-15T07:45:57.014Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fb/bb/c501ca60556c11ac80d1454bdcac63cb33583ce4e64fc4535ad5a7d5c6ba/langchain_core-1.2.13.tar.gz", hash = "sha256:d2773d0d0130a356378db9a858cfeef64c3d64bc03722f1d4d6c40eb46fdf01b", size = 831612, upload-time = "2026-02-15T07:45:57.014Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/12/ab/60fd69e5d55f67d422baefddaaca523c42cd7510ab6aeb17db6ae57fb107/langchain_core-1.2.13-py3-none-any.whl", hash = "sha256:b31823e28d3eff1e237096d0bd3bf80c6f9624eb471a9496dbfbd427779f8d82", size = 500485, upload_time = "2026-02-15T07:45:55.422Z" }, + { url = "https://files.pythonhosted.org/packages/12/ab/60fd69e5d55f67d422baefddaaca523c42cd7510ab6aeb17db6ae57fb107/langchain_core-1.2.13-py3-none-any.whl", hash = "sha256:b31823e28d3eff1e237096d0bd3bf80c6f9624eb471a9496dbfbd427779f8d82", size = 500485, upload-time = "2026-02-15T07:45:55.422Z" }, ] [[package]] @@ -1708,77 +1758,77 @@ dependencies = [ { name = "xxhash" }, { name = "zstandard" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8d/bc/8172fefad4f2da888a6d564a27d1fb7d4dbf3c640899c2b40c46235cbe98/langsmith-0.7.3.tar.gz", hash = "sha256:0223b97021af62d2cf53c8a378a27bd22e90a7327e45b353e0069ae60d5d6f9e", size = 988575, upload_time = "2026-02-13T23:25:32.916Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8d/bc/8172fefad4f2da888a6d564a27d1fb7d4dbf3c640899c2b40c46235cbe98/langsmith-0.7.3.tar.gz", hash = "sha256:0223b97021af62d2cf53c8a378a27bd22e90a7327e45b353e0069ae60d5d6f9e", size = 988575, upload-time = "2026-02-13T23:25:32.916Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/9d/5a68b6b5e313ffabbb9725d18a71edb48177fd6d3ad329c07801d2a8e862/langsmith-0.7.3-py3-none-any.whl", hash = "sha256:03659bf9274e6efcead361c9c31a7849ea565ae0d6c0d73e1d8b239029eff3be", size = 325718, upload_time = "2026-02-13T23:25:31.52Z" }, + { url = "https://files.pythonhosted.org/packages/f4/9d/5a68b6b5e313ffabbb9725d18a71edb48177fd6d3ad329c07801d2a8e862/langsmith-0.7.3-py3-none-any.whl", hash = "sha256:03659bf9274e6efcead361c9c31a7849ea565ae0d6c0d73e1d8b239029eff3be", size = 325718, upload-time = "2026-02-13T23:25:31.52Z" }, ] [[package]] name = "lark" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload_time = "2025-10-27T18:25:56.653Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/34/28fff3ab31ccff1fd4f6c7c7b0ceb2b6968d8ea4950663eadcb5720591a0/lark-1.3.1.tar.gz", hash = "sha256:b426a7a6d6d53189d318f2b6236ab5d6429eaf09259f1ca33eb716eed10d2905", size = 382732, upload-time = "2025-10-27T18:25:56.653Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload_time = "2025-10-27T18:25:54.882Z" }, + { url = "https://files.pythonhosted.org/packages/82/3d/14ce75ef66813643812f3093ab17e46d3a206942ce7376d31ec2d36229e7/lark-1.3.1-py3-none-any.whl", hash = "sha256:c629b661023a014c37da873b4ff58a817398d12635d3bbb2c5a03be7fe5d1e12", size = 113151, upload-time = "2025-10-27T18:25:54.882Z" }, ] [[package]] name = "librt" version = "0.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8a/3f/4ca7dd7819bf8ff303aca39c3c60e5320e46e766ab7f7dd627d3b9c11bdf/librt-0.8.0.tar.gz", hash = "sha256:cb74cdcbc0103fc988e04e5c58b0b31e8e5dd2babb9182b6f9490488eb36324b", size = 177306, upload_time = "2026-02-12T14:53:54.743Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d5/e9/018cfd60629e0404e6917943789800aa2231defbea540a17b90cc4547b97/librt-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db63cf3586a24241e89ca1ce0b56baaec9d371a328bd186c529b27c914c9a1ef", size = 65690, upload_time = "2026-02-12T14:51:57.761Z" }, - { url = "https://files.pythonhosted.org/packages/b5/80/8d39980860e4d1c9497ee50e5cd7c4766d8cfd90d105578eae418e8ffcbc/librt-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba9d9e60651615bc614be5e21a82cdb7b1769a029369cf4b4d861e4f19686fb6", size = 68373, upload_time = "2026-02-12T14:51:59.013Z" }, - { url = "https://files.pythonhosted.org/packages/2d/76/6e6f7a443af63977e421bd542551fec4072d9eaba02e671b05b238fe73bc/librt-0.8.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb4b3ad543084ed79f186741470b251b9d269cd8b03556f15a8d1a99a64b7de5", size = 197091, upload_time = "2026-02-12T14:52:00.642Z" }, - { url = "https://files.pythonhosted.org/packages/14/40/fa064181c231334c9f4cb69eb338132d39510c8928e84beba34b861d0a71/librt-0.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d2720335020219197380ccfa5c895f079ac364b4c429e96952cd6509934d8eb", size = 207350, upload_time = "2026-02-12T14:52:02.32Z" }, - { url = "https://files.pythonhosted.org/packages/50/49/e7f8438dd226305e3e5955d495114ad01448e6a6ffc0303289b4153b5fc5/librt-0.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9726305d3e53419d27fc8cdfcd3f9571f0ceae22fa6b5ea1b3662c2e538f833e", size = 219962, upload_time = "2026-02-12T14:52:03.884Z" }, - { url = "https://files.pythonhosted.org/packages/1f/2c/74086fc5d52e77107a3cc80a9a3209be6ad1c9b6bc99969d8d9bbf9fdfe4/librt-0.8.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc3d107f603b5ee7a79b6aa6f166551b99b32fb4a5303c4dfcb4222fc6a0335e", size = 212939, upload_time = "2026-02-12T14:52:05.537Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ae/d6917c0ebec9bc2e0293903d6a5ccc7cdb64c228e529e96520b277318f25/librt-0.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:41064a0c07b4cc7a81355ccc305cb097d6027002209ffca51306e65ee8293630", size = 221393, upload_time = "2026-02-12T14:52:07.164Z" }, - { url = "https://files.pythonhosted.org/packages/04/97/15df8270f524ce09ad5c19cbbe0e8f95067582507149a6c90594e7795370/librt-0.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c6e4c10761ddbc0d67d2f6e2753daf99908db85d8b901729bf2bf5eaa60e0567", size = 216721, upload_time = "2026-02-12T14:52:08.857Z" }, - { url = "https://files.pythonhosted.org/packages/c4/52/17cbcf9b7a1bae5016d9d3561bc7169b32c3bd216c47d934d3f270602c0c/librt-0.8.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ba581acad5ac8f33e2ff1746e8a57e001b47c6721873121bf8bbcf7ba8bd3aa4", size = 214790, upload_time = "2026-02-12T14:52:10.033Z" }, - { url = "https://files.pythonhosted.org/packages/2a/2d/010a236e8dc4d717dd545c46fd036dcced2c7ede71ef85cf55325809ff92/librt-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bdab762e2c0b48bab76f1a08acb3f4c77afd2123bedac59446aeaaeed3d086cf", size = 237384, upload_time = "2026-02-12T14:52:11.244Z" }, - { url = "https://files.pythonhosted.org/packages/38/14/f1c0eff3df8760dee761029efb72991c554d9f3282f1048e8c3d0eb60997/librt-0.8.0-cp310-cp310-win32.whl", hash = "sha256:6a3146c63220d814c4a2c7d6a1eacc8d5c14aed0ff85115c1dfea868080cd18f", size = 54289, upload_time = "2026-02-12T14:52:12.798Z" }, - { url = "https://files.pythonhosted.org/packages/2f/0b/2684d473e64890882729f91866ed97ccc0a751a0afc3b4bf1a7b57094dbb/librt-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:bbebd2bba5c6ae02907df49150e55870fdd7440d727b6192c46b6f754723dde9", size = 61347, upload_time = "2026-02-12T14:52:13.793Z" }, - { url = "https://files.pythonhosted.org/packages/51/e9/42af181c89b65abfd557c1b017cba5b82098eef7bf26d1649d82ce93ccc7/librt-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ce33a9778e294507f3a0e3468eccb6a698b5166df7db85661543eca1cfc5369", size = 65314, upload_time = "2026-02-12T14:52:14.778Z" }, - { url = "https://files.pythonhosted.org/packages/9d/4a/15a847fca119dc0334a4b8012b1e15fdc5fc19d505b71e227eaf1bcdba09/librt-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8070aa3368559de81061ef752770d03ca1f5fc9467d4d512d405bd0483bfffe6", size = 68015, upload_time = "2026-02-12T14:52:15.797Z" }, - { url = "https://files.pythonhosted.org/packages/e1/87/ffc8dbd6ab68dd91b736c88529411a6729649d2b74b887f91f3aaff8d992/librt-0.8.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:20f73d4fecba969efc15cdefd030e382502d56bb6f1fc66b580cce582836c9fa", size = 194508, upload_time = "2026-02-12T14:52:16.835Z" }, - { url = "https://files.pythonhosted.org/packages/89/92/a7355cea28d6c48ff6ff5083ac4a2a866fb9b07b786aa70d1f1116680cd5/librt-0.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a512c88900bdb1d448882f5623a0b1ad27ba81a9bd75dacfe17080b72272ca1f", size = 205630, upload_time = "2026-02-12T14:52:18.58Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5e/54509038d7ac527828db95b8ba1c8f5d2649bc32fd8f39b1718ec9957dce/librt-0.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:015e2dde6e096d27c10238bf9f6492ba6c65822dfb69d2bf74c41a8e88b7ddef", size = 218289, upload_time = "2026-02-12T14:52:20.134Z" }, - { url = "https://files.pythonhosted.org/packages/6d/17/0ee0d13685cefee6d6f2d47bb643ddad3c62387e2882139794e6a5f1288a/librt-0.8.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1c25a131013eadd3c600686a0c0333eb2896483cbc7f65baa6a7ee761017aef9", size = 211508, upload_time = "2026-02-12T14:52:21.413Z" }, - { url = "https://files.pythonhosted.org/packages/4b/a8/1714ef6e9325582e3727de3be27e4c1b2f428ea411d09f1396374180f130/librt-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:21b14464bee0b604d80a638cf1ee3148d84ca4cc163dcdcecb46060c1b3605e4", size = 219129, upload_time = "2026-02-12T14:52:22.61Z" }, - { url = "https://files.pythonhosted.org/packages/89/d3/2d9fe353edff91cdc0ece179348054a6fa61f3de992c44b9477cb973509b/librt-0.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:05a3dd3f116747f7e1a2b475ccdc6fb637fd4987126d109e03013a79d40bf9e6", size = 213126, upload_time = "2026-02-12T14:52:23.819Z" }, - { url = "https://files.pythonhosted.org/packages/ad/8e/9f5c60444880f6ad50e3ff7475e5529e787797e7f3ad5432241633733b92/librt-0.8.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fa37f99bff354ff191c6bcdffbc9d7cdd4fc37faccfc9be0ef3a4fd5613977da", size = 212279, upload_time = "2026-02-12T14:52:25.034Z" }, - { url = "https://files.pythonhosted.org/packages/fe/eb/d4a2cfa647da3022ae977f50d7eda1d91f70d7d1883cf958a4b6ef689eab/librt-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1566dbb9d1eb0987264c9b9460d212e809ba908d2f4a3999383a84d765f2f3f1", size = 234654, upload_time = "2026-02-12T14:52:26.204Z" }, - { url = "https://files.pythonhosted.org/packages/6a/31/26b978861c7983b036a3aea08bdbb2ec32bbaab1ad1d57c5e022be59afc1/librt-0.8.0-cp311-cp311-win32.whl", hash = "sha256:70defb797c4d5402166787a6b3c66dfb3fa7f93d118c0509ffafa35a392f4258", size = 54603, upload_time = "2026-02-12T14:52:27.342Z" }, - { url = "https://files.pythonhosted.org/packages/d0/78/f194ed7c48dacf875677e749c5d0d1d69a9daa7c994314a39466237fb1be/librt-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:db953b675079884ffda33d1dca7189fb961b6d372153750beb81880384300817", size = 61730, upload_time = "2026-02-12T14:52:28.31Z" }, - { url = "https://files.pythonhosted.org/packages/97/ee/ad71095478d02137b6f49469dc808c595cfe89b50985f6b39c5345f0faab/librt-0.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:75d1a8cab20b2043f03f7aab730551e9e440adc034d776f15f6f8d582b0a5ad4", size = 52274, upload_time = "2026-02-12T14:52:29.345Z" }, - { url = "https://files.pythonhosted.org/packages/fb/53/f3bc0c4921adb0d4a5afa0656f2c0fbe20e18e3e0295e12985b9a5dc3f55/librt-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:17269dd2745dbe8e42475acb28e419ad92dfa38214224b1b01020b8cac70b645", size = 66511, upload_time = "2026-02-12T14:52:30.34Z" }, - { url = "https://files.pythonhosted.org/packages/89/4b/4c96357432007c25a1b5e363045373a6c39481e49f6ba05234bb59a839c1/librt-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4617cef654fca552f00ce5ffdf4f4b68770f18950e4246ce94629b789b92467", size = 68628, upload_time = "2026-02-12T14:52:31.491Z" }, - { url = "https://files.pythonhosted.org/packages/47/16/52d75374d1012e8fc709216b5eaa25f471370e2a2331b8be00f18670a6c7/librt-0.8.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5cb11061a736a9db45e3c1293cfcb1e3caf205912dfa085734ba750f2197ff9a", size = 198941, upload_time = "2026-02-12T14:52:32.489Z" }, - { url = "https://files.pythonhosted.org/packages/fc/11/d5dd89e5a2228567b1228d8602d896736247424484db086eea6b8010bcba/librt-0.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4bb00bd71b448f16749909b08a0ff16f58b079e2261c2e1000f2bbb2a4f0a45", size = 210009, upload_time = "2026-02-12T14:52:33.634Z" }, - { url = "https://files.pythonhosted.org/packages/49/d8/fc1a92a77c3020ee08ce2dc48aed4b42ab7c30fb43ce488d388673b0f164/librt-0.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95a719a049f0eefaf1952673223cf00d442952273cbd20cf2ed7ec423a0ef58d", size = 224461, upload_time = "2026-02-12T14:52:34.868Z" }, - { url = "https://files.pythonhosted.org/packages/7f/98/eb923e8b028cece924c246104aa800cf72e02d023a8ad4ca87135b05a2fe/librt-0.8.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bd32add59b58fba3439d48d6f36ac695830388e3da3e92e4fc26d2d02670d19c", size = 217538, upload_time = "2026-02-12T14:52:36.078Z" }, - { url = "https://files.pythonhosted.org/packages/fd/67/24e80ab170674a1d8ee9f9a83081dca4635519dbd0473b8321deecddb5be/librt-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4f764b2424cb04524ff7a486b9c391e93f93dc1bd8305b2136d25e582e99aa2f", size = 225110, upload_time = "2026-02-12T14:52:37.301Z" }, - { url = "https://files.pythonhosted.org/packages/d8/c7/6fbdcbd1a6e5243c7989c21d68ab967c153b391351174b4729e359d9977f/librt-0.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f04ca50e847abc486fa8f4107250566441e693779a5374ba211e96e238f298b9", size = 217758, upload_time = "2026-02-12T14:52:38.89Z" }, - { url = "https://files.pythonhosted.org/packages/4b/bd/4d6b36669db086e3d747434430073e14def032dd58ad97959bf7e2d06c67/librt-0.8.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9ab3a3475a55b89b87ffd7e6665838e8458e0b596c22e0177e0f961434ec474a", size = 218384, upload_time = "2026-02-12T14:52:40.637Z" }, - { url = "https://files.pythonhosted.org/packages/50/2d/afe966beb0a8f179b132f3e95c8dd90738a23e9ebdba10f89a3f192f9366/librt-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e36a8da17134ffc29373775d88c04832f9ecfab1880470661813e6c7991ef79", size = 241187, upload_time = "2026-02-12T14:52:43.55Z" }, - { url = "https://files.pythonhosted.org/packages/02/d0/6172ea4af2b538462785ab1a68e52d5c99cfb9866a7caf00fdf388299734/librt-0.8.0-cp312-cp312-win32.whl", hash = "sha256:4eb5e06ebcc668677ed6389164f52f13f71737fc8be471101fa8b4ce77baeb0c", size = 54914, upload_time = "2026-02-12T14:52:44.676Z" }, - { url = "https://files.pythonhosted.org/packages/d4/cb/ceb6ed6175612a4337ad49fb01ef594712b934b4bc88ce8a63554832eb44/librt-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:0a33335eb59921e77c9acc05d0e654e4e32e45b014a4d61517897c11591094f8", size = 62020, upload_time = "2026-02-12T14:52:45.676Z" }, - { url = "https://files.pythonhosted.org/packages/f1/7e/61701acbc67da74ce06ddc7ba9483e81c70f44236b2d00f6a4bfee1aacbf/librt-0.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:24a01c13a2a9bdad20997a4443ebe6e329df063d1978bbe2ebbf637878a46d1e", size = 52443, upload_time = "2026-02-12T14:52:47.218Z" }, - { url = "https://files.pythonhosted.org/packages/6d/32/3edb0bcb4113a9c8bdcd1750663a54565d255027657a5df9d90f13ee07fa/librt-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7f820210e21e3a8bf8fde2ae3c3d10106d4de9ead28cbfdf6d0f0f41f5b12fa1", size = 66522, upload_time = "2026-02-12T14:52:48.219Z" }, - { url = "https://files.pythonhosted.org/packages/30/ab/e8c3d05e281f5d405ebdcc5bc8ab36df23e1a4b40ac9da8c3eb9928b72b9/librt-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4831c44b8919e75ca0dfb52052897c1ef59fdae19d3589893fbd068f1e41afbf", size = 68658, upload_time = "2026-02-12T14:52:50.351Z" }, - { url = "https://files.pythonhosted.org/packages/7c/d3/74a206c47b7748bbc8c43942de3ed67de4c231156e148b4f9250869593df/librt-0.8.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:88c6e75540f1f10f5e0fc5e87b4b6c290f0e90d1db8c6734f670840494764af8", size = 199287, upload_time = "2026-02-12T14:52:51.938Z" }, - { url = "https://files.pythonhosted.org/packages/fa/29/ef98a9131cf12cb95771d24e4c411fda96c89dc78b09c2de4704877ebee4/librt-0.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9646178cd794704d722306c2c920c221abbf080fede3ba539d5afdec16c46dad", size = 210293, upload_time = "2026-02-12T14:52:53.128Z" }, - { url = "https://files.pythonhosted.org/packages/5b/3e/89b4968cb08c53d4c2d8b02517081dfe4b9e07a959ec143d333d76899f6c/librt-0.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e1af31a710e17891d9adf0dbd9a5fcd94901a3922a96499abdbf7ce658f4e01", size = 224801, upload_time = "2026-02-12T14:52:54.367Z" }, - { url = "https://files.pythonhosted.org/packages/6d/28/f38526d501f9513f8b48d78e6be4a241e15dd4b000056dc8b3f06ee9ce5d/librt-0.8.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:507e94f4bec00b2f590fbe55f48cd518a208e2474a3b90a60aa8f29136ddbada", size = 218090, upload_time = "2026-02-12T14:52:55.758Z" }, - { url = "https://files.pythonhosted.org/packages/02/ec/64e29887c5009c24dc9c397116c680caffc50286f62bd99c39e3875a2854/librt-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f1178e0de0c271231a660fbef9be6acdfa1d596803464706862bef6644cc1cae", size = 225483, upload_time = "2026-02-12T14:52:57.375Z" }, - { url = "https://files.pythonhosted.org/packages/ee/16/7850bdbc9f1a32d3feff2708d90c56fc0490b13f1012e438532781aa598c/librt-0.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:71fc517efc14f75c2f74b1f0a5d5eb4a8e06aa135c34d18eaf3522f4a53cd62d", size = 218226, upload_time = "2026-02-12T14:52:58.534Z" }, - { url = "https://files.pythonhosted.org/packages/1c/4a/166bffc992d65ddefa7c47052010a87c059b44a458ebaf8f5eba384b0533/librt-0.8.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:0583aef7e9a720dd40f26a2ad5a1bf2ccbb90059dac2b32ac516df232c701db3", size = 218755, upload_time = "2026-02-12T14:52:59.701Z" }, - { url = "https://files.pythonhosted.org/packages/da/5d/9aeee038bcc72a9cfaaee934463fe9280a73c5440d36bd3175069d2cb97b/librt-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d0f76fc73480d42285c609c0ea74d79856c160fa828ff9aceab574ea4ecfd7b", size = 241617, upload_time = "2026-02-12T14:53:00.966Z" }, - { url = "https://files.pythonhosted.org/packages/64/ff/2bec6b0296b9d0402aa6ec8540aa19ebcb875d669c37800cb43d10d9c3a3/librt-0.8.0-cp313-cp313-win32.whl", hash = "sha256:e79dbc8f57de360f0ed987dc7de7be814b4803ef0e8fc6d3ff86e16798c99935", size = 54966, upload_time = "2026-02-12T14:53:02.042Z" }, - { url = "https://files.pythonhosted.org/packages/08/8d/bf44633b0182996b2c7ea69a03a5c529683fa1f6b8e45c03fe874ff40d56/librt-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:25b3e667cbfc9000c4740b282df599ebd91dbdcc1aa6785050e4c1d6be5329ab", size = 62000, upload_time = "2026-02-12T14:53:03.822Z" }, - { url = "https://files.pythonhosted.org/packages/5c/fd/c6472b8e0eac0925001f75e366cf5500bcb975357a65ef1f6b5749389d3a/librt-0.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:e9a3a38eb4134ad33122a6d575e6324831f930a771d951a15ce232e0237412c2", size = 52496, upload_time = "2026-02-12T14:53:04.889Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/8a/3f/4ca7dd7819bf8ff303aca39c3c60e5320e46e766ab7f7dd627d3b9c11bdf/librt-0.8.0.tar.gz", hash = "sha256:cb74cdcbc0103fc988e04e5c58b0b31e8e5dd2babb9182b6f9490488eb36324b", size = 177306, upload-time = "2026-02-12T14:53:54.743Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d5/e9/018cfd60629e0404e6917943789800aa2231defbea540a17b90cc4547b97/librt-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db63cf3586a24241e89ca1ce0b56baaec9d371a328bd186c529b27c914c9a1ef", size = 65690, upload-time = "2026-02-12T14:51:57.761Z" }, + { url = "https://files.pythonhosted.org/packages/b5/80/8d39980860e4d1c9497ee50e5cd7c4766d8cfd90d105578eae418e8ffcbc/librt-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba9d9e60651615bc614be5e21a82cdb7b1769a029369cf4b4d861e4f19686fb6", size = 68373, upload-time = "2026-02-12T14:51:59.013Z" }, + { url = "https://files.pythonhosted.org/packages/2d/76/6e6f7a443af63977e421bd542551fec4072d9eaba02e671b05b238fe73bc/librt-0.8.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb4b3ad543084ed79f186741470b251b9d269cd8b03556f15a8d1a99a64b7de5", size = 197091, upload-time = "2026-02-12T14:52:00.642Z" }, + { url = "https://files.pythonhosted.org/packages/14/40/fa064181c231334c9f4cb69eb338132d39510c8928e84beba34b861d0a71/librt-0.8.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d2720335020219197380ccfa5c895f079ac364b4c429e96952cd6509934d8eb", size = 207350, upload-time = "2026-02-12T14:52:02.32Z" }, + { url = "https://files.pythonhosted.org/packages/50/49/e7f8438dd226305e3e5955d495114ad01448e6a6ffc0303289b4153b5fc5/librt-0.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9726305d3e53419d27fc8cdfcd3f9571f0ceae22fa6b5ea1b3662c2e538f833e", size = 219962, upload-time = "2026-02-12T14:52:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/1f/2c/74086fc5d52e77107a3cc80a9a3209be6ad1c9b6bc99969d8d9bbf9fdfe4/librt-0.8.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc3d107f603b5ee7a79b6aa6f166551b99b32fb4a5303c4dfcb4222fc6a0335e", size = 212939, upload-time = "2026-02-12T14:52:05.537Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ae/d6917c0ebec9bc2e0293903d6a5ccc7cdb64c228e529e96520b277318f25/librt-0.8.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:41064a0c07b4cc7a81355ccc305cb097d6027002209ffca51306e65ee8293630", size = 221393, upload-time = "2026-02-12T14:52:07.164Z" }, + { url = "https://files.pythonhosted.org/packages/04/97/15df8270f524ce09ad5c19cbbe0e8f95067582507149a6c90594e7795370/librt-0.8.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c6e4c10761ddbc0d67d2f6e2753daf99908db85d8b901729bf2bf5eaa60e0567", size = 216721, upload-time = "2026-02-12T14:52:08.857Z" }, + { url = "https://files.pythonhosted.org/packages/c4/52/17cbcf9b7a1bae5016d9d3561bc7169b32c3bd216c47d934d3f270602c0c/librt-0.8.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ba581acad5ac8f33e2ff1746e8a57e001b47c6721873121bf8bbcf7ba8bd3aa4", size = 214790, upload-time = "2026-02-12T14:52:10.033Z" }, + { url = "https://files.pythonhosted.org/packages/2a/2d/010a236e8dc4d717dd545c46fd036dcced2c7ede71ef85cf55325809ff92/librt-0.8.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:bdab762e2c0b48bab76f1a08acb3f4c77afd2123bedac59446aeaaeed3d086cf", size = 237384, upload-time = "2026-02-12T14:52:11.244Z" }, + { url = "https://files.pythonhosted.org/packages/38/14/f1c0eff3df8760dee761029efb72991c554d9f3282f1048e8c3d0eb60997/librt-0.8.0-cp310-cp310-win32.whl", hash = "sha256:6a3146c63220d814c4a2c7d6a1eacc8d5c14aed0ff85115c1dfea868080cd18f", size = 54289, upload-time = "2026-02-12T14:52:12.798Z" }, + { url = "https://files.pythonhosted.org/packages/2f/0b/2684d473e64890882729f91866ed97ccc0a751a0afc3b4bf1a7b57094dbb/librt-0.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:bbebd2bba5c6ae02907df49150e55870fdd7440d727b6192c46b6f754723dde9", size = 61347, upload-time = "2026-02-12T14:52:13.793Z" }, + { url = "https://files.pythonhosted.org/packages/51/e9/42af181c89b65abfd557c1b017cba5b82098eef7bf26d1649d82ce93ccc7/librt-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0ce33a9778e294507f3a0e3468eccb6a698b5166df7db85661543eca1cfc5369", size = 65314, upload-time = "2026-02-12T14:52:14.778Z" }, + { url = "https://files.pythonhosted.org/packages/9d/4a/15a847fca119dc0334a4b8012b1e15fdc5fc19d505b71e227eaf1bcdba09/librt-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8070aa3368559de81061ef752770d03ca1f5fc9467d4d512d405bd0483bfffe6", size = 68015, upload-time = "2026-02-12T14:52:15.797Z" }, + { url = "https://files.pythonhosted.org/packages/e1/87/ffc8dbd6ab68dd91b736c88529411a6729649d2b74b887f91f3aaff8d992/librt-0.8.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:20f73d4fecba969efc15cdefd030e382502d56bb6f1fc66b580cce582836c9fa", size = 194508, upload-time = "2026-02-12T14:52:16.835Z" }, + { url = "https://files.pythonhosted.org/packages/89/92/a7355cea28d6c48ff6ff5083ac4a2a866fb9b07b786aa70d1f1116680cd5/librt-0.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a512c88900bdb1d448882f5623a0b1ad27ba81a9bd75dacfe17080b72272ca1f", size = 205630, upload-time = "2026-02-12T14:52:18.58Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5e/54509038d7ac527828db95b8ba1c8f5d2649bc32fd8f39b1718ec9957dce/librt-0.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:015e2dde6e096d27c10238bf9f6492ba6c65822dfb69d2bf74c41a8e88b7ddef", size = 218289, upload-time = "2026-02-12T14:52:20.134Z" }, + { url = "https://files.pythonhosted.org/packages/6d/17/0ee0d13685cefee6d6f2d47bb643ddad3c62387e2882139794e6a5f1288a/librt-0.8.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1c25a131013eadd3c600686a0c0333eb2896483cbc7f65baa6a7ee761017aef9", size = 211508, upload-time = "2026-02-12T14:52:21.413Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a8/1714ef6e9325582e3727de3be27e4c1b2f428ea411d09f1396374180f130/librt-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:21b14464bee0b604d80a638cf1ee3148d84ca4cc163dcdcecb46060c1b3605e4", size = 219129, upload-time = "2026-02-12T14:52:22.61Z" }, + { url = "https://files.pythonhosted.org/packages/89/d3/2d9fe353edff91cdc0ece179348054a6fa61f3de992c44b9477cb973509b/librt-0.8.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:05a3dd3f116747f7e1a2b475ccdc6fb637fd4987126d109e03013a79d40bf9e6", size = 213126, upload-time = "2026-02-12T14:52:23.819Z" }, + { url = "https://files.pythonhosted.org/packages/ad/8e/9f5c60444880f6ad50e3ff7475e5529e787797e7f3ad5432241633733b92/librt-0.8.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:fa37f99bff354ff191c6bcdffbc9d7cdd4fc37faccfc9be0ef3a4fd5613977da", size = 212279, upload-time = "2026-02-12T14:52:25.034Z" }, + { url = "https://files.pythonhosted.org/packages/fe/eb/d4a2cfa647da3022ae977f50d7eda1d91f70d7d1883cf958a4b6ef689eab/librt-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1566dbb9d1eb0987264c9b9460d212e809ba908d2f4a3999383a84d765f2f3f1", size = 234654, upload-time = "2026-02-12T14:52:26.204Z" }, + { url = "https://files.pythonhosted.org/packages/6a/31/26b978861c7983b036a3aea08bdbb2ec32bbaab1ad1d57c5e022be59afc1/librt-0.8.0-cp311-cp311-win32.whl", hash = "sha256:70defb797c4d5402166787a6b3c66dfb3fa7f93d118c0509ffafa35a392f4258", size = 54603, upload-time = "2026-02-12T14:52:27.342Z" }, + { url = "https://files.pythonhosted.org/packages/d0/78/f194ed7c48dacf875677e749c5d0d1d69a9daa7c994314a39466237fb1be/librt-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:db953b675079884ffda33d1dca7189fb961b6d372153750beb81880384300817", size = 61730, upload-time = "2026-02-12T14:52:28.31Z" }, + { url = "https://files.pythonhosted.org/packages/97/ee/ad71095478d02137b6f49469dc808c595cfe89b50985f6b39c5345f0faab/librt-0.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:75d1a8cab20b2043f03f7aab730551e9e440adc034d776f15f6f8d582b0a5ad4", size = 52274, upload-time = "2026-02-12T14:52:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fb/53/f3bc0c4921adb0d4a5afa0656f2c0fbe20e18e3e0295e12985b9a5dc3f55/librt-0.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:17269dd2745dbe8e42475acb28e419ad92dfa38214224b1b01020b8cac70b645", size = 66511, upload-time = "2026-02-12T14:52:30.34Z" }, + { url = "https://files.pythonhosted.org/packages/89/4b/4c96357432007c25a1b5e363045373a6c39481e49f6ba05234bb59a839c1/librt-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f4617cef654fca552f00ce5ffdf4f4b68770f18950e4246ce94629b789b92467", size = 68628, upload-time = "2026-02-12T14:52:31.491Z" }, + { url = "https://files.pythonhosted.org/packages/47/16/52d75374d1012e8fc709216b5eaa25f471370e2a2331b8be00f18670a6c7/librt-0.8.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5cb11061a736a9db45e3c1293cfcb1e3caf205912dfa085734ba750f2197ff9a", size = 198941, upload-time = "2026-02-12T14:52:32.489Z" }, + { url = "https://files.pythonhosted.org/packages/fc/11/d5dd89e5a2228567b1228d8602d896736247424484db086eea6b8010bcba/librt-0.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4bb00bd71b448f16749909b08a0ff16f58b079e2261c2e1000f2bbb2a4f0a45", size = 210009, upload-time = "2026-02-12T14:52:33.634Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/fc1a92a77c3020ee08ce2dc48aed4b42ab7c30fb43ce488d388673b0f164/librt-0.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95a719a049f0eefaf1952673223cf00d442952273cbd20cf2ed7ec423a0ef58d", size = 224461, upload-time = "2026-02-12T14:52:34.868Z" }, + { url = "https://files.pythonhosted.org/packages/7f/98/eb923e8b028cece924c246104aa800cf72e02d023a8ad4ca87135b05a2fe/librt-0.8.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bd32add59b58fba3439d48d6f36ac695830388e3da3e92e4fc26d2d02670d19c", size = 217538, upload-time = "2026-02-12T14:52:36.078Z" }, + { url = "https://files.pythonhosted.org/packages/fd/67/24e80ab170674a1d8ee9f9a83081dca4635519dbd0473b8321deecddb5be/librt-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4f764b2424cb04524ff7a486b9c391e93f93dc1bd8305b2136d25e582e99aa2f", size = 225110, upload-time = "2026-02-12T14:52:37.301Z" }, + { url = "https://files.pythonhosted.org/packages/d8/c7/6fbdcbd1a6e5243c7989c21d68ab967c153b391351174b4729e359d9977f/librt-0.8.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f04ca50e847abc486fa8f4107250566441e693779a5374ba211e96e238f298b9", size = 217758, upload-time = "2026-02-12T14:52:38.89Z" }, + { url = "https://files.pythonhosted.org/packages/4b/bd/4d6b36669db086e3d747434430073e14def032dd58ad97959bf7e2d06c67/librt-0.8.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:9ab3a3475a55b89b87ffd7e6665838e8458e0b596c22e0177e0f961434ec474a", size = 218384, upload-time = "2026-02-12T14:52:40.637Z" }, + { url = "https://files.pythonhosted.org/packages/50/2d/afe966beb0a8f179b132f3e95c8dd90738a23e9ebdba10f89a3f192f9366/librt-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3e36a8da17134ffc29373775d88c04832f9ecfab1880470661813e6c7991ef79", size = 241187, upload-time = "2026-02-12T14:52:43.55Z" }, + { url = "https://files.pythonhosted.org/packages/02/d0/6172ea4af2b538462785ab1a68e52d5c99cfb9866a7caf00fdf388299734/librt-0.8.0-cp312-cp312-win32.whl", hash = "sha256:4eb5e06ebcc668677ed6389164f52f13f71737fc8be471101fa8b4ce77baeb0c", size = 54914, upload-time = "2026-02-12T14:52:44.676Z" }, + { url = "https://files.pythonhosted.org/packages/d4/cb/ceb6ed6175612a4337ad49fb01ef594712b934b4bc88ce8a63554832eb44/librt-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:0a33335eb59921e77c9acc05d0e654e4e32e45b014a4d61517897c11591094f8", size = 62020, upload-time = "2026-02-12T14:52:45.676Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7e/61701acbc67da74ce06ddc7ba9483e81c70f44236b2d00f6a4bfee1aacbf/librt-0.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:24a01c13a2a9bdad20997a4443ebe6e329df063d1978bbe2ebbf637878a46d1e", size = 52443, upload-time = "2026-02-12T14:52:47.218Z" }, + { url = "https://files.pythonhosted.org/packages/6d/32/3edb0bcb4113a9c8bdcd1750663a54565d255027657a5df9d90f13ee07fa/librt-0.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7f820210e21e3a8bf8fde2ae3c3d10106d4de9ead28cbfdf6d0f0f41f5b12fa1", size = 66522, upload-time = "2026-02-12T14:52:48.219Z" }, + { url = "https://files.pythonhosted.org/packages/30/ab/e8c3d05e281f5d405ebdcc5bc8ab36df23e1a4b40ac9da8c3eb9928b72b9/librt-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4831c44b8919e75ca0dfb52052897c1ef59fdae19d3589893fbd068f1e41afbf", size = 68658, upload-time = "2026-02-12T14:52:50.351Z" }, + { url = "https://files.pythonhosted.org/packages/7c/d3/74a206c47b7748bbc8c43942de3ed67de4c231156e148b4f9250869593df/librt-0.8.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:88c6e75540f1f10f5e0fc5e87b4b6c290f0e90d1db8c6734f670840494764af8", size = 199287, upload-time = "2026-02-12T14:52:51.938Z" }, + { url = "https://files.pythonhosted.org/packages/fa/29/ef98a9131cf12cb95771d24e4c411fda96c89dc78b09c2de4704877ebee4/librt-0.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9646178cd794704d722306c2c920c221abbf080fede3ba539d5afdec16c46dad", size = 210293, upload-time = "2026-02-12T14:52:53.128Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3e/89b4968cb08c53d4c2d8b02517081dfe4b9e07a959ec143d333d76899f6c/librt-0.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e1af31a710e17891d9adf0dbd9a5fcd94901a3922a96499abdbf7ce658f4e01", size = 224801, upload-time = "2026-02-12T14:52:54.367Z" }, + { url = "https://files.pythonhosted.org/packages/6d/28/f38526d501f9513f8b48d78e6be4a241e15dd4b000056dc8b3f06ee9ce5d/librt-0.8.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:507e94f4bec00b2f590fbe55f48cd518a208e2474a3b90a60aa8f29136ddbada", size = 218090, upload-time = "2026-02-12T14:52:55.758Z" }, + { url = "https://files.pythonhosted.org/packages/02/ec/64e29887c5009c24dc9c397116c680caffc50286f62bd99c39e3875a2854/librt-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f1178e0de0c271231a660fbef9be6acdfa1d596803464706862bef6644cc1cae", size = 225483, upload-time = "2026-02-12T14:52:57.375Z" }, + { url = "https://files.pythonhosted.org/packages/ee/16/7850bdbc9f1a32d3feff2708d90c56fc0490b13f1012e438532781aa598c/librt-0.8.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:71fc517efc14f75c2f74b1f0a5d5eb4a8e06aa135c34d18eaf3522f4a53cd62d", size = 218226, upload-time = "2026-02-12T14:52:58.534Z" }, + { url = "https://files.pythonhosted.org/packages/1c/4a/166bffc992d65ddefa7c47052010a87c059b44a458ebaf8f5eba384b0533/librt-0.8.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:0583aef7e9a720dd40f26a2ad5a1bf2ccbb90059dac2b32ac516df232c701db3", size = 218755, upload-time = "2026-02-12T14:52:59.701Z" }, + { url = "https://files.pythonhosted.org/packages/da/5d/9aeee038bcc72a9cfaaee934463fe9280a73c5440d36bd3175069d2cb97b/librt-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d0f76fc73480d42285c609c0ea74d79856c160fa828ff9aceab574ea4ecfd7b", size = 241617, upload-time = "2026-02-12T14:53:00.966Z" }, + { url = "https://files.pythonhosted.org/packages/64/ff/2bec6b0296b9d0402aa6ec8540aa19ebcb875d669c37800cb43d10d9c3a3/librt-0.8.0-cp313-cp313-win32.whl", hash = "sha256:e79dbc8f57de360f0ed987dc7de7be814b4803ef0e8fc6d3ff86e16798c99935", size = 54966, upload-time = "2026-02-12T14:53:02.042Z" }, + { url = "https://files.pythonhosted.org/packages/08/8d/bf44633b0182996b2c7ea69a03a5c529683fa1f6b8e45c03fe874ff40d56/librt-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:25b3e667cbfc9000c4740b282df599ebd91dbdcc1aa6785050e4c1d6be5329ab", size = 62000, upload-time = "2026-02-12T14:53:03.822Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fd/c6472b8e0eac0925001f75e366cf5500bcb975357a65ef1f6b5749389d3a/librt-0.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:e9a3a38eb4134ad33122a6d575e6324831f930a771d951a15ce232e0237412c2", size = 52496, upload-time = "2026-02-12T14:53:04.889Z" }, ] [[package]] @@ -1799,179 +1849,179 @@ dependencies = [ { name = "tiktoken" }, { name = "tokenizers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/72/80/b6cb799e7100953d848e106d0575db34c75bc3b57f31f2eefdfb1e23655f/litellm-1.81.13.tar.gz", hash = "sha256:083788d9c94e3371ff1c42e40e0e8198c497772643292a65b1bc91a3b3b537ea", size = 16562861, upload_time = "2026-02-17T02:00:47.466Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/80/b6cb799e7100953d848e106d0575db34c75bc3b57f31f2eefdfb1e23655f/litellm-1.81.13.tar.gz", hash = "sha256:083788d9c94e3371ff1c42e40e0e8198c497772643292a65b1bc91a3b3b537ea", size = 16562861, upload-time = "2026-02-17T02:00:47.466Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/f3/fffb7932870163cea7addc392165647a9a8a5489967de486c854226f1141/litellm-1.81.13-py3-none-any.whl", hash = "sha256:ae4aea2a55e85993f5f6dd36d036519422d24812a1a3e8540d9e987f2d7a4304", size = 14587505, upload_time = "2026-02-17T02:00:44.22Z" }, + { url = "https://files.pythonhosted.org/packages/be/f3/fffb7932870163cea7addc392165647a9a8a5489967de486c854226f1141/litellm-1.81.13-py3-none-any.whl", hash = "sha256:ae4aea2a55e85993f5f6dd36d036519422d24812a1a3e8540d9e987f2d7a4304", size = 14587505, upload-time = "2026-02-17T02:00:44.22Z" }, ] [[package]] name = "loro" version = "1.13.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9c/0a/a5171cc085b08a066bd1f7b686db9f6493fc45b69b4047ccea682255fdea/loro-1.13.1.tar.gz", hash = "sha256:0c3727bc52f5098576532edd399efc08ceb234c5d9235a19cbd5ea37c4fba485", size = 70462, upload_time = "2026-06-14T09:44:08.296Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/19/0e/78d538a3a4ed549bf67ddbcbc94c7f283f9bbb023b91615cb6e94aebe3e0/loro-1.13.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:881a45d7e557064b9749a86d390c256712c5313a08b89cfb832da6085764cb8c", size = 3389576, upload_time = "2026-06-14T09:41:13.695Z" }, - { url = "https://files.pythonhosted.org/packages/16/fc/97adb97b98871dd5837770effe54f8aa384eada9f8a92169de556d3c86fc/loro-1.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8197e6ad7577950b7989d5e2e631195319e5da9eb1d37b88fb153813c3462ec", size = 3214088, upload_time = "2026-06-14T09:40:56.383Z" }, - { url = "https://files.pythonhosted.org/packages/8d/e2/3a6cfaaeef365f2dce48522397270ab8ab3738aa5ee0d57600bb55bbadb4/loro-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:634d3d271e586c8ee5f461f4fcca033509ebe18f12bbd6fc1cf5015b6d451961", size = 3456589, upload_time = "2026-06-14T09:37:29.065Z" }, - { url = "https://files.pythonhosted.org/packages/27/27/4a8dd890a2b286d44cc551ee7f7e99af840e665e2fd7302d9a854109b8c5/loro-1.13.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:585289f1ce720e64ed4c11b5dcdcd820696b140c7ec01169049979c079835a75", size = 3479469, upload_time = "2026-06-14T09:38:06.753Z" }, - { url = "https://files.pythonhosted.org/packages/18/65/4e73c5c25c9b524d8e8198b4fcfc528d854390ca57cfea027aaaf9082b71/loro-1.13.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:016f8ce02e15be615b91e503143ee57380cc88c882bd25a06f7ee36e14a83cfa", size = 3867965, upload_time = "2026-06-14T09:38:43.888Z" }, - { url = "https://files.pythonhosted.org/packages/6f/0c/ea0aee61f2a08eac87c6cf71ffdb85681f2d0842310df11c94b6aca41189/loro-1.13.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e307f6b18d698f1230aafca0e10791c268d9ed2d663d385fc4cac69145cba12", size = 3557253, upload_time = "2026-06-14T09:39:21.897Z" }, - { url = "https://files.pythonhosted.org/packages/89/99/fc1cf20c7f5db88417a46aabbe17e9f4d4aa046fd4036c3f5395c8907f6b/loro-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa325d3b519ec005d57abc0e1cf6c093a8bfbdc2b6fcce2202339a9c1af8fdc7", size = 3498675, upload_time = "2026-06-14T09:40:28.595Z" }, - { url = "https://files.pythonhosted.org/packages/b9/9a/bf3f976141c7a981b92e38cdacdc7e287fdf460f412f2d6c8c6fb2714ced/loro-1.13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:be581dd2a0b9ec61aa7f8b2805883d94e7db5408e15991c612507d3bb2c6e969", size = 3814885, upload_time = "2026-06-14T09:39:59.165Z" }, - { url = "https://files.pythonhosted.org/packages/86/bd/e3a9ccabc8d9b59a621f570b9aa267c9306286aa601e1661bd506d57ac12/loro-1.13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b99d7f919bdfc2ae29dd69dfccef890dd9ac225b9802ce20b85260a90efa45fc", size = 3632197, upload_time = "2026-06-14T09:41:32.04Z" }, - { url = "https://files.pythonhosted.org/packages/a2/c9/4a9e7799e327a007cd869e70586ac65d5e4ee0b0998194549335519906a0/loro-1.13.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a0cbd507903dd0f1017d602ef59f15a185493aaa5fe597149026c4f6d19a86ad", size = 3748608, upload_time = "2026-06-14T09:42:10.336Z" }, - { url = "https://files.pythonhosted.org/packages/69/f0/b16183e3bf647135077e59778ab74ff30292b1ba4ea0563ace3a26ecf848/loro-1.13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6836ed89e71a70a2a48fa989247ef463cfc53bd192315fe5df56f1d702a77c5f", size = 3836328, upload_time = "2026-06-14T09:42:49.429Z" }, - { url = "https://files.pythonhosted.org/packages/cc/e2/98bd5558b47e46952b85cc374a6433c9de068af40936777759f0b4a2c593/loro-1.13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e3b3b52fb6a326fe33a6c8dda2725ab8678e35995042966e4cbc0dda884d89f", size = 3758591, upload_time = "2026-06-14T09:43:27.852Z" }, - { url = "https://files.pythonhosted.org/packages/74/8a/bec03707e0e724ef0b3b1c4b318e1f732b79ca0bff0ccb6fddb7f51db071/loro-1.13.1-cp310-cp310-win32.whl", hash = "sha256:defc33602140c410ac63bc8301ee2ae91141119b9622aa9a8481f5ab019179e8", size = 2858413, upload_time = "2026-06-14T09:44:29.256Z" }, - { url = "https://files.pythonhosted.org/packages/d8/0f/e37c22d1c24f97423c213c81c4b0c1979da506a47fcb7c4252ddfae259e1/loro-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:24bd4f961ff269c332754467410fe54e30084f11e09b390842d88a8d7aef3d84", size = 3087131, upload_time = "2026-06-14T09:44:09.371Z" }, - { url = "https://files.pythonhosted.org/packages/6f/73/9f28cc5d626cae0b1129a62a6edd0922ce979aae67ccbd162a3052aa70c6/loro-1.13.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ca89672a72fd211caddec137cb5539ca7b9906e9afebabd25948590c042a52d7", size = 3388491, upload_time = "2026-06-14T09:41:15.078Z" }, - { url = "https://files.pythonhosted.org/packages/68/ee/8ada6f1ae19b9e1d69c7d9760fe4544a6a8baa6015951f260d368311beb3/loro-1.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84026a187d2fab3f7a1386eb239042a8c334ef2493621fb7684fe758229d3f78", size = 3212708, upload_time = "2026-06-14T09:40:57.617Z" }, - { url = "https://files.pythonhosted.org/packages/5a/d8/f0c7430e9a767cc956f6f4414e8cc69b1382e15c13dd5fe8a6d099ac4270/loro-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1e5e572e69f3aeedd3dce43bb4cda602bd20c91ea001f6d034b89ce511affc5", size = 3454249, upload_time = "2026-06-14T09:37:30.905Z" }, - { url = "https://files.pythonhosted.org/packages/2e/c2/c8b10557879cabf6f9fb3858dee5fe0e4d72c0bbf390d5a3f4a1aa8c86fb/loro-1.13.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e87166c9bff35908e2a2b378def56c8a5ae6286ca7d3c14dd7d6a94a2018713e", size = 3478994, upload_time = "2026-06-14T09:38:08.32Z" }, - { url = "https://files.pythonhosted.org/packages/95/82/37a9163194b097c89f7c87062e8dc3067af288ffe36acf17d83e50577a03/loro-1.13.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:984f2c7c17f7ff5c11cad04d5aa22f76247800b4b10465845a64b0e7d5491a4a", size = 3868397, upload_time = "2026-06-14T09:38:45.22Z" }, - { url = "https://files.pythonhosted.org/packages/69/57/e2453b4fcb83c0ce238fe43e6073d32c257f1298c2209a7ca532701e24d6/loro-1.13.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3a91938bd8812f4aa445d8dc7f4a2296aae6993ae99b2573b8346d95a3112f9", size = 3556776, upload_time = "2026-06-14T09:39:23.613Z" }, - { url = "https://files.pythonhosted.org/packages/82/7a/8d0b98fd2cb7459ce662fc09d09f2c7759dace5281041f1a40ce88da7118/loro-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb40d659067c6d393e28c7fa1d47a74f02c21b002f631b296bc5956ed10e4e03", size = 3498669, upload_time = "2026-06-14T09:40:30.223Z" }, - { url = "https://files.pythonhosted.org/packages/56/e6/44cbc490efeb482ffdab05a9911de479cde2c5b15cf78cc380c461569770/loro-1.13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba14aac864efa39060f429e13fe826dd7a3eea51770c7ba18f7ab417a966733e", size = 3814637, upload_time = "2026-06-14T09:40:00.704Z" }, - { url = "https://files.pythonhosted.org/packages/b9/57/1983a2c4febe009d8000c46c2aae91fa2a063ff006cbdce08c19ff3b691c/loro-1.13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:236f0b5a606890782e9830233f049e9bf711999fe12163b6e57b2f16656477ab", size = 3631426, upload_time = "2026-06-14T09:41:33.545Z" }, - { url = "https://files.pythonhosted.org/packages/b4/6c/b825f30215048473451bbfc68570dac846d6b5c9a566c38e69fe4cf2c171/loro-1.13.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86500c195f3542c1b286564ff283dd2d29acf87c029e3a968fce658f492eb70c", size = 3747911, upload_time = "2026-06-14T09:42:11.925Z" }, - { url = "https://files.pythonhosted.org/packages/b4/76/7c80c176de31b068cce0b608664541f7c45dc1522a0afac323454d6ea565/loro-1.13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e57c441619090013730a1ff64f4a541df56230f56f386004da54d4bbdfa5b49", size = 3836322, upload_time = "2026-06-14T09:42:51.032Z" }, - { url = "https://files.pythonhosted.org/packages/d4/b8/f26e7e04146a0958eeb136ce9e1584d6a0a663e917eee0019cbbfcd3fd95/loro-1.13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c3115e10224001e517b262760126bd998c871168cbcfe822ecf0f32ba843d13a", size = 3758094, upload_time = "2026-06-14T09:43:29.478Z" }, - { url = "https://files.pythonhosted.org/packages/70/50/ff05b94aad55319162982fc81c7f5beab8c1fb4c77dec1364f79a2dab4d9/loro-1.13.1-cp311-cp311-win32.whl", hash = "sha256:6367d8b6f0e682e17f281df51f502d8c7034b3e115899169fffe5c47943f044a", size = 2859108, upload_time = "2026-06-14T09:44:30.842Z" }, - { url = "https://files.pythonhosted.org/packages/63/d9/9268de0d259470e9f5ccd64b502d5267cb83e22e5b9eb9680cfde916314e/loro-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:10ee34b857c0d0fe175874abc20aca2d900f464fda0873eb40eea64a13d120c5", size = 3087237, upload_time = "2026-06-14T09:44:10.946Z" }, - { url = "https://files.pythonhosted.org/packages/1d/63/9d58b58fa07691682056a1869332acde98ad3f5604c5167bc2c67a3499ac/loro-1.13.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:62944de6a84c71f7fb87dc5ea59e70f68c3910dbee08fa29f1d87d2aa79361f9", size = 3372403, upload_time = "2026-06-14T09:41:16.448Z" }, - { url = "https://files.pythonhosted.org/packages/8c/a7/1e00449128a0124f05a0070ed042f6e6e6a1ae9d42462f341e5782d0b1c6/loro-1.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:18483499a361ca72dd6512a889fea097ddd203d6d048cdeb202cfdb454daa6da", size = 3201108, upload_time = "2026-06-14T09:40:59.18Z" }, - { url = "https://files.pythonhosted.org/packages/6f/a1/94c3ae7ca30252caed58895e9f0c711045f93903891f59cb17c255b1832b/loro-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24b880c6ef075e092956e6cc8a1ca10d75dd0c42100c93314d941d21ce7e825", size = 3458390, upload_time = "2026-06-14T09:37:32.334Z" }, - { url = "https://files.pythonhosted.org/packages/9c/e5/fbe091e3da9518b22cf81227d102a792c5f2427f011461192262082b4981/loro-1.13.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1692f6cd32715106fa6512cffd77dae386c19aa3d269e0aa540f562c901b4fb3", size = 3481720, upload_time = "2026-06-14T09:38:09.71Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c5/efe3ed6991bc2fca078e6f065e9b3c6af9caabcd37de9c45d001e27d02f7/loro-1.13.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c974a0c7534cdb3885922fac0762276726f2c6212ea42ff9f94fb66458646163", size = 3868987, upload_time = "2026-06-14T09:38:46.803Z" }, - { url = "https://files.pythonhosted.org/packages/4d/a4/3e879c36de0d0726686a8863cc4c7cbd27977ab54602d9d5b519a6c038ad/loro-1.13.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ad60e62ee97de40e345a79dd0e8e1890589827517a85f2795499ecbe0c772d", size = 3563937, upload_time = "2026-06-14T09:39:25.155Z" }, - { url = "https://files.pythonhosted.org/packages/1b/24/384088890d15867dcec61420afcfe37c6a185dc38302426b53b77ab9a944/loro-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bb41b0fc46d7310f9b863359bd9073e8be042906792418810c45246d52f3e2c", size = 3506609, upload_time = "2026-06-14T09:40:31.647Z" }, - { url = "https://files.pythonhosted.org/packages/59/fa/93a33f1e4f4482dfc3463be3395d29ad5769c213cc89890167aca6c7d682/loro-1.13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fc251ab7ec8d4f45d6afba76b5c0fa804815df8322a7c5b4855c69d574fa3e4", size = 3820553, upload_time = "2026-06-14T09:40:02.103Z" }, - { url = "https://files.pythonhosted.org/packages/5e/77/209513ad828529b52bcadd43b438aa0c419d951c67dd8573c2d7fea29c5c/loro-1.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:799f93099a7397e3d4975507769beaca49b1545c28ce2f565e0c6a9d7114c7c5", size = 3635451, upload_time = "2026-06-14T09:41:35.078Z" }, - { url = "https://files.pythonhosted.org/packages/66/dc/9a800ea8c377af8b839d052e1c6dce090a5bb1a8d62f9bb72d8ac74d7fae/loro-1.13.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dddaa54ab925096efae42d017e3ec3e1a5e96109f011c9457a364370346d8d57", size = 3751844, upload_time = "2026-06-14T09:42:13.511Z" }, - { url = "https://files.pythonhosted.org/packages/48/c9/0d4ea932f2a2aa5143ddc5abda9afc45036d99af068ed9176baa19f8e5b0/loro-1.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5438af35c12fcdfed73515bfec9d675ccee9ae0f6206402d42699f13921c489b", size = 3839548, upload_time = "2026-06-14T09:42:52.713Z" }, - { url = "https://files.pythonhosted.org/packages/ee/9b/ab9b732f43ccc895b97e848003f72edcdf46dc6adac77f5313e520699c86/loro-1.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aa9ab0684b64eea6bb4088697063c536e322688828946ef29ada34cdd7ab97fe", size = 3766156, upload_time = "2026-06-14T09:43:31.825Z" }, - { url = "https://files.pythonhosted.org/packages/ca/c3/7f7e28ccac959d2d0085fadec194f6b45713517155bb67939392a8675b0f/loro-1.13.1-cp312-cp312-win32.whl", hash = "sha256:f13be6490fd9afb86474cf8c20270c64efcb0b3a9b32309bae5611ffc5d4ec30", size = 2852620, upload_time = "2026-06-14T09:44:32.61Z" }, - { url = "https://files.pythonhosted.org/packages/22/10/42e780e90c5a0a8e35c4e4cc6467dd2158324f389d6183bf763434c51e89/loro-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:b40a60be6900f84704824d44d11d7a721e5b3602f472b71d9aa8310b301478f3", size = 3096879, upload_time = "2026-06-14T09:44:12.476Z" }, - { url = "https://files.pythonhosted.org/packages/93/06/e369dac8102485a1140d18c4823b88c97c97577adb5c0029e5163917f726/loro-1.13.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:969916c8747b8f3fc0234c1d8c04f3433d3dbf88ce1f5f90c816c7e2c80c8d5d", size = 3371860, upload_time = "2026-06-14T09:41:17.899Z" }, - { url = "https://files.pythonhosted.org/packages/4d/cc/0f661d4779efe66e61d825b31ff13da3277140820a1db2f846e466d5b5f2/loro-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:00b85365ff695dbff3b4e0513976025d92e80741475449857f0b18a143694c39", size = 3200732, upload_time = "2026-06-14T09:41:00.581Z" }, - { url = "https://files.pythonhosted.org/packages/c6/ba/314c26e89492b4486634e96844bf5acf4ea88b1dc4fa04b06e47e92403be/loro-1.13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c46783fa28dd5144f7ca5f20ac949ad7568ef6d511e4aec077566bd0e011f3da", size = 3457717, upload_time = "2026-06-14T09:37:33.867Z" }, - { url = "https://files.pythonhosted.org/packages/e8/42/990572d3e7f71f6930420185b9fb6669490078b88a8ff2e8171310b861b5/loro-1.13.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2ba4caa9b52d64dd2d1aaa0672cb058618e4fc722ab26393f5b2db51bd715fc5", size = 3481891, upload_time = "2026-06-14T09:38:11.153Z" }, - { url = "https://files.pythonhosted.org/packages/e7/b7/3a1dc21ba8b5ea4362df8d21f61b4273fdcc84504969a4868621faf428a4/loro-1.13.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8bd1b7b65b552b7863c2d8d0e041dc35b3ccaf86422c2d03cbd89903feee890", size = 3868735, upload_time = "2026-06-14T09:38:48.233Z" }, - { url = "https://files.pythonhosted.org/packages/9c/64/838072fc73ae993316df8d80aedc537092c73b5e0f27132de60b9cfaa31b/loro-1.13.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a1591e115e874d9e0ad7cf7b413390d26cafb5750d707897fd79a5d1f69b7e7", size = 3564176, upload_time = "2026-06-14T09:39:26.573Z" }, - { url = "https://files.pythonhosted.org/packages/57/c2/8c122a862b8f773ba40c6ade7a89afb9ed26382d23e024f4e66f47ad639f/loro-1.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05703492391f21bb251181a2ee9f1f68425d73efa94810271e25087faca5c23d", size = 3506207, upload_time = "2026-06-14T09:40:33.132Z" }, - { url = "https://files.pythonhosted.org/packages/35/ff/49426f106fcc8b3cdc22dc46af68a1f74ab1675aea07c5244616e2b7b805/loro-1.13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:862f4948e3a0da4eee417d159a728a8f75a309d02e9aeb4309cbc96e5e48f3c6", size = 3820941, upload_time = "2026-06-14T09:40:05.009Z" }, - { url = "https://files.pythonhosted.org/packages/ab/23/a40c73fb33eb5cc4bbf44ea81efe147cb804c1b9c4d41c37e2dc5e1e1a21/loro-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f44bb3e017b851c518a75253a5648c168796080a7dd7c370f991e4c26c929eb", size = 3634400, upload_time = "2026-06-14T09:41:36.483Z" }, - { url = "https://files.pythonhosted.org/packages/3b/06/5e1460d701c1617d424e6fc930f73772e4aba7ba4c0afc35c14aaea66b64/loro-1.13.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee1819567c55821d18bae00779427ed57e9287e2620dc773922d9efc9215d361", size = 3750693, upload_time = "2026-06-14T09:42:15.047Z" }, - { url = "https://files.pythonhosted.org/packages/0a/70/abd113d4211f843b2fc5425049225bd0453ba51dd4536be0f170c59cd89f/loro-1.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8e0ed665870c2e63e3b56a56e4cf4dcecd483e4658ecbbe7c913d09f251ccd9a", size = 3839587, upload_time = "2026-06-14T09:42:54.423Z" }, - { url = "https://files.pythonhosted.org/packages/b9/42/a04aa38208dfe8d66619a5a5dda9b586ca30069347ffd5eafb9f2e3c645d/loro-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:063a137ecd547259058abfecaa0dccfebbece1bb852960f811fff8ff07ff1549", size = 3765347, upload_time = "2026-06-14T09:43:33.507Z" }, - { url = "https://files.pythonhosted.org/packages/66/43/016a4904c0973965904b795599631becf74f42f7e5ab569790dcc02bc2ea/loro-1.13.1-cp313-cp313-win32.whl", hash = "sha256:89fa0c1d0ce435ff593d65bd6173ef7da0b1794cb8b542a275cc36052d147d13", size = 2852202, upload_time = "2026-06-14T09:44:34.904Z" }, - { url = "https://files.pythonhosted.org/packages/d9/7c/7f24a599aa6f1f6bd52052937f8e7089f8daf4269998e48836bc38c4c353/loro-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:31060b96a1a085dc585b7d81de56816ee52f50b3328580e6b0b778058c673b02", size = 3095693, upload_time = "2026-06-14T09:44:14.105Z" }, - { url = "https://files.pythonhosted.org/packages/9e/96/1a5d508afe5570af35a37c6af65152f58848f54b498083f445fb4daf27ae/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0962308ad8e53d3cb74a151062f3d075b994b3324b3217af67b136225af5204", size = 3453807, upload_time = "2026-06-14T09:37:41.689Z" }, - { url = "https://files.pythonhosted.org/packages/b8/5a/164b13e23a9897d895b4612eb0a7c2140b4c941eb12925c350bca96d01a5/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99385246166f3bddc0bb686cdf61909969d214ff0c1f0e36db5fec9aa1244579", size = 3478688, upload_time = "2026-06-14T09:38:18.911Z" }, - { url = "https://files.pythonhosted.org/packages/38/d6/a57a182629f6ff20c3e650d303b5d821e21edb1539cd64886c2659f171af/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a29d5cbb17e8f317a1818dc87280c389e3c22c0f0da8e5f1e34c95333d311c48", size = 3862744, upload_time = "2026-06-14T09:38:55.463Z" }, - { url = "https://files.pythonhosted.org/packages/17/89/2eb3b0643c5249ae98cbb259ecd6a737986ecec215ff31e7c682ebd198d1/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:837251c39e43c99e241bb253e3b05a1a5424282ddc905d34d0f554ede8bcbe39", size = 3555358, upload_time = "2026-06-14T09:39:33.923Z" }, - { url = "https://files.pythonhosted.org/packages/6d/3a/8ec8674a323b9872b4b7b59e2c2bfad14aa825a7d551df0ae0ffe1001c3e/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:70dc63bbf6dcbf20cfe0210e23beb0a509d3608d5ad4d3004c6d85107f945d1d", size = 3630381, upload_time = "2026-06-14T09:41:44.317Z" }, - { url = "https://files.pythonhosted.org/packages/70/19/9993e6b0bb882f219d6768ffc0cde96efd6bf07d54db92fa02dbca40a8d0/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:3caa4acb70cba3d562cd939618b4d72c2a46000e060b5077a0712c53e9276747", size = 3747925, upload_time = "2026-06-14T09:42:23.226Z" }, - { url = "https://files.pythonhosted.org/packages/87/3c/b0500c59856c6f807ec0459105584ed78e8fc2827520ca198dc5d94e4a47/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:01ed5d2fae9cb10c7ad0c8cb31f7b25bef938077a1094a1449340c48cca130cd", size = 3838478, upload_time = "2026-06-14T09:43:02.285Z" }, - { url = "https://files.pythonhosted.org/packages/2d/4e/a8d486bc7cce088e50124b25da24a3347d4a909f315562d2cf8bbc7cd742/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:19823f7fcedb24e7c90708c25135311dacc87b00091a8c28688eeac7e59d17be", size = 3759483, upload_time = "2026-06-14T09:43:41.507Z" }, - { url = "https://files.pythonhosted.org/packages/66/57/35da08c298f0f74212a5b03aa7b2eabb49f03d79d7c7d1dc9b85795a1f53/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df3cc735e6e514fa700c1142ef5aa003eb2fa972cfe6cf5a1faad73a5b2b9f35", size = 3452474, upload_time = "2026-06-14T09:37:42.941Z" }, - { url = "https://files.pythonhosted.org/packages/60/7b/ba4a7542bcce0c6c542fcdddf058140fed930c43763faa449d37060a8d1d/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:774d466c51506e9bd2e2d889078d405642f14474d5b3d97323ba64e1709792cf", size = 3476693, upload_time = "2026-06-14T09:38:20.352Z" }, - { url = "https://files.pythonhosted.org/packages/01/37/2bea377c69e277d5c89fb53e7ca5a55ed025f58ed91ec8b7d879cd7363ad/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fea37c8a2d307340fefd9ecf9dfe2d0cd050e5fe52d28dc59f3b74e2f4d86a59", size = 3862157, upload_time = "2026-06-14T09:38:57.247Z" }, - { url = "https://files.pythonhosted.org/packages/03/08/2c7a178b5a761f081b72a8001e42b71c0f7b1d088242bdd739fda7332d71/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a18812dd5129975c89ed3c279b96d05a7129d671b3c4e07d47da5d2a5a44143", size = 3553687, upload_time = "2026-06-14T09:39:35.415Z" }, - { url = "https://files.pythonhosted.org/packages/ab/91/b61a37a2044cd36f0b89c1ab97a6444fd5eb4256f17ed5e41b855f05ecd5/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a252b6badfcd7d43f45c58c61282a256a2bebb50315d363409d34eebb576fa86", size = 3497885, upload_time = "2026-06-14T09:40:39.316Z" }, - { url = "https://files.pythonhosted.org/packages/9f/1c/ae412692eb78f270ce31b95fe212902c3906869426c11a5d4905a22ca776/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:26be461277ea678a47e937b077b4fcc9b7985083b3b7eba5e33bcdcffb511ab0", size = 3816446, upload_time = "2026-06-14T09:40:11.179Z" }, - { url = "https://files.pythonhosted.org/packages/4a/fe/e65cead425aa667b2d4b484c418609f088b23321062103bdb3751d4fafaa/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:88359d12071cb96c1c96912a90c4102f538354bef2100b3797c225418aca8588", size = 3629093, upload_time = "2026-06-14T09:41:45.795Z" }, - { url = "https://files.pythonhosted.org/packages/2e/12/479dfce8e159f6b238a9dc5e0daf8b55626ff245a292415d902d3dda3b58/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:403ca90311137f94d6a26723dbb0bf60af0a83c98577668f3939e5b67b9359e6", size = 3747230, upload_time = "2026-06-14T09:42:25.177Z" }, - { url = "https://files.pythonhosted.org/packages/26/53/0a56911f810bfbcf426a85048ad51413f80d48643ee9e75e359e7f301309/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:24ac898cf8089df7a7dd1adb116acba8e1a68dde0060db5bb29f4067858fa068", size = 3838314, upload_time = "2026-06-14T09:43:03.81Z" }, - { url = "https://files.pythonhosted.org/packages/85/e7/1f4d4b588d1c20bececfb3e90d8d035ec4f8e7c0d9b45925eaa6c9b5e511/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:531635135306ef42681837d8a0f7bafd34fcf146435ae9077f31fd89e949e5cf", size = 3758462, upload_time = "2026-06-14T09:43:43.649Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/9c/0a/a5171cc085b08a066bd1f7b686db9f6493fc45b69b4047ccea682255fdea/loro-1.13.1.tar.gz", hash = "sha256:0c3727bc52f5098576532edd399efc08ceb234c5d9235a19cbd5ea37c4fba485", size = 70462, upload-time = "2026-06-14T09:44:08.296Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/0e/78d538a3a4ed549bf67ddbcbc94c7f283f9bbb023b91615cb6e94aebe3e0/loro-1.13.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:881a45d7e557064b9749a86d390c256712c5313a08b89cfb832da6085764cb8c", size = 3389576, upload-time = "2026-06-14T09:41:13.695Z" }, + { url = "https://files.pythonhosted.org/packages/16/fc/97adb97b98871dd5837770effe54f8aa384eada9f8a92169de556d3c86fc/loro-1.13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d8197e6ad7577950b7989d5e2e631195319e5da9eb1d37b88fb153813c3462ec", size = 3214088, upload-time = "2026-06-14T09:40:56.383Z" }, + { url = "https://files.pythonhosted.org/packages/8d/e2/3a6cfaaeef365f2dce48522397270ab8ab3738aa5ee0d57600bb55bbadb4/loro-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:634d3d271e586c8ee5f461f4fcca033509ebe18f12bbd6fc1cf5015b6d451961", size = 3456589, upload-time = "2026-06-14T09:37:29.065Z" }, + { url = "https://files.pythonhosted.org/packages/27/27/4a8dd890a2b286d44cc551ee7f7e99af840e665e2fd7302d9a854109b8c5/loro-1.13.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:585289f1ce720e64ed4c11b5dcdcd820696b140c7ec01169049979c079835a75", size = 3479469, upload-time = "2026-06-14T09:38:06.753Z" }, + { url = "https://files.pythonhosted.org/packages/18/65/4e73c5c25c9b524d8e8198b4fcfc528d854390ca57cfea027aaaf9082b71/loro-1.13.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:016f8ce02e15be615b91e503143ee57380cc88c882bd25a06f7ee36e14a83cfa", size = 3867965, upload-time = "2026-06-14T09:38:43.888Z" }, + { url = "https://files.pythonhosted.org/packages/6f/0c/ea0aee61f2a08eac87c6cf71ffdb85681f2d0842310df11c94b6aca41189/loro-1.13.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e307f6b18d698f1230aafca0e10791c268d9ed2d663d385fc4cac69145cba12", size = 3557253, upload-time = "2026-06-14T09:39:21.897Z" }, + { url = "https://files.pythonhosted.org/packages/89/99/fc1cf20c7f5db88417a46aabbe17e9f4d4aa046fd4036c3f5395c8907f6b/loro-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa325d3b519ec005d57abc0e1cf6c093a8bfbdc2b6fcce2202339a9c1af8fdc7", size = 3498675, upload-time = "2026-06-14T09:40:28.595Z" }, + { url = "https://files.pythonhosted.org/packages/b9/9a/bf3f976141c7a981b92e38cdacdc7e287fdf460f412f2d6c8c6fb2714ced/loro-1.13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:be581dd2a0b9ec61aa7f8b2805883d94e7db5408e15991c612507d3bb2c6e969", size = 3814885, upload-time = "2026-06-14T09:39:59.165Z" }, + { url = "https://files.pythonhosted.org/packages/86/bd/e3a9ccabc8d9b59a621f570b9aa267c9306286aa601e1661bd506d57ac12/loro-1.13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b99d7f919bdfc2ae29dd69dfccef890dd9ac225b9802ce20b85260a90efa45fc", size = 3632197, upload-time = "2026-06-14T09:41:32.04Z" }, + { url = "https://files.pythonhosted.org/packages/a2/c9/4a9e7799e327a007cd869e70586ac65d5e4ee0b0998194549335519906a0/loro-1.13.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:a0cbd507903dd0f1017d602ef59f15a185493aaa5fe597149026c4f6d19a86ad", size = 3748608, upload-time = "2026-06-14T09:42:10.336Z" }, + { url = "https://files.pythonhosted.org/packages/69/f0/b16183e3bf647135077e59778ab74ff30292b1ba4ea0563ace3a26ecf848/loro-1.13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6836ed89e71a70a2a48fa989247ef463cfc53bd192315fe5df56f1d702a77c5f", size = 3836328, upload-time = "2026-06-14T09:42:49.429Z" }, + { url = "https://files.pythonhosted.org/packages/cc/e2/98bd5558b47e46952b85cc374a6433c9de068af40936777759f0b4a2c593/loro-1.13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e3b3b52fb6a326fe33a6c8dda2725ab8678e35995042966e4cbc0dda884d89f", size = 3758591, upload-time = "2026-06-14T09:43:27.852Z" }, + { url = "https://files.pythonhosted.org/packages/74/8a/bec03707e0e724ef0b3b1c4b318e1f732b79ca0bff0ccb6fddb7f51db071/loro-1.13.1-cp310-cp310-win32.whl", hash = "sha256:defc33602140c410ac63bc8301ee2ae91141119b9622aa9a8481f5ab019179e8", size = 2858413, upload-time = "2026-06-14T09:44:29.256Z" }, + { url = "https://files.pythonhosted.org/packages/d8/0f/e37c22d1c24f97423c213c81c4b0c1979da506a47fcb7c4252ddfae259e1/loro-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:24bd4f961ff269c332754467410fe54e30084f11e09b390842d88a8d7aef3d84", size = 3087131, upload-time = "2026-06-14T09:44:09.371Z" }, + { url = "https://files.pythonhosted.org/packages/6f/73/9f28cc5d626cae0b1129a62a6edd0922ce979aae67ccbd162a3052aa70c6/loro-1.13.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ca89672a72fd211caddec137cb5539ca7b9906e9afebabd25948590c042a52d7", size = 3388491, upload-time = "2026-06-14T09:41:15.078Z" }, + { url = "https://files.pythonhosted.org/packages/68/ee/8ada6f1ae19b9e1d69c7d9760fe4544a6a8baa6015951f260d368311beb3/loro-1.13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:84026a187d2fab3f7a1386eb239042a8c334ef2493621fb7684fe758229d3f78", size = 3212708, upload-time = "2026-06-14T09:40:57.617Z" }, + { url = "https://files.pythonhosted.org/packages/5a/d8/f0c7430e9a767cc956f6f4414e8cc69b1382e15c13dd5fe8a6d099ac4270/loro-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1e5e572e69f3aeedd3dce43bb4cda602bd20c91ea001f6d034b89ce511affc5", size = 3454249, upload-time = "2026-06-14T09:37:30.905Z" }, + { url = "https://files.pythonhosted.org/packages/2e/c2/c8b10557879cabf6f9fb3858dee5fe0e4d72c0bbf390d5a3f4a1aa8c86fb/loro-1.13.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e87166c9bff35908e2a2b378def56c8a5ae6286ca7d3c14dd7d6a94a2018713e", size = 3478994, upload-time = "2026-06-14T09:38:08.32Z" }, + { url = "https://files.pythonhosted.org/packages/95/82/37a9163194b097c89f7c87062e8dc3067af288ffe36acf17d83e50577a03/loro-1.13.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:984f2c7c17f7ff5c11cad04d5aa22f76247800b4b10465845a64b0e7d5491a4a", size = 3868397, upload-time = "2026-06-14T09:38:45.22Z" }, + { url = "https://files.pythonhosted.org/packages/69/57/e2453b4fcb83c0ce238fe43e6073d32c257f1298c2209a7ca532701e24d6/loro-1.13.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3a91938bd8812f4aa445d8dc7f4a2296aae6993ae99b2573b8346d95a3112f9", size = 3556776, upload-time = "2026-06-14T09:39:23.613Z" }, + { url = "https://files.pythonhosted.org/packages/82/7a/8d0b98fd2cb7459ce662fc09d09f2c7759dace5281041f1a40ce88da7118/loro-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb40d659067c6d393e28c7fa1d47a74f02c21b002f631b296bc5956ed10e4e03", size = 3498669, upload-time = "2026-06-14T09:40:30.223Z" }, + { url = "https://files.pythonhosted.org/packages/56/e6/44cbc490efeb482ffdab05a9911de479cde2c5b15cf78cc380c461569770/loro-1.13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba14aac864efa39060f429e13fe826dd7a3eea51770c7ba18f7ab417a966733e", size = 3814637, upload-time = "2026-06-14T09:40:00.704Z" }, + { url = "https://files.pythonhosted.org/packages/b9/57/1983a2c4febe009d8000c46c2aae91fa2a063ff006cbdce08c19ff3b691c/loro-1.13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:236f0b5a606890782e9830233f049e9bf711999fe12163b6e57b2f16656477ab", size = 3631426, upload-time = "2026-06-14T09:41:33.545Z" }, + { url = "https://files.pythonhosted.org/packages/b4/6c/b825f30215048473451bbfc68570dac846d6b5c9a566c38e69fe4cf2c171/loro-1.13.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86500c195f3542c1b286564ff283dd2d29acf87c029e3a968fce658f492eb70c", size = 3747911, upload-time = "2026-06-14T09:42:11.925Z" }, + { url = "https://files.pythonhosted.org/packages/b4/76/7c80c176de31b068cce0b608664541f7c45dc1522a0afac323454d6ea565/loro-1.13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e57c441619090013730a1ff64f4a541df56230f56f386004da54d4bbdfa5b49", size = 3836322, upload-time = "2026-06-14T09:42:51.032Z" }, + { url = "https://files.pythonhosted.org/packages/d4/b8/f26e7e04146a0958eeb136ce9e1584d6a0a663e917eee0019cbbfcd3fd95/loro-1.13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c3115e10224001e517b262760126bd998c871168cbcfe822ecf0f32ba843d13a", size = 3758094, upload-time = "2026-06-14T09:43:29.478Z" }, + { url = "https://files.pythonhosted.org/packages/70/50/ff05b94aad55319162982fc81c7f5beab8c1fb4c77dec1364f79a2dab4d9/loro-1.13.1-cp311-cp311-win32.whl", hash = "sha256:6367d8b6f0e682e17f281df51f502d8c7034b3e115899169fffe5c47943f044a", size = 2859108, upload-time = "2026-06-14T09:44:30.842Z" }, + { url = "https://files.pythonhosted.org/packages/63/d9/9268de0d259470e9f5ccd64b502d5267cb83e22e5b9eb9680cfde916314e/loro-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:10ee34b857c0d0fe175874abc20aca2d900f464fda0873eb40eea64a13d120c5", size = 3087237, upload-time = "2026-06-14T09:44:10.946Z" }, + { url = "https://files.pythonhosted.org/packages/1d/63/9d58b58fa07691682056a1869332acde98ad3f5604c5167bc2c67a3499ac/loro-1.13.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:62944de6a84c71f7fb87dc5ea59e70f68c3910dbee08fa29f1d87d2aa79361f9", size = 3372403, upload-time = "2026-06-14T09:41:16.448Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a7/1e00449128a0124f05a0070ed042f6e6e6a1ae9d42462f341e5782d0b1c6/loro-1.13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:18483499a361ca72dd6512a889fea097ddd203d6d048cdeb202cfdb454daa6da", size = 3201108, upload-time = "2026-06-14T09:40:59.18Z" }, + { url = "https://files.pythonhosted.org/packages/6f/a1/94c3ae7ca30252caed58895e9f0c711045f93903891f59cb17c255b1832b/loro-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24b880c6ef075e092956e6cc8a1ca10d75dd0c42100c93314d941d21ce7e825", size = 3458390, upload-time = "2026-06-14T09:37:32.334Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e5/fbe091e3da9518b22cf81227d102a792c5f2427f011461192262082b4981/loro-1.13.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1692f6cd32715106fa6512cffd77dae386c19aa3d269e0aa540f562c901b4fb3", size = 3481720, upload-time = "2026-06-14T09:38:09.71Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c5/efe3ed6991bc2fca078e6f065e9b3c6af9caabcd37de9c45d001e27d02f7/loro-1.13.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c974a0c7534cdb3885922fac0762276726f2c6212ea42ff9f94fb66458646163", size = 3868987, upload-time = "2026-06-14T09:38:46.803Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a4/3e879c36de0d0726686a8863cc4c7cbd27977ab54602d9d5b519a6c038ad/loro-1.13.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ad60e62ee97de40e345a79dd0e8e1890589827517a85f2795499ecbe0c772d", size = 3563937, upload-time = "2026-06-14T09:39:25.155Z" }, + { url = "https://files.pythonhosted.org/packages/1b/24/384088890d15867dcec61420afcfe37c6a185dc38302426b53b77ab9a944/loro-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bb41b0fc46d7310f9b863359bd9073e8be042906792418810c45246d52f3e2c", size = 3506609, upload-time = "2026-06-14T09:40:31.647Z" }, + { url = "https://files.pythonhosted.org/packages/59/fa/93a33f1e4f4482dfc3463be3395d29ad5769c213cc89890167aca6c7d682/loro-1.13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2fc251ab7ec8d4f45d6afba76b5c0fa804815df8322a7c5b4855c69d574fa3e4", size = 3820553, upload-time = "2026-06-14T09:40:02.103Z" }, + { url = "https://files.pythonhosted.org/packages/5e/77/209513ad828529b52bcadd43b438aa0c419d951c67dd8573c2d7fea29c5c/loro-1.13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:799f93099a7397e3d4975507769beaca49b1545c28ce2f565e0c6a9d7114c7c5", size = 3635451, upload-time = "2026-06-14T09:41:35.078Z" }, + { url = "https://files.pythonhosted.org/packages/66/dc/9a800ea8c377af8b839d052e1c6dce090a5bb1a8d62f9bb72d8ac74d7fae/loro-1.13.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:dddaa54ab925096efae42d017e3ec3e1a5e96109f011c9457a364370346d8d57", size = 3751844, upload-time = "2026-06-14T09:42:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/48/c9/0d4ea932f2a2aa5143ddc5abda9afc45036d99af068ed9176baa19f8e5b0/loro-1.13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5438af35c12fcdfed73515bfec9d675ccee9ae0f6206402d42699f13921c489b", size = 3839548, upload-time = "2026-06-14T09:42:52.713Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9b/ab9b732f43ccc895b97e848003f72edcdf46dc6adac77f5313e520699c86/loro-1.13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:aa9ab0684b64eea6bb4088697063c536e322688828946ef29ada34cdd7ab97fe", size = 3766156, upload-time = "2026-06-14T09:43:31.825Z" }, + { url = "https://files.pythonhosted.org/packages/ca/c3/7f7e28ccac959d2d0085fadec194f6b45713517155bb67939392a8675b0f/loro-1.13.1-cp312-cp312-win32.whl", hash = "sha256:f13be6490fd9afb86474cf8c20270c64efcb0b3a9b32309bae5611ffc5d4ec30", size = 2852620, upload-time = "2026-06-14T09:44:32.61Z" }, + { url = "https://files.pythonhosted.org/packages/22/10/42e780e90c5a0a8e35c4e4cc6467dd2158324f389d6183bf763434c51e89/loro-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:b40a60be6900f84704824d44d11d7a721e5b3602f472b71d9aa8310b301478f3", size = 3096879, upload-time = "2026-06-14T09:44:12.476Z" }, + { url = "https://files.pythonhosted.org/packages/93/06/e369dac8102485a1140d18c4823b88c97c97577adb5c0029e5163917f726/loro-1.13.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:969916c8747b8f3fc0234c1d8c04f3433d3dbf88ce1f5f90c816c7e2c80c8d5d", size = 3371860, upload-time = "2026-06-14T09:41:17.899Z" }, + { url = "https://files.pythonhosted.org/packages/4d/cc/0f661d4779efe66e61d825b31ff13da3277140820a1db2f846e466d5b5f2/loro-1.13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:00b85365ff695dbff3b4e0513976025d92e80741475449857f0b18a143694c39", size = 3200732, upload-time = "2026-06-14T09:41:00.581Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ba/314c26e89492b4486634e96844bf5acf4ea88b1dc4fa04b06e47e92403be/loro-1.13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c46783fa28dd5144f7ca5f20ac949ad7568ef6d511e4aec077566bd0e011f3da", size = 3457717, upload-time = "2026-06-14T09:37:33.867Z" }, + { url = "https://files.pythonhosted.org/packages/e8/42/990572d3e7f71f6930420185b9fb6669490078b88a8ff2e8171310b861b5/loro-1.13.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2ba4caa9b52d64dd2d1aaa0672cb058618e4fc722ab26393f5b2db51bd715fc5", size = 3481891, upload-time = "2026-06-14T09:38:11.153Z" }, + { url = "https://files.pythonhosted.org/packages/e7/b7/3a1dc21ba8b5ea4362df8d21f61b4273fdcc84504969a4868621faf428a4/loro-1.13.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8bd1b7b65b552b7863c2d8d0e041dc35b3ccaf86422c2d03cbd89903feee890", size = 3868735, upload-time = "2026-06-14T09:38:48.233Z" }, + { url = "https://files.pythonhosted.org/packages/9c/64/838072fc73ae993316df8d80aedc537092c73b5e0f27132de60b9cfaa31b/loro-1.13.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a1591e115e874d9e0ad7cf7b413390d26cafb5750d707897fd79a5d1f69b7e7", size = 3564176, upload-time = "2026-06-14T09:39:26.573Z" }, + { url = "https://files.pythonhosted.org/packages/57/c2/8c122a862b8f773ba40c6ade7a89afb9ed26382d23e024f4e66f47ad639f/loro-1.13.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05703492391f21bb251181a2ee9f1f68425d73efa94810271e25087faca5c23d", size = 3506207, upload-time = "2026-06-14T09:40:33.132Z" }, + { url = "https://files.pythonhosted.org/packages/35/ff/49426f106fcc8b3cdc22dc46af68a1f74ab1675aea07c5244616e2b7b805/loro-1.13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:862f4948e3a0da4eee417d159a728a8f75a309d02e9aeb4309cbc96e5e48f3c6", size = 3820941, upload-time = "2026-06-14T09:40:05.009Z" }, + { url = "https://files.pythonhosted.org/packages/ab/23/a40c73fb33eb5cc4bbf44ea81efe147cb804c1b9c4d41c37e2dc5e1e1a21/loro-1.13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f44bb3e017b851c518a75253a5648c168796080a7dd7c370f991e4c26c929eb", size = 3634400, upload-time = "2026-06-14T09:41:36.483Z" }, + { url = "https://files.pythonhosted.org/packages/3b/06/5e1460d701c1617d424e6fc930f73772e4aba7ba4c0afc35c14aaea66b64/loro-1.13.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee1819567c55821d18bae00779427ed57e9287e2620dc773922d9efc9215d361", size = 3750693, upload-time = "2026-06-14T09:42:15.047Z" }, + { url = "https://files.pythonhosted.org/packages/0a/70/abd113d4211f843b2fc5425049225bd0453ba51dd4536be0f170c59cd89f/loro-1.13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8e0ed665870c2e63e3b56a56e4cf4dcecd483e4658ecbbe7c913d09f251ccd9a", size = 3839587, upload-time = "2026-06-14T09:42:54.423Z" }, + { url = "https://files.pythonhosted.org/packages/b9/42/a04aa38208dfe8d66619a5a5dda9b586ca30069347ffd5eafb9f2e3c645d/loro-1.13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:063a137ecd547259058abfecaa0dccfebbece1bb852960f811fff8ff07ff1549", size = 3765347, upload-time = "2026-06-14T09:43:33.507Z" }, + { url = "https://files.pythonhosted.org/packages/66/43/016a4904c0973965904b795599631becf74f42f7e5ab569790dcc02bc2ea/loro-1.13.1-cp313-cp313-win32.whl", hash = "sha256:89fa0c1d0ce435ff593d65bd6173ef7da0b1794cb8b542a275cc36052d147d13", size = 2852202, upload-time = "2026-06-14T09:44:34.904Z" }, + { url = "https://files.pythonhosted.org/packages/d9/7c/7f24a599aa6f1f6bd52052937f8e7089f8daf4269998e48836bc38c4c353/loro-1.13.1-cp313-cp313-win_amd64.whl", hash = "sha256:31060b96a1a085dc585b7d81de56816ee52f50b3328580e6b0b778058c673b02", size = 3095693, upload-time = "2026-06-14T09:44:14.105Z" }, + { url = "https://files.pythonhosted.org/packages/9e/96/1a5d508afe5570af35a37c6af65152f58848f54b498083f445fb4daf27ae/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c0962308ad8e53d3cb74a151062f3d075b994b3324b3217af67b136225af5204", size = 3453807, upload-time = "2026-06-14T09:37:41.689Z" }, + { url = "https://files.pythonhosted.org/packages/b8/5a/164b13e23a9897d895b4612eb0a7c2140b4c941eb12925c350bca96d01a5/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99385246166f3bddc0bb686cdf61909969d214ff0c1f0e36db5fec9aa1244579", size = 3478688, upload-time = "2026-06-14T09:38:18.911Z" }, + { url = "https://files.pythonhosted.org/packages/38/d6/a57a182629f6ff20c3e650d303b5d821e21edb1539cd64886c2659f171af/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a29d5cbb17e8f317a1818dc87280c389e3c22c0f0da8e5f1e34c95333d311c48", size = 3862744, upload-time = "2026-06-14T09:38:55.463Z" }, + { url = "https://files.pythonhosted.org/packages/17/89/2eb3b0643c5249ae98cbb259ecd6a737986ecec215ff31e7c682ebd198d1/loro-1.13.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:837251c39e43c99e241bb253e3b05a1a5424282ddc905d34d0f554ede8bcbe39", size = 3555358, upload-time = "2026-06-14T09:39:33.923Z" }, + { url = "https://files.pythonhosted.org/packages/6d/3a/8ec8674a323b9872b4b7b59e2c2bfad14aa825a7d551df0ae0ffe1001c3e/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:70dc63bbf6dcbf20cfe0210e23beb0a509d3608d5ad4d3004c6d85107f945d1d", size = 3630381, upload-time = "2026-06-14T09:41:44.317Z" }, + { url = "https://files.pythonhosted.org/packages/70/19/9993e6b0bb882f219d6768ffc0cde96efd6bf07d54db92fa02dbca40a8d0/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:3caa4acb70cba3d562cd939618b4d72c2a46000e060b5077a0712c53e9276747", size = 3747925, upload-time = "2026-06-14T09:42:23.226Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/b0500c59856c6f807ec0459105584ed78e8fc2827520ca198dc5d94e4a47/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:01ed5d2fae9cb10c7ad0c8cb31f7b25bef938077a1094a1449340c48cca130cd", size = 3838478, upload-time = "2026-06-14T09:43:02.285Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4e/a8d486bc7cce088e50124b25da24a3347d4a909f315562d2cf8bbc7cd742/loro-1.13.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:19823f7fcedb24e7c90708c25135311dacc87b00091a8c28688eeac7e59d17be", size = 3759483, upload-time = "2026-06-14T09:43:41.507Z" }, + { url = "https://files.pythonhosted.org/packages/66/57/35da08c298f0f74212a5b03aa7b2eabb49f03d79d7c7d1dc9b85795a1f53/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df3cc735e6e514fa700c1142ef5aa003eb2fa972cfe6cf5a1faad73a5b2b9f35", size = 3452474, upload-time = "2026-06-14T09:37:42.941Z" }, + { url = "https://files.pythonhosted.org/packages/60/7b/ba4a7542bcce0c6c542fcdddf058140fed930c43763faa449d37060a8d1d/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:774d466c51506e9bd2e2d889078d405642f14474d5b3d97323ba64e1709792cf", size = 3476693, upload-time = "2026-06-14T09:38:20.352Z" }, + { url = "https://files.pythonhosted.org/packages/01/37/2bea377c69e277d5c89fb53e7ca5a55ed025f58ed91ec8b7d879cd7363ad/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fea37c8a2d307340fefd9ecf9dfe2d0cd050e5fe52d28dc59f3b74e2f4d86a59", size = 3862157, upload-time = "2026-06-14T09:38:57.247Z" }, + { url = "https://files.pythonhosted.org/packages/03/08/2c7a178b5a761f081b72a8001e42b71c0f7b1d088242bdd739fda7332d71/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a18812dd5129975c89ed3c279b96d05a7129d671b3c4e07d47da5d2a5a44143", size = 3553687, upload-time = "2026-06-14T09:39:35.415Z" }, + { url = "https://files.pythonhosted.org/packages/ab/91/b61a37a2044cd36f0b89c1ab97a6444fd5eb4256f17ed5e41b855f05ecd5/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a252b6badfcd7d43f45c58c61282a256a2bebb50315d363409d34eebb576fa86", size = 3497885, upload-time = "2026-06-14T09:40:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/9f/1c/ae412692eb78f270ce31b95fe212902c3906869426c11a5d4905a22ca776/loro-1.13.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:26be461277ea678a47e937b077b4fcc9b7985083b3b7eba5e33bcdcffb511ab0", size = 3816446, upload-time = "2026-06-14T09:40:11.179Z" }, + { url = "https://files.pythonhosted.org/packages/4a/fe/e65cead425aa667b2d4b484c418609f088b23321062103bdb3751d4fafaa/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:88359d12071cb96c1c96912a90c4102f538354bef2100b3797c225418aca8588", size = 3629093, upload-time = "2026-06-14T09:41:45.795Z" }, + { url = "https://files.pythonhosted.org/packages/2e/12/479dfce8e159f6b238a9dc5e0daf8b55626ff245a292415d902d3dda3b58/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:403ca90311137f94d6a26723dbb0bf60af0a83c98577668f3939e5b67b9359e6", size = 3747230, upload-time = "2026-06-14T09:42:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/26/53/0a56911f810bfbcf426a85048ad51413f80d48643ee9e75e359e7f301309/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:24ac898cf8089df7a7dd1adb116acba8e1a68dde0060db5bb29f4067858fa068", size = 3838314, upload-time = "2026-06-14T09:43:03.81Z" }, + { url = "https://files.pythonhosted.org/packages/85/e7/1f4d4b588d1c20bececfb3e90d8d035ec4f8e7c0d9b45925eaa6c9b5e511/loro-1.13.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:531635135306ef42681837d8a0f7bafd34fcf146435ae9077f31fd89e949e5cf", size = 3758462, upload-time = "2026-06-14T09:43:43.649Z" }, ] [[package]] name = "lxml" version = "6.0.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload_time = "2025-09-22T04:04:59.287Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/db/8a/f8192a08237ef2fb1b19733f709db88a4c43bc8ab8357f01cb41a27e7f6a/lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388", size = 8590589, upload_time = "2025-09-22T04:00:10.51Z" }, - { url = "https://files.pythonhosted.org/packages/12/64/27bcd07ae17ff5e5536e8d88f4c7d581b48963817a13de11f3ac3329bfa2/lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153", size = 4629671, upload_time = "2025-09-22T04:00:15.411Z" }, - { url = "https://files.pythonhosted.org/packages/02/5a/a7d53b3291c324e0b6e48f3c797be63836cc52156ddf8f33cd72aac78866/lxml-6.0.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31", size = 4999961, upload_time = "2025-09-22T04:00:17.619Z" }, - { url = "https://files.pythonhosted.org/packages/f5/55/d465e9b89df1761674d8672bb3e4ae2c47033b01ec243964b6e334c6743f/lxml-6.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9", size = 5157087, upload_time = "2025-09-22T04:00:19.868Z" }, - { url = "https://files.pythonhosted.org/packages/62/38/3073cd7e3e8dfc3ba3c3a139e33bee3a82de2bfb0925714351ad3d255c13/lxml-6.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8", size = 5067620, upload_time = "2025-09-22T04:00:21.877Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d3/1e001588c5e2205637b08985597827d3827dbaaece16348c8822bfe61c29/lxml-6.0.2-cp310-cp310-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba", size = 5406664, upload_time = "2025-09-22T04:00:23.714Z" }, - { url = "https://files.pythonhosted.org/packages/20/cf/cab09478699b003857ed6ebfe95e9fb9fa3d3c25f1353b905c9b73cfb624/lxml-6.0.2-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c", size = 5289397, upload_time = "2025-09-22T04:00:25.544Z" }, - { url = "https://files.pythonhosted.org/packages/a3/84/02a2d0c38ac9a8b9f9e5e1bbd3f24b3f426044ad618b552e9549ee91bd63/lxml-6.0.2-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c", size = 4772178, upload_time = "2025-09-22T04:00:27.602Z" }, - { url = "https://files.pythonhosted.org/packages/56/87/e1ceadcc031ec4aa605fe95476892d0b0ba3b7f8c7dcdf88fdeff59a9c86/lxml-6.0.2-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321", size = 5358148, upload_time = "2025-09-22T04:00:29.323Z" }, - { url = "https://files.pythonhosted.org/packages/fe/13/5bb6cf42bb228353fd4ac5f162c6a84fd68a4d6f67c1031c8cf97e131fc6/lxml-6.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1", size = 5112035, upload_time = "2025-09-22T04:00:31.061Z" }, - { url = "https://files.pythonhosted.org/packages/e4/e2/ea0498552102e59834e297c5c6dff8d8ded3db72ed5e8aad77871476f073/lxml-6.0.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34", size = 4799111, upload_time = "2025-09-22T04:00:33.11Z" }, - { url = "https://files.pythonhosted.org/packages/6a/9e/8de42b52a73abb8af86c66c969b3b4c2a96567b6ac74637c037d2e3baa60/lxml-6.0.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a", size = 5351662, upload_time = "2025-09-22T04:00:35.237Z" }, - { url = "https://files.pythonhosted.org/packages/28/a2/de776a573dfb15114509a37351937c367530865edb10a90189d0b4b9b70a/lxml-6.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c", size = 5314973, upload_time = "2025-09-22T04:00:37.086Z" }, - { url = "https://files.pythonhosted.org/packages/50/a0/3ae1b1f8964c271b5eec91db2043cf8c6c0bce101ebb2a633b51b044db6c/lxml-6.0.2-cp310-cp310-win32.whl", hash = "sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b", size = 3611953, upload_time = "2025-09-22T04:00:39.224Z" }, - { url = "https://files.pythonhosted.org/packages/d1/70/bd42491f0634aad41bdfc1e46f5cff98825fb6185688dc82baa35d509f1a/lxml-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0", size = 4032695, upload_time = "2025-09-22T04:00:41.402Z" }, - { url = "https://files.pythonhosted.org/packages/d2/d0/05c6a72299f54c2c561a6c6cbb2f512e047fca20ea97a05e57931f194ac4/lxml-6.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5", size = 3680051, upload_time = "2025-09-22T04:00:43.525Z" }, - { url = "https://files.pythonhosted.org/packages/77/d5/becbe1e2569b474a23f0c672ead8a29ac50b2dc1d5b9de184831bda8d14c/lxml-6.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607", size = 8634365, upload_time = "2025-09-22T04:00:45.672Z" }, - { url = "https://files.pythonhosted.org/packages/28/66/1ced58f12e804644426b85d0bb8a4478ca77bc1761455da310505f1a3526/lxml-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938", size = 4650793, upload_time = "2025-09-22T04:00:47.783Z" }, - { url = "https://files.pythonhosted.org/packages/11/84/549098ffea39dfd167e3f174b4ce983d0eed61f9d8d25b7bf2a57c3247fc/lxml-6.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d", size = 4944362, upload_time = "2025-09-22T04:00:49.845Z" }, - { url = "https://files.pythonhosted.org/packages/ac/bd/f207f16abf9749d2037453d56b643a7471d8fde855a231a12d1e095c4f01/lxml-6.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438", size = 5083152, upload_time = "2025-09-22T04:00:51.709Z" }, - { url = "https://files.pythonhosted.org/packages/15/ae/bd813e87d8941d52ad5b65071b1affb48da01c4ed3c9c99e40abb266fbff/lxml-6.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964", size = 5023539, upload_time = "2025-09-22T04:00:53.593Z" }, - { url = "https://files.pythonhosted.org/packages/02/cd/9bfef16bd1d874fbe0cb51afb00329540f30a3283beb9f0780adbb7eec03/lxml-6.0.2-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d", size = 5344853, upload_time = "2025-09-22T04:00:55.524Z" }, - { url = "https://files.pythonhosted.org/packages/b8/89/ea8f91594bc5dbb879734d35a6f2b0ad50605d7fb419de2b63d4211765cc/lxml-6.0.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7", size = 5225133, upload_time = "2025-09-22T04:00:57.269Z" }, - { url = "https://files.pythonhosted.org/packages/b9/37/9c735274f5dbec726b2db99b98a43950395ba3d4a1043083dba2ad814170/lxml-6.0.2-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178", size = 4677944, upload_time = "2025-09-22T04:00:59.052Z" }, - { url = "https://files.pythonhosted.org/packages/20/28/7dfe1ba3475d8bfca3878365075abe002e05d40dfaaeb7ec01b4c587d533/lxml-6.0.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553", size = 5284535, upload_time = "2025-09-22T04:01:01.335Z" }, - { url = "https://files.pythonhosted.org/packages/e7/cf/5f14bc0de763498fc29510e3532bf2b4b3a1c1d5d0dff2e900c16ba021ef/lxml-6.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb", size = 5067343, upload_time = "2025-09-22T04:01:03.13Z" }, - { url = "https://files.pythonhosted.org/packages/1c/b0/bb8275ab5472f32b28cfbbcc6db7c9d092482d3439ca279d8d6fa02f7025/lxml-6.0.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a", size = 4725419, upload_time = "2025-09-22T04:01:05.013Z" }, - { url = "https://files.pythonhosted.org/packages/25/4c/7c222753bc72edca3b99dbadba1b064209bc8ed4ad448af990e60dcce462/lxml-6.0.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c", size = 5275008, upload_time = "2025-09-22T04:01:07.327Z" }, - { url = "https://files.pythonhosted.org/packages/6c/8c/478a0dc6b6ed661451379447cdbec77c05741a75736d97e5b2b729687828/lxml-6.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7", size = 5248906, upload_time = "2025-09-22T04:01:09.452Z" }, - { url = "https://files.pythonhosted.org/packages/2d/d9/5be3a6ab2784cdf9accb0703b65e1b64fcdd9311c9f007630c7db0cfcce1/lxml-6.0.2-cp311-cp311-win32.whl", hash = "sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46", size = 3610357, upload_time = "2025-09-22T04:01:11.102Z" }, - { url = "https://files.pythonhosted.org/packages/e2/7d/ca6fb13349b473d5732fb0ee3eec8f6c80fc0688e76b7d79c1008481bf1f/lxml-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078", size = 4036583, upload_time = "2025-09-22T04:01:12.766Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a2/51363b5ecd3eab46563645f3a2c3836a2fc67d01a1b87c5017040f39f567/lxml-6.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285", size = 3680591, upload_time = "2025-09-22T04:01:14.874Z" }, - { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload_time = "2025-09-22T04:01:17.265Z" }, - { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload_time = "2025-09-22T04:01:19.688Z" }, - { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload_time = "2025-09-22T04:01:21.487Z" }, - { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload_time = "2025-09-22T04:01:23.32Z" }, - { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload_time = "2025-09-22T04:01:25.118Z" }, - { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload_time = "2025-09-22T04:01:27.398Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload_time = "2025-09-22T04:01:29.629Z" }, - { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload_time = "2025-09-22T04:01:31.535Z" }, - { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload_time = "2025-09-22T04:01:33.801Z" }, - { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload_time = "2025-09-22T04:01:35.639Z" }, - { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload_time = "2025-09-22T04:01:37.448Z" }, - { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload_time = "2025-09-22T04:01:39.165Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload_time = "2025-09-22T04:01:41.506Z" }, - { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload_time = "2025-09-22T04:01:43.363Z" }, - { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload_time = "2025-09-22T04:01:45.215Z" }, - { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload_time = "2025-09-22T04:01:48.243Z" }, - { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload_time = "2025-09-22T04:01:50.042Z" }, - { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload_time = "2025-09-22T04:01:52.145Z" }, - { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload_time = "2025-09-22T04:01:54.242Z" }, - { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload_time = "2025-09-22T04:01:56.282Z" }, - { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload_time = "2025-09-22T04:01:58.989Z" }, - { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload_time = "2025-09-22T04:02:00.812Z" }, - { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload_time = "2025-09-22T04:02:02.671Z" }, - { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload_time = "2025-09-22T04:02:04.904Z" }, - { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload_time = "2025-09-22T04:02:06.689Z" }, - { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload_time = "2025-09-22T04:02:08.587Z" }, - { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload_time = "2025-09-22T04:02:10.783Z" }, - { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload_time = "2025-09-22T04:02:12.631Z" }, - { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload_time = "2025-09-22T04:02:14.718Z" }, - { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload_time = "2025-09-22T04:02:16.957Z" }, - { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload_time = "2025-09-22T04:02:18.815Z" }, - { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload_time = "2025-09-22T04:02:20.593Z" }, - { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload_time = "2025-09-22T04:02:22.489Z" }, - { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload_time = "2025-09-22T04:02:24.465Z" }, - { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload_time = "2025-09-22T04:02:26.286Z" }, - { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload_time = "2025-09-22T04:02:27.918Z" }, - { url = "https://files.pythonhosted.org/packages/e7/9c/780c9a8fce3f04690b374f72f41306866b0400b9d0fdf3e17aaa37887eed/lxml-6.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6", size = 3939264, upload_time = "2025-09-22T04:04:32.892Z" }, - { url = "https://files.pythonhosted.org/packages/f5/5a/1ab260c00adf645d8bf7dec7f920f744b032f69130c681302821d5debea6/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba", size = 4216435, upload_time = "2025-09-22T04:04:34.907Z" }, - { url = "https://files.pythonhosted.org/packages/f2/37/565f3b3d7ffede22874b6d86be1a1763d00f4ea9fc5b9b6ccb11e4ec8612/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5", size = 4325913, upload_time = "2025-09-22T04:04:37.205Z" }, - { url = "https://files.pythonhosted.org/packages/22/ec/f3a1b169b2fb9d03467e2e3c0c752ea30e993be440a068b125fc7dd248b0/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4", size = 4269357, upload_time = "2025-09-22T04:04:39.322Z" }, - { url = "https://files.pythonhosted.org/packages/77/a2/585a28fe3e67daa1cf2f06f34490d556d121c25d500b10082a7db96e3bcd/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d", size = 4412295, upload_time = "2025-09-22T04:04:41.647Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d9/a57dd8bcebd7c69386c20263830d4fa72d27e6b72a229ef7a48e88952d9a/lxml-6.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d", size = 3516913, upload_time = "2025-09-22T04:04:43.602Z" }, - { url = "https://files.pythonhosted.org/packages/0b/11/29d08bc103a62c0eba8016e7ed5aeebbf1e4312e83b0b1648dd203b0e87d/lxml-6.0.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700", size = 3949829, upload_time = "2025-09-22T04:04:45.608Z" }, - { url = "https://files.pythonhosted.org/packages/12/b3/52ab9a3b31e5ab8238da241baa19eec44d2ab426532441ee607165aebb52/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee", size = 4226277, upload_time = "2025-09-22T04:04:47.754Z" }, - { url = "https://files.pythonhosted.org/packages/a0/33/1eaf780c1baad88224611df13b1c2a9dfa460b526cacfe769103ff50d845/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f", size = 4330433, upload_time = "2025-09-22T04:04:49.907Z" }, - { url = "https://files.pythonhosted.org/packages/7a/c1/27428a2ff348e994ab4f8777d3a0ad510b6b92d37718e5887d2da99952a2/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9", size = 4272119, upload_time = "2025-09-22T04:04:51.801Z" }, - { url = "https://files.pythonhosted.org/packages/f0/d0/3020fa12bcec4ab62f97aab026d57c2f0cfd480a558758d9ca233bb6a79d/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a", size = 4417314, upload_time = "2025-09-22T04:04:55.024Z" }, - { url = "https://files.pythonhosted.org/packages/6c/77/d7f491cbc05303ac6801651aabeb262d43f319288c1ea96c66b1d2692ff3/lxml-6.0.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e", size = 3518768, upload_time = "2025-09-22T04:04:57.097Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/8a/f8192a08237ef2fb1b19733f709db88a4c43bc8ab8357f01cb41a27e7f6a/lxml-6.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e77dd455b9a16bbd2a5036a63ddbd479c19572af81b624e79ef422f929eef388", size = 8590589, upload-time = "2025-09-22T04:00:10.51Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/27bcd07ae17ff5e5536e8d88f4c7d581b48963817a13de11f3ac3329bfa2/lxml-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d444858b9f07cefff6455b983aea9a67f7462ba1f6cbe4a21e8bf6791bf2153", size = 4629671, upload-time = "2025-09-22T04:00:15.411Z" }, + { url = "https://files.pythonhosted.org/packages/02/5a/a7d53b3291c324e0b6e48f3c797be63836cc52156ddf8f33cd72aac78866/lxml-6.0.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f952dacaa552f3bb8834908dddd500ba7d508e6ea6eb8c52eb2d28f48ca06a31", size = 4999961, upload-time = "2025-09-22T04:00:17.619Z" }, + { url = "https://files.pythonhosted.org/packages/f5/55/d465e9b89df1761674d8672bb3e4ae2c47033b01ec243964b6e334c6743f/lxml-6.0.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:71695772df6acea9f3c0e59e44ba8ac50c4f125217e84aab21074a1a55e7e5c9", size = 5157087, upload-time = "2025-09-22T04:00:19.868Z" }, + { url = "https://files.pythonhosted.org/packages/62/38/3073cd7e3e8dfc3ba3c3a139e33bee3a82de2bfb0925714351ad3d255c13/lxml-6.0.2-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17f68764f35fd78d7c4cc4ef209a184c38b65440378013d24b8aecd327c3e0c8", size = 5067620, upload-time = "2025-09-22T04:00:21.877Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d3/1e001588c5e2205637b08985597827d3827dbaaece16348c8822bfe61c29/lxml-6.0.2-cp310-cp310-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:058027e261afed589eddcfe530fcc6f3402d7fd7e89bfd0532df82ebc1563dba", size = 5406664, upload-time = "2025-09-22T04:00:23.714Z" }, + { url = "https://files.pythonhosted.org/packages/20/cf/cab09478699b003857ed6ebfe95e9fb9fa3d3c25f1353b905c9b73cfb624/lxml-6.0.2-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8ffaeec5dfea5881d4c9d8913a32d10cfe3923495386106e4a24d45300ef79c", size = 5289397, upload-time = "2025-09-22T04:00:25.544Z" }, + { url = "https://files.pythonhosted.org/packages/a3/84/02a2d0c38ac9a8b9f9e5e1bbd3f24b3f426044ad618b552e9549ee91bd63/lxml-6.0.2-cp310-cp310-manylinux_2_31_armv7l.whl", hash = "sha256:f2e3b1a6bb38de0bc713edd4d612969dd250ca8b724be8d460001a387507021c", size = 4772178, upload-time = "2025-09-22T04:00:27.602Z" }, + { url = "https://files.pythonhosted.org/packages/56/87/e1ceadcc031ec4aa605fe95476892d0b0ba3b7f8c7dcdf88fdeff59a9c86/lxml-6.0.2-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d6690ec5ec1cce0385cb20896b16be35247ac8c2046e493d03232f1c2414d321", size = 5358148, upload-time = "2025-09-22T04:00:29.323Z" }, + { url = "https://files.pythonhosted.org/packages/fe/13/5bb6cf42bb228353fd4ac5f162c6a84fd68a4d6f67c1031c8cf97e131fc6/lxml-6.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2a50c3c1d11cad0ebebbac357a97b26aa79d2bcaf46f256551152aa85d3a4d1", size = 5112035, upload-time = "2025-09-22T04:00:31.061Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e2/ea0498552102e59834e297c5c6dff8d8ded3db72ed5e8aad77871476f073/lxml-6.0.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3efe1b21c7801ffa29a1112fab3b0f643628c30472d507f39544fd48e9549e34", size = 4799111, upload-time = "2025-09-22T04:00:33.11Z" }, + { url = "https://files.pythonhosted.org/packages/6a/9e/8de42b52a73abb8af86c66c969b3b4c2a96567b6ac74637c037d2e3baa60/lxml-6.0.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:59c45e125140b2c4b33920d21d83681940ca29f0b83f8629ea1a2196dc8cfe6a", size = 5351662, upload-time = "2025-09-22T04:00:35.237Z" }, + { url = "https://files.pythonhosted.org/packages/28/a2/de776a573dfb15114509a37351937c367530865edb10a90189d0b4b9b70a/lxml-6.0.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:452b899faa64f1805943ec1c0c9ebeaece01a1af83e130b69cdefeda180bb42c", size = 5314973, upload-time = "2025-09-22T04:00:37.086Z" }, + { url = "https://files.pythonhosted.org/packages/50/a0/3ae1b1f8964c271b5eec91db2043cf8c6c0bce101ebb2a633b51b044db6c/lxml-6.0.2-cp310-cp310-win32.whl", hash = "sha256:1e786a464c191ca43b133906c6903a7e4d56bef376b75d97ccbb8ec5cf1f0a4b", size = 3611953, upload-time = "2025-09-22T04:00:39.224Z" }, + { url = "https://files.pythonhosted.org/packages/d1/70/bd42491f0634aad41bdfc1e46f5cff98825fb6185688dc82baa35d509f1a/lxml-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:dacf3c64ef3f7440e3167aa4b49aa9e0fb99e0aa4f9ff03795640bf94531bcb0", size = 4032695, upload-time = "2025-09-22T04:00:41.402Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d0/05c6a72299f54c2c561a6c6cbb2f512e047fca20ea97a05e57931f194ac4/lxml-6.0.2-cp310-cp310-win_arm64.whl", hash = "sha256:45f93e6f75123f88d7f0cfd90f2d05f441b808562bf0bc01070a00f53f5028b5", size = 3680051, upload-time = "2025-09-22T04:00:43.525Z" }, + { url = "https://files.pythonhosted.org/packages/77/d5/becbe1e2569b474a23f0c672ead8a29ac50b2dc1d5b9de184831bda8d14c/lxml-6.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607", size = 8634365, upload-time = "2025-09-22T04:00:45.672Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/1ced58f12e804644426b85d0bb8a4478ca77bc1761455da310505f1a3526/lxml-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938", size = 4650793, upload-time = "2025-09-22T04:00:47.783Z" }, + { url = "https://files.pythonhosted.org/packages/11/84/549098ffea39dfd167e3f174b4ce983d0eed61f9d8d25b7bf2a57c3247fc/lxml-6.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d", size = 4944362, upload-time = "2025-09-22T04:00:49.845Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bd/f207f16abf9749d2037453d56b643a7471d8fde855a231a12d1e095c4f01/lxml-6.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438", size = 5083152, upload-time = "2025-09-22T04:00:51.709Z" }, + { url = "https://files.pythonhosted.org/packages/15/ae/bd813e87d8941d52ad5b65071b1affb48da01c4ed3c9c99e40abb266fbff/lxml-6.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964", size = 5023539, upload-time = "2025-09-22T04:00:53.593Z" }, + { url = "https://files.pythonhosted.org/packages/02/cd/9bfef16bd1d874fbe0cb51afb00329540f30a3283beb9f0780adbb7eec03/lxml-6.0.2-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d", size = 5344853, upload-time = "2025-09-22T04:00:55.524Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/ea8f91594bc5dbb879734d35a6f2b0ad50605d7fb419de2b63d4211765cc/lxml-6.0.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7", size = 5225133, upload-time = "2025-09-22T04:00:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/b9/37/9c735274f5dbec726b2db99b98a43950395ba3d4a1043083dba2ad814170/lxml-6.0.2-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178", size = 4677944, upload-time = "2025-09-22T04:00:59.052Z" }, + { url = "https://files.pythonhosted.org/packages/20/28/7dfe1ba3475d8bfca3878365075abe002e05d40dfaaeb7ec01b4c587d533/lxml-6.0.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553", size = 5284535, upload-time = "2025-09-22T04:01:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cf/5f14bc0de763498fc29510e3532bf2b4b3a1c1d5d0dff2e900c16ba021ef/lxml-6.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb", size = 5067343, upload-time = "2025-09-22T04:01:03.13Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/bb8275ab5472f32b28cfbbcc6db7c9d092482d3439ca279d8d6fa02f7025/lxml-6.0.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a", size = 4725419, upload-time = "2025-09-22T04:01:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/25/4c/7c222753bc72edca3b99dbadba1b064209bc8ed4ad448af990e60dcce462/lxml-6.0.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c", size = 5275008, upload-time = "2025-09-22T04:01:07.327Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8c/478a0dc6b6ed661451379447cdbec77c05741a75736d97e5b2b729687828/lxml-6.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7", size = 5248906, upload-time = "2025-09-22T04:01:09.452Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d9/5be3a6ab2784cdf9accb0703b65e1b64fcdd9311c9f007630c7db0cfcce1/lxml-6.0.2-cp311-cp311-win32.whl", hash = "sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46", size = 3610357, upload-time = "2025-09-22T04:01:11.102Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/ca6fb13349b473d5732fb0ee3eec8f6c80fc0688e76b7d79c1008481bf1f/lxml-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078", size = 4036583, upload-time = "2025-09-22T04:01:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/51363b5ecd3eab46563645f3a2c3836a2fc67d01a1b87c5017040f39f567/lxml-6.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285", size = 3680591, upload-time = "2025-09-22T04:01:14.874Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" }, + { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" }, + { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" }, + { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" }, + { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" }, + { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload-time = "2025-09-22T04:01:54.242Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload-time = "2025-09-22T04:01:56.282Z" }, + { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload-time = "2025-09-22T04:01:58.989Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload-time = "2025-09-22T04:02:00.812Z" }, + { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload-time = "2025-09-22T04:02:02.671Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload-time = "2025-09-22T04:02:04.904Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload-time = "2025-09-22T04:02:06.689Z" }, + { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload-time = "2025-09-22T04:02:08.587Z" }, + { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload-time = "2025-09-22T04:02:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload-time = "2025-09-22T04:02:12.631Z" }, + { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload-time = "2025-09-22T04:02:14.718Z" }, + { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload-time = "2025-09-22T04:02:16.957Z" }, + { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload-time = "2025-09-22T04:02:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload-time = "2025-09-22T04:02:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload-time = "2025-09-22T04:02:22.489Z" }, + { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload-time = "2025-09-22T04:02:24.465Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload-time = "2025-09-22T04:02:26.286Z" }, + { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload-time = "2025-09-22T04:02:27.918Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9c/780c9a8fce3f04690b374f72f41306866b0400b9d0fdf3e17aaa37887eed/lxml-6.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e748d4cf8fef2526bb2a589a417eba0c8674e29ffcb570ce2ceca44f1e567bf6", size = 3939264, upload-time = "2025-09-22T04:04:32.892Z" }, + { url = "https://files.pythonhosted.org/packages/f5/5a/1ab260c00adf645d8bf7dec7f920f744b032f69130c681302821d5debea6/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:4ddb1049fa0579d0cbd00503ad8c58b9ab34d1254c77bc6a5576d96ec7853dba", size = 4216435, upload-time = "2025-09-22T04:04:34.907Z" }, + { url = "https://files.pythonhosted.org/packages/f2/37/565f3b3d7ffede22874b6d86be1a1763d00f4ea9fc5b9b6ccb11e4ec8612/lxml-6.0.2-pp310-pypy310_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:cb233f9c95f83707dae461b12b720c1af9c28c2d19208e1be03387222151daf5", size = 4325913, upload-time = "2025-09-22T04:04:37.205Z" }, + { url = "https://files.pythonhosted.org/packages/22/ec/f3a1b169b2fb9d03467e2e3c0c752ea30e993be440a068b125fc7dd248b0/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bc456d04db0515ce3320d714a1eac7a97774ff0849e7718b492d957da4631dd4", size = 4269357, upload-time = "2025-09-22T04:04:39.322Z" }, + { url = "https://files.pythonhosted.org/packages/77/a2/585a28fe3e67daa1cf2f06f34490d556d121c25d500b10082a7db96e3bcd/lxml-6.0.2-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2613e67de13d619fd283d58bda40bff0ee07739f624ffee8b13b631abf33083d", size = 4412295, upload-time = "2025-09-22T04:04:41.647Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/a57dd8bcebd7c69386c20263830d4fa72d27e6b72a229ef7a48e88952d9a/lxml-6.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:24a8e756c982c001ca8d59e87c80c4d9dcd4d9b44a4cbeb8d9be4482c514d41d", size = 3516913, upload-time = "2025-09-22T04:04:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/29d08bc103a62c0eba8016e7ed5aeebbf1e4312e83b0b1648dd203b0e87d/lxml-6.0.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700", size = 3949829, upload-time = "2025-09-22T04:04:45.608Z" }, + { url = "https://files.pythonhosted.org/packages/12/b3/52ab9a3b31e5ab8238da241baa19eec44d2ab426532441ee607165aebb52/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee", size = 4226277, upload-time = "2025-09-22T04:04:47.754Z" }, + { url = "https://files.pythonhosted.org/packages/a0/33/1eaf780c1baad88224611df13b1c2a9dfa460b526cacfe769103ff50d845/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f", size = 4330433, upload-time = "2025-09-22T04:04:49.907Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c1/27428a2ff348e994ab4f8777d3a0ad510b6b92d37718e5887d2da99952a2/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9", size = 4272119, upload-time = "2025-09-22T04:04:51.801Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d0/3020fa12bcec4ab62f97aab026d57c2f0cfd480a558758d9ca233bb6a79d/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a", size = 4417314, upload-time = "2025-09-22T04:04:55.024Z" }, + { url = "https://files.pythonhosted.org/packages/6c/77/d7f491cbc05303ac6801651aabeb262d43f319288c1ea96c66b1d2692ff3/lxml-6.0.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e", size = 3518768, upload-time = "2025-09-22T04:04:57.097Z" }, ] [[package]] @@ -1981,9 +2031,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "markupsafe" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload_time = "2025-04-10T12:44:31.16Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/38/bd5b78a920a64d708fe6bc8e0a2c075e1389d53bef8413725c63ba041535/mako-1.3.10.tar.gz", hash = "sha256:99579a6f39583fa7e5630a28c3c1f440e4e97a414b80372649c0ce338da2ea28", size = 392474, upload-time = "2025-04-10T12:44:31.16Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload_time = "2025-04-10T12:50:53.297Z" }, + { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload-time = "2025-04-10T12:50:53.297Z" }, ] [[package]] @@ -2012,18 +2062,18 @@ dependencies = [ { name = "uvicorn", marker = "sys_platform != 'emscripten'" }, { name = "websockets", marker = "sys_platform != 'emscripten'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/33/8d/5527d7ddd38a3a495f38f86a41731437301f0d08d81353fb9ceedf167b3d/marimo-0.23.13.tar.gz", hash = "sha256:12dffd800b3f6beae15e0ee3983cc3e8a3fb03c8a87cb0d58973e560008ba3aa", size = 38641267, upload_time = "2026-07-01T17:36:40.151Z" } +sdist = { url = "https://files.pythonhosted.org/packages/33/8d/5527d7ddd38a3a495f38f86a41731437301f0d08d81353fb9ceedf167b3d/marimo-0.23.13.tar.gz", hash = "sha256:12dffd800b3f6beae15e0ee3983cc3e8a3fb03c8a87cb0d58973e560008ba3aa", size = 38641267, upload-time = "2026-07-01T17:36:40.151Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/c0/8470e4e383b01d88fa9c80fba2b0b203d6e4a41e4fbcaedcac997b664b42/marimo-0.23.13-py3-none-any.whl", hash = "sha256:bc6e0f2c59d2086b0707fac56edeedf5f6edf8a390b4d59f4c417ce4c683adb9", size = 39091347, upload_time = "2026-07-01T17:36:36.151Z" }, + { url = "https://files.pythonhosted.org/packages/a5/c0/8470e4e383b01d88fa9c80fba2b0b203d6e4a41e4fbcaedcac997b664b42/marimo-0.23.13-py3-none-any.whl", hash = "sha256:bc6e0f2c59d2086b0707fac56edeedf5f6edf8a390b4d59f4c417ce4c683adb9", size = 39091347, upload-time = "2026-07-01T17:36:36.151Z" }, ] [[package]] name = "markdown" version = "3.10.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload_time = "2026-02-09T14:57:26.942Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload_time = "2026-02-09T14:57:25.787Z" }, + { url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" }, ] [[package]] @@ -2033,139 +2083,139 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload_time = "2025-08-11T12:57:52.854Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5b/f5/4ec618ed16cc4f8fb3b701563655a69816155e79e24a17b651541804721d/markdown_it_py-4.0.0.tar.gz", hash = "sha256:cb0a2b4aa34f932c007117b194e945bd74e0ec24133ceb5bac59009cda1cb9f3", size = 73070, upload-time = "2025-08-11T12:57:52.854Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload_time = "2025-08-11T12:57:51.923Z" }, + { url = "https://files.pythonhosted.org/packages/94/54/e7d793b573f298e1c9013b8c4dade17d481164aa517d1d7148619c2cedbf/markdown_it_py-4.0.0-py3-none-any.whl", hash = "sha256:87327c59b172c5011896038353a81343b6754500a08cd7a4973bb48c6d578147", size = 87321, upload-time = "2025-08-11T12:57:51.923Z" }, ] [[package]] name = "markupsafe" version = "3.0.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload_time = "2025-09-27T18:37:40.426Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload_time = "2025-09-27T18:36:05.558Z" }, - { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload_time = "2025-09-27T18:36:07.165Z" }, - { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload_time = "2025-09-27T18:36:08.005Z" }, - { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload_time = "2025-09-27T18:36:08.881Z" }, - { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload_time = "2025-09-27T18:36:10.131Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload_time = "2025-09-27T18:36:11.324Z" }, - { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload_time = "2025-09-27T18:36:12.573Z" }, - { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload_time = "2025-09-27T18:36:13.504Z" }, - { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload_time = "2025-09-27T18:36:14.779Z" }, - { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload_time = "2025-09-27T18:36:16.125Z" }, - { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload_time = "2025-09-27T18:36:17.311Z" }, - { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload_time = "2025-09-27T18:36:18.185Z" }, - { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload_time = "2025-09-27T18:36:19.444Z" }, - { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload_time = "2025-09-27T18:36:20.768Z" }, - { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload_time = "2025-09-27T18:36:22.249Z" }, - { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload_time = "2025-09-27T18:36:23.535Z" }, - { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload_time = "2025-09-27T18:36:24.823Z" }, - { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload_time = "2025-09-27T18:36:25.95Z" }, - { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload_time = "2025-09-27T18:36:27.109Z" }, - { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload_time = "2025-09-27T18:36:28.045Z" }, - { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload_time = "2025-09-27T18:36:29.025Z" }, - { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload_time = "2025-09-27T18:36:29.954Z" }, - { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload_time = "2025-09-27T18:36:30.854Z" }, - { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload_time = "2025-09-27T18:36:31.971Z" }, - { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload_time = "2025-09-27T18:36:32.813Z" }, - { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload_time = "2025-09-27T18:36:33.86Z" }, - { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload_time = "2025-09-27T18:36:35.099Z" }, - { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload_time = "2025-09-27T18:36:36.001Z" }, - { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload_time = "2025-09-27T18:36:36.906Z" }, - { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload_time = "2025-09-27T18:36:37.868Z" }, - { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload_time = "2025-09-27T18:36:38.761Z" }, - { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload_time = "2025-09-27T18:36:39.701Z" }, - { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload_time = "2025-09-27T18:36:40.689Z" }, - { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload_time = "2025-09-27T18:36:41.777Z" }, - { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload_time = "2025-09-27T18:36:43.257Z" }, - { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload_time = "2025-09-27T18:36:44.508Z" }, - { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload_time = "2025-09-27T18:36:45.385Z" }, - { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload_time = "2025-09-27T18:36:46.916Z" }, - { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload_time = "2025-09-27T18:36:47.884Z" }, - { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload_time = "2025-09-27T18:36:48.82Z" }, - { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload_time = "2025-09-27T18:36:49.797Z" }, - { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload_time = "2025-09-27T18:36:51.584Z" }, - { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload_time = "2025-09-27T18:36:52.537Z" }, - { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload_time = "2025-09-27T18:36:53.513Z" }, - { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload_time = "2025-09-27T18:36:54.819Z" }, - { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload_time = "2025-09-27T18:36:55.714Z" }, - { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload_time = "2025-09-27T18:36:56.908Z" }, - { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload_time = "2025-09-27T18:36:57.913Z" }, - { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload_time = "2025-09-27T18:36:58.833Z" }, - { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload_time = "2025-09-27T18:36:59.739Z" }, - { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload_time = "2025-09-27T18:37:00.719Z" }, - { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload_time = "2025-09-27T18:37:01.673Z" }, - { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload_time = "2025-09-27T18:37:02.639Z" }, - { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload_time = "2025-09-27T18:37:03.582Z" }, - { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload_time = "2025-09-27T18:37:04.929Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/4b/3541d44f3937ba468b75da9eebcae497dcf67adb65caa16760b0a6807ebb/markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", size = 11631, upload-time = "2025-09-27T18:36:05.558Z" }, + { url = "https://files.pythonhosted.org/packages/98/1b/fbd8eed11021cabd9226c37342fa6ca4e8a98d8188a8d9b66740494960e4/markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", size = 12057, upload-time = "2025-09-27T18:36:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/40/01/e560d658dc0bb8ab762670ece35281dec7b6c1b33f5fbc09ebb57a185519/markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", size = 22050, upload-time = "2025-09-27T18:36:08.005Z" }, + { url = "https://files.pythonhosted.org/packages/af/cd/ce6e848bbf2c32314c9b237839119c5a564a59725b53157c856e90937b7a/markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", size = 20681, upload-time = "2025-09-27T18:36:08.881Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2a/b5c12c809f1c3045c4d580b035a743d12fcde53cf685dbc44660826308da/markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", size = 20705, upload-time = "2025-09-27T18:36:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e3/9427a68c82728d0a88c50f890d0fc072a1484de2f3ac1ad0bfc1a7214fd5/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", size = 21524, upload-time = "2025-09-27T18:36:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/bc/36/23578f29e9e582a4d0278e009b38081dbe363c5e7165113fad546918a232/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", size = 20282, upload-time = "2025-09-27T18:36:12.573Z" }, + { url = "https://files.pythonhosted.org/packages/56/21/dca11354e756ebd03e036bd8ad58d6d7168c80ce1fe5e75218e4945cbab7/markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", size = 20745, upload-time = "2025-09-27T18:36:13.504Z" }, + { url = "https://files.pythonhosted.org/packages/87/99/faba9369a7ad6e4d10b6a5fbf71fa2a188fe4a593b15f0963b73859a1bbd/markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", size = 14571, upload-time = "2025-09-27T18:36:14.779Z" }, + { url = "https://files.pythonhosted.org/packages/d6/25/55dc3ab959917602c96985cb1253efaa4ff42f71194bddeb61eb7278b8be/markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", size = 15056, upload-time = "2025-09-27T18:36:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9e/0a02226640c255d1da0b8d12e24ac2aa6734da68bff14c05dd53b94a0fc3/markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", size = 13932, upload-time = "2025-09-27T18:36:17.311Z" }, + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload_time = "2022-08-14T12:40:10.846Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload_time = "2022-08-14T12:40:09.779Z" }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "more-itertools" version = "10.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload_time = "2025-09-02T15:23:11.018Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload_time = "2025-09-02T15:23:09.635Z" }, + { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" }, ] [[package]] name = "mpmath" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload_time = "2023-03-07T16:47:11.061Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload_time = "2023-03-07T16:47:09.197Z" }, + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, ] [[package]] name = "msgspec" version = "0.21.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e3/60/f79b9b013a16fa3a58350c9295ddc6789f2e335f36ea61ed10a21b215364/msgspec-0.21.1.tar.gz", hash = "sha256:2313508e394b0d208f8f56892ca9b2799e2561329de9763b19619595a6c0f72c", size = 319193, upload_time = "2026-04-12T21:44:50.394Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/96/38/d591d9f66d43d897ecbd249f2833665823d19c8b043f16619bc8343e23df/msgspec-0.21.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72d9cd03241b8b2edb2e12dcc66c500fa480d8cbd71a8bac105809d468882064", size = 195172, upload_time = "2026-04-12T21:43:45.062Z" }, - { url = "https://files.pythonhosted.org/packages/69/1a/6899188b5982ec1324e0c629b7801eed2db987f6634fab58abd9fc82d317/msgspec-0.21.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed2ab278200e743a1d2610a4e0c8fc74f6cecb8548544cdec43f927bd9265238", size = 188316, upload_time = "2026-04-12T21:43:46.641Z" }, - { url = "https://files.pythonhosted.org/packages/9e/95/7e591b4fa11fdbbf9891164473c23420a8c781ef553295abe416bf335f42/msgspec-0.21.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd677e3001fdfed9186de72eab434da2976303cd5eb9550921d3d0c3e3e168ce", size = 216565, upload_time = "2026-04-12T21:43:48.081Z" }, - { url = "https://files.pythonhosted.org/packages/19/86/714feeaf3b84cf2027235681725593840153dedd2868578f9f2715e296bb/msgspec-0.21.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f667b90b37fad734a91671abd68e0d7f4d066862771b87e91c53996dcb7a9027", size = 222689, upload_time = "2026-04-12T21:43:49.385Z" }, - { url = "https://files.pythonhosted.org/packages/7d/b9/4384243e814f2579e5205e17d170b9c1a30121afd1393298d904817a7fa7/msgspec-0.21.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:49880fd20fdbcfe1b793f07dd83f12572bab679c9800352c8b2240289aa46a06", size = 222343, upload_time = "2026-04-12T21:43:50.612Z" }, - { url = "https://files.pythonhosted.org/packages/04/01/4b227d9c4057346271043632bad41979cf8c3dca372e41bb1f7d546395b2/msgspec-0.21.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae0162e22849a5e91eaad907766525107523b0daea3df267a9fcb5ba4e0936ae", size = 225607, upload_time = "2026-04-12T21:43:52.129Z" }, - { url = "https://files.pythonhosted.org/packages/c1/ce/27021d1c3e5da837743092a7b7a5e8818397e1f4c05ee8b068bd7d1fd78a/msgspec-0.21.1-cp310-cp310-win_amd64.whl", hash = "sha256:f041a2279f31e3a53319005e4d60ba77c085cfcbe394cdc7ce803c2d01fe9449", size = 188392, upload_time = "2026-04-12T21:43:53.384Z" }, - { url = "https://files.pythonhosted.org/packages/80/2b/daf7a8d6d7cf00e0dcd0439178b284ade701234abdcadf3385601da04fbd/msgspec-0.21.1-cp310-cp310-win_arm64.whl", hash = "sha256:1bf17cbd7b28a5dffc7e764c654eed8ccde5e0f1de7970628608304640d4ce4e", size = 174191, upload_time = "2026-04-12T21:43:54.6Z" }, - { url = "https://files.pythonhosted.org/packages/ba/7f/bbc4e74cd33d316b75541149e4d35b163b63bce066530ae185a2ec3b5bfc/msgspec-0.21.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b504b6e7f7a22a24b27232b73034421692147865162daaec9f3bf62439007c87", size = 193131, upload_time = "2026-04-12T21:43:56.094Z" }, - { url = "https://files.pythonhosted.org/packages/c1/60/504886af1aaf854112663b842d5eea9a15d9588f9bf7d0d2df736424b84d/msgspec-0.21.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4692b7c1609155708c4418f88e92f63c13fdf08aa095c84bae82bad75b53389b", size = 186597, upload_time = "2026-04-12T21:43:57.242Z" }, - { url = "https://files.pythonhosted.org/packages/fa/54/d24ddeaa65b5278c9e67f48ce3c17a9831e8f3722f3c8322ee120aca22ef/msgspec-0.21.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3124010b3815451494c85ff345e693cb9fe5889cfcbbef39ed8622e0e72319c", size = 215158, upload_time = "2026-04-12T21:43:58.442Z" }, - { url = "https://files.pythonhosted.org/packages/9f/75/bb79c8b89a93ae23cd33c0d802373f16feaf9633f05d8af77091350dda0a/msgspec-0.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6badc03b9725352219cca017bfe71c61f2fbd0fb5982b410ac17c97c213deb30", size = 219856, upload_time = "2026-04-12T21:44:00.015Z" }, - { url = "https://files.pythonhosted.org/packages/b4/9c/c5ca26b46f0ebbd3a6683695ef89396712cb9e4199fd1f0bc1dd968216b1/msgspec-0.21.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5d2d4116ebe3035a78d9ec76e99a9d64e5fa6d44fe61a9c5de7fd1acf54bcc69", size = 220314, upload_time = "2026-04-12T21:44:01.548Z" }, - { url = "https://files.pythonhosted.org/packages/c8/31/645a351c4285dce40ed6755c3dcc0aa648e26dacb20a98018fe2cce5e87b/msgspec-0.21.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0d1009f6715f5bff3b54d4ff5c7428ad96197e0534e1645b8e9b955890c84664", size = 223215, upload_time = "2026-04-12T21:44:02.884Z" }, - { url = "https://files.pythonhosted.org/packages/09/af/8bf15736a6dd3cb4f90c5467f6dc39197d2daaf10754490cdc0aa17b7312/msgspec-0.21.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6faffe5bb644ec884052679af4dfd776d4b5ca90e4a7ec7e7e319e4e6b93a6e", size = 188554, upload_time = "2026-04-12T21:44:04.151Z" }, - { url = "https://files.pythonhosted.org/packages/ef/29/cc7db3a165b62d16e64a83f82eccb79655055cb5bc1f60459a6f9d7c82f2/msgspec-0.21.1-cp311-cp311-win_arm64.whl", hash = "sha256:ee9e3f11fa94603f7d673bf795cfa31b549c4a2c723bc39b45beb1e7f5a3fb99", size = 174517, upload_time = "2026-04-12T21:44:05.66Z" }, - { url = "https://files.pythonhosted.org/packages/6e/cf/317224852c00248c620a9bcf4b26e2e4ab8afd752f18d2a6ef73ebd423b6/msgspec-0.21.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d4248cf0b6129b7d230eacd493c17cc2d4f3989f3bb7f633a928a85b7dcfa251", size = 196188, upload_time = "2026-04-12T21:44:07.181Z" }, - { url = "https://files.pythonhosted.org/packages/6d/81/074612945c0666078f7366f40000013de9f6ba687491d450df699bceebc9/msgspec-0.21.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5102c7e9b3acff82178449b85006d96310e690291bb1ea0142f1b24bcb8aabcb", size = 188473, upload_time = "2026-04-12T21:44:08.736Z" }, - { url = "https://files.pythonhosted.org/packages/8a/37/655101799590bcc5fddb2bd3fe0e6194e816c2d1da7c361725f5eb89a910/msgspec-0.21.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:846758412e9518252b2ac9bffd6f0e54d9ff614f5f9488df7749f81ff5c80920", size = 218871, upload_time = "2026-04-12T21:44:09.917Z" }, - { url = "https://files.pythonhosted.org/packages/b5/d1/d4cd9fe89c7d400d7a18f86ccc94daa3f0927f53558846fcb60791dce5d6/msgspec-0.21.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21995e74b5c598c2e004110ad66ec7f1b8c20bf2bcf3b2de8fd9a3094422d3ff", size = 225025, upload_time = "2026-04-12T21:44:11.191Z" }, - { url = "https://files.pythonhosted.org/packages/24/bf/e20549e602b9edccadeeff98760345a416f9cce846a657e8b18e3396b212/msgspec-0.21.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6129f0cca52992e898fd5344187f7c8127b63d810b2fd73e36fca73b4c6475ee", size = 222672, upload_time = "2026-04-12T21:44:12.481Z" }, - { url = "https://files.pythonhosted.org/packages/b4/68/04d7a8f0f786545cf9b8c280c57aa6befb5977af6e884b8b54191cbe44b3/msgspec-0.21.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ef3ec2296248d1f8b9231acb051b6d471dfde8f21819e86c9adaaa9f42918521", size = 227303, upload_time = "2026-04-12T21:44:13.709Z" }, - { url = "https://files.pythonhosted.org/packages/cc/4d/619866af2840875be408047bf9e70ceafbae6ab50660de7134ed1b25eb86/msgspec-0.21.1-cp312-cp312-win_amd64.whl", hash = "sha256:d4ab834a054c6f0cbeef6df9e7e1b33d5f1bc7b86dea1d2fd7cad003873e783d", size = 190017, upload_time = "2026-04-12T21:44:14.977Z" }, - { url = "https://files.pythonhosted.org/packages/5e/2e/a8f9eca8fd00e097d7a9e99ba8a4685db994494448e3d4f0b7f6e9a3c0f7/msgspec-0.21.1-cp312-cp312-win_arm64.whl", hash = "sha256:628aaa35c74950a8c59da330d7e98917e1c7188f983745782027748ee4ca573e", size = 175345, upload_time = "2026-04-12T21:44:16.431Z" }, - { url = "https://files.pythonhosted.org/packages/7e/74/f11ede02839b19ff459f88e3145df5d711626ca84da4e23520cebf819367/msgspec-0.21.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:764173717a01743f007e9f74520ed281f24672c604514f7d76c1c3a10e8edb66", size = 196176, upload_time = "2026-04-12T21:44:17.613Z" }, - { url = "https://files.pythonhosted.org/packages/bb/40/4476c1bd341418a046c4955aff632ec769315d1e3cb94e6acf86d461f9ed/msgspec-0.21.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:344c7cd0eaed1fb81d7959f99100ef71ec9b536881a376f11b9a6c4803365697", size = 188524, upload_time = "2026-04-12T21:44:18.815Z" }, - { url = "https://files.pythonhosted.org/packages/ca/d9/9e9d7d7e5061b47540d03d640fab9b3965ba7ae49c1b2154861c8f007518/msgspec-0.21.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48943e278b3854c2f89f955ddc6f9f430d3f0784b16e47d10604ee0463cd21f5", size = 218880, upload_time = "2026-04-12T21:44:20.028Z" }, - { url = "https://files.pythonhosted.org/packages/74/66/2bb344f34abb4b57e60c7c9c761994e0417b9718ec1460bf00c296f2a7ea/msgspec-0.21.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9aa659ebb0101b1cbc31461212b87e341d961f0ab0772aaf068a99e001ec4aa", size = 225050, upload_time = "2026-04-12T21:44:21.577Z" }, - { url = "https://files.pythonhosted.org/packages/1a/84/7c1e412f76092277bf760cef12b7979d03314d259ab5b5cafde5d0c1722d/msgspec-0.21.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7b27d1a8ead2b6f5b0c4f2d07b8be1ccfcc041c8a0e704781edebe3ae13c484", size = 222713, upload_time = "2026-04-12T21:44:22.83Z" }, - { url = "https://files.pythonhosted.org/packages/4e/27/0bba04b2b4ef05f3d068429410bc71d2cea925f1596a8f41152cccd5edb8/msgspec-0.21.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:38fe93e86b61328fe544cb7fd871fad5a27c8734bfda90f65e5dbe288ae50f61", size = 227259, upload_time = "2026-04-12T21:44:24.11Z" }, - { url = "https://files.pythonhosted.org/packages/b0/2d/09574b0eea02fed2c2c1383dbaae2c7f79dc16dcd6487a886000afb5d7c4/msgspec-0.21.1-cp313-cp313-win_amd64.whl", hash = "sha256:8bc666331c35fcce05a7cd2d6221adbe0f6058f8e750711413d22793c080ac6a", size = 189857, upload_time = "2026-04-12T21:44:25.359Z" }, - { url = "https://files.pythonhosted.org/packages/46/34/105b1576ad182879914f0c821f17ee1d13abb165cb060448f96fe2aff078/msgspec-0.21.1-cp313-cp313-win_arm64.whl", hash = "sha256:42bb1241e0750c1a4346f2aa84db26c5ffd99a4eb3a954927d9f149ff2f42898", size = 175403, upload_time = "2026-04-12T21:44:26.608Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/e3/60/f79b9b013a16fa3a58350c9295ddc6789f2e335f36ea61ed10a21b215364/msgspec-0.21.1.tar.gz", hash = "sha256:2313508e394b0d208f8f56892ca9b2799e2561329de9763b19619595a6c0f72c", size = 319193, upload-time = "2026-04-12T21:44:50.394Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/38/d591d9f66d43d897ecbd249f2833665823d19c8b043f16619bc8343e23df/msgspec-0.21.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72d9cd03241b8b2edb2e12dcc66c500fa480d8cbd71a8bac105809d468882064", size = 195172, upload-time = "2026-04-12T21:43:45.062Z" }, + { url = "https://files.pythonhosted.org/packages/69/1a/6899188b5982ec1324e0c629b7801eed2db987f6634fab58abd9fc82d317/msgspec-0.21.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed2ab278200e743a1d2610a4e0c8fc74f6cecb8548544cdec43f927bd9265238", size = 188316, upload-time = "2026-04-12T21:43:46.641Z" }, + { url = "https://files.pythonhosted.org/packages/9e/95/7e591b4fa11fdbbf9891164473c23420a8c781ef553295abe416bf335f42/msgspec-0.21.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd677e3001fdfed9186de72eab434da2976303cd5eb9550921d3d0c3e3e168ce", size = 216565, upload-time = "2026-04-12T21:43:48.081Z" }, + { url = "https://files.pythonhosted.org/packages/19/86/714feeaf3b84cf2027235681725593840153dedd2868578f9f2715e296bb/msgspec-0.21.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f667b90b37fad734a91671abd68e0d7f4d066862771b87e91c53996dcb7a9027", size = 222689, upload-time = "2026-04-12T21:43:49.385Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b9/4384243e814f2579e5205e17d170b9c1a30121afd1393298d904817a7fa7/msgspec-0.21.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:49880fd20fdbcfe1b793f07dd83f12572bab679c9800352c8b2240289aa46a06", size = 222343, upload-time = "2026-04-12T21:43:50.612Z" }, + { url = "https://files.pythonhosted.org/packages/04/01/4b227d9c4057346271043632bad41979cf8c3dca372e41bb1f7d546395b2/msgspec-0.21.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae0162e22849a5e91eaad907766525107523b0daea3df267a9fcb5ba4e0936ae", size = 225607, upload-time = "2026-04-12T21:43:52.129Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ce/27021d1c3e5da837743092a7b7a5e8818397e1f4c05ee8b068bd7d1fd78a/msgspec-0.21.1-cp310-cp310-win_amd64.whl", hash = "sha256:f041a2279f31e3a53319005e4d60ba77c085cfcbe394cdc7ce803c2d01fe9449", size = 188392, upload-time = "2026-04-12T21:43:53.384Z" }, + { url = "https://files.pythonhosted.org/packages/80/2b/daf7a8d6d7cf00e0dcd0439178b284ade701234abdcadf3385601da04fbd/msgspec-0.21.1-cp310-cp310-win_arm64.whl", hash = "sha256:1bf17cbd7b28a5dffc7e764c654eed8ccde5e0f1de7970628608304640d4ce4e", size = 174191, upload-time = "2026-04-12T21:43:54.6Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7f/bbc4e74cd33d316b75541149e4d35b163b63bce066530ae185a2ec3b5bfc/msgspec-0.21.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b504b6e7f7a22a24b27232b73034421692147865162daaec9f3bf62439007c87", size = 193131, upload-time = "2026-04-12T21:43:56.094Z" }, + { url = "https://files.pythonhosted.org/packages/c1/60/504886af1aaf854112663b842d5eea9a15d9588f9bf7d0d2df736424b84d/msgspec-0.21.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4692b7c1609155708c4418f88e92f63c13fdf08aa095c84bae82bad75b53389b", size = 186597, upload-time = "2026-04-12T21:43:57.242Z" }, + { url = "https://files.pythonhosted.org/packages/fa/54/d24ddeaa65b5278c9e67f48ce3c17a9831e8f3722f3c8322ee120aca22ef/msgspec-0.21.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d3124010b3815451494c85ff345e693cb9fe5889cfcbbef39ed8622e0e72319c", size = 215158, upload-time = "2026-04-12T21:43:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/9f/75/bb79c8b89a93ae23cd33c0d802373f16feaf9633f05d8af77091350dda0a/msgspec-0.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6badc03b9725352219cca017bfe71c61f2fbd0fb5982b410ac17c97c213deb30", size = 219856, upload-time = "2026-04-12T21:44:00.015Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9c/c5ca26b46f0ebbd3a6683695ef89396712cb9e4199fd1f0bc1dd968216b1/msgspec-0.21.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5d2d4116ebe3035a78d9ec76e99a9d64e5fa6d44fe61a9c5de7fd1acf54bcc69", size = 220314, upload-time = "2026-04-12T21:44:01.548Z" }, + { url = "https://files.pythonhosted.org/packages/c8/31/645a351c4285dce40ed6755c3dcc0aa648e26dacb20a98018fe2cce5e87b/msgspec-0.21.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0d1009f6715f5bff3b54d4ff5c7428ad96197e0534e1645b8e9b955890c84664", size = 223215, upload-time = "2026-04-12T21:44:02.884Z" }, + { url = "https://files.pythonhosted.org/packages/09/af/8bf15736a6dd3cb4f90c5467f6dc39197d2daaf10754490cdc0aa17b7312/msgspec-0.21.1-cp311-cp311-win_amd64.whl", hash = "sha256:c6faffe5bb644ec884052679af4dfd776d4b5ca90e4a7ec7e7e319e4e6b93a6e", size = 188554, upload-time = "2026-04-12T21:44:04.151Z" }, + { url = "https://files.pythonhosted.org/packages/ef/29/cc7db3a165b62d16e64a83f82eccb79655055cb5bc1f60459a6f9d7c82f2/msgspec-0.21.1-cp311-cp311-win_arm64.whl", hash = "sha256:ee9e3f11fa94603f7d673bf795cfa31b549c4a2c723bc39b45beb1e7f5a3fb99", size = 174517, upload-time = "2026-04-12T21:44:05.66Z" }, + { url = "https://files.pythonhosted.org/packages/6e/cf/317224852c00248c620a9bcf4b26e2e4ab8afd752f18d2a6ef73ebd423b6/msgspec-0.21.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d4248cf0b6129b7d230eacd493c17cc2d4f3989f3bb7f633a928a85b7dcfa251", size = 196188, upload-time = "2026-04-12T21:44:07.181Z" }, + { url = "https://files.pythonhosted.org/packages/6d/81/074612945c0666078f7366f40000013de9f6ba687491d450df699bceebc9/msgspec-0.21.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5102c7e9b3acff82178449b85006d96310e690291bb1ea0142f1b24bcb8aabcb", size = 188473, upload-time = "2026-04-12T21:44:08.736Z" }, + { url = "https://files.pythonhosted.org/packages/8a/37/655101799590bcc5fddb2bd3fe0e6194e816c2d1da7c361725f5eb89a910/msgspec-0.21.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:846758412e9518252b2ac9bffd6f0e54d9ff614f5f9488df7749f81ff5c80920", size = 218871, upload-time = "2026-04-12T21:44:09.917Z" }, + { url = "https://files.pythonhosted.org/packages/b5/d1/d4cd9fe89c7d400d7a18f86ccc94daa3f0927f53558846fcb60791dce5d6/msgspec-0.21.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21995e74b5c598c2e004110ad66ec7f1b8c20bf2bcf3b2de8fd9a3094422d3ff", size = 225025, upload-time = "2026-04-12T21:44:11.191Z" }, + { url = "https://files.pythonhosted.org/packages/24/bf/e20549e602b9edccadeeff98760345a416f9cce846a657e8b18e3396b212/msgspec-0.21.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6129f0cca52992e898fd5344187f7c8127b63d810b2fd73e36fca73b4c6475ee", size = 222672, upload-time = "2026-04-12T21:44:12.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/68/04d7a8f0f786545cf9b8c280c57aa6befb5977af6e884b8b54191cbe44b3/msgspec-0.21.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ef3ec2296248d1f8b9231acb051b6d471dfde8f21819e86c9adaaa9f42918521", size = 227303, upload-time = "2026-04-12T21:44:13.709Z" }, + { url = "https://files.pythonhosted.org/packages/cc/4d/619866af2840875be408047bf9e70ceafbae6ab50660de7134ed1b25eb86/msgspec-0.21.1-cp312-cp312-win_amd64.whl", hash = "sha256:d4ab834a054c6f0cbeef6df9e7e1b33d5f1bc7b86dea1d2fd7cad003873e783d", size = 190017, upload-time = "2026-04-12T21:44:14.977Z" }, + { url = "https://files.pythonhosted.org/packages/5e/2e/a8f9eca8fd00e097d7a9e99ba8a4685db994494448e3d4f0b7f6e9a3c0f7/msgspec-0.21.1-cp312-cp312-win_arm64.whl", hash = "sha256:628aaa35c74950a8c59da330d7e98917e1c7188f983745782027748ee4ca573e", size = 175345, upload-time = "2026-04-12T21:44:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/7e/74/f11ede02839b19ff459f88e3145df5d711626ca84da4e23520cebf819367/msgspec-0.21.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:764173717a01743f007e9f74520ed281f24672c604514f7d76c1c3a10e8edb66", size = 196176, upload-time = "2026-04-12T21:44:17.613Z" }, + { url = "https://files.pythonhosted.org/packages/bb/40/4476c1bd341418a046c4955aff632ec769315d1e3cb94e6acf86d461f9ed/msgspec-0.21.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:344c7cd0eaed1fb81d7959f99100ef71ec9b536881a376f11b9a6c4803365697", size = 188524, upload-time = "2026-04-12T21:44:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/ca/d9/9e9d7d7e5061b47540d03d640fab9b3965ba7ae49c1b2154861c8f007518/msgspec-0.21.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48943e278b3854c2f89f955ddc6f9f430d3f0784b16e47d10604ee0463cd21f5", size = 218880, upload-time = "2026-04-12T21:44:20.028Z" }, + { url = "https://files.pythonhosted.org/packages/74/66/2bb344f34abb4b57e60c7c9c761994e0417b9718ec1460bf00c296f2a7ea/msgspec-0.21.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a9aa659ebb0101b1cbc31461212b87e341d961f0ab0772aaf068a99e001ec4aa", size = 225050, upload-time = "2026-04-12T21:44:21.577Z" }, + { url = "https://files.pythonhosted.org/packages/1a/84/7c1e412f76092277bf760cef12b7979d03314d259ab5b5cafde5d0c1722d/msgspec-0.21.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7b27d1a8ead2b6f5b0c4f2d07b8be1ccfcc041c8a0e704781edebe3ae13c484", size = 222713, upload-time = "2026-04-12T21:44:22.83Z" }, + { url = "https://files.pythonhosted.org/packages/4e/27/0bba04b2b4ef05f3d068429410bc71d2cea925f1596a8f41152cccd5edb8/msgspec-0.21.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:38fe93e86b61328fe544cb7fd871fad5a27c8734bfda90f65e5dbe288ae50f61", size = 227259, upload-time = "2026-04-12T21:44:24.11Z" }, + { url = "https://files.pythonhosted.org/packages/b0/2d/09574b0eea02fed2c2c1383dbaae2c7f79dc16dcd6487a886000afb5d7c4/msgspec-0.21.1-cp313-cp313-win_amd64.whl", hash = "sha256:8bc666331c35fcce05a7cd2d6221adbe0f6058f8e750711413d22793c080ac6a", size = 189857, upload-time = "2026-04-12T21:44:25.359Z" }, + { url = "https://files.pythonhosted.org/packages/46/34/105b1576ad182879914f0c821f17ee1d13abb165cb060448f96fe2aff078/msgspec-0.21.1-cp313-cp313-win_arm64.whl", hash = "sha256:42bb1241e0750c1a4346f2aa84db26c5ffd99a4eb3a954927d9f149ff2f42898", size = 175403, upload-time = "2026-04-12T21:44:26.608Z" }, ] [[package]] @@ -2175,147 +2225,147 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload_time = "2026-01-26T02:46:45.979Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload_time = "2026-01-26T02:42:59.784Z" }, - { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload_time = "2026-01-26T02:43:01.674Z" }, - { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload_time = "2026-01-26T02:43:03.169Z" }, - { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload_time = "2026-01-26T02:43:04.733Z" }, - { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload_time = "2026-01-26T02:43:06.695Z" }, - { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload_time = "2026-01-26T02:43:08.472Z" }, - { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload_time = "2026-01-26T02:43:10.127Z" }, - { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload_time = "2026-01-26T02:43:11.731Z" }, - { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload_time = "2026-01-26T02:43:13.063Z" }, - { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload_time = "2026-01-26T02:43:14.843Z" }, - { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload_time = "2026-01-26T02:43:16.025Z" }, - { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload_time = "2026-01-26T02:43:17.84Z" }, - { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload_time = "2026-01-26T02:43:19.06Z" }, - { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload_time = "2026-01-26T02:43:20.286Z" }, - { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload_time = "2026-01-26T02:43:21.508Z" }, - { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload_time = "2026-01-26T02:43:22.703Z" }, - { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload_time = "2026-01-26T02:43:23.77Z" }, - { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload_time = "2026-01-26T02:43:24.882Z" }, - { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload_time = "2026-01-26T02:43:26.485Z" }, - { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload_time = "2026-01-26T02:43:27.607Z" }, - { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload_time = "2026-01-26T02:43:28.661Z" }, - { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload_time = "2026-01-26T02:43:31.165Z" }, - { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload_time = "2026-01-26T02:43:32.581Z" }, - { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload_time = "2026-01-26T02:43:34.417Z" }, - { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload_time = "2026-01-26T02:43:35.741Z" }, - { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload_time = "2026-01-26T02:43:36.976Z" }, - { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload_time = "2026-01-26T02:43:38.258Z" }, - { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload_time = "2026-01-26T02:43:40.034Z" }, - { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload_time = "2026-01-26T02:43:41.752Z" }, - { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload_time = "2026-01-26T02:43:43.042Z" }, - { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload_time = "2026-01-26T02:43:44.371Z" }, - { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload_time = "2026-01-26T02:43:45.745Z" }, - { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload_time = "2026-01-26T02:43:47.054Z" }, - { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload_time = "2026-01-26T02:43:48.753Z" }, - { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload_time = "2026-01-26T02:43:49.921Z" }, - { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload_time = "2026-01-26T02:43:51.635Z" }, - { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload_time = "2026-01-26T02:43:52.754Z" }, - { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload_time = "2026-01-26T02:43:53.893Z" }, - { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload_time = "2026-01-26T02:43:55.041Z" }, - { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload_time = "2026-01-26T02:43:56.198Z" }, - { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload_time = "2026-01-26T02:43:57.499Z" }, - { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload_time = "2026-01-26T02:43:58.755Z" }, - { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload_time = "2026-01-26T02:44:00.216Z" }, - { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload_time = "2026-01-26T02:44:02.202Z" }, - { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload_time = "2026-01-26T02:44:03.56Z" }, - { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload_time = "2026-01-26T02:44:04.845Z" }, - { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload_time = "2026-01-26T02:44:06.133Z" }, - { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload_time = "2026-01-26T02:44:07.518Z" }, - { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload_time = "2026-01-26T02:44:09.382Z" }, - { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload_time = "2026-01-26T02:44:10.73Z" }, - { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload_time = "2026-01-26T02:44:12.042Z" }, - { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload_time = "2026-01-26T02:44:14.245Z" }, - { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload_time = "2026-01-26T02:44:15.371Z" }, - { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload_time = "2026-01-26T02:44:16.852Z" }, - { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload_time = "2026-01-26T02:44:18.509Z" }, - { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload_time = "2026-01-26T02:44:19.745Z" }, - { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload_time = "2026-01-26T02:44:21.571Z" }, - { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload_time = "2026-01-26T02:44:22.803Z" }, - { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload_time = "2026-01-26T02:44:24.306Z" }, - { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload_time = "2026-01-26T02:44:25.772Z" }, - { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload_time = "2026-01-26T02:44:27.648Z" }, - { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload_time = "2026-01-26T02:44:29.588Z" }, - { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload_time = "2026-01-26T02:44:30.902Z" }, - { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload_time = "2026-01-26T02:44:32.31Z" }, - { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload_time = "2026-01-26T02:44:33.734Z" }, - { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload_time = "2026-01-26T02:44:35.222Z" }, - { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload_time = "2026-01-26T02:44:36.604Z" }, - { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload_time = "2026-01-26T02:44:38.008Z" }, - { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload_time = "2026-01-26T02:44:39.386Z" }, - { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload_time = "2026-01-26T02:44:41.318Z" }, - { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload_time = "2026-01-26T02:44:42.488Z" }, - { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload_time = "2026-01-26T02:44:43.664Z" }, - { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload_time = "2026-01-26T02:44:44.894Z" }, - { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload_time = "2026-01-26T02:44:46.106Z" }, - { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload_time = "2026-01-26T02:44:47.278Z" }, - { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload_time = "2026-01-26T02:44:48.604Z" }, - { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload_time = "2026-01-26T02:44:50.544Z" }, - { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload_time = "2026-01-26T02:44:51.951Z" }, - { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload_time = "2026-01-26T02:44:53.902Z" }, - { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload_time = "2026-01-26T02:44:55.316Z" }, - { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload_time = "2026-01-26T02:44:56.783Z" }, - { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload_time = "2026-01-26T02:44:58.195Z" }, - { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload_time = "2026-01-26T02:44:59.57Z" }, - { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload_time = "2026-01-26T02:45:01.054Z" }, - { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload_time = "2026-01-26T02:45:02.484Z" }, - { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload_time = "2026-01-26T02:45:03.862Z" }, - { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload_time = "2026-01-26T02:45:05.296Z" }, - { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload_time = "2026-01-26T02:45:06.754Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload_time = "2026-01-26T02:45:08.044Z" }, - { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload_time = "2026-01-26T02:45:09.349Z" }, - { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload_time = "2026-01-26T02:46:44.004Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/0b/19348d4c98980c4851d2f943f8ebafdece2ae7ef737adcfa5994ce8e5f10/multidict-6.7.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c93c3db7ea657dd4637d57e74ab73de31bccefe144d3d4ce370052035bc85fb5", size = 77176, upload-time = "2026-01-26T02:42:59.784Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/9de3f8077852e3d438215c81e9b691244532d2e05b4270e89ce67b7d103c/multidict-6.7.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:974e72a2474600827abaeda71af0c53d9ebbc3c2eb7da37b37d7829ae31232d8", size = 44996, upload-time = "2026-01-26T02:43:01.674Z" }, + { url = "https://files.pythonhosted.org/packages/31/5c/08c7f7fe311f32e83f7621cd3f99d805f45519cd06fafb247628b861da7d/multidict-6.7.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdea2e7b2456cfb6694fb113066fd0ec7ea4d67e3a35e1f4cbeea0b448bf5872", size = 44631, upload-time = "2026-01-26T02:43:03.169Z" }, + { url = "https://files.pythonhosted.org/packages/b7/7f/0e3b1390ae772f27501199996b94b52ceeb64fe6f9120a32c6c3f6b781be/multidict-6.7.1-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17207077e29342fdc2c9a82e4b306f1127bf1ea91f8b71e02d4798a70bb99991", size = 242561, upload-time = "2026-01-26T02:43:04.733Z" }, + { url = "https://files.pythonhosted.org/packages/dd/f4/8719f4f167586af317b69dd3e90f913416c91ca610cac79a45c53f590312/multidict-6.7.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d4f49cb5661344764e4c7c7973e92a47a59b8fc19b6523649ec9dc4960e58a03", size = 242223, upload-time = "2026-01-26T02:43:06.695Z" }, + { url = "https://files.pythonhosted.org/packages/47/ab/7c36164cce64a6ad19c6d9a85377b7178ecf3b89f8fd589c73381a5eedfd/multidict-6.7.1-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a9fc4caa29e2e6ae408d1c450ac8bf19892c5fca83ee634ecd88a53332c59981", size = 222322, upload-time = "2026-01-26T02:43:08.472Z" }, + { url = "https://files.pythonhosted.org/packages/f5/79/a25add6fb38035b5337bc5734f296d9afc99163403bbcf56d4170f97eb62/multidict-6.7.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c5f0c21549ab432b57dcc82130f388d84ad8179824cc3f223d5e7cfbfd4143f6", size = 254005, upload-time = "2026-01-26T02:43:10.127Z" }, + { url = "https://files.pythonhosted.org/packages/4a/7b/64a87cf98e12f756fc8bd444b001232ffff2be37288f018ad0d3f0aae931/multidict-6.7.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7dfb78d966b2c906ae1d28ccf6e6712a3cd04407ee5088cd276fe8cb42186190", size = 251173, upload-time = "2026-01-26T02:43:11.731Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ac/b605473de2bb404e742f2cc3583d12aedb2352a70e49ae8fce455b50c5aa/multidict-6.7.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b0d9b91d1aa44db9c1f1ecd0d9d2ae610b2f4f856448664e01a3b35899f3f92", size = 243273, upload-time = "2026-01-26T02:43:13.063Z" }, + { url = "https://files.pythonhosted.org/packages/03/65/11492d6a0e259783720f3bc1d9ea55579a76f1407e31ed44045c99542004/multidict-6.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dd96c01a9dcd4889dcfcf9eb5544ca0c77603f239e3ffab0524ec17aea9a93ee", size = 238956, upload-time = "2026-01-26T02:43:14.843Z" }, + { url = "https://files.pythonhosted.org/packages/5f/a7/7ee591302af64e7c196fb63fe856c788993c1372df765102bd0448e7e165/multidict-6.7.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:067343c68cd6612d375710f895337b3a98a033c94f14b9a99eff902f205424e2", size = 233477, upload-time = "2026-01-26T02:43:16.025Z" }, + { url = "https://files.pythonhosted.org/packages/9c/99/c109962d58756c35fd9992fed7f2355303846ea2ff054bb5f5e9d6b888de/multidict-6.7.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5884a04f4ff56c6120f6ccf703bdeb8b5079d808ba604d4d53aec0d55dc33568", size = 243615, upload-time = "2026-01-26T02:43:17.84Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5f/1973e7c771c86e93dcfe1c9cc55a5481b610f6614acfc28c0d326fe6bfad/multidict-6.7.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8affcf1c98b82bc901702eb73b6947a1bfa170823c153fe8a47b5f5f02e48e40", size = 249930, upload-time = "2026-01-26T02:43:19.06Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a5/f170fc2268c3243853580203378cd522446b2df632061e0a5409817854c7/multidict-6.7.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d17522c37d03e85c8098ec8431636309b2682cf12e58f4dbc76121fb50e4962", size = 243807, upload-time = "2026-01-26T02:43:20.286Z" }, + { url = "https://files.pythonhosted.org/packages/de/01/73856fab6d125e5bc652c3986b90e8699a95e84b48d72f39ade6c0e74a8c/multidict-6.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:24c0cf81544ca5e17cfcb6e482e7a82cd475925242b308b890c9452a074d4505", size = 239103, upload-time = "2026-01-26T02:43:21.508Z" }, + { url = "https://files.pythonhosted.org/packages/e7/46/f1220bd9944d8aa40d8ccff100eeeee19b505b857b6f603d6078cb5315b0/multidict-6.7.1-cp310-cp310-win32.whl", hash = "sha256:d82dd730a95e6643802f4454b8fdecdf08667881a9c5670db85bc5a56693f122", size = 41416, upload-time = "2026-01-26T02:43:22.703Z" }, + { url = "https://files.pythonhosted.org/packages/68/00/9b38e272a770303692fc406c36e1a4c740f401522d5787691eb38a8925a8/multidict-6.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:cf37cbe5ced48d417ba045aca1b21bafca67489452debcde94778a576666a1df", size = 46022, upload-time = "2026-01-26T02:43:23.77Z" }, + { url = "https://files.pythonhosted.org/packages/64/65/d8d42490c02ee07b6bbe00f7190d70bb4738b3cce7629aaf9f213ef730dd/multidict-6.7.1-cp310-cp310-win_arm64.whl", hash = "sha256:59bc83d3f66b41dac1e7460aac1d196edc70c9ba3094965c467715a70ecb46db", size = 43238, upload-time = "2026-01-26T02:43:24.882Z" }, + { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, + { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, + { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, ] [[package]] name = "murmurhash" version = "1.0.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/23/2e/88c147931ea9725d634840d538622e94122bceaf346233349b7b5c62964b/murmurhash-1.0.15.tar.gz", hash = "sha256:58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01", size = 13291, upload_time = "2025-11-14T09:51:15.272Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/09/3c/5e59e29fe971365d27f191a5cbf8a5fb492746e458604fe5d39810da4668/murmurhash-1.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4989c16053a9a83b02c520dd00a31f0877d5fd2ab8a9b6b75ed9eba0e25c489", size = 27463, upload_time = "2025-11-14T09:49:53.158Z" }, - { url = "https://files.pythonhosted.org/packages/38/3d/ace00a9b82beaa99a8a7a52e98171cfbf13c0066d2f820e84a5d572e3bd0/murmurhash-1.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:899068ba3d7c371e7edd093852c634cce802fefd9aaddfcc0d2fda1d7433c7f9", size = 27714, upload_time = "2025-11-14T09:49:54.855Z" }, - { url = "https://files.pythonhosted.org/packages/10/0f/34f1c4f97424ea1bc72b1e3bdf61ac34f4c5555ec9163721f1e4cafe5b1d/murmurhash-1.0.15-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe883982114de576c793fd1cf55945c8ee6453ad4c4785ac1a48f84e74fdc650", size = 122570, upload_time = "2025-11-14T09:49:55.977Z" }, - { url = "https://files.pythonhosted.org/packages/b9/75/0019717a16ce5a7b088fc50a3ecb513035e4196c5e569bf4a2e16bcc0414/murmurhash-1.0.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:342277d8d7f712d136507fb3ccdba26c076a34ca0f8d1b96f65f0daa556da2e9", size = 123194, upload_time = "2025-11-14T09:49:57.462Z" }, - { url = "https://files.pythonhosted.org/packages/7b/a4/c1c95ce60b816c2255098164e424752779269c93f5d6dceaa213346789a2/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc54facccb32fe1e97d6231edd4f3e2937467c35658b26aa35bbd6a87ebb7cb0", size = 122461, upload_time = "2025-11-14T09:49:58.686Z" }, - { url = "https://files.pythonhosted.org/packages/63/28/e1f79369a6e8d1a5901346ed2fd3a5c56e647d0b849044870c071cb64e1c/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e525bbd8e26e6b9ab1b56758a59b16c2fffd73bad2f7b8bf361c16f70ff1d980", size = 121676, upload_time = "2025-11-14T09:49:59.888Z" }, - { url = "https://files.pythonhosted.org/packages/1d/7c/e2be1f5387e5898f6551cf81c4220975858b9dbda4d471b133750945599a/murmurhash-1.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:2224f30f7729717644745a6f513ea7662517dfe7b1867cf1588177f64c61df3c", size = 25156, upload_time = "2025-11-14T09:50:01.016Z" }, - { url = "https://files.pythonhosted.org/packages/74/07/0df6e1a753de68368662cbbb8f88558e2c877d3886ac12b30953fb8ed335/murmurhash-1.0.15-cp310-cp310-win_arm64.whl", hash = "sha256:8a181494b5f03ba831f9a13f2de3aab9ef591e508e57239043d65c5c592f5837", size = 23270, upload_time = "2025-11-14T09:50:01.99Z" }, - { url = "https://files.pythonhosted.org/packages/6b/ca/77d3e69924a8eb4508bb4f0ad34e46adbeedeb93616a71080e61e53dad71/murmurhash-1.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f32307fb9347680bb4fe1cbef6362fb39bd994f1b59abd8c09ca174e44199081", size = 27397, upload_time = "2025-11-14T09:50:03.077Z" }, - { url = "https://files.pythonhosted.org/packages/e6/53/a936f577d35b245d47b310f29e5e9f09fcac776c8c992f1ab51a9fb0cee2/murmurhash-1.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:539d8405885d1d19c005f3a2313b47e8e54b0ee89915eb8dfbb430b194328e6c", size = 27692, upload_time = "2025-11-14T09:50:04.144Z" }, - { url = "https://files.pythonhosted.org/packages/4d/64/5f8cfd1fd9cbeb43fcff96672f5bd9e7e1598d1c970f808ecd915490dc20/murmurhash-1.0.15-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4cd739a00f5a4602201b74568ddabae46ec304719d9be752fd8f534a9464b5e", size = 128396, upload_time = "2025-11-14T09:50:05.268Z" }, - { url = "https://files.pythonhosted.org/packages/ac/10/d9ce29d559a75db0d8a3f13ea12c7f541ec9de2afca38dc70418b890eedb/murmurhash-1.0.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44d211bcc3ec203c47dac06f48ee871093fcbdffa6652a6cc5ea7180306680a8", size = 128687, upload_time = "2025-11-14T09:50:06.527Z" }, - { url = "https://files.pythonhosted.org/packages/48/cd/dc97ab7e68cdfa1537a56e36dbc846c5a66701cc39ecee2d4399fe61996c/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f9bf47101354fb1dc4b2e313192566f04ba295c28a37e2f71c692759acc1ba3c", size = 128198, upload_time = "2025-11-14T09:50:08.062Z" }, - { url = "https://files.pythonhosted.org/packages/53/73/32f2aaa22c1e4afae337106baf0c938abf36a6cc879cfee83a00461bbbf7/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c69b4d3bcd6233782a78907fe10b9b7a796bdc5d28060cf097d067bec280a5d", size = 127214, upload_time = "2025-11-14T09:50:09.265Z" }, - { url = "https://files.pythonhosted.org/packages/82/ed/812103a7f353eba2d83655b08205e13a38c93b4db0692f94756e1eb44516/murmurhash-1.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:e43a69496342ce530bdd670264cb7c8f45490b296e4764c837ce577e3c7ebd53", size = 25241, upload_time = "2025-11-14T09:50:10.373Z" }, - { url = "https://files.pythonhosted.org/packages/eb/5f/2c511bdd28f7c24da37a00116ffd0432b65669d098f0d0260c66ac0ffdc2/murmurhash-1.0.15-cp311-cp311-win_arm64.whl", hash = "sha256:f3e99a6ee36ef5372df5f138e3d9c801420776d3641a34a49e5c2555f44edba7", size = 23216, upload_time = "2025-11-14T09:50:11.651Z" }, - { url = "https://files.pythonhosted.org/packages/b6/46/be8522d3456fdccf1b8b049c6d82e7a3c1114c4fc2cfe14b04cba4b3e701/murmurhash-1.0.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d37e3ae44746bca80b1a917c2ea625cf216913564ed43f69d2888e5df97db0cb", size = 27884, upload_time = "2025-11-14T09:50:13.133Z" }, - { url = "https://files.pythonhosted.org/packages/ed/cc/630449bf4f6178d7daf948ce46ad00b25d279065fc30abd8d706be3d87e0/murmurhash-1.0.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0861cb11039409eaf46878456b7d985ef17b6b484103a6fc367b2ecec846891d", size = 27855, upload_time = "2025-11-14T09:50:14.859Z" }, - { url = "https://files.pythonhosted.org/packages/ff/30/ea8f601a9bf44db99468696efd59eb9cff1157cd55cb586d67116697583f/murmurhash-1.0.15-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5a301decfaccfec70fe55cb01dde2a012c3014a874542eaa7cc73477bb749616", size = 134088, upload_time = "2025-11-14T09:50:15.958Z" }, - { url = "https://files.pythonhosted.org/packages/c9/de/c40ce8c0877d406691e735b8d6e9c815f36a82b499d358313db5dbe219d7/murmurhash-1.0.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32c6fde7bd7e9407003370a07b5f4addacabe1556ad3dc2cac246b7a2bba3400", size = 133978, upload_time = "2025-11-14T09:50:17.572Z" }, - { url = "https://files.pythonhosted.org/packages/47/84/bd49963ecd84ebab2fe66595e2d1ed41d5e8b5153af5dc930f0bd827007c/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d8b43a7011540dc3c7ce66f2134df9732e2bc3bbb4a35f6458bc755e48bde26", size = 132956, upload_time = "2025-11-14T09:50:18.742Z" }, - { url = "https://files.pythonhosted.org/packages/4f/7c/2530769c545074417c862583f05f4245644599f1e9ff619b3dfe2969aafc/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43bf4541892ecd95963fcd307bf1c575fc0fee1682f41c93007adee71ca2bb40", size = 134184, upload_time = "2025-11-14T09:50:19.941Z" }, - { url = "https://files.pythonhosted.org/packages/84/a4/b249b042f5afe34d14ada2dc4afc777e883c15863296756179652e081c44/murmurhash-1.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:f4ac15a2089dc42e6eb0966622d42d2521590a12c92480aafecf34c085302cca", size = 25647, upload_time = "2025-11-14T09:50:21.049Z" }, - { url = "https://files.pythonhosted.org/packages/13/bf/028179259aebc18fd4ba5cae2601d1d47517427a537ab44336446431a215/murmurhash-1.0.15-cp312-cp312-win_arm64.whl", hash = "sha256:4a70ca4ae19e600d9be3da64d00710e79dde388a4d162f22078d64844d0ebdda", size = 23338, upload_time = "2025-11-14T09:50:22.359Z" }, - { url = "https://files.pythonhosted.org/packages/29/2f/ba300b5f04dae0409202d6285668b8a9d3ade43a846abee3ef611cb388d5/murmurhash-1.0.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fe50dc70e52786759358fd1471e309b94dddfffb9320d9dfea233c7684c894ba", size = 27861, upload_time = "2025-11-14T09:50:23.804Z" }, - { url = "https://files.pythonhosted.org/packages/34/02/29c19d268e6f4ea1ed2a462c901eed1ed35b454e2cbc57da592fad663ac6/murmurhash-1.0.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1349a7c23f6092e7998ddc5bd28546cc31a595afc61e9fdb3afc423feec3d7ad", size = 27840, upload_time = "2025-11-14T09:50:25.146Z" }, - { url = "https://files.pythonhosted.org/packages/e2/63/58e2de2b5232cd294c64092688c422196e74f9fa8b3958bdf02d33df24b9/murmurhash-1.0.15-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3ba6d05de2613535b5a9227d4ad8ef40a540465f64660d4a8800634ae10e04f", size = 133080, upload_time = "2025-11-14T09:50:26.566Z" }, - { url = "https://files.pythonhosted.org/packages/aa/9a/d13e2e9f8ba1ced06840921a50f7cece0a475453284158a3018b72679761/murmurhash-1.0.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fa1b70b3cc2801ab44179c65827bbd12009c68b34e9d9ce7125b6a0bd35af63c", size = 132648, upload_time = "2025-11-14T09:50:27.788Z" }, - { url = "https://files.pythonhosted.org/packages/b2/e1/47994f1813fa205c84977b0ff51ae6709f8539af052c7491a5f863d82bdc/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:213d710fb6f4ef3bc11abbfad0fa94a75ffb675b7dc158c123471e5de869f9af", size = 131502, upload_time = "2025-11-14T09:50:29.339Z" }, - { url = "https://files.pythonhosted.org/packages/b9/ea/90c1fd00b4aeb704fb5e84cd666b33ffd7f245155048071ffbb51d2bb57d/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b65a5c4e7f5d71f7ccac2d2b60bdf7092d7976270878cfec59d5a66a533db823", size = 132736, upload_time = "2025-11-14T09:50:30.545Z" }, - { url = "https://files.pythonhosted.org/packages/00/db/da73462dbfa77f6433b128d2120ba7ba300f8c06dc4f4e022c38d240a5f5/murmurhash-1.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:9aba94c5d841e1904cd110e94ceb7f49cfb60a874bbfb27e0373622998fb7c7c", size = 25682, upload_time = "2025-11-14T09:50:31.624Z" }, - { url = "https://files.pythonhosted.org/packages/bb/83/032729ef14971b938fbef41ee125fc8800020ee229bd35178b6ede8ee934/murmurhash-1.0.15-cp313-cp313-win_arm64.whl", hash = "sha256:263807eca40d08c7b702413e45cca75ecb5883aa337237dc5addb660f1483378", size = 23370, upload_time = "2025-11-14T09:50:33.264Z" }, - { url = "https://files.pythonhosted.org/packages/10/83/7547d9205e9bd2f8e5dfd0b682cc9277594f98909f228eb359489baec1df/murmurhash-1.0.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:694fd42a74b7ce257169d14c24aa616aa6cd4ccf8abe50eca0557e08da99d055", size = 29955, upload_time = "2025-11-14T09:50:34.488Z" }, - { url = "https://files.pythonhosted.org/packages/b7/c7/3afd5de7a5b3ae07fe2d3a3271b327ee1489c58ba2b2f2159bd31a25edb9/murmurhash-1.0.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a2ea4546ba426390beff3cd10db8f0152fdc9072c4f2583ec7d8aa9f3e4ac070", size = 30108, upload_time = "2025-11-14T09:50:35.53Z" }, - { url = "https://files.pythonhosted.org/packages/02/69/d6637ee67d78ebb2538c00411f28ea5c154886bbe1db16c49435a8a4ab16/murmurhash-1.0.15-cp313-cp313t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:34e5a91139c40b10f98d0b297907f5d5267b4b1b2e5dd2eb74a021824f751b98", size = 164054, upload_time = "2025-11-14T09:50:36.591Z" }, - { url = "https://files.pythonhosted.org/packages/ab/4c/89e590165b4c7da6bf941441212a721a270195332d3aacfdfdf527d466ca/murmurhash-1.0.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dc35606868a5961cf42e79314ca0bddf5a400ce377b14d83192057928d6252ec", size = 168153, upload_time = "2025-11-14T09:50:37.856Z" }, - { url = "https://files.pythonhosted.org/packages/07/7a/95c42df0c21d2e413b9fcd17317a7587351daeb264dc29c6aec1fdbd26f8/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:43cc6ac3b91ca0f7a5ae9c063ba4d6c26972c97fd7c25280ecc666413e4c5535", size = 164345, upload_time = "2025-11-14T09:50:39.346Z" }, - { url = "https://files.pythonhosted.org/packages/d0/22/9d02c880a88b83bb3ce7d6a38fb727373ab78d82e5f3d8d9fc5612219f90/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:847d712136cb462f0e4bd6229ee2d9eb996d8854eb8312dff3d20c8f5181fda5", size = 161990, upload_time = "2025-11-14T09:50:40.689Z" }, - { url = "https://files.pythonhosted.org/packages/9a/e3/750232524e0dc262e8dcede6536dafc766faadd9a52f1d23746b02948ad8/murmurhash-1.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:2680851af6901dbe66cc4aa7ef8e263de47e6e1b425ae324caa571bdf18f8d58", size = 28812, upload_time = "2025-11-14T09:50:41.971Z" }, - { url = "https://files.pythonhosted.org/packages/ff/89/4ad9d215ef6ade89f27a72dc4e86b98ef1a43534cc3e6a6900a362a0bf0a/murmurhash-1.0.15-cp313-cp313t-win_arm64.whl", hash = "sha256:189a8de4d657b5da9efd66601b0636330b08262b3a55431f2379097c986995d0", size = 25398, upload_time = "2025-11-14T09:50:43.023Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/23/2e/88c147931ea9725d634840d538622e94122bceaf346233349b7b5c62964b/murmurhash-1.0.15.tar.gz", hash = "sha256:58e2b27b7847f9e2a6edf10b47a8c8dd70a4705f45dccb7bf76aeadacf56ba01", size = 13291, upload-time = "2025-11-14T09:51:15.272Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/3c/5e59e29fe971365d27f191a5cbf8a5fb492746e458604fe5d39810da4668/murmurhash-1.0.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4989c16053a9a83b02c520dd00a31f0877d5fd2ab8a9b6b75ed9eba0e25c489", size = 27463, upload-time = "2025-11-14T09:49:53.158Z" }, + { url = "https://files.pythonhosted.org/packages/38/3d/ace00a9b82beaa99a8a7a52e98171cfbf13c0066d2f820e84a5d572e3bd0/murmurhash-1.0.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:899068ba3d7c371e7edd093852c634cce802fefd9aaddfcc0d2fda1d7433c7f9", size = 27714, upload-time = "2025-11-14T09:49:54.855Z" }, + { url = "https://files.pythonhosted.org/packages/10/0f/34f1c4f97424ea1bc72b1e3bdf61ac34f4c5555ec9163721f1e4cafe5b1d/murmurhash-1.0.15-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fe883982114de576c793fd1cf55945c8ee6453ad4c4785ac1a48f84e74fdc650", size = 122570, upload-time = "2025-11-14T09:49:55.977Z" }, + { url = "https://files.pythonhosted.org/packages/b9/75/0019717a16ce5a7b088fc50a3ecb513035e4196c5e569bf4a2e16bcc0414/murmurhash-1.0.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:342277d8d7f712d136507fb3ccdba26c076a34ca0f8d1b96f65f0daa556da2e9", size = 123194, upload-time = "2025-11-14T09:49:57.462Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a4/c1c95ce60b816c2255098164e424752779269c93f5d6dceaa213346789a2/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bc54facccb32fe1e97d6231edd4f3e2937467c35658b26aa35bbd6a87ebb7cb0", size = 122461, upload-time = "2025-11-14T09:49:58.686Z" }, + { url = "https://files.pythonhosted.org/packages/63/28/e1f79369a6e8d1a5901346ed2fd3a5c56e647d0b849044870c071cb64e1c/murmurhash-1.0.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e525bbd8e26e6b9ab1b56758a59b16c2fffd73bad2f7b8bf361c16f70ff1d980", size = 121676, upload-time = "2025-11-14T09:49:59.888Z" }, + { url = "https://files.pythonhosted.org/packages/1d/7c/e2be1f5387e5898f6551cf81c4220975858b9dbda4d471b133750945599a/murmurhash-1.0.15-cp310-cp310-win_amd64.whl", hash = "sha256:2224f30f7729717644745a6f513ea7662517dfe7b1867cf1588177f64c61df3c", size = 25156, upload-time = "2025-11-14T09:50:01.016Z" }, + { url = "https://files.pythonhosted.org/packages/74/07/0df6e1a753de68368662cbbb8f88558e2c877d3886ac12b30953fb8ed335/murmurhash-1.0.15-cp310-cp310-win_arm64.whl", hash = "sha256:8a181494b5f03ba831f9a13f2de3aab9ef591e508e57239043d65c5c592f5837", size = 23270, upload-time = "2025-11-14T09:50:01.99Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ca/77d3e69924a8eb4508bb4f0ad34e46adbeedeb93616a71080e61e53dad71/murmurhash-1.0.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f32307fb9347680bb4fe1cbef6362fb39bd994f1b59abd8c09ca174e44199081", size = 27397, upload-time = "2025-11-14T09:50:03.077Z" }, + { url = "https://files.pythonhosted.org/packages/e6/53/a936f577d35b245d47b310f29e5e9f09fcac776c8c992f1ab51a9fb0cee2/murmurhash-1.0.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:539d8405885d1d19c005f3a2313b47e8e54b0ee89915eb8dfbb430b194328e6c", size = 27692, upload-time = "2025-11-14T09:50:04.144Z" }, + { url = "https://files.pythonhosted.org/packages/4d/64/5f8cfd1fd9cbeb43fcff96672f5bd9e7e1598d1c970f808ecd915490dc20/murmurhash-1.0.15-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4cd739a00f5a4602201b74568ddabae46ec304719d9be752fd8f534a9464b5e", size = 128396, upload-time = "2025-11-14T09:50:05.268Z" }, + { url = "https://files.pythonhosted.org/packages/ac/10/d9ce29d559a75db0d8a3f13ea12c7f541ec9de2afca38dc70418b890eedb/murmurhash-1.0.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:44d211bcc3ec203c47dac06f48ee871093fcbdffa6652a6cc5ea7180306680a8", size = 128687, upload-time = "2025-11-14T09:50:06.527Z" }, + { url = "https://files.pythonhosted.org/packages/48/cd/dc97ab7e68cdfa1537a56e36dbc846c5a66701cc39ecee2d4399fe61996c/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f9bf47101354fb1dc4b2e313192566f04ba295c28a37e2f71c692759acc1ba3c", size = 128198, upload-time = "2025-11-14T09:50:08.062Z" }, + { url = "https://files.pythonhosted.org/packages/53/73/32f2aaa22c1e4afae337106baf0c938abf36a6cc879cfee83a00461bbbf7/murmurhash-1.0.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3c69b4d3bcd6233782a78907fe10b9b7a796bdc5d28060cf097d067bec280a5d", size = 127214, upload-time = "2025-11-14T09:50:09.265Z" }, + { url = "https://files.pythonhosted.org/packages/82/ed/812103a7f353eba2d83655b08205e13a38c93b4db0692f94756e1eb44516/murmurhash-1.0.15-cp311-cp311-win_amd64.whl", hash = "sha256:e43a69496342ce530bdd670264cb7c8f45490b296e4764c837ce577e3c7ebd53", size = 25241, upload-time = "2025-11-14T09:50:10.373Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5f/2c511bdd28f7c24da37a00116ffd0432b65669d098f0d0260c66ac0ffdc2/murmurhash-1.0.15-cp311-cp311-win_arm64.whl", hash = "sha256:f3e99a6ee36ef5372df5f138e3d9c801420776d3641a34a49e5c2555f44edba7", size = 23216, upload-time = "2025-11-14T09:50:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/b6/46/be8522d3456fdccf1b8b049c6d82e7a3c1114c4fc2cfe14b04cba4b3e701/murmurhash-1.0.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d37e3ae44746bca80b1a917c2ea625cf216913564ed43f69d2888e5df97db0cb", size = 27884, upload-time = "2025-11-14T09:50:13.133Z" }, + { url = "https://files.pythonhosted.org/packages/ed/cc/630449bf4f6178d7daf948ce46ad00b25d279065fc30abd8d706be3d87e0/murmurhash-1.0.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0861cb11039409eaf46878456b7d985ef17b6b484103a6fc367b2ecec846891d", size = 27855, upload-time = "2025-11-14T09:50:14.859Z" }, + { url = "https://files.pythonhosted.org/packages/ff/30/ea8f601a9bf44db99468696efd59eb9cff1157cd55cb586d67116697583f/murmurhash-1.0.15-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5a301decfaccfec70fe55cb01dde2a012c3014a874542eaa7cc73477bb749616", size = 134088, upload-time = "2025-11-14T09:50:15.958Z" }, + { url = "https://files.pythonhosted.org/packages/c9/de/c40ce8c0877d406691e735b8d6e9c815f36a82b499d358313db5dbe219d7/murmurhash-1.0.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:32c6fde7bd7e9407003370a07b5f4addacabe1556ad3dc2cac246b7a2bba3400", size = 133978, upload-time = "2025-11-14T09:50:17.572Z" }, + { url = "https://files.pythonhosted.org/packages/47/84/bd49963ecd84ebab2fe66595e2d1ed41d5e8b5153af5dc930f0bd827007c/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d8b43a7011540dc3c7ce66f2134df9732e2bc3bbb4a35f6458bc755e48bde26", size = 132956, upload-time = "2025-11-14T09:50:18.742Z" }, + { url = "https://files.pythonhosted.org/packages/4f/7c/2530769c545074417c862583f05f4245644599f1e9ff619b3dfe2969aafc/murmurhash-1.0.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43bf4541892ecd95963fcd307bf1c575fc0fee1682f41c93007adee71ca2bb40", size = 134184, upload-time = "2025-11-14T09:50:19.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/a4/b249b042f5afe34d14ada2dc4afc777e883c15863296756179652e081c44/murmurhash-1.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:f4ac15a2089dc42e6eb0966622d42d2521590a12c92480aafecf34c085302cca", size = 25647, upload-time = "2025-11-14T09:50:21.049Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/028179259aebc18fd4ba5cae2601d1d47517427a537ab44336446431a215/murmurhash-1.0.15-cp312-cp312-win_arm64.whl", hash = "sha256:4a70ca4ae19e600d9be3da64d00710e79dde388a4d162f22078d64844d0ebdda", size = 23338, upload-time = "2025-11-14T09:50:22.359Z" }, + { url = "https://files.pythonhosted.org/packages/29/2f/ba300b5f04dae0409202d6285668b8a9d3ade43a846abee3ef611cb388d5/murmurhash-1.0.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fe50dc70e52786759358fd1471e309b94dddfffb9320d9dfea233c7684c894ba", size = 27861, upload-time = "2025-11-14T09:50:23.804Z" }, + { url = "https://files.pythonhosted.org/packages/34/02/29c19d268e6f4ea1ed2a462c901eed1ed35b454e2cbc57da592fad663ac6/murmurhash-1.0.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1349a7c23f6092e7998ddc5bd28546cc31a595afc61e9fdb3afc423feec3d7ad", size = 27840, upload-time = "2025-11-14T09:50:25.146Z" }, + { url = "https://files.pythonhosted.org/packages/e2/63/58e2de2b5232cd294c64092688c422196e74f9fa8b3958bdf02d33df24b9/murmurhash-1.0.15-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3ba6d05de2613535b5a9227d4ad8ef40a540465f64660d4a8800634ae10e04f", size = 133080, upload-time = "2025-11-14T09:50:26.566Z" }, + { url = "https://files.pythonhosted.org/packages/aa/9a/d13e2e9f8ba1ced06840921a50f7cece0a475453284158a3018b72679761/murmurhash-1.0.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fa1b70b3cc2801ab44179c65827bbd12009c68b34e9d9ce7125b6a0bd35af63c", size = 132648, upload-time = "2025-11-14T09:50:27.788Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e1/47994f1813fa205c84977b0ff51ae6709f8539af052c7491a5f863d82bdc/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:213d710fb6f4ef3bc11abbfad0fa94a75ffb675b7dc158c123471e5de869f9af", size = 131502, upload-time = "2025-11-14T09:50:29.339Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ea/90c1fd00b4aeb704fb5e84cd666b33ffd7f245155048071ffbb51d2bb57d/murmurhash-1.0.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b65a5c4e7f5d71f7ccac2d2b60bdf7092d7976270878cfec59d5a66a533db823", size = 132736, upload-time = "2025-11-14T09:50:30.545Z" }, + { url = "https://files.pythonhosted.org/packages/00/db/da73462dbfa77f6433b128d2120ba7ba300f8c06dc4f4e022c38d240a5f5/murmurhash-1.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:9aba94c5d841e1904cd110e94ceb7f49cfb60a874bbfb27e0373622998fb7c7c", size = 25682, upload-time = "2025-11-14T09:50:31.624Z" }, + { url = "https://files.pythonhosted.org/packages/bb/83/032729ef14971b938fbef41ee125fc8800020ee229bd35178b6ede8ee934/murmurhash-1.0.15-cp313-cp313-win_arm64.whl", hash = "sha256:263807eca40d08c7b702413e45cca75ecb5883aa337237dc5addb660f1483378", size = 23370, upload-time = "2025-11-14T09:50:33.264Z" }, + { url = "https://files.pythonhosted.org/packages/10/83/7547d9205e9bd2f8e5dfd0b682cc9277594f98909f228eb359489baec1df/murmurhash-1.0.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:694fd42a74b7ce257169d14c24aa616aa6cd4ccf8abe50eca0557e08da99d055", size = 29955, upload-time = "2025-11-14T09:50:34.488Z" }, + { url = "https://files.pythonhosted.org/packages/b7/c7/3afd5de7a5b3ae07fe2d3a3271b327ee1489c58ba2b2f2159bd31a25edb9/murmurhash-1.0.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a2ea4546ba426390beff3cd10db8f0152fdc9072c4f2583ec7d8aa9f3e4ac070", size = 30108, upload-time = "2025-11-14T09:50:35.53Z" }, + { url = "https://files.pythonhosted.org/packages/02/69/d6637ee67d78ebb2538c00411f28ea5c154886bbe1db16c49435a8a4ab16/murmurhash-1.0.15-cp313-cp313t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:34e5a91139c40b10f98d0b297907f5d5267b4b1b2e5dd2eb74a021824f751b98", size = 164054, upload-time = "2025-11-14T09:50:36.591Z" }, + { url = "https://files.pythonhosted.org/packages/ab/4c/89e590165b4c7da6bf941441212a721a270195332d3aacfdfdf527d466ca/murmurhash-1.0.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dc35606868a5961cf42e79314ca0bddf5a400ce377b14d83192057928d6252ec", size = 168153, upload-time = "2025-11-14T09:50:37.856Z" }, + { url = "https://files.pythonhosted.org/packages/07/7a/95c42df0c21d2e413b9fcd17317a7587351daeb264dc29c6aec1fdbd26f8/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:43cc6ac3b91ca0f7a5ae9c063ba4d6c26972c97fd7c25280ecc666413e4c5535", size = 164345, upload-time = "2025-11-14T09:50:39.346Z" }, + { url = "https://files.pythonhosted.org/packages/d0/22/9d02c880a88b83bb3ce7d6a38fb727373ab78d82e5f3d8d9fc5612219f90/murmurhash-1.0.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:847d712136cb462f0e4bd6229ee2d9eb996d8854eb8312dff3d20c8f5181fda5", size = 161990, upload-time = "2025-11-14T09:50:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/750232524e0dc262e8dcede6536dafc766faadd9a52f1d23746b02948ad8/murmurhash-1.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:2680851af6901dbe66cc4aa7ef8e263de47e6e1b425ae324caa571bdf18f8d58", size = 28812, upload-time = "2025-11-14T09:50:41.971Z" }, + { url = "https://files.pythonhosted.org/packages/ff/89/4ad9d215ef6ade89f27a72dc4e86b98ef1a43534cc3e6a6900a362a0bf0a/murmurhash-1.0.15-cp313-cp313t-win_arm64.whl", hash = "sha256:189a8de4d657b5da9efd66601b0636330b08262b3a55431f2379097c986995d0", size = 25398, upload-time = "2025-11-14T09:50:43.023Z" }, ] [[package]] @@ -2329,51 +2379,51 @@ dependencies = [ { name = "tomli", marker = "python_full_version < '3.11'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload_time = "2025-12-15T05:03:48.42Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2f/63/e499890d8e39b1ff2df4c0c6ce5d371b6844ee22b8250687a99fd2f657a8/mypy-1.19.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec", size = 13101333, upload_time = "2025-12-15T05:03:03.28Z" }, - { url = "https://files.pythonhosted.org/packages/72/4b/095626fc136fba96effc4fd4a82b41d688ab92124f8c4f7564bffe5cf1b0/mypy-1.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b", size = 12164102, upload_time = "2025-12-15T05:02:33.611Z" }, - { url = "https://files.pythonhosted.org/packages/0c/5b/952928dd081bf88a83a5ccd49aaecfcd18fd0d2710c7ff07b8fb6f7032b9/mypy-1.19.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6", size = 12765799, upload_time = "2025-12-15T05:03:28.44Z" }, - { url = "https://files.pythonhosted.org/packages/2a/0d/93c2e4a287f74ef11a66fb6d49c7a9f05e47b0a4399040e6719b57f500d2/mypy-1.19.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74", size = 13522149, upload_time = "2025-12-15T05:02:36.011Z" }, - { url = "https://files.pythonhosted.org/packages/7b/0e/33a294b56aaad2b338d203e3a1d8b453637ac36cb278b45005e0901cf148/mypy-1.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1", size = 13810105, upload_time = "2025-12-15T05:02:40.327Z" }, - { url = "https://files.pythonhosted.org/packages/0e/fd/3e82603a0cb66b67c5e7abababce6bf1a929ddf67bf445e652684af5c5a0/mypy-1.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac", size = 10057200, upload_time = "2025-12-15T05:02:51.012Z" }, - { url = "https://files.pythonhosted.org/packages/ef/47/6b3ebabd5474d9cdc170d1342fbf9dddc1b0ec13ec90bf9004ee6f391c31/mypy-1.19.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288", size = 13028539, upload_time = "2025-12-15T05:03:44.129Z" }, - { url = "https://files.pythonhosted.org/packages/5c/a6/ac7c7a88a3c9c54334f53a941b765e6ec6c4ebd65d3fe8cdcfbe0d0fd7db/mypy-1.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab", size = 12083163, upload_time = "2025-12-15T05:03:37.679Z" }, - { url = "https://files.pythonhosted.org/packages/67/af/3afa9cf880aa4a2c803798ac24f1d11ef72a0c8079689fac5cfd815e2830/mypy-1.19.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6", size = 12687629, upload_time = "2025-12-15T05:02:31.526Z" }, - { url = "https://files.pythonhosted.org/packages/2d/46/20f8a7114a56484ab268b0ab372461cb3a8f7deed31ea96b83a4e4cfcfca/mypy-1.19.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331", size = 13436933, upload_time = "2025-12-15T05:03:15.606Z" }, - { url = "https://files.pythonhosted.org/packages/5b/f8/33b291ea85050a21f15da910002460f1f445f8007adb29230f0adea279cb/mypy-1.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925", size = 13661754, upload_time = "2025-12-15T05:02:26.731Z" }, - { url = "https://files.pythonhosted.org/packages/fd/a3/47cbd4e85bec4335a9cd80cf67dbc02be21b5d4c9c23ad6b95d6c5196bac/mypy-1.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042", size = 10055772, upload_time = "2025-12-15T05:03:26.179Z" }, - { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload_time = "2025-12-15T05:03:46.622Z" }, - { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload_time = "2025-12-15T05:03:24.367Z" }, - { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload_time = "2025-12-15T05:02:44.725Z" }, - { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload_time = "2025-12-15T05:03:39.633Z" }, - { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload_time = "2025-12-15T05:03:08.786Z" }, - { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload_time = "2025-12-15T05:03:10.834Z" }, - { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload_time = "2025-12-15T05:02:29.138Z" }, - { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload_time = "2025-12-15T05:03:01.325Z" }, - { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload_time = "2025-12-15T05:03:20.087Z" }, - { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload_time = "2025-12-15T05:02:49.036Z" }, - { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload_time = "2025-12-15T05:02:55.95Z" }, - { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload_time = "2025-12-15T05:02:58.438Z" }, - { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload_time = "2025-12-15T05:03:07.248Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/f5/db/4efed9504bc01309ab9c2da7e352cc223569f05478012b5d9ece38fd44d2/mypy-1.19.1.tar.gz", hash = "sha256:19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba", size = 3582404, upload-time = "2025-12-15T05:03:48.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/63/e499890d8e39b1ff2df4c0c6ce5d371b6844ee22b8250687a99fd2f657a8/mypy-1.19.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f05aa3d375b385734388e844bc01733bd33c644ab48e9684faa54e5389775ec", size = 13101333, upload-time = "2025-12-15T05:03:03.28Z" }, + { url = "https://files.pythonhosted.org/packages/72/4b/095626fc136fba96effc4fd4a82b41d688ab92124f8c4f7564bffe5cf1b0/mypy-1.19.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:022ea7279374af1a5d78dfcab853fe6a536eebfda4b59deab53cd21f6cd9f00b", size = 12164102, upload-time = "2025-12-15T05:02:33.611Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/952928dd081bf88a83a5ccd49aaecfcd18fd0d2710c7ff07b8fb6f7032b9/mypy-1.19.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee4c11e460685c3e0c64a4c5de82ae143622410950d6be863303a1c4ba0e36d6", size = 12765799, upload-time = "2025-12-15T05:03:28.44Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0d/93c2e4a287f74ef11a66fb6d49c7a9f05e47b0a4399040e6719b57f500d2/mypy-1.19.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de759aafbae8763283b2ee5869c7255391fbc4de3ff171f8f030b5ec48381b74", size = 13522149, upload-time = "2025-12-15T05:02:36.011Z" }, + { url = "https://files.pythonhosted.org/packages/7b/0e/33a294b56aaad2b338d203e3a1d8b453637ac36cb278b45005e0901cf148/mypy-1.19.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ab43590f9cd5108f41aacf9fca31841142c786827a74ab7cc8a2eacb634e09a1", size = 13810105, upload-time = "2025-12-15T05:02:40.327Z" }, + { url = "https://files.pythonhosted.org/packages/0e/fd/3e82603a0cb66b67c5e7abababce6bf1a929ddf67bf445e652684af5c5a0/mypy-1.19.1-cp310-cp310-win_amd64.whl", hash = "sha256:2899753e2f61e571b3971747e302d5f420c3fd09650e1951e99f823bc3089dac", size = 10057200, upload-time = "2025-12-15T05:02:51.012Z" }, + { url = "https://files.pythonhosted.org/packages/ef/47/6b3ebabd5474d9cdc170d1342fbf9dddc1b0ec13ec90bf9004ee6f391c31/mypy-1.19.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d8dfc6ab58ca7dda47d9237349157500468e404b17213d44fc1cb77bce532288", size = 13028539, upload-time = "2025-12-15T05:03:44.129Z" }, + { url = "https://files.pythonhosted.org/packages/5c/a6/ac7c7a88a3c9c54334f53a941b765e6ec6c4ebd65d3fe8cdcfbe0d0fd7db/mypy-1.19.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e3f276d8493c3c97930e354b2595a44a21348b320d859fb4a2b9f66da9ed27ab", size = 12083163, upload-time = "2025-12-15T05:03:37.679Z" }, + { url = "https://files.pythonhosted.org/packages/67/af/3afa9cf880aa4a2c803798ac24f1d11ef72a0c8079689fac5cfd815e2830/mypy-1.19.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2abb24cf3f17864770d18d673c85235ba52456b36a06b6afc1e07c1fdcd3d0e6", size = 12687629, upload-time = "2025-12-15T05:02:31.526Z" }, + { url = "https://files.pythonhosted.org/packages/2d/46/20f8a7114a56484ab268b0ab372461cb3a8f7deed31ea96b83a4e4cfcfca/mypy-1.19.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a009ffa5a621762d0c926a078c2d639104becab69e79538a494bcccb62cc0331", size = 13436933, upload-time = "2025-12-15T05:03:15.606Z" }, + { url = "https://files.pythonhosted.org/packages/5b/f8/33b291ea85050a21f15da910002460f1f445f8007adb29230f0adea279cb/mypy-1.19.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f7cee03c9a2e2ee26ec07479f38ea9c884e301d42c6d43a19d20fb014e3ba925", size = 13661754, upload-time = "2025-12-15T05:02:26.731Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a3/47cbd4e85bec4335a9cd80cf67dbc02be21b5d4c9c23ad6b95d6c5196bac/mypy-1.19.1-cp311-cp311-win_amd64.whl", hash = "sha256:4b84a7a18f41e167f7995200a1d07a4a6810e89d29859df936f1c3923d263042", size = 10055772, upload-time = "2025-12-15T05:03:26.179Z" }, + { url = "https://files.pythonhosted.org/packages/06/8a/19bfae96f6615aa8a0604915512e0289b1fad33d5909bf7244f02935d33a/mypy-1.19.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a8174a03289288c1f6c46d55cef02379b478bfbc8e358e02047487cad44c6ca1", size = 13206053, upload-time = "2025-12-15T05:03:46.622Z" }, + { url = "https://files.pythonhosted.org/packages/a5/34/3e63879ab041602154ba2a9f99817bb0c85c4df19a23a1443c8986e4d565/mypy-1.19.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffcebe56eb09ff0c0885e750036a095e23793ba6c2e894e7e63f6d89ad51f22e", size = 12219134, upload-time = "2025-12-15T05:03:24.367Z" }, + { url = "https://files.pythonhosted.org/packages/89/cc/2db6f0e95366b630364e09845672dbee0cbf0bbe753a204b29a944967cd9/mypy-1.19.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b64d987153888790bcdb03a6473d321820597ab8dd9243b27a92153c4fa50fd2", size = 12731616, upload-time = "2025-12-15T05:02:44.725Z" }, + { url = "https://files.pythonhosted.org/packages/00/be/dd56c1fd4807bc1eba1cf18b2a850d0de7bacb55e158755eb79f77c41f8e/mypy-1.19.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c35d298c2c4bba75feb2195655dfea8124d855dfd7343bf8b8c055421eaf0cf8", size = 13620847, upload-time = "2025-12-15T05:03:39.633Z" }, + { url = "https://files.pythonhosted.org/packages/6d/42/332951aae42b79329f743bf1da088cd75d8d4d9acc18fbcbd84f26c1af4e/mypy-1.19.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:34c81968774648ab5ac09c29a375fdede03ba253f8f8287847bd480782f73a6a", size = 13834976, upload-time = "2025-12-15T05:03:08.786Z" }, + { url = "https://files.pythonhosted.org/packages/6f/63/e7493e5f90e1e085c562bb06e2eb32cae27c5057b9653348d38b47daaecc/mypy-1.19.1-cp312-cp312-win_amd64.whl", hash = "sha256:b10e7c2cd7870ba4ad9b2d8a6102eb5ffc1f16ca35e3de6bfa390c1113029d13", size = 10118104, upload-time = "2025-12-15T05:03:10.834Z" }, + { url = "https://files.pythonhosted.org/packages/de/9f/a6abae693f7a0c697dbb435aac52e958dc8da44e92e08ba88d2e42326176/mypy-1.19.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e3157c7594ff2ef1634ee058aafc56a82db665c9438fd41b390f3bde1ab12250", size = 13201927, upload-time = "2025-12-15T05:02:29.138Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a4/45c35ccf6e1c65afc23a069f50e2c66f46bd3798cbe0d680c12d12935caa/mypy-1.19.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdb12f69bcc02700c2b47e070238f42cb87f18c0bc1fc4cdb4fb2bc5fd7a3b8b", size = 12206730, upload-time = "2025-12-15T05:03:01.325Z" }, + { url = "https://files.pythonhosted.org/packages/05/bb/cdcf89678e26b187650512620eec8368fded4cfd99cfcb431e4cdfd19dec/mypy-1.19.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f859fb09d9583a985be9a493d5cfc5515b56b08f7447759a0c5deaf68d80506e", size = 12724581, upload-time = "2025-12-15T05:03:20.087Z" }, + { url = "https://files.pythonhosted.org/packages/d1/32/dd260d52babf67bad8e6770f8e1102021877ce0edea106e72df5626bb0ec/mypy-1.19.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9a6538e0415310aad77cb94004ca6482330fece18036b5f360b62c45814c4ef", size = 13616252, upload-time = "2025-12-15T05:02:49.036Z" }, + { url = "https://files.pythonhosted.org/packages/71/d0/5e60a9d2e3bd48432ae2b454b7ef2b62a960ab51292b1eda2a95edd78198/mypy-1.19.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:da4869fc5e7f62a88f3fe0b5c919d1d9f7ea3cef92d3689de2823fd27e40aa75", size = 13840848, upload-time = "2025-12-15T05:02:55.95Z" }, + { url = "https://files.pythonhosted.org/packages/98/76/d32051fa65ecf6cc8c6610956473abdc9b4c43301107476ac03559507843/mypy-1.19.1-cp313-cp313-win_amd64.whl", hash = "sha256:016f2246209095e8eda7538944daa1d60e1e8134d98983b9fc1e92c1fc0cb8dd", size = 10135510, upload-time = "2025-12-15T05:02:58.438Z" }, + { url = "https://files.pythonhosted.org/packages/8d/f4/4ce9a05ce5ded1de3ec1c1d96cf9f9504a04e54ce0ed55cfa38619a32b8d/mypy-1.19.1-py3-none-any.whl", hash = "sha256:f1235f5ea01b7db5468d53ece6aaddf1ad0b88d9e7462b86ef96fe04995d7247", size = 2471239, upload-time = "2025-12-15T05:03:07.248Z" }, ] [[package]] name = "mypy-extensions" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload_time = "2025-04-22T14:54:24.164Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload_time = "2025-04-22T14:54:22.983Z" }, + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, ] [[package]] name = "narwhals" version = "2.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/ac/66ed1fc6e38a0c0f330627ec5c5d597990d6159b6712b82af0ad2c65f06c/narwhals-2.23.0.tar.gz", hash = "sha256:13e7ff5b4bb4a2f77b907c2e4d8a76e273dfc1323a3c997440a2f9fd26aed408", size = 656209, upload_time = "2026-07-01T11:21:53.278Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e8/ac/66ed1fc6e38a0c0f330627ec5c5d597990d6159b6712b82af0ad2c65f06c/narwhals-2.23.0.tar.gz", hash = "sha256:13e7ff5b4bb4a2f77b907c2e4d8a76e273dfc1323a3c997440a2f9fd26aed408", size = 656209, upload-time = "2026-07-01T11:21:53.278Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/4e/afc8c31605cb8be1d3bb4438c4d979daa104dab6306cd2b87abe9c3a7299/narwhals-2.23.0-py3-none-any.whl", hash = "sha256:769e7b9ab102c93d8fa019f6b4cd1a657909b04a20bf6210e5a35aae06814ae9", size = 458938, upload_time = "2026-07-01T11:21:51.677Z" }, + { url = "https://files.pythonhosted.org/packages/f4/4e/afc8c31605cb8be1d3bb4438c4d979daa104dab6306cd2b87abe9c3a7299/narwhals-2.23.0-py3-none-any.whl", hash = "sha256:769e7b9ab102c93d8fa019f6b4cd1a657909b04a20bf6210e5a35aae06814ae9", size = 458938, upload-time = "2026-07-01T11:21:51.677Z" }, ] [[package]] @@ -2384,9 +2434,9 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", ] -sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload_time = "2024-10-21T12:39:38.695Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fd/1d/06475e1cd5264c0b870ea2cc6fdb3e37177c1e565c43f56ff17a10e3937f/networkx-3.4.2.tar.gz", hash = "sha256:307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1", size = 2151368, upload-time = "2024-10-21T12:39:38.695Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload_time = "2024-10-21T12:39:36.247Z" }, + { url = "https://files.pythonhosted.org/packages/b9/54/dd730b32ea14ea797530a4479b2ed46a6fb250f682a9cfb997e968bf0261/networkx-3.4.2-py3-none-any.whl", hash = "sha256:df5d4365b724cf81b8c6a7312509d0c22386097011ad1abe274afd5e9d3bbc5f", size = 1723263, upload-time = "2024-10-21T12:39:36.247Z" }, ] [[package]] @@ -2403,18 +2453,18 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.11' and python_full_version < '3.13' and sys_platform == 'darwin'", ] -sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload_time = "2025-12-08T17:02:39.908Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload_time = "2025-12-08T17:02:38.159Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, ] [[package]] name = "nodeenv" version = "1.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload_time = "2025-12-20T14:08:54.006Z" } +sdist = { url = "https://files.pythonhosted.org/packages/24/bf/d1bda4f6168e0b2e9e5958945e01910052158313224ada5ce1fb2e1113b8/nodeenv-1.10.0.tar.gz", hash = "sha256:996c191ad80897d076bdfba80a41994c2b47c68e224c542b48feba42ba00f8bb", size = 55611, upload-time = "2025-12-20T14:08:54.006Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload_time = "2025-12-20T14:08:52.782Z" }, + { url = "https://files.pythonhosted.org/packages/88/b2/d0896bdcdc8d28a7fc5717c305f1a861c26e18c05047949fb371034d98bd/nodeenv-1.10.0-py2.py3-none-any.whl", hash = "sha256:5bb13e3eed2923615535339b3c620e76779af4cb4c6a90deccc9e36b274d3827", size = 23438, upload-time = "2025-12-20T14:08:52.782Z" }, ] [[package]] @@ -2425,62 +2475,62 @@ resolution-markers = [ "python_full_version < '3.11' and sys_platform != 'darwin'", "python_full_version < '3.11' and sys_platform == 'darwin'", ] -sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload_time = "2025-05-17T22:38:04.611Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload_time = "2025-05-17T21:27:58.555Z" }, - { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload_time = "2025-05-17T21:28:21.406Z" }, - { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload_time = "2025-05-17T21:28:30.931Z" }, - { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload_time = "2025-05-17T21:28:41.613Z" }, - { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload_time = "2025-05-17T21:29:02.78Z" }, - { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload_time = "2025-05-17T21:29:27.675Z" }, - { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload_time = "2025-05-17T21:29:51.102Z" }, - { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload_time = "2025-05-17T21:30:18.703Z" }, - { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload_time = "2025-05-17T21:30:29.788Z" }, - { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload_time = "2025-05-17T21:30:48.994Z" }, - { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload_time = "2025-05-17T21:31:19.36Z" }, - { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload_time = "2025-05-17T21:31:41.087Z" }, - { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload_time = "2025-05-17T21:31:50.072Z" }, - { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload_time = "2025-05-17T21:32:01.712Z" }, - { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload_time = "2025-05-17T21:32:23.332Z" }, - { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload_time = "2025-05-17T21:32:47.991Z" }, - { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload_time = "2025-05-17T21:33:11.728Z" }, - { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload_time = "2025-05-17T21:33:39.139Z" }, - { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload_time = "2025-05-17T21:33:50.273Z" }, - { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload_time = "2025-05-17T21:34:09.135Z" }, - { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload_time = "2025-05-17T21:34:39.648Z" }, - { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload_time = "2025-05-17T21:35:01.241Z" }, - { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload_time = "2025-05-17T21:35:10.622Z" }, - { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload_time = "2025-05-17T21:35:21.414Z" }, - { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload_time = "2025-05-17T21:35:42.174Z" }, - { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload_time = "2025-05-17T21:36:06.711Z" }, - { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload_time = "2025-05-17T21:36:29.965Z" }, - { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload_time = "2025-05-17T21:36:56.883Z" }, - { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload_time = "2025-05-17T21:37:07.368Z" }, - { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload_time = "2025-05-17T21:37:26.213Z" }, - { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload_time = "2025-05-17T21:37:56.699Z" }, - { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload_time = "2025-05-17T21:38:18.291Z" }, - { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload_time = "2025-05-17T21:38:27.319Z" }, - { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload_time = "2025-05-17T21:38:38.141Z" }, - { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload_time = "2025-05-17T21:38:58.433Z" }, - { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload_time = "2025-05-17T21:39:22.638Z" }, - { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload_time = "2025-05-17T21:39:45.865Z" }, - { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload_time = "2025-05-17T21:40:13.331Z" }, - { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload_time = "2025-05-17T21:43:46.099Z" }, - { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload_time = "2025-05-17T21:44:05.145Z" }, - { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload_time = "2025-05-17T21:40:44Z" }, - { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload_time = "2025-05-17T21:41:05.695Z" }, - { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload_time = "2025-05-17T21:41:15.903Z" }, - { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload_time = "2025-05-17T21:41:27.321Z" }, - { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload_time = "2025-05-17T21:41:49.738Z" }, - { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload_time = "2025-05-17T21:42:14.046Z" }, - { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload_time = "2025-05-17T21:42:37.464Z" }, - { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload_time = "2025-05-17T21:43:05.189Z" }, - { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload_time = "2025-05-17T21:43:16.254Z" }, - { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload_time = "2025-05-17T21:43:35.479Z" }, - { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload_time = "2025-05-17T21:44:35.948Z" }, - { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload_time = "2025-05-17T21:44:47.446Z" }, - { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload_time = "2025-05-17T21:45:11.871Z" }, - { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload_time = "2025-05-17T21:45:31.426Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/76/21/7d2a95e4bba9dc13d043ee156a356c0a8f0c6309dff6b21b4d71a073b8a8/numpy-2.2.6.tar.gz", hash = "sha256:e29554e2bef54a90aa5cc07da6ce955accb83f21ab5de01a62c8478897b264fd", size = 20276440, upload-time = "2025-05-17T22:38:04.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/3e/ed6db5be21ce87955c0cbd3009f2803f59fa08df21b5df06862e2d8e2bdd/numpy-2.2.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b412caa66f72040e6d268491a59f2c43bf03eb6c96dd8f0307829feb7fa2b6fb", size = 21165245, upload-time = "2025-05-17T21:27:58.555Z" }, + { url = "https://files.pythonhosted.org/packages/22/c2/4b9221495b2a132cc9d2eb862e21d42a009f5a60e45fc44b00118c174bff/numpy-2.2.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e41fd67c52b86603a91c1a505ebaef50b3314de0213461c7a6e99c9a3beff90", size = 14360048, upload-time = "2025-05-17T21:28:21.406Z" }, + { url = "https://files.pythonhosted.org/packages/fd/77/dc2fcfc66943c6410e2bf598062f5959372735ffda175b39906d54f02349/numpy-2.2.6-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:37e990a01ae6ec7fe7fa1c26c55ecb672dd98b19c3d0e1d1f326fa13cb38d163", size = 5340542, upload-time = "2025-05-17T21:28:30.931Z" }, + { url = "https://files.pythonhosted.org/packages/7a/4f/1cb5fdc353a5f5cc7feb692db9b8ec2c3d6405453f982435efc52561df58/numpy-2.2.6-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:5a6429d4be8ca66d889b7cf70f536a397dc45ba6faeb5f8c5427935d9592e9cf", size = 6878301, upload-time = "2025-05-17T21:28:41.613Z" }, + { url = "https://files.pythonhosted.org/packages/eb/17/96a3acd228cec142fcb8723bd3cc39c2a474f7dcf0a5d16731980bcafa95/numpy-2.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efd28d4e9cd7d7a8d39074a4d44c63eda73401580c5c76acda2ce969e0a38e83", size = 14297320, upload-time = "2025-05-17T21:29:02.78Z" }, + { url = "https://files.pythonhosted.org/packages/b4/63/3de6a34ad7ad6646ac7d2f55ebc6ad439dbbf9c4370017c50cf403fb19b5/numpy-2.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc7b73d02efb0e18c000e9ad8b83480dfcd5dfd11065997ed4c6747470ae8915", size = 16801050, upload-time = "2025-05-17T21:29:27.675Z" }, + { url = "https://files.pythonhosted.org/packages/07/b6/89d837eddef52b3d0cec5c6ba0456c1bf1b9ef6a6672fc2b7873c3ec4e2e/numpy-2.2.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:74d4531beb257d2c3f4b261bfb0fc09e0f9ebb8842d82a7b4209415896adc680", size = 15807034, upload-time = "2025-05-17T21:29:51.102Z" }, + { url = "https://files.pythonhosted.org/packages/01/c8/dc6ae86e3c61cfec1f178e5c9f7858584049b6093f843bca541f94120920/numpy-2.2.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8fc377d995680230e83241d8a96def29f204b5782f371c532579b4f20607a289", size = 18614185, upload-time = "2025-05-17T21:30:18.703Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c5/0064b1b7e7c89137b471ccec1fd2282fceaae0ab3a9550f2568782d80357/numpy-2.2.6-cp310-cp310-win32.whl", hash = "sha256:b093dd74e50a8cba3e873868d9e93a85b78e0daf2e98c6797566ad8044e8363d", size = 6527149, upload-time = "2025-05-17T21:30:29.788Z" }, + { url = "https://files.pythonhosted.org/packages/a3/dd/4b822569d6b96c39d1215dbae0582fd99954dcbcf0c1a13c61783feaca3f/numpy-2.2.6-cp310-cp310-win_amd64.whl", hash = "sha256:f0fd6321b839904e15c46e0d257fdd101dd7f530fe03fd6359c1ea63738703f3", size = 12904620, upload-time = "2025-05-17T21:30:48.994Z" }, + { url = "https://files.pythonhosted.org/packages/da/a8/4f83e2aa666a9fbf56d6118faaaf5f1974d456b1823fda0a176eff722839/numpy-2.2.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f9f1adb22318e121c5c69a09142811a201ef17ab257a1e66ca3025065b7f53ae", size = 21176963, upload-time = "2025-05-17T21:31:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/64e1affc7972decb74c9e29e5649fac940514910960ba25cd9af4488b66c/numpy-2.2.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c820a93b0255bc360f53eca31a0e676fd1101f673dda8da93454a12e23fc5f7a", size = 14406743, upload-time = "2025-05-17T21:31:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/0121e375000b5e50ffdd8b25bf78d8e1a5aa4cca3f185d41265198c7b834/numpy-2.2.6-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3d70692235e759f260c3d837193090014aebdf026dfd167834bcba43e30c2a42", size = 5352616, upload-time = "2025-05-17T21:31:50.072Z" }, + { url = "https://files.pythonhosted.org/packages/31/0d/b48c405c91693635fbe2dcd7bc84a33a602add5f63286e024d3b6741411c/numpy-2.2.6-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:481b49095335f8eed42e39e8041327c05b0f6f4780488f61286ed3c01368d491", size = 6889579, upload-time = "2025-05-17T21:32:01.712Z" }, + { url = "https://files.pythonhosted.org/packages/52/b8/7f0554d49b565d0171eab6e99001846882000883998e7b7d9f0d98b1f934/numpy-2.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b64d8d4d17135e00c8e346e0a738deb17e754230d7e0810ac5012750bbd85a5a", size = 14312005, upload-time = "2025-05-17T21:32:23.332Z" }, + { url = "https://files.pythonhosted.org/packages/b3/dd/2238b898e51bd6d389b7389ffb20d7f4c10066d80351187ec8e303a5a475/numpy-2.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba10f8411898fc418a521833e014a77d3ca01c15b0c6cdcce6a0d2897e6dbbdf", size = 16821570, upload-time = "2025-05-17T21:32:47.991Z" }, + { url = "https://files.pythonhosted.org/packages/83/6c/44d0325722cf644f191042bf47eedad61c1e6df2432ed65cbe28509d404e/numpy-2.2.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bd48227a919f1bafbdda0583705e547892342c26fb127219d60a5c36882609d1", size = 15818548, upload-time = "2025-05-17T21:33:11.728Z" }, + { url = "https://files.pythonhosted.org/packages/ae/9d/81e8216030ce66be25279098789b665d49ff19eef08bfa8cb96d4957f422/numpy-2.2.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9551a499bf125c1d4f9e250377c1ee2eddd02e01eac6644c080162c0c51778ab", size = 18620521, upload-time = "2025-05-17T21:33:39.139Z" }, + { url = "https://files.pythonhosted.org/packages/6a/fd/e19617b9530b031db51b0926eed5345ce8ddc669bb3bc0044b23e275ebe8/numpy-2.2.6-cp311-cp311-win32.whl", hash = "sha256:0678000bb9ac1475cd454c6b8c799206af8107e310843532b04d49649c717a47", size = 6525866, upload-time = "2025-05-17T21:33:50.273Z" }, + { url = "https://files.pythonhosted.org/packages/31/0a/f354fb7176b81747d870f7991dc763e157a934c717b67b58456bc63da3df/numpy-2.2.6-cp311-cp311-win_amd64.whl", hash = "sha256:e8213002e427c69c45a52bbd94163084025f533a55a59d6f9c5b820774ef3303", size = 12907455, upload-time = "2025-05-17T21:34:09.135Z" }, + { url = "https://files.pythonhosted.org/packages/82/5d/c00588b6cf18e1da539b45d3598d3557084990dcc4331960c15ee776ee41/numpy-2.2.6-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41c5a21f4a04fa86436124d388f6ed60a9343a6f767fced1a8a71c3fbca038ff", size = 20875348, upload-time = "2025-05-17T21:34:39.648Z" }, + { url = "https://files.pythonhosted.org/packages/66/ee/560deadcdde6c2f90200450d5938f63a34b37e27ebff162810f716f6a230/numpy-2.2.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de749064336d37e340f640b05f24e9e3dd678c57318c7289d222a8a2f543e90c", size = 14119362, upload-time = "2025-05-17T21:35:01.241Z" }, + { url = "https://files.pythonhosted.org/packages/3c/65/4baa99f1c53b30adf0acd9a5519078871ddde8d2339dc5a7fde80d9d87da/numpy-2.2.6-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:894b3a42502226a1cac872f840030665f33326fc3dac8e57c607905773cdcde3", size = 5084103, upload-time = "2025-05-17T21:35:10.622Z" }, + { url = "https://files.pythonhosted.org/packages/cc/89/e5a34c071a0570cc40c9a54eb472d113eea6d002e9ae12bb3a8407fb912e/numpy-2.2.6-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:71594f7c51a18e728451bb50cc60a3ce4e6538822731b2933209a1f3614e9282", size = 6625382, upload-time = "2025-05-17T21:35:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/f8/35/8c80729f1ff76b3921d5c9487c7ac3de9b2a103b1cd05e905b3090513510/numpy-2.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f2618db89be1b4e05f7a1a847a9c1c0abd63e63a1607d892dd54668dd92faf87", size = 14018462, upload-time = "2025-05-17T21:35:42.174Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3d/1e1db36cfd41f895d266b103df00ca5b3cbe965184df824dec5c08c6b803/numpy-2.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd83c01228a688733f1ded5201c678f0c53ecc1006ffbc404db9f7a899ac6249", size = 16527618, upload-time = "2025-05-17T21:36:06.711Z" }, + { url = "https://files.pythonhosted.org/packages/61/c6/03ed30992602c85aa3cd95b9070a514f8b3c33e31124694438d88809ae36/numpy-2.2.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37c0ca431f82cd5fa716eca9506aefcabc247fb27ba69c5062a6d3ade8cf8f49", size = 15505511, upload-time = "2025-05-17T21:36:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/b7/25/5761d832a81df431e260719ec45de696414266613c9ee268394dd5ad8236/numpy-2.2.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fe27749d33bb772c80dcd84ae7e8df2adc920ae8297400dabec45f0dedb3f6de", size = 18313783, upload-time = "2025-05-17T21:36:56.883Z" }, + { url = "https://files.pythonhosted.org/packages/57/0a/72d5a3527c5ebffcd47bde9162c39fae1f90138c961e5296491ce778e682/numpy-2.2.6-cp312-cp312-win32.whl", hash = "sha256:4eeaae00d789f66c7a25ac5f34b71a7035bb474e679f410e5e1a94deb24cf2d4", size = 6246506, upload-time = "2025-05-17T21:37:07.368Z" }, + { url = "https://files.pythonhosted.org/packages/36/fa/8c9210162ca1b88529ab76b41ba02d433fd54fecaf6feb70ef9f124683f1/numpy-2.2.6-cp312-cp312-win_amd64.whl", hash = "sha256:c1f9540be57940698ed329904db803cf7a402f3fc200bfe599334c9bd84a40b2", size = 12614190, upload-time = "2025-05-17T21:37:26.213Z" }, + { url = "https://files.pythonhosted.org/packages/f9/5c/6657823f4f594f72b5471f1db1ab12e26e890bb2e41897522d134d2a3e81/numpy-2.2.6-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0811bb762109d9708cca4d0b13c4f67146e3c3b7cf8d34018c722adb2d957c84", size = 20867828, upload-time = "2025-05-17T21:37:56.699Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9e/14520dc3dadf3c803473bd07e9b2bd1b69bc583cb2497b47000fed2fa92f/numpy-2.2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:287cc3162b6f01463ccd86be154f284d0893d2b3ed7292439ea97eafa8170e0b", size = 14143006, upload-time = "2025-05-17T21:38:18.291Z" }, + { url = "https://files.pythonhosted.org/packages/4f/06/7e96c57d90bebdce9918412087fc22ca9851cceaf5567a45c1f404480e9e/numpy-2.2.6-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:f1372f041402e37e5e633e586f62aa53de2eac8d98cbfb822806ce4bbefcb74d", size = 5076765, upload-time = "2025-05-17T21:38:27.319Z" }, + { url = "https://files.pythonhosted.org/packages/73/ed/63d920c23b4289fdac96ddbdd6132e9427790977d5457cd132f18e76eae0/numpy-2.2.6-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:55a4d33fa519660d69614a9fad433be87e5252f4b03850642f88993f7b2ca566", size = 6617736, upload-time = "2025-05-17T21:38:38.141Z" }, + { url = "https://files.pythonhosted.org/packages/85/c5/e19c8f99d83fd377ec8c7e0cf627a8049746da54afc24ef0a0cb73d5dfb5/numpy-2.2.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f92729c95468a2f4f15e9bb94c432a9229d0d50de67304399627a943201baa2f", size = 14010719, upload-time = "2025-05-17T21:38:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/19/49/4df9123aafa7b539317bf6d342cb6d227e49f7a35b99c287a6109b13dd93/numpy-2.2.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1bc23a79bfabc5d056d106f9befb8d50c31ced2fbc70eedb8155aec74a45798f", size = 16526072, upload-time = "2025-05-17T21:39:22.638Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6c/04b5f47f4f32f7c2b0e7260442a8cbcf8168b0e1a41ff1495da42f42a14f/numpy-2.2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e3143e4451880bed956e706a3220b4e5cf6172ef05fcc397f6f36a550b1dd868", size = 15503213, upload-time = "2025-05-17T21:39:45.865Z" }, + { url = "https://files.pythonhosted.org/packages/17/0a/5cd92e352c1307640d5b6fec1b2ffb06cd0dabe7d7b8227f97933d378422/numpy-2.2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b4f13750ce79751586ae2eb824ba7e1e8dba64784086c98cdbbcc6a42112ce0d", size = 18316632, upload-time = "2025-05-17T21:40:13.331Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3b/5cba2b1d88760ef86596ad0f3d484b1cbff7c115ae2429678465057c5155/numpy-2.2.6-cp313-cp313-win32.whl", hash = "sha256:5beb72339d9d4fa36522fc63802f469b13cdbe4fdab4a288f0c441b74272ebfd", size = 6244532, upload-time = "2025-05-17T21:43:46.099Z" }, + { url = "https://files.pythonhosted.org/packages/cb/3b/d58c12eafcb298d4e6d0d40216866ab15f59e55d148a5658bb3132311fcf/numpy-2.2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b0544343a702fa80c95ad5d3d608ea3599dd54d4632df855e4c8d24eb6ecfa1c", size = 12610885, upload-time = "2025-05-17T21:44:05.145Z" }, + { url = "https://files.pythonhosted.org/packages/6b/9e/4bf918b818e516322db999ac25d00c75788ddfd2d2ade4fa66f1f38097e1/numpy-2.2.6-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0bca768cd85ae743b2affdc762d617eddf3bcf8724435498a1e80132d04879e6", size = 20963467, upload-time = "2025-05-17T21:40:44Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/d2de6b291507517ff2e438e13ff7b1e2cdbdb7cb40b3ed475377aece69f9/numpy-2.2.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:fc0c5673685c508a142ca65209b4e79ed6740a4ed6b2267dbba90f34b0b3cfda", size = 14225144, upload-time = "2025-05-17T21:41:05.695Z" }, + { url = "https://files.pythonhosted.org/packages/e4/25/480387655407ead912e28ba3a820bc69af9adf13bcbe40b299d454ec011f/numpy-2.2.6-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:5bd4fc3ac8926b3819797a7c0e2631eb889b4118a9898c84f585a54d475b7e40", size = 5200217, upload-time = "2025-05-17T21:41:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4a/6e313b5108f53dcbf3aca0c0f3e9c92f4c10ce57a0a721851f9785872895/numpy-2.2.6-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:fee4236c876c4e8369388054d02d0e9bb84821feb1a64dd59e137e6511a551f8", size = 6712014, upload-time = "2025-05-17T21:41:27.321Z" }, + { url = "https://files.pythonhosted.org/packages/b7/30/172c2d5c4be71fdf476e9de553443cf8e25feddbe185e0bd88b096915bcc/numpy-2.2.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1dda9c7e08dc141e0247a5b8f49cf05984955246a327d4c48bda16821947b2f", size = 14077935, upload-time = "2025-05-17T21:41:49.738Z" }, + { url = "https://files.pythonhosted.org/packages/12/fb/9e743f8d4e4d3c710902cf87af3512082ae3d43b945d5d16563f26ec251d/numpy-2.2.6-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f447e6acb680fd307f40d3da4852208af94afdfab89cf850986c3ca00562f4fa", size = 16600122, upload-time = "2025-05-17T21:42:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/12/75/ee20da0e58d3a66f204f38916757e01e33a9737d0b22373b3eb5a27358f9/numpy-2.2.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:389d771b1623ec92636b0786bc4ae56abafad4a4c513d36a55dce14bd9ce8571", size = 15586143, upload-time = "2025-05-17T21:42:37.464Z" }, + { url = "https://files.pythonhosted.org/packages/76/95/bef5b37f29fc5e739947e9ce5179ad402875633308504a52d188302319c8/numpy-2.2.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8e9ace4a37db23421249ed236fdcdd457d671e25146786dfc96835cd951aa7c1", size = 18385260, upload-time = "2025-05-17T21:43:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/09/04/f2f83279d287407cf36a7a8053a5abe7be3622a4363337338f2585e4afda/numpy-2.2.6-cp313-cp313t-win32.whl", hash = "sha256:038613e9fb8c72b0a41f025a7e4c3f0b7a1b5d768ece4796b674c8f3fe13efff", size = 6377225, upload-time = "2025-05-17T21:43:16.254Z" }, + { url = "https://files.pythonhosted.org/packages/67/0e/35082d13c09c02c011cf21570543d202ad929d961c02a147493cb0c2bdf5/numpy-2.2.6-cp313-cp313t-win_amd64.whl", hash = "sha256:6031dd6dfecc0cf9f668681a37648373bddd6421fff6c66ec1624eed0180ee06", size = 12771374, upload-time = "2025-05-17T21:43:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/9e/3b/d94a75f4dbf1ef5d321523ecac21ef23a3cd2ac8b78ae2aac40873590229/numpy-2.2.6-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0b605b275d7bd0c640cad4e5d30fa701a8d59302e127e5f79138ad62762c3e3d", size = 21040391, upload-time = "2025-05-17T21:44:35.948Z" }, + { url = "https://files.pythonhosted.org/packages/17/f4/09b2fa1b58f0fb4f7c7963a1649c64c4d315752240377ed74d9cd878f7b5/numpy-2.2.6-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:7befc596a7dc9da8a337f79802ee8adb30a552a94f792b9c9d18c840055907db", size = 6786754, upload-time = "2025-05-17T21:44:47.446Z" }, + { url = "https://files.pythonhosted.org/packages/af/30/feba75f143bdc868a1cc3f44ccfa6c4b9ec522b36458e738cd00f67b573f/numpy-2.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce47521a4754c8f4593837384bd3424880629f718d87c5d44f8ed763edd63543", size = 16643476, upload-time = "2025-05-17T21:45:11.871Z" }, + { url = "https://files.pythonhosted.org/packages/37/48/ac2a9584402fb6c0cd5b5d1a91dcf176b15760130dd386bbafdbfe3640bf/numpy-2.2.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d042d24c90c41b54fd506da306759e06e568864df8ec17ccc17e9e884634fd00", size = 12812666, upload-time = "2025-05-17T21:45:31.426Z" }, ] [[package]] @@ -2497,58 +2547,58 @@ resolution-markers = [ "python_full_version >= '3.13' and sys_platform == 'darwin'", "python_full_version >= '3.11' and python_full_version < '3.13' and sys_platform == 'darwin'", ] -sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload_time = "2026-01-31T23:13:10.135Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload_time = "2026-01-31T23:10:25.623Z" }, - { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload_time = "2026-01-31T23:10:28.186Z" }, - { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload_time = "2026-01-31T23:10:30.848Z" }, - { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload_time = "2026-01-31T23:10:32.352Z" }, - { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload_time = "2026-01-31T23:10:34.502Z" }, - { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload_time = "2026-01-31T23:10:37.075Z" }, - { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload_time = "2026-01-31T23:10:39.704Z" }, - { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload_time = "2026-01-31T23:10:41.924Z" }, - { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload_time = "2026-01-31T23:10:45.26Z" }, - { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload_time = "2026-01-31T23:10:47.021Z" }, - { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload_time = "2026-01-31T23:10:50.087Z" }, - { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload_time = "2026-01-31T23:10:52.147Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload_time = "2026-01-31T23:10:54.789Z" }, - { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload_time = "2026-01-31T23:10:57.343Z" }, - { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload_time = "2026-01-31T23:10:59.429Z" }, - { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload_time = "2026-01-31T23:11:01.291Z" }, - { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload_time = "2026-01-31T23:11:03.669Z" }, - { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload_time = "2026-01-31T23:11:05.913Z" }, - { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload_time = "2026-01-31T23:11:08.248Z" }, - { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload_time = "2026-01-31T23:11:10.497Z" }, - { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload_time = "2026-01-31T23:11:12.176Z" }, - { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload_time = "2026-01-31T23:11:14.684Z" }, - { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload_time = "2026-01-31T23:11:17.516Z" }, - { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload_time = "2026-01-31T23:11:19.883Z" }, - { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload_time = "2026-01-31T23:11:22.375Z" }, - { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload_time = "2026-01-31T23:11:23.958Z" }, - { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload_time = "2026-01-31T23:11:25.713Z" }, - { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload_time = "2026-01-31T23:11:28.117Z" }, - { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload_time = "2026-01-31T23:11:30.888Z" }, - { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload_time = "2026-01-31T23:11:33.214Z" }, - { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload_time = "2026-01-31T23:11:35.385Z" }, - { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload_time = "2026-01-31T23:11:38.001Z" }, - { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload_time = "2026-01-31T23:11:40.392Z" }, - { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload_time = "2026-01-31T23:11:42.495Z" }, - { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload_time = "2026-01-31T23:11:44.7Z" }, - { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload_time = "2026-01-31T23:11:46.341Z" }, - { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload_time = "2026-01-31T23:11:48.082Z" }, - { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload_time = "2026-01-31T23:11:50.293Z" }, - { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload_time = "2026-01-31T23:11:52.927Z" }, - { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload_time = "2026-01-31T23:11:55.22Z" }, - { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload_time = "2026-01-31T23:11:58.096Z" }, - { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload_time = "2026-01-31T23:11:59.782Z" }, - { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload_time = "2026-01-31T23:12:02.438Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload_time = "2026-01-31T23:12:53.5Z" }, - { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload_time = "2026-01-31T23:12:55.933Z" }, - { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload_time = "2026-01-31T23:12:58.671Z" }, - { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload_time = "2026-01-31T23:13:00.518Z" }, - { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload_time = "2026-01-31T23:13:02.219Z" }, - { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload_time = "2026-01-31T23:13:04.62Z" }, - { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload_time = "2026-01-31T23:13:07.08Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload-time = "2026-01-31T23:10:25.623Z" }, + { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload-time = "2026-01-31T23:10:28.186Z" }, + { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload-time = "2026-01-31T23:10:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload-time = "2026-01-31T23:10:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload-time = "2026-01-31T23:10:34.502Z" }, + { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload-time = "2026-01-31T23:10:37.075Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload-time = "2026-01-31T23:10:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload-time = "2026-01-31T23:10:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload-time = "2026-01-31T23:10:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload-time = "2026-01-31T23:10:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload-time = "2026-01-31T23:10:50.087Z" }, + { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload-time = "2026-01-31T23:10:52.147Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload-time = "2026-01-31T23:10:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload-time = "2026-01-31T23:10:57.343Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload-time = "2026-01-31T23:10:59.429Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload-time = "2026-01-31T23:11:01.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload-time = "2026-01-31T23:11:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload-time = "2026-01-31T23:11:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload-time = "2026-01-31T23:11:08.248Z" }, + { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload-time = "2026-01-31T23:11:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload-time = "2026-01-31T23:11:12.176Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload-time = "2026-01-31T23:11:14.684Z" }, + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload-time = "2026-01-31T23:12:53.5Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload-time = "2026-01-31T23:12:55.933Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload-time = "2026-01-31T23:12:58.671Z" }, + { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload-time = "2026-01-31T23:13:00.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload-time = "2026-01-31T23:13:02.219Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload-time = "2026-01-31T23:13:04.62Z" }, + { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload-time = "2026-01-31T23:13:07.08Z" }, ] [[package]] @@ -2565,9 +2615,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/92/e5/3d197a0947a166649f566706d7a4c8f7fe38f1fa7b24c9bcffe4c7591d44/openai-2.21.0.tar.gz", hash = "sha256:81b48ce4b8bbb2cc3af02047ceb19561f7b1dc0d4e52d1de7f02abfd15aa59b7", size = 644374, upload_time = "2026-02-14T00:12:01.577Z" } +sdist = { url = "https://files.pythonhosted.org/packages/92/e5/3d197a0947a166649f566706d7a4c8f7fe38f1fa7b24c9bcffe4c7591d44/openai-2.21.0.tar.gz", hash = "sha256:81b48ce4b8bbb2cc3af02047ceb19561f7b1dc0d4e52d1de7f02abfd15aa59b7", size = 644374, upload-time = "2026-02-14T00:12:01.577Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cc/56/0a89092a453bb2c676d66abee44f863e742b2110d4dbb1dbcca3f7e5fc33/openai-2.21.0-py3-none-any.whl", hash = "sha256:0bc1c775e5b1536c294eded39ee08f8407656537ccc71b1004104fe1602e267c", size = 1103065, upload_time = "2026-02-14T00:11:59.603Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/0a89092a453bb2c676d66abee44f863e742b2110d4dbb1dbcca3f7e5fc33/openai-2.21.0-py3-none-any.whl", hash = "sha256:0bc1c775e5b1536c294eded39ee08f8407656537ccc71b1004104fe1602e267c", size = 1103065, upload-time = "2026-02-14T00:11:59.603Z" }, ] [[package]] @@ -2578,9 +2628,9 @@ dependencies = [ { name = "importlib-metadata" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload_time = "2025-12-11T13:32:39.182Z" } +sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload_time = "2025-12-11T13:32:17.304Z" }, + { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, ] [[package]] @@ -2590,9 +2640,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "opentelemetry-proto" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/9d/22d241b66f7bbde88a3bfa6847a351d2c46b84de23e71222c6aae25c7050/opentelemetry_exporter_otlp_proto_common-1.39.1.tar.gz", hash = "sha256:763370d4737a59741c89a67b50f9e39271639ee4afc999dadfe768541c027464", size = 20409, upload_time = "2025-12-11T13:32:40.885Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e9/9d/22d241b66f7bbde88a3bfa6847a351d2c46b84de23e71222c6aae25c7050/opentelemetry_exporter_otlp_proto_common-1.39.1.tar.gz", hash = "sha256:763370d4737a59741c89a67b50f9e39271639ee4afc999dadfe768541c027464", size = 20409, upload-time = "2025-12-11T13:32:40.885Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/02/ffc3e143d89a27ac21fd557365b98bd0653b98de8a101151d5805b5d4c33/opentelemetry_exporter_otlp_proto_common-1.39.1-py3-none-any.whl", hash = "sha256:08f8a5862d64cc3435105686d0216c1365dc5701f86844a8cd56597d0c764fde", size = 18366, upload_time = "2025-12-11T13:32:20.2Z" }, + { url = "https://files.pythonhosted.org/packages/8c/02/ffc3e143d89a27ac21fd557365b98bd0653b98de8a101151d5805b5d4c33/opentelemetry_exporter_otlp_proto_common-1.39.1-py3-none-any.whl", hash = "sha256:08f8a5862d64cc3435105686d0216c1365dc5701f86844a8cd56597d0c764fde", size = 18366, upload-time = "2025-12-11T13:32:20.2Z" }, ] [[package]] @@ -2608,9 +2658,9 @@ dependencies = [ { name = "opentelemetry-sdk" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/48/b329fed2c610c2c32c9366d9dc597202c9d1e58e631c137ba15248d8850f/opentelemetry_exporter_otlp_proto_grpc-1.39.1.tar.gz", hash = "sha256:772eb1c9287485d625e4dbe9c879898e5253fea111d9181140f51291b5fec3ad", size = 24650, upload_time = "2025-12-11T13:32:41.429Z" } +sdist = { url = "https://files.pythonhosted.org/packages/53/48/b329fed2c610c2c32c9366d9dc597202c9d1e58e631c137ba15248d8850f/opentelemetry_exporter_otlp_proto_grpc-1.39.1.tar.gz", hash = "sha256:772eb1c9287485d625e4dbe9c879898e5253fea111d9181140f51291b5fec3ad", size = 24650, upload-time = "2025-12-11T13:32:41.429Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/a3/cc9b66575bd6597b98b886a2067eea2693408d2d5f39dad9ab7fc264f5f3/opentelemetry_exporter_otlp_proto_grpc-1.39.1-py3-none-any.whl", hash = "sha256:fa1c136a05c7e9b4c09f739469cbdb927ea20b34088ab1d959a849b5cc589c18", size = 19766, upload_time = "2025-12-11T13:32:21.027Z" }, + { url = "https://files.pythonhosted.org/packages/81/a3/cc9b66575bd6597b98b886a2067eea2693408d2d5f39dad9ab7fc264f5f3/opentelemetry_exporter_otlp_proto_grpc-1.39.1-py3-none-any.whl", hash = "sha256:fa1c136a05c7e9b4c09f739469cbdb927ea20b34088ab1d959a849b5cc589c18", size = 19766, upload-time = "2025-12-11T13:32:21.027Z" }, ] [[package]] @@ -2626,9 +2676,9 @@ dependencies = [ { name = "requests" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/04/2a08fa9c0214ae38880df01e8bfae12b067ec0793446578575e5080d6545/opentelemetry_exporter_otlp_proto_http-1.39.1.tar.gz", hash = "sha256:31bdab9745c709ce90a49a0624c2bd445d31a28ba34275951a6a362d16a0b9cb", size = 17288, upload_time = "2025-12-11T13:32:42.029Z" } +sdist = { url = "https://files.pythonhosted.org/packages/80/04/2a08fa9c0214ae38880df01e8bfae12b067ec0793446578575e5080d6545/opentelemetry_exporter_otlp_proto_http-1.39.1.tar.gz", hash = "sha256:31bdab9745c709ce90a49a0624c2bd445d31a28ba34275951a6a362d16a0b9cb", size = 17288, upload-time = "2025-12-11T13:32:42.029Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/95/f1/b27d3e2e003cd9a3592c43d099d2ed8d0a947c15281bf8463a256db0b46c/opentelemetry_exporter_otlp_proto_http-1.39.1-py3-none-any.whl", hash = "sha256:d9f5207183dd752a412c4cd564ca8875ececba13be6e9c6c370ffb752fd59985", size = 19641, upload_time = "2025-12-11T13:32:22.248Z" }, + { url = "https://files.pythonhosted.org/packages/95/f1/b27d3e2e003cd9a3592c43d099d2ed8d0a947c15281bf8463a256db0b46c/opentelemetry_exporter_otlp_proto_http-1.39.1-py3-none-any.whl", hash = "sha256:d9f5207183dd752a412c4cd564ca8875ececba13be6e9c6c370ffb752fd59985", size = 19641, upload-time = "2025-12-11T13:32:22.248Z" }, ] [[package]] @@ -2638,9 +2688,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152, upload_time = "2025-12-11T13:32:48.681Z" } +sdist = { url = "https://files.pythonhosted.org/packages/49/1d/f25d76d8260c156c40c97c9ed4511ec0f9ce353f8108ca6e7561f82a06b2/opentelemetry_proto-1.39.1.tar.gz", hash = "sha256:6c8e05144fc0d3ed4d22c2289c6b126e03bcd0e6a7da0f16cedd2e1c2772e2c8", size = 46152, upload-time = "2025-12-11T13:32:48.681Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535, upload_time = "2025-12-11T13:32:33.866Z" }, + { url = "https://files.pythonhosted.org/packages/51/95/b40c96a7b5203005a0b03d8ce8cd212ff23f1793d5ba289c87a097571b18/opentelemetry_proto-1.39.1-py3-none-any.whl", hash = "sha256:22cdc78efd3b3765d09e68bfbd010d4fc254c9818afd0b6b423387d9dee46007", size = 72535, upload-time = "2025-12-11T13:32:33.866Z" }, ] [[package]] @@ -2652,9 +2702,9 @@ dependencies = [ { name = "opentelemetry-semantic-conventions" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload_time = "2025-12-11T13:32:49.369Z" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload_time = "2025-12-11T13:32:35.069Z" }, + { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" }, ] [[package]] @@ -2665,84 +2715,84 @@ dependencies = [ { name = "opentelemetry-api" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload_time = "2025-12-11T13:32:50.487Z" } +sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload_time = "2025-12-11T13:32:36.955Z" }, + { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" }, ] [[package]] name = "orjson" version = "3.11.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49", size = 6144992, upload_time = "2026-02-02T15:38:49.29Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/de/1a/a373746fa6d0e116dd9e54371a7b54622c44d12296d5d0f3ad5e3ff33490/orjson-3.11.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a02c833f38f36546ba65a452127633afce4cf0dd7296b753d3bb54e55e5c0174", size = 229140, upload_time = "2026-02-02T15:37:06.082Z" }, - { url = "https://files.pythonhosted.org/packages/52/a2/fa129e749d500f9b183e8a3446a193818a25f60261e9ce143ad61e975208/orjson-3.11.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63c6e6738d7c3470ad01601e23376aa511e50e1f3931395b9f9c722406d1a67", size = 128670, upload_time = "2026-02-02T15:37:08.002Z" }, - { url = "https://files.pythonhosted.org/packages/08/93/1e82011cd1e0bd051ef9d35bed1aa7fb4ea1f0a055dc2c841b46b43a9ebd/orjson-3.11.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:043d3006b7d32c7e233b8cfb1f01c651013ea079e08dcef7189a29abd8befe11", size = 123832, upload_time = "2026-02-02T15:37:09.191Z" }, - { url = "https://files.pythonhosted.org/packages/fe/d8/a26b431ef962c7d55736674dddade876822f3e33223c1f47a36879350d04/orjson-3.11.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57036b27ac8a25d81112eb0cc9835cd4833c5b16e1467816adc0015f59e870dc", size = 129171, upload_time = "2026-02-02T15:37:11.112Z" }, - { url = "https://files.pythonhosted.org/packages/a7/19/f47819b84a580f490da260c3ee9ade214cf4cf78ac9ce8c1c758f80fdfc9/orjson-3.11.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:733ae23ada68b804b222c44affed76b39e30806d38660bf1eb200520d259cc16", size = 141967, upload_time = "2026-02-02T15:37:12.282Z" }, - { url = "https://files.pythonhosted.org/packages/5b/cd/37ece39a0777ba077fdcdbe4cccae3be8ed00290c14bf8afdc548befc260/orjson-3.11.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5fdfad2093bdd08245f2e204d977facd5f871c88c4a71230d5bcbd0e43bf6222", size = 130991, upload_time = "2026-02-02T15:37:13.465Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ed/f2b5d66aa9b6b5c02ff5f120efc7b38c7c4962b21e6be0f00fd99a5c348e/orjson-3.11.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cededd6738e1c153530793998e31c05086582b08315db48ab66649768f326baa", size = 133674, upload_time = "2026-02-02T15:37:14.694Z" }, - { url = "https://files.pythonhosted.org/packages/c4/6e/baa83e68d1aa09fa8c3e5b2c087d01d0a0bd45256de719ed7bc22c07052d/orjson-3.11.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:14f440c7268c8f8633d1b3d443a434bd70cb15686117ea6beff8fdc8f5917a1e", size = 138722, upload_time = "2026-02-02T15:37:16.501Z" }, - { url = "https://files.pythonhosted.org/packages/0c/47/7f8ef4963b772cd56999b535e553f7eb5cd27e9dd6c049baee6f18bfa05d/orjson-3.11.7-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3a2479753bbb95b0ebcf7969f562cdb9668e6d12416a35b0dda79febf89cdea2", size = 409056, upload_time = "2026-02-02T15:37:17.895Z" }, - { url = "https://files.pythonhosted.org/packages/38/eb/2df104dd2244b3618f25325a656f85cc3277f74bbd91224752410a78f3c7/orjson-3.11.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:71924496986275a737f38e3f22b4e0878882b3f7a310d2ff4dc96e812789120c", size = 144196, upload_time = "2026-02-02T15:37:19.349Z" }, - { url = "https://files.pythonhosted.org/packages/b6/2a/ee41de0aa3a6686598661eae2b4ebdff1340c65bfb17fcff8b87138aab21/orjson-3.11.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b4a9eefdc70bf8bf9857f0290f973dec534ac84c35cd6a7f4083be43e7170a8f", size = 134979, upload_time = "2026-02-02T15:37:20.906Z" }, - { url = "https://files.pythonhosted.org/packages/4c/fa/92fc5d3d402b87a8b28277a9ed35386218a6a5287c7fe5ee9b9f02c53fb2/orjson-3.11.7-cp310-cp310-win32.whl", hash = "sha256:ae9e0b37a834cef7ce8f99de6498f8fad4a2c0bf6bfc3d02abd8ed56aa15b2de", size = 127968, upload_time = "2026-02-02T15:37:23.178Z" }, - { url = "https://files.pythonhosted.org/packages/07/29/a576bf36d73d60df06904d3844a9df08e25d59eba64363aaf8ec2f9bff41/orjson-3.11.7-cp310-cp310-win_amd64.whl", hash = "sha256:d772afdb22555f0c58cfc741bdae44180122b3616faa1ecadb595cd526e4c993", size = 125128, upload_time = "2026-02-02T15:37:24.329Z" }, - { url = "https://files.pythonhosted.org/packages/37/02/da6cb01fc6087048d7f61522c327edf4250f1683a58a839fdcc435746dd5/orjson-3.11.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9487abc2c2086e7c8eb9a211d2ce8855bae0e92586279d0d27b341d5ad76c85c", size = 228664, upload_time = "2026-02-02T15:37:25.542Z" }, - { url = "https://files.pythonhosted.org/packages/c1/c2/5885e7a5881dba9a9af51bc564e8967225a642b3e03d089289a35054e749/orjson-3.11.7-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:79cacb0b52f6004caf92405a7e1f11e6e2de8bdf9019e4f76b44ba045125cd6b", size = 125344, upload_time = "2026-02-02T15:37:26.92Z" }, - { url = "https://files.pythonhosted.org/packages/a4/1d/4e7688de0a92d1caf600dfd5fb70b4c5bfff51dfa61ac555072ef2d0d32a/orjson-3.11.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2e85fe4698b6a56d5e2ebf7ae87544d668eb6bde1ad1226c13f44663f20ec9e", size = 128404, upload_time = "2026-02-02T15:37:28.108Z" }, - { url = "https://files.pythonhosted.org/packages/2f/b2/ec04b74ae03a125db7bd69cffd014b227b7f341e3261bf75b5eb88a1aa92/orjson-3.11.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8d14b71c0b12963fe8a62aac87119f1afdf4cb88a400f61ca5ae581449efcb5", size = 123677, upload_time = "2026-02-02T15:37:30.287Z" }, - { url = "https://files.pythonhosted.org/packages/4c/69/f95bdf960605f08f827f6e3291fe243d8aa9c5c9ff017a8d7232209184c3/orjson-3.11.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91c81ef070c8f3220054115e1ef468b1c9ce8497b4e526cb9f68ab4dc0a7ac62", size = 128950, upload_time = "2026-02-02T15:37:31.595Z" }, - { url = "https://files.pythonhosted.org/packages/a4/1b/de59c57bae1d148ef298852abd31909ac3089cff370dfd4cd84cc99cbc42/orjson-3.11.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:411ebaf34d735e25e358a6d9e7978954a9c9d58cfb47bc6683cdc3964cd2f910", size = 141756, upload_time = "2026-02-02T15:37:32.985Z" }, - { url = "https://files.pythonhosted.org/packages/ee/9e/9decc59f4499f695f65c650f6cfa6cd4c37a3fbe8fa235a0a3614cb54386/orjson-3.11.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a16bcd08ab0bcdfc7e8801d9c4a9cc17e58418e4d48ddc6ded4e9e4b1a94062b", size = 130812, upload_time = "2026-02-02T15:37:34.204Z" }, - { url = "https://files.pythonhosted.org/packages/28/e6/59f932bcabd1eac44e334fe8e3281a92eacfcb450586e1f4bde0423728d8/orjson-3.11.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c0b51672e466fd7e56230ffbae7f1639e18d0ce023351fb75da21b71bc2c960", size = 133444, upload_time = "2026-02-02T15:37:35.446Z" }, - { url = "https://files.pythonhosted.org/packages/f1/36/b0f05c0eaa7ca30bc965e37e6a2956b0d67adb87a9872942d3568da846ae/orjson-3.11.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:136dcd6a2e796dfd9ffca9fc027d778567b0b7c9968d092842d3c323cef88aa8", size = 138609, upload_time = "2026-02-02T15:37:36.657Z" }, - { url = "https://files.pythonhosted.org/packages/b8/03/58ec7d302b8d86944c60c7b4b82975d5161fcce4c9bc8c6cb1d6741b6115/orjson-3.11.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7ba61079379b0ae29e117db13bda5f28d939766e410d321ec1624afc6a0b0504", size = 408918, upload_time = "2026-02-02T15:37:38.076Z" }, - { url = "https://files.pythonhosted.org/packages/06/3a/868d65ef9a8b99be723bd510de491349618abd9f62c826cf206d962db295/orjson-3.11.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0527a4510c300e3b406591b0ba69b5dc50031895b0a93743526a3fc45f59d26e", size = 143998, upload_time = "2026-02-02T15:37:39.706Z" }, - { url = "https://files.pythonhosted.org/packages/5b/c7/1e18e1c83afe3349f4f6dc9e14910f0ae5f82eac756d1412ea4018938535/orjson-3.11.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a709e881723c9b18acddcfb8ba357322491ad553e277cf467e1e7e20e2d90561", size = 134802, upload_time = "2026-02-02T15:37:41.002Z" }, - { url = "https://files.pythonhosted.org/packages/d4/0b/ccb7ee1a65b37e8eeb8b267dc953561d72370e85185e459616d4345bab34/orjson-3.11.7-cp311-cp311-win32.whl", hash = "sha256:c43b8b5bab288b6b90dac410cca7e986a4fa747a2e8f94615aea407da706980d", size = 127828, upload_time = "2026-02-02T15:37:42.241Z" }, - { url = "https://files.pythonhosted.org/packages/af/9e/55c776dffda3f381e0f07d010a4f5f3902bf48eaba1bb7684d301acd4924/orjson-3.11.7-cp311-cp311-win_amd64.whl", hash = "sha256:6543001328aa857187f905308a028935864aefe9968af3848401b6fe80dbb471", size = 124941, upload_time = "2026-02-02T15:37:43.444Z" }, - { url = "https://files.pythonhosted.org/packages/aa/8e/424a620fa7d263b880162505fb107ef5e0afaa765b5b06a88312ac291560/orjson-3.11.7-cp311-cp311-win_arm64.whl", hash = "sha256:1ee5cc7160a821dfe14f130bc8e63e7611051f964b463d9e2a3a573204446a4d", size = 126245, upload_time = "2026-02-02T15:37:45.18Z" }, - { url = "https://files.pythonhosted.org/packages/80/bf/76f4f1665f6983385938f0e2a5d7efa12a58171b8456c252f3bae8a4cf75/orjson-3.11.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bd03ea7606833655048dab1a00734a2875e3e86c276e1d772b2a02556f0d895f", size = 228545, upload_time = "2026-02-02T15:37:46.376Z" }, - { url = "https://files.pythonhosted.org/packages/79/53/6c72c002cb13b5a978a068add59b25a8bdf2800ac1c9c8ecdb26d6d97064/orjson-3.11.7-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:89e440ebc74ce8ab5c7bc4ce6757b4a6b1041becb127df818f6997b5c71aa60b", size = 125224, upload_time = "2026-02-02T15:37:47.697Z" }, - { url = "https://files.pythonhosted.org/packages/2c/83/10e48852865e5dd151bdfe652c06f7da484578ed02c5fca938e3632cb0b8/orjson-3.11.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ede977b5fe5ac91b1dffc0a517ca4542d2ec8a6a4ff7b2652d94f640796342a", size = 128154, upload_time = "2026-02-02T15:37:48.954Z" }, - { url = "https://files.pythonhosted.org/packages/6e/52/a66e22a2b9abaa374b4a081d410edab6d1e30024707b87eab7c734afe28d/orjson-3.11.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b7b1dae39230a393df353827c855a5f176271c23434cfd2db74e0e424e693e10", size = 123548, upload_time = "2026-02-02T15:37:50.187Z" }, - { url = "https://files.pythonhosted.org/packages/de/38/605d371417021359f4910c496f764c48ceb8997605f8c25bf1dfe58c0ebe/orjson-3.11.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed46f17096e28fb28d2975834836a639af7278aa87c84f68ab08fbe5b8bd75fa", size = 129000, upload_time = "2026-02-02T15:37:51.426Z" }, - { url = "https://files.pythonhosted.org/packages/44/98/af32e842b0ffd2335c89714d48ca4e3917b42f5d6ee5537832e069a4b3ac/orjson-3.11.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3726be79e36e526e3d9c1aceaadbfb4a04ee80a72ab47b3f3c17fefb9812e7b8", size = 141686, upload_time = "2026-02-02T15:37:52.607Z" }, - { url = "https://files.pythonhosted.org/packages/96/0b/fc793858dfa54be6feee940c1463370ece34b3c39c1ca0aa3845f5ba9892/orjson-3.11.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0724e265bc548af1dedebd9cb3d24b4e1c1e685a343be43e87ba922a5c5fff2f", size = 130812, upload_time = "2026-02-02T15:37:53.944Z" }, - { url = "https://files.pythonhosted.org/packages/dc/91/98a52415059db3f374757d0b7f0f16e3b5cd5976c90d1c2b56acaea039e6/orjson-3.11.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7745312efa9e11c17fbd3cb3097262d079da26930ae9ae7ba28fb738367cbad", size = 133440, upload_time = "2026-02-02T15:37:55.615Z" }, - { url = "https://files.pythonhosted.org/packages/dc/b6/cb540117bda61791f46381f8c26c8f93e802892830a6055748d3bb1925ab/orjson-3.11.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f904c24bdeabd4298f7a977ef14ca2a022ca921ed670b92ecd16ab6f3d01f867", size = 138386, upload_time = "2026-02-02T15:37:56.814Z" }, - { url = "https://files.pythonhosted.org/packages/63/1a/50a3201c334a7f17c231eee5f841342190723794e3b06293f26e7cf87d31/orjson-3.11.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b9fc4d0f81f394689e0814617aadc4f2ea0e8025f38c226cbf22d3b5ddbf025d", size = 408853, upload_time = "2026-02-02T15:37:58.291Z" }, - { url = "https://files.pythonhosted.org/packages/87/cd/8de1c67d0be44fdc22701e5989c0d015a2adf391498ad42c4dc589cd3013/orjson-3.11.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:849e38203e5be40b776ed2718e587faf204d184fc9a008ae441f9442320c0cab", size = 144130, upload_time = "2026-02-02T15:38:00.163Z" }, - { url = "https://files.pythonhosted.org/packages/0f/fe/d605d700c35dd55f51710d159fc54516a280923cd1b7e47508982fbb387d/orjson-3.11.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4682d1db3bcebd2b64757e0ddf9e87ae5f00d29d16c5cdf3a62f561d08cc3dd2", size = 134818, upload_time = "2026-02-02T15:38:01.507Z" }, - { url = "https://files.pythonhosted.org/packages/e4/e4/15ecc67edb3ddb3e2f46ae04475f2d294e8b60c1825fbe28a428b93b3fbd/orjson-3.11.7-cp312-cp312-win32.whl", hash = "sha256:f4f7c956b5215d949a1f65334cf9d7612dde38f20a95f2315deef167def91a6f", size = 127923, upload_time = "2026-02-02T15:38:02.75Z" }, - { url = "https://files.pythonhosted.org/packages/34/70/2e0855361f76198a3965273048c8e50a9695d88cd75811a5b46444895845/orjson-3.11.7-cp312-cp312-win_amd64.whl", hash = "sha256:bf742e149121dc5648ba0a08ea0871e87b660467ef168a3a5e53bc1fbd64bb74", size = 125007, upload_time = "2026-02-02T15:38:04.032Z" }, - { url = "https://files.pythonhosted.org/packages/68/40/c2051bd19fc467610fed469dc29e43ac65891571138f476834ca192bc290/orjson-3.11.7-cp312-cp312-win_arm64.whl", hash = "sha256:26c3b9132f783b7d7903bf1efb095fed8d4a3a85ec0d334ee8beff3d7a4749d5", size = 126089, upload_time = "2026-02-02T15:38:05.297Z" }, - { url = "https://files.pythonhosted.org/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733", size = 228390, upload_time = "2026-02-02T15:38:06.8Z" }, - { url = "https://files.pythonhosted.org/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4", size = 125189, upload_time = "2026-02-02T15:38:08.181Z" }, - { url = "https://files.pythonhosted.org/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785", size = 128106, upload_time = "2026-02-02T15:38:09.41Z" }, - { url = "https://files.pythonhosted.org/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539", size = 123363, upload_time = "2026-02-02T15:38:10.73Z" }, - { url = "https://files.pythonhosted.org/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1", size = 129007, upload_time = "2026-02-02T15:38:12.138Z" }, - { url = "https://files.pythonhosted.org/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1", size = 141667, upload_time = "2026-02-02T15:38:13.398Z" }, - { url = "https://files.pythonhosted.org/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705", size = 130832, upload_time = "2026-02-02T15:38:14.698Z" }, - { url = "https://files.pythonhosted.org/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace", size = 133373, upload_time = "2026-02-02T15:38:16.109Z" }, - { url = "https://files.pythonhosted.org/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b", size = 138307, upload_time = "2026-02-02T15:38:17.453Z" }, - { url = "https://files.pythonhosted.org/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157", size = 408695, upload_time = "2026-02-02T15:38:18.831Z" }, - { url = "https://files.pythonhosted.org/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3", size = 144099, upload_time = "2026-02-02T15:38:20.28Z" }, - { url = "https://files.pythonhosted.org/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223", size = 134806, upload_time = "2026-02-02T15:38:22.186Z" }, - { url = "https://files.pythonhosted.org/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3", size = 127914, upload_time = "2026-02-02T15:38:23.511Z" }, - { url = "https://files.pythonhosted.org/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757", size = 124986, upload_time = "2026-02-02T15:38:24.836Z" }, - { url = "https://files.pythonhosted.org/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539", size = 126045, upload_time = "2026-02-02T15:38:26.216Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49", size = 6144992, upload-time = "2026-02-02T15:38:49.29Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/1a/a373746fa6d0e116dd9e54371a7b54622c44d12296d5d0f3ad5e3ff33490/orjson-3.11.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a02c833f38f36546ba65a452127633afce4cf0dd7296b753d3bb54e55e5c0174", size = 229140, upload-time = "2026-02-02T15:37:06.082Z" }, + { url = "https://files.pythonhosted.org/packages/52/a2/fa129e749d500f9b183e8a3446a193818a25f60261e9ce143ad61e975208/orjson-3.11.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63c6e6738d7c3470ad01601e23376aa511e50e1f3931395b9f9c722406d1a67", size = 128670, upload-time = "2026-02-02T15:37:08.002Z" }, + { url = "https://files.pythonhosted.org/packages/08/93/1e82011cd1e0bd051ef9d35bed1aa7fb4ea1f0a055dc2c841b46b43a9ebd/orjson-3.11.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:043d3006b7d32c7e233b8cfb1f01c651013ea079e08dcef7189a29abd8befe11", size = 123832, upload-time = "2026-02-02T15:37:09.191Z" }, + { url = "https://files.pythonhosted.org/packages/fe/d8/a26b431ef962c7d55736674dddade876822f3e33223c1f47a36879350d04/orjson-3.11.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:57036b27ac8a25d81112eb0cc9835cd4833c5b16e1467816adc0015f59e870dc", size = 129171, upload-time = "2026-02-02T15:37:11.112Z" }, + { url = "https://files.pythonhosted.org/packages/a7/19/f47819b84a580f490da260c3ee9ade214cf4cf78ac9ce8c1c758f80fdfc9/orjson-3.11.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:733ae23ada68b804b222c44affed76b39e30806d38660bf1eb200520d259cc16", size = 141967, upload-time = "2026-02-02T15:37:12.282Z" }, + { url = "https://files.pythonhosted.org/packages/5b/cd/37ece39a0777ba077fdcdbe4cccae3be8ed00290c14bf8afdc548befc260/orjson-3.11.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5fdfad2093bdd08245f2e204d977facd5f871c88c4a71230d5bcbd0e43bf6222", size = 130991, upload-time = "2026-02-02T15:37:13.465Z" }, + { url = "https://files.pythonhosted.org/packages/8f/ed/f2b5d66aa9b6b5c02ff5f120efc7b38c7c4962b21e6be0f00fd99a5c348e/orjson-3.11.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cededd6738e1c153530793998e31c05086582b08315db48ab66649768f326baa", size = 133674, upload-time = "2026-02-02T15:37:14.694Z" }, + { url = "https://files.pythonhosted.org/packages/c4/6e/baa83e68d1aa09fa8c3e5b2c087d01d0a0bd45256de719ed7bc22c07052d/orjson-3.11.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:14f440c7268c8f8633d1b3d443a434bd70cb15686117ea6beff8fdc8f5917a1e", size = 138722, upload-time = "2026-02-02T15:37:16.501Z" }, + { url = "https://files.pythonhosted.org/packages/0c/47/7f8ef4963b772cd56999b535e553f7eb5cd27e9dd6c049baee6f18bfa05d/orjson-3.11.7-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:3a2479753bbb95b0ebcf7969f562cdb9668e6d12416a35b0dda79febf89cdea2", size = 409056, upload-time = "2026-02-02T15:37:17.895Z" }, + { url = "https://files.pythonhosted.org/packages/38/eb/2df104dd2244b3618f25325a656f85cc3277f74bbd91224752410a78f3c7/orjson-3.11.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:71924496986275a737f38e3f22b4e0878882b3f7a310d2ff4dc96e812789120c", size = 144196, upload-time = "2026-02-02T15:37:19.349Z" }, + { url = "https://files.pythonhosted.org/packages/b6/2a/ee41de0aa3a6686598661eae2b4ebdff1340c65bfb17fcff8b87138aab21/orjson-3.11.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b4a9eefdc70bf8bf9857f0290f973dec534ac84c35cd6a7f4083be43e7170a8f", size = 134979, upload-time = "2026-02-02T15:37:20.906Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fa/92fc5d3d402b87a8b28277a9ed35386218a6a5287c7fe5ee9b9f02c53fb2/orjson-3.11.7-cp310-cp310-win32.whl", hash = "sha256:ae9e0b37a834cef7ce8f99de6498f8fad4a2c0bf6bfc3d02abd8ed56aa15b2de", size = 127968, upload-time = "2026-02-02T15:37:23.178Z" }, + { url = "https://files.pythonhosted.org/packages/07/29/a576bf36d73d60df06904d3844a9df08e25d59eba64363aaf8ec2f9bff41/orjson-3.11.7-cp310-cp310-win_amd64.whl", hash = "sha256:d772afdb22555f0c58cfc741bdae44180122b3616faa1ecadb595cd526e4c993", size = 125128, upload-time = "2026-02-02T15:37:24.329Z" }, + { url = "https://files.pythonhosted.org/packages/37/02/da6cb01fc6087048d7f61522c327edf4250f1683a58a839fdcc435746dd5/orjson-3.11.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9487abc2c2086e7c8eb9a211d2ce8855bae0e92586279d0d27b341d5ad76c85c", size = 228664, upload-time = "2026-02-02T15:37:25.542Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c2/5885e7a5881dba9a9af51bc564e8967225a642b3e03d089289a35054e749/orjson-3.11.7-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:79cacb0b52f6004caf92405a7e1f11e6e2de8bdf9019e4f76b44ba045125cd6b", size = 125344, upload-time = "2026-02-02T15:37:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1d/4e7688de0a92d1caf600dfd5fb70b4c5bfff51dfa61ac555072ef2d0d32a/orjson-3.11.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2e85fe4698b6a56d5e2ebf7ae87544d668eb6bde1ad1226c13f44663f20ec9e", size = 128404, upload-time = "2026-02-02T15:37:28.108Z" }, + { url = "https://files.pythonhosted.org/packages/2f/b2/ec04b74ae03a125db7bd69cffd014b227b7f341e3261bf75b5eb88a1aa92/orjson-3.11.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8d14b71c0b12963fe8a62aac87119f1afdf4cb88a400f61ca5ae581449efcb5", size = 123677, upload-time = "2026-02-02T15:37:30.287Z" }, + { url = "https://files.pythonhosted.org/packages/4c/69/f95bdf960605f08f827f6e3291fe243d8aa9c5c9ff017a8d7232209184c3/orjson-3.11.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91c81ef070c8f3220054115e1ef468b1c9ce8497b4e526cb9f68ab4dc0a7ac62", size = 128950, upload-time = "2026-02-02T15:37:31.595Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1b/de59c57bae1d148ef298852abd31909ac3089cff370dfd4cd84cc99cbc42/orjson-3.11.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:411ebaf34d735e25e358a6d9e7978954a9c9d58cfb47bc6683cdc3964cd2f910", size = 141756, upload-time = "2026-02-02T15:37:32.985Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9e/9decc59f4499f695f65c650f6cfa6cd4c37a3fbe8fa235a0a3614cb54386/orjson-3.11.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a16bcd08ab0bcdfc7e8801d9c4a9cc17e58418e4d48ddc6ded4e9e4b1a94062b", size = 130812, upload-time = "2026-02-02T15:37:34.204Z" }, + { url = "https://files.pythonhosted.org/packages/28/e6/59f932bcabd1eac44e334fe8e3281a92eacfcb450586e1f4bde0423728d8/orjson-3.11.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c0b51672e466fd7e56230ffbae7f1639e18d0ce023351fb75da21b71bc2c960", size = 133444, upload-time = "2026-02-02T15:37:35.446Z" }, + { url = "https://files.pythonhosted.org/packages/f1/36/b0f05c0eaa7ca30bc965e37e6a2956b0d67adb87a9872942d3568da846ae/orjson-3.11.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:136dcd6a2e796dfd9ffca9fc027d778567b0b7c9968d092842d3c323cef88aa8", size = 138609, upload-time = "2026-02-02T15:37:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/b8/03/58ec7d302b8d86944c60c7b4b82975d5161fcce4c9bc8c6cb1d6741b6115/orjson-3.11.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7ba61079379b0ae29e117db13bda5f28d939766e410d321ec1624afc6a0b0504", size = 408918, upload-time = "2026-02-02T15:37:38.076Z" }, + { url = "https://files.pythonhosted.org/packages/06/3a/868d65ef9a8b99be723bd510de491349618abd9f62c826cf206d962db295/orjson-3.11.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0527a4510c300e3b406591b0ba69b5dc50031895b0a93743526a3fc45f59d26e", size = 143998, upload-time = "2026-02-02T15:37:39.706Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c7/1e18e1c83afe3349f4f6dc9e14910f0ae5f82eac756d1412ea4018938535/orjson-3.11.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a709e881723c9b18acddcfb8ba357322491ad553e277cf467e1e7e20e2d90561", size = 134802, upload-time = "2026-02-02T15:37:41.002Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0b/ccb7ee1a65b37e8eeb8b267dc953561d72370e85185e459616d4345bab34/orjson-3.11.7-cp311-cp311-win32.whl", hash = "sha256:c43b8b5bab288b6b90dac410cca7e986a4fa747a2e8f94615aea407da706980d", size = 127828, upload-time = "2026-02-02T15:37:42.241Z" }, + { url = "https://files.pythonhosted.org/packages/af/9e/55c776dffda3f381e0f07d010a4f5f3902bf48eaba1bb7684d301acd4924/orjson-3.11.7-cp311-cp311-win_amd64.whl", hash = "sha256:6543001328aa857187f905308a028935864aefe9968af3848401b6fe80dbb471", size = 124941, upload-time = "2026-02-02T15:37:43.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/8e/424a620fa7d263b880162505fb107ef5e0afaa765b5b06a88312ac291560/orjson-3.11.7-cp311-cp311-win_arm64.whl", hash = "sha256:1ee5cc7160a821dfe14f130bc8e63e7611051f964b463d9e2a3a573204446a4d", size = 126245, upload-time = "2026-02-02T15:37:45.18Z" }, + { url = "https://files.pythonhosted.org/packages/80/bf/76f4f1665f6983385938f0e2a5d7efa12a58171b8456c252f3bae8a4cf75/orjson-3.11.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bd03ea7606833655048dab1a00734a2875e3e86c276e1d772b2a02556f0d895f", size = 228545, upload-time = "2026-02-02T15:37:46.376Z" }, + { url = "https://files.pythonhosted.org/packages/79/53/6c72c002cb13b5a978a068add59b25a8bdf2800ac1c9c8ecdb26d6d97064/orjson-3.11.7-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:89e440ebc74ce8ab5c7bc4ce6757b4a6b1041becb127df818f6997b5c71aa60b", size = 125224, upload-time = "2026-02-02T15:37:47.697Z" }, + { url = "https://files.pythonhosted.org/packages/2c/83/10e48852865e5dd151bdfe652c06f7da484578ed02c5fca938e3632cb0b8/orjson-3.11.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ede977b5fe5ac91b1dffc0a517ca4542d2ec8a6a4ff7b2652d94f640796342a", size = 128154, upload-time = "2026-02-02T15:37:48.954Z" }, + { url = "https://files.pythonhosted.org/packages/6e/52/a66e22a2b9abaa374b4a081d410edab6d1e30024707b87eab7c734afe28d/orjson-3.11.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b7b1dae39230a393df353827c855a5f176271c23434cfd2db74e0e424e693e10", size = 123548, upload-time = "2026-02-02T15:37:50.187Z" }, + { url = "https://files.pythonhosted.org/packages/de/38/605d371417021359f4910c496f764c48ceb8997605f8c25bf1dfe58c0ebe/orjson-3.11.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed46f17096e28fb28d2975834836a639af7278aa87c84f68ab08fbe5b8bd75fa", size = 129000, upload-time = "2026-02-02T15:37:51.426Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/af32e842b0ffd2335c89714d48ca4e3917b42f5d6ee5537832e069a4b3ac/orjson-3.11.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3726be79e36e526e3d9c1aceaadbfb4a04ee80a72ab47b3f3c17fefb9812e7b8", size = 141686, upload-time = "2026-02-02T15:37:52.607Z" }, + { url = "https://files.pythonhosted.org/packages/96/0b/fc793858dfa54be6feee940c1463370ece34b3c39c1ca0aa3845f5ba9892/orjson-3.11.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0724e265bc548af1dedebd9cb3d24b4e1c1e685a343be43e87ba922a5c5fff2f", size = 130812, upload-time = "2026-02-02T15:37:53.944Z" }, + { url = "https://files.pythonhosted.org/packages/dc/91/98a52415059db3f374757d0b7f0f16e3b5cd5976c90d1c2b56acaea039e6/orjson-3.11.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7745312efa9e11c17fbd3cb3097262d079da26930ae9ae7ba28fb738367cbad", size = 133440, upload-time = "2026-02-02T15:37:55.615Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/cb540117bda61791f46381f8c26c8f93e802892830a6055748d3bb1925ab/orjson-3.11.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f904c24bdeabd4298f7a977ef14ca2a022ca921ed670b92ecd16ab6f3d01f867", size = 138386, upload-time = "2026-02-02T15:37:56.814Z" }, + { url = "https://files.pythonhosted.org/packages/63/1a/50a3201c334a7f17c231eee5f841342190723794e3b06293f26e7cf87d31/orjson-3.11.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b9fc4d0f81f394689e0814617aadc4f2ea0e8025f38c226cbf22d3b5ddbf025d", size = 408853, upload-time = "2026-02-02T15:37:58.291Z" }, + { url = "https://files.pythonhosted.org/packages/87/cd/8de1c67d0be44fdc22701e5989c0d015a2adf391498ad42c4dc589cd3013/orjson-3.11.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:849e38203e5be40b776ed2718e587faf204d184fc9a008ae441f9442320c0cab", size = 144130, upload-time = "2026-02-02T15:38:00.163Z" }, + { url = "https://files.pythonhosted.org/packages/0f/fe/d605d700c35dd55f51710d159fc54516a280923cd1b7e47508982fbb387d/orjson-3.11.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4682d1db3bcebd2b64757e0ddf9e87ae5f00d29d16c5cdf3a62f561d08cc3dd2", size = 134818, upload-time = "2026-02-02T15:38:01.507Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e4/15ecc67edb3ddb3e2f46ae04475f2d294e8b60c1825fbe28a428b93b3fbd/orjson-3.11.7-cp312-cp312-win32.whl", hash = "sha256:f4f7c956b5215d949a1f65334cf9d7612dde38f20a95f2315deef167def91a6f", size = 127923, upload-time = "2026-02-02T15:38:02.75Z" }, + { url = "https://files.pythonhosted.org/packages/34/70/2e0855361f76198a3965273048c8e50a9695d88cd75811a5b46444895845/orjson-3.11.7-cp312-cp312-win_amd64.whl", hash = "sha256:bf742e149121dc5648ba0a08ea0871e87b660467ef168a3a5e53bc1fbd64bb74", size = 125007, upload-time = "2026-02-02T15:38:04.032Z" }, + { url = "https://files.pythonhosted.org/packages/68/40/c2051bd19fc467610fed469dc29e43ac65891571138f476834ca192bc290/orjson-3.11.7-cp312-cp312-win_arm64.whl", hash = "sha256:26c3b9132f783b7d7903bf1efb095fed8d4a3a85ec0d334ee8beff3d7a4749d5", size = 126089, upload-time = "2026-02-02T15:38:05.297Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733", size = 228390, upload-time = "2026-02-02T15:38:06.8Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4", size = 125189, upload-time = "2026-02-02T15:38:08.181Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785", size = 128106, upload-time = "2026-02-02T15:38:09.41Z" }, + { url = "https://files.pythonhosted.org/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539", size = 123363, upload-time = "2026-02-02T15:38:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1", size = 129007, upload-time = "2026-02-02T15:38:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1", size = 141667, upload-time = "2026-02-02T15:38:13.398Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705", size = 130832, upload-time = "2026-02-02T15:38:14.698Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace", size = 133373, upload-time = "2026-02-02T15:38:16.109Z" }, + { url = "https://files.pythonhosted.org/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b", size = 138307, upload-time = "2026-02-02T15:38:17.453Z" }, + { url = "https://files.pythonhosted.org/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157", size = 408695, upload-time = "2026-02-02T15:38:18.831Z" }, + { url = "https://files.pythonhosted.org/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3", size = 144099, upload-time = "2026-02-02T15:38:20.28Z" }, + { url = "https://files.pythonhosted.org/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223", size = 134806, upload-time = "2026-02-02T15:38:22.186Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3", size = 127914, upload-time = "2026-02-02T15:38:23.511Z" }, + { url = "https://files.pythonhosted.org/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757", size = 124986, upload-time = "2026-02-02T15:38:24.836Z" }, + { url = "https://files.pythonhosted.org/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539", size = 126045, upload-time = "2026-02-02T15:38:26.216Z" }, ] [[package]] name = "packaging" version = "26.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload_time = "2026-01-21T20:50:39.064Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload_time = "2026-01-21T20:50:37.788Z" }, + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, ] [[package]] @@ -2759,42 +2809,42 @@ dependencies = [ { name = "pytz", marker = "python_full_version < '3.11'" }, { name = "tzdata", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload_time = "2025-09-29T23:34:51.853Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload_time = "2025-09-29T23:16:53.287Z" }, - { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload_time = "2025-09-29T23:17:04.522Z" }, - { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload_time = "2025-09-29T23:17:18.444Z" }, - { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload_time = "2025-09-29T23:17:35.846Z" }, - { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload_time = "2025-09-29T23:17:49.341Z" }, - { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload_time = "2025-09-29T23:18:03.722Z" }, - { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload_time = "2025-09-29T23:18:18.505Z" }, - { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload_time = "2025-09-29T23:18:30.065Z" }, - { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload_time = "2025-09-29T23:38:56.071Z" }, - { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload_time = "2025-09-29T23:18:41.627Z" }, - { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload_time = "2025-09-29T23:18:56.834Z" }, - { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload_time = "2025-09-29T23:19:09.247Z" }, - { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload_time = "2025-09-29T23:19:25.342Z" }, - { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload_time = "2025-09-29T23:19:38.296Z" }, - { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload_time = "2025-09-29T23:19:48.856Z" }, - { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload_time = "2025-09-29T23:39:08.659Z" }, - { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload_time = "2025-09-29T23:19:59.765Z" }, - { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload_time = "2025-09-29T23:20:14.098Z" }, - { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload_time = "2025-09-29T23:20:26.76Z" }, - { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload_time = "2025-09-29T23:20:41.344Z" }, - { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload_time = "2025-09-29T23:20:54.139Z" }, - { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload_time = "2025-09-29T23:21:05.024Z" }, - { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload_time = "2025-09-29T23:21:15.979Z" }, - { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload_time = "2025-09-29T23:21:27.165Z" }, - { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload_time = "2025-09-29T23:21:40.532Z" }, - { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload_time = "2025-09-29T23:21:55.77Z" }, - { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload_time = "2025-09-29T23:22:10.109Z" }, - { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload_time = "2025-09-29T23:25:04.889Z" }, - { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload_time = "2025-09-29T23:22:24.343Z" }, - { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload_time = "2025-09-29T23:22:37.762Z" }, - { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload_time = "2025-09-29T23:22:51.688Z" }, - { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload_time = "2025-09-29T23:23:05.042Z" }, - { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload_time = "2025-09-29T23:23:28.57Z" }, - { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload_time = "2025-09-29T23:24:24.876Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/33/01/d40b85317f86cf08d853a4f495195c73815fdf205eef3993821720274518/pandas-2.3.3.tar.gz", hash = "sha256:e05e1af93b977f7eafa636d043f9f94c7ee3ac81af99c13508215942e64c993b", size = 4495223, upload-time = "2025-09-29T23:34:51.853Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/f7/f425a00df4fcc22b292c6895c6831c0c8ae1d9fac1e024d16f98a9ce8749/pandas-2.3.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:376c6446ae31770764215a6c937f72d917f214b43560603cd60da6408f183b6c", size = 11555763, upload-time = "2025-09-29T23:16:53.287Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/66d99628ff8ce7857aca52fed8f0066ce209f96be2fede6cef9f84e8d04f/pandas-2.3.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e19d192383eab2f4ceb30b412b22ea30690c9e618f78870357ae1d682912015a", size = 10801217, upload-time = "2025-09-29T23:17:04.522Z" }, + { url = "https://files.pythonhosted.org/packages/1d/03/3fc4a529a7710f890a239cc496fc6d50ad4a0995657dccc1d64695adb9f4/pandas-2.3.3-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5caf26f64126b6c7aec964f74266f435afef1c1b13da3b0636c7518a1fa3e2b1", size = 12148791, upload-time = "2025-09-29T23:17:18.444Z" }, + { url = "https://files.pythonhosted.org/packages/40/a8/4dac1f8f8235e5d25b9955d02ff6f29396191d4e665d71122c3722ca83c5/pandas-2.3.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dd7478f1463441ae4ca7308a70e90b33470fa593429f9d4c578dd00d1fa78838", size = 12769373, upload-time = "2025-09-29T23:17:35.846Z" }, + { url = "https://files.pythonhosted.org/packages/df/91/82cc5169b6b25440a7fc0ef3a694582418d875c8e3ebf796a6d6470aa578/pandas-2.3.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4793891684806ae50d1288c9bae9330293ab4e083ccd1c5e383c34549c6e4250", size = 13200444, upload-time = "2025-09-29T23:17:49.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/ae/89b3283800ab58f7af2952704078555fa60c807fff764395bb57ea0b0dbd/pandas-2.3.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28083c648d9a99a5dd035ec125d42439c6c1c525098c58af0fc38dd1a7a1b3d4", size = 13858459, upload-time = "2025-09-29T23:18:03.722Z" }, + { url = "https://files.pythonhosted.org/packages/85/72/530900610650f54a35a19476eca5104f38555afccda1aa11a92ee14cb21d/pandas-2.3.3-cp310-cp310-win_amd64.whl", hash = "sha256:503cf027cf9940d2ceaa1a93cfb5f8c8c7e6e90720a2850378f0b3f3b1e06826", size = 11346086, upload-time = "2025-09-29T23:18:18.505Z" }, + { url = "https://files.pythonhosted.org/packages/c1/fa/7ac648108144a095b4fb6aa3de1954689f7af60a14cf25583f4960ecb878/pandas-2.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:602b8615ebcc4a0c1751e71840428ddebeb142ec02c786e8ad6b1ce3c8dec523", size = 11578790, upload-time = "2025-09-29T23:18:30.065Z" }, + { url = "https://files.pythonhosted.org/packages/9b/35/74442388c6cf008882d4d4bdfc4109be87e9b8b7ccd097ad1e7f006e2e95/pandas-2.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8fe25fc7b623b0ef6b5009149627e34d2a4657e880948ec3c840e9402e5c1b45", size = 10833831, upload-time = "2025-09-29T23:38:56.071Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e4/de154cbfeee13383ad58d23017da99390b91d73f8c11856f2095e813201b/pandas-2.3.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b468d3dad6ff947df92dcb32ede5b7bd41a9b3cceef0a30ed925f6d01fb8fa66", size = 12199267, upload-time = "2025-09-29T23:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/bf/c9/63f8d545568d9ab91476b1818b4741f521646cbdd151c6efebf40d6de6f7/pandas-2.3.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b98560e98cb334799c0b07ca7967ac361a47326e9b4e5a7dfb5ab2b1c9d35a1b", size = 12789281, upload-time = "2025-09-29T23:18:56.834Z" }, + { url = "https://files.pythonhosted.org/packages/f2/00/a5ac8c7a0e67fd1a6059e40aa08fa1c52cc00709077d2300e210c3ce0322/pandas-2.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37b5848ba49824e5c30bedb9c830ab9b7751fd049bc7914533e01c65f79791", size = 13240453, upload-time = "2025-09-29T23:19:09.247Z" }, + { url = "https://files.pythonhosted.org/packages/27/4d/5c23a5bc7bd209231618dd9e606ce076272c9bc4f12023a70e03a86b4067/pandas-2.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:db4301b2d1f926ae677a751eb2bd0e8c5f5319c9cb3f88b0becbbb0b07b34151", size = 13890361, upload-time = "2025-09-29T23:19:25.342Z" }, + { url = "https://files.pythonhosted.org/packages/8e/59/712db1d7040520de7a4965df15b774348980e6df45c129b8c64d0dbe74ef/pandas-2.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:f086f6fe114e19d92014a1966f43a3e62285109afe874f067f5abbdcbb10e59c", size = 11348702, upload-time = "2025-09-29T23:19:38.296Z" }, + { url = "https://files.pythonhosted.org/packages/9c/fb/231d89e8637c808b997d172b18e9d4a4bc7bf31296196c260526055d1ea0/pandas-2.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d21f6d74eb1725c2efaa71a2bfc661a0689579b58e9c0ca58a739ff0b002b53", size = 11597846, upload-time = "2025-09-29T23:19:48.856Z" }, + { url = "https://files.pythonhosted.org/packages/5c/bd/bf8064d9cfa214294356c2d6702b716d3cf3bb24be59287a6a21e24cae6b/pandas-2.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3fd2f887589c7aa868e02632612ba39acb0b8948faf5cc58f0850e165bd46f35", size = 10729618, upload-time = "2025-09-29T23:39:08.659Z" }, + { url = "https://files.pythonhosted.org/packages/57/56/cf2dbe1a3f5271370669475ead12ce77c61726ffd19a35546e31aa8edf4e/pandas-2.3.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ecaf1e12bdc03c86ad4a7ea848d66c685cb6851d807a26aa245ca3d2017a1908", size = 11737212, upload-time = "2025-09-29T23:19:59.765Z" }, + { url = "https://files.pythonhosted.org/packages/e5/63/cd7d615331b328e287d8233ba9fdf191a9c2d11b6af0c7a59cfcec23de68/pandas-2.3.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b3d11d2fda7eb164ef27ffc14b4fcab16a80e1ce67e9f57e19ec0afaf715ba89", size = 12362693, upload-time = "2025-09-29T23:20:14.098Z" }, + { url = "https://files.pythonhosted.org/packages/a6/de/8b1895b107277d52f2b42d3a6806e69cfef0d5cf1d0ba343470b9d8e0a04/pandas-2.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a68e15f780eddf2b07d242e17a04aa187a7ee12b40b930bfdd78070556550e98", size = 12771002, upload-time = "2025-09-29T23:20:26.76Z" }, + { url = "https://files.pythonhosted.org/packages/87/21/84072af3187a677c5893b170ba2c8fbe450a6ff911234916da889b698220/pandas-2.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:371a4ab48e950033bcf52b6527eccb564f52dc826c02afd9a1bc0ab731bba084", size = 13450971, upload-time = "2025-09-29T23:20:41.344Z" }, + { url = "https://files.pythonhosted.org/packages/86/41/585a168330ff063014880a80d744219dbf1dd7a1c706e75ab3425a987384/pandas-2.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:a16dcec078a01eeef8ee61bf64074b4e524a2a3f4b3be9326420cabe59c4778b", size = 10992722, upload-time = "2025-09-29T23:20:54.139Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4b/18b035ee18f97c1040d94debd8f2e737000ad70ccc8f5513f4eefad75f4b/pandas-2.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:56851a737e3470de7fa88e6131f41281ed440d29a9268dcbf0002da5ac366713", size = 11544671, upload-time = "2025-09-29T23:21:05.024Z" }, + { url = "https://files.pythonhosted.org/packages/31/94/72fac03573102779920099bcac1c3b05975c2cb5f01eac609faf34bed1ca/pandas-2.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bdcd9d1167f4885211e401b3036c0c8d9e274eee67ea8d0758a256d60704cfe8", size = 10680807, upload-time = "2025-09-29T23:21:15.979Z" }, + { url = "https://files.pythonhosted.org/packages/16/87/9472cf4a487d848476865321de18cc8c920b8cab98453ab79dbbc98db63a/pandas-2.3.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e32e7cc9af0f1cc15548288a51a3b681cc2a219faa838e995f7dc53dbab1062d", size = 11709872, upload-time = "2025-09-29T23:21:27.165Z" }, + { url = "https://files.pythonhosted.org/packages/15/07/284f757f63f8a8d69ed4472bfd85122bd086e637bf4ed09de572d575a693/pandas-2.3.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:318d77e0e42a628c04dc56bcef4b40de67918f7041c2b061af1da41dcff670ac", size = 12306371, upload-time = "2025-09-29T23:21:40.532Z" }, + { url = "https://files.pythonhosted.org/packages/33/81/a3afc88fca4aa925804a27d2676d22dcd2031c2ebe08aabd0ae55b9ff282/pandas-2.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4e0a175408804d566144e170d0476b15d78458795bb18f1304fb94160cabf40c", size = 12765333, upload-time = "2025-09-29T23:21:55.77Z" }, + { url = "https://files.pythonhosted.org/packages/8d/0f/b4d4ae743a83742f1153464cf1a8ecfafc3ac59722a0b5c8602310cb7158/pandas-2.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2d9ab0fc11822b5eece72ec9587e172f63cff87c00b062f6e37448ced4493", size = 13418120, upload-time = "2025-09-29T23:22:10.109Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c7/e54682c96a895d0c808453269e0b5928a07a127a15704fedb643e9b0a4c8/pandas-2.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:f8bfc0e12dc78f777f323f55c58649591b2cd0c43534e8355c51d3fede5f4dee", size = 10993991, upload-time = "2025-09-29T23:25:04.889Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ca/3f8d4f49740799189e1395812f3bf23b5e8fc7c190827d55a610da72ce55/pandas-2.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:75ea25f9529fdec2d2e93a42c523962261e567d250b0013b16210e1d40d7c2e5", size = 12048227, upload-time = "2025-09-29T23:22:24.343Z" }, + { url = "https://files.pythonhosted.org/packages/0e/5a/f43efec3e8c0cc92c4663ccad372dbdff72b60bdb56b2749f04aa1d07d7e/pandas-2.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74ecdf1d301e812db96a465a525952f4dde225fdb6d8e5a521d47e1f42041e21", size = 11411056, upload-time = "2025-09-29T23:22:37.762Z" }, + { url = "https://files.pythonhosted.org/packages/46/b1/85331edfc591208c9d1a63a06baa67b21d332e63b7a591a5ba42a10bb507/pandas-2.3.3-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6435cb949cb34ec11cc9860246ccb2fdc9ecd742c12d3304989017d53f039a78", size = 11645189, upload-time = "2025-09-29T23:22:51.688Z" }, + { url = "https://files.pythonhosted.org/packages/44/23/78d645adc35d94d1ac4f2a3c4112ab6f5b8999f4898b8cdf01252f8df4a9/pandas-2.3.3-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:900f47d8f20860de523a1ac881c4c36d65efcb2eb850e6948140fa781736e110", size = 12121912, upload-time = "2025-09-29T23:23:05.042Z" }, + { url = "https://files.pythonhosted.org/packages/53/da/d10013df5e6aaef6b425aa0c32e1fc1f3e431e4bcabd420517dceadce354/pandas-2.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a45c765238e2ed7d7c608fc5bc4a6f88b642f2f01e70c0c23d2224dd21829d86", size = 12712160, upload-time = "2025-09-29T23:23:28.57Z" }, + { url = "https://files.pythonhosted.org/packages/bd/17/e756653095a083d8a37cbd816cb87148debcfcd920129b25f99dd8d04271/pandas-2.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4fc4c21971a1a9f4bdb4c73978c7f7256caa3e62b323f70d6cb80db583350bc", size = 13199233, upload-time = "2025-09-29T23:24:24.876Z" }, ] [[package]] @@ -2816,57 +2866,57 @@ dependencies = [ { name = "python-dateutil", marker = "python_full_version >= '3.11'" }, { name = "tzdata", marker = "(python_full_version >= '3.11' and sys_platform == 'emscripten') or (python_full_version >= '3.11' and sys_platform == 'win32')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f", size = 4633005, upload_time = "2026-01-21T15:52:04.726Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/46/1e/b184654a856e75e975a6ee95d6577b51c271cd92cb2b020c9378f53e0032/pandas-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d64ce01eb9cdca96a15266aa679ae50212ec52757c79204dbc7701a222401850", size = 10313247, upload_time = "2026-01-21T15:50:15.775Z" }, - { url = "https://files.pythonhosted.org/packages/dd/5e/e04a547ad0f0183bf151fd7c7a477468e3b85ff2ad231c566389e6cc9587/pandas-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:613e13426069793aa1ec53bdcc3b86e8d32071daea138bbcf4fa959c9cdaa2e2", size = 9913131, upload_time = "2026-01-21T15:50:18.611Z" }, - { url = "https://files.pythonhosted.org/packages/a2/93/bb77bfa9fc2aba9f7204db807d5d3fb69832ed2854c60ba91b4c65ba9219/pandas-3.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0192fee1f1a8e743b464a6607858ee4b071deb0b118eb143d71c2a1d170996d5", size = 10741925, upload_time = "2026-01-21T15:50:21.058Z" }, - { url = "https://files.pythonhosted.org/packages/62/fb/89319812eb1d714bfc04b7f177895caeba8ab4a37ef6712db75ed786e2e0/pandas-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b853319dec8d5e0c8b875374c078ef17f2269986a78168d9bd57e49bf650ae", size = 11245979, upload_time = "2026-01-21T15:50:23.413Z" }, - { url = "https://files.pythonhosted.org/packages/a9/63/684120486f541fc88da3862ed31165b3b3e12b6a1c7b93be4597bc84e26c/pandas-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:707a9a877a876c326ae2cb640fbdc4ef63b0a7b9e2ef55c6df9942dcee8e2af9", size = 11756337, upload_time = "2026-01-21T15:50:25.932Z" }, - { url = "https://files.pythonhosted.org/packages/39/92/7eb0ad232312b59aec61550c3c81ad0743898d10af5df7f80bc5e5065416/pandas-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:afd0aa3d0b5cda6e0b8ffc10dbcca3b09ef3cbcd3fe2b27364f85fdc04e1989d", size = 12325517, upload_time = "2026-01-21T15:50:27.952Z" }, - { url = "https://files.pythonhosted.org/packages/51/27/bf9436dd0a4fc3130acec0828951c7ef96a0631969613a9a35744baf27f6/pandas-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:113b4cca2614ff7e5b9fee9b6f066618fe73c5a83e99d721ffc41217b2bf57dd", size = 9881576, upload_time = "2026-01-21T15:50:30.149Z" }, - { url = "https://files.pythonhosted.org/packages/e7/2b/c618b871fce0159fd107516336e82891b404e3f340821853c2fc28c7830f/pandas-3.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c14837eba8e99a8da1527c0280bba29b0eb842f64aa94982c5e21227966e164b", size = 9140807, upload_time = "2026-01-21T15:50:32.308Z" }, - { url = "https://files.pythonhosted.org/packages/0b/38/db33686f4b5fa64d7af40d96361f6a4615b8c6c8f1b3d334eee46ae6160e/pandas-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9803b31f5039b3c3b10cc858c5e40054adb4b29b4d81cb2fd789f4121c8efbcd", size = 10334013, upload_time = "2026-01-21T15:50:34.771Z" }, - { url = "https://files.pythonhosted.org/packages/a5/7b/9254310594e9774906bacdd4e732415e1f86ab7dbb4b377ef9ede58cd8ec/pandas-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14c2a4099cd38a1d18ff108168ea417909b2dea3bd1ebff2ccf28ddb6a74d740", size = 9874154, upload_time = "2026-01-21T15:50:36.67Z" }, - { url = "https://files.pythonhosted.org/packages/63/d4/726c5a67a13bc66643e66d2e9ff115cead482a44fc56991d0c4014f15aaf/pandas-3.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d257699b9a9960e6125686098d5714ac59d05222bef7a5e6af7a7fd87c650801", size = 10384433, upload_time = "2026-01-21T15:50:39.132Z" }, - { url = "https://files.pythonhosted.org/packages/bf/2e/9211f09bedb04f9832122942de8b051804b31a39cfbad199a819bb88d9f3/pandas-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:69780c98f286076dcafca38d8b8eee1676adf220199c0a39f0ecbf976b68151a", size = 10864519, upload_time = "2026-01-21T15:50:41.043Z" }, - { url = "https://files.pythonhosted.org/packages/00/8d/50858522cdc46ac88b9afdc3015e298959a70a08cd21e008a44e9520180c/pandas-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4a66384f017240f3858a4c8a7cf21b0591c3ac885cddb7758a589f0f71e87ebb", size = 11394124, upload_time = "2026-01-21T15:50:43.377Z" }, - { url = "https://files.pythonhosted.org/packages/86/3f/83b2577db02503cd93d8e95b0f794ad9d4be0ba7cb6c8bcdcac964a34a42/pandas-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be8c515c9bc33989d97b89db66ea0cececb0f6e3c2a87fcc8b69443a6923e95f", size = 11920444, upload_time = "2026-01-21T15:50:45.932Z" }, - { url = "https://files.pythonhosted.org/packages/64/2d/4f8a2f192ed12c90a0aab47f5557ece0e56b0370c49de9454a09de7381b2/pandas-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a453aad8c4f4e9f166436994a33884442ea62aa8b27d007311e87521b97246e1", size = 9730970, upload_time = "2026-01-21T15:50:47.962Z" }, - { url = "https://files.pythonhosted.org/packages/d4/64/ff571be435cf1e643ca98d0945d76732c0b4e9c37191a89c8550b105eed1/pandas-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:da768007b5a33057f6d9053563d6b74dd6d029c337d93c6d0d22a763a5c2ecc0", size = 9041950, upload_time = "2026-01-21T15:50:50.422Z" }, - { url = "https://files.pythonhosted.org/packages/6f/fa/7f0ac4ca8877c57537aaff2a842f8760e630d8e824b730eb2e859ffe96ca/pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b78d646249b9a2bc191040988c7bb524c92fa8534fb0898a0741d7e6f2ffafa6", size = 10307129, upload_time = "2026-01-21T15:50:52.877Z" }, - { url = "https://files.pythonhosted.org/packages/6f/11/28a221815dcea4c0c9414dfc845e34a84a6a7dabc6da3194498ed5ba4361/pandas-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bc9cba7b355cb4162442a88ce495e01cb605f17ac1e27d6596ac963504e0305f", size = 9850201, upload_time = "2026-01-21T15:50:54.807Z" }, - { url = "https://files.pythonhosted.org/packages/ba/da/53bbc8c5363b7e5bd10f9ae59ab250fc7a382ea6ba08e4d06d8694370354/pandas-3.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c9a1a149aed3b6c9bf246033ff91e1b02d529546c5d6fb6b74a28fea0cf4c70", size = 10354031, upload_time = "2026-01-21T15:50:57.463Z" }, - { url = "https://files.pythonhosted.org/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95683af6175d884ee89471842acfca29172a85031fccdabc35e50c0984470a0e", size = 10861165, upload_time = "2026-01-21T15:50:59.32Z" }, - { url = "https://files.pythonhosted.org/packages/a5/fe/05a51e3cac11d161472b8297bd41723ea98013384dd6d76d115ce3482f9b/pandas-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1fbbb5a7288719e36b76b4f18d46ede46e7f916b6c8d9915b756b0a6c3f792b3", size = 11359359, upload_time = "2026-01-21T15:51:02.014Z" }, - { url = "https://files.pythonhosted.org/packages/ee/56/ba620583225f9b85a4d3e69c01df3e3870659cc525f67929b60e9f21dcd1/pandas-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e8b9808590fa364416b49b2a35c1f4cf2785a6c156935879e57f826df22038e", size = 11912907, upload_time = "2026-01-21T15:51:05.175Z" }, - { url = "https://files.pythonhosted.org/packages/c9/8c/c6638d9f67e45e07656b3826405c5cc5f57f6fd07c8b2572ade328c86e22/pandas-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:98212a38a709feb90ae658cb6227ea3657c22ba8157d4b8f913cd4c950de5e7e", size = 9732138, upload_time = "2026-01-21T15:51:07.569Z" }, - { url = "https://files.pythonhosted.org/packages/7b/bf/bd1335c3bf1770b6d8fed2799993b11c4971af93bb1b729b9ebbc02ca2ec/pandas-3.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:177d9df10b3f43b70307a149d7ec49a1229a653f907aa60a48f1877d0e6be3be", size = 9033568, upload_time = "2026-01-21T15:51:09.484Z" }, - { url = "https://files.pythonhosted.org/packages/8e/c6/f5e2171914d5e29b9171d495344097d54e3ffe41d2d85d8115baba4dc483/pandas-3.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2713810ad3806767b89ad3b7b69ba153e1c6ff6d9c20f9c2140379b2a98b6c98", size = 10741936, upload_time = "2026-01-21T15:51:11.693Z" }, - { url = "https://files.pythonhosted.org/packages/51/88/9a0164f99510a1acb9f548691f022c756c2314aad0d8330a24616c14c462/pandas-3.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:15d59f885ee5011daf8335dff47dcb8a912a27b4ad7826dc6cbe809fd145d327", size = 10393884, upload_time = "2026-01-21T15:51:14.197Z" }, - { url = "https://files.pythonhosted.org/packages/e0/53/b34d78084d88d8ae2b848591229da8826d1e65aacf00b3abe34023467648/pandas-3.0.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24e6547fb64d2c92665dd2adbfa4e85fa4fd70a9c070e7cfb03b629a0bbab5eb", size = 10310740, upload_time = "2026-01-21T15:51:16.093Z" }, - { url = "https://files.pythonhosted.org/packages/5b/d3/bee792e7c3d6930b74468d990604325701412e55d7aaf47460a22311d1a5/pandas-3.0.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48ee04b90e2505c693d3f8e8f524dab8cb8aaf7ddcab52c92afa535e717c4812", size = 10700014, upload_time = "2026-01-21T15:51:18.818Z" }, - { url = "https://files.pythonhosted.org/packages/55/db/2570bc40fb13aaed1cbc3fbd725c3a60ee162477982123c3adc8971e7ac1/pandas-3.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66f72fb172959af42a459e27a8d8d2c7e311ff4c1f7db6deb3b643dbc382ae08", size = 11323737, upload_time = "2026-01-21T15:51:20.784Z" }, - { url = "https://files.pythonhosted.org/packages/bc/2e/297ac7f21c8181b62a4cccebad0a70caf679adf3ae5e83cb676194c8acc3/pandas-3.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4a4a400ca18230976724a5066f20878af785f36c6756e498e94c2a5e5d57779c", size = 11771558, upload_time = "2026-01-21T15:51:22.977Z" }, - { url = "https://files.pythonhosted.org/packages/0a/46/e1c6876d71c14332be70239acce9ad435975a80541086e5ffba2f249bcf6/pandas-3.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:940eebffe55528074341a5a36515f3e4c5e25e958ebbc764c9502cfc35ba3faa", size = 10473771, upload_time = "2026-01-21T15:51:25.285Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f", size = 4633005, upload-time = "2026-01-21T15:52:04.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/1e/b184654a856e75e975a6ee95d6577b51c271cd92cb2b020c9378f53e0032/pandas-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d64ce01eb9cdca96a15266aa679ae50212ec52757c79204dbc7701a222401850", size = 10313247, upload-time = "2026-01-21T15:50:15.775Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/e04a547ad0f0183bf151fd7c7a477468e3b85ff2ad231c566389e6cc9587/pandas-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:613e13426069793aa1ec53bdcc3b86e8d32071daea138bbcf4fa959c9cdaa2e2", size = 9913131, upload-time = "2026-01-21T15:50:18.611Z" }, + { url = "https://files.pythonhosted.org/packages/a2/93/bb77bfa9fc2aba9f7204db807d5d3fb69832ed2854c60ba91b4c65ba9219/pandas-3.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0192fee1f1a8e743b464a6607858ee4b071deb0b118eb143d71c2a1d170996d5", size = 10741925, upload-time = "2026-01-21T15:50:21.058Z" }, + { url = "https://files.pythonhosted.org/packages/62/fb/89319812eb1d714bfc04b7f177895caeba8ab4a37ef6712db75ed786e2e0/pandas-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b853319dec8d5e0c8b875374c078ef17f2269986a78168d9bd57e49bf650ae", size = 11245979, upload-time = "2026-01-21T15:50:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/a9/63/684120486f541fc88da3862ed31165b3b3e12b6a1c7b93be4597bc84e26c/pandas-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:707a9a877a876c326ae2cb640fbdc4ef63b0a7b9e2ef55c6df9942dcee8e2af9", size = 11756337, upload-time = "2026-01-21T15:50:25.932Z" }, + { url = "https://files.pythonhosted.org/packages/39/92/7eb0ad232312b59aec61550c3c81ad0743898d10af5df7f80bc5e5065416/pandas-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:afd0aa3d0b5cda6e0b8ffc10dbcca3b09ef3cbcd3fe2b27364f85fdc04e1989d", size = 12325517, upload-time = "2026-01-21T15:50:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/51/27/bf9436dd0a4fc3130acec0828951c7ef96a0631969613a9a35744baf27f6/pandas-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:113b4cca2614ff7e5b9fee9b6f066618fe73c5a83e99d721ffc41217b2bf57dd", size = 9881576, upload-time = "2026-01-21T15:50:30.149Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2b/c618b871fce0159fd107516336e82891b404e3f340821853c2fc28c7830f/pandas-3.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c14837eba8e99a8da1527c0280bba29b0eb842f64aa94982c5e21227966e164b", size = 9140807, upload-time = "2026-01-21T15:50:32.308Z" }, + { url = "https://files.pythonhosted.org/packages/0b/38/db33686f4b5fa64d7af40d96361f6a4615b8c6c8f1b3d334eee46ae6160e/pandas-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9803b31f5039b3c3b10cc858c5e40054adb4b29b4d81cb2fd789f4121c8efbcd", size = 10334013, upload-time = "2026-01-21T15:50:34.771Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7b/9254310594e9774906bacdd4e732415e1f86ab7dbb4b377ef9ede58cd8ec/pandas-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14c2a4099cd38a1d18ff108168ea417909b2dea3bd1ebff2ccf28ddb6a74d740", size = 9874154, upload-time = "2026-01-21T15:50:36.67Z" }, + { url = "https://files.pythonhosted.org/packages/63/d4/726c5a67a13bc66643e66d2e9ff115cead482a44fc56991d0c4014f15aaf/pandas-3.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d257699b9a9960e6125686098d5714ac59d05222bef7a5e6af7a7fd87c650801", size = 10384433, upload-time = "2026-01-21T15:50:39.132Z" }, + { url = "https://files.pythonhosted.org/packages/bf/2e/9211f09bedb04f9832122942de8b051804b31a39cfbad199a819bb88d9f3/pandas-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:69780c98f286076dcafca38d8b8eee1676adf220199c0a39f0ecbf976b68151a", size = 10864519, upload-time = "2026-01-21T15:50:41.043Z" }, + { url = "https://files.pythonhosted.org/packages/00/8d/50858522cdc46ac88b9afdc3015e298959a70a08cd21e008a44e9520180c/pandas-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4a66384f017240f3858a4c8a7cf21b0591c3ac885cddb7758a589f0f71e87ebb", size = 11394124, upload-time = "2026-01-21T15:50:43.377Z" }, + { url = "https://files.pythonhosted.org/packages/86/3f/83b2577db02503cd93d8e95b0f794ad9d4be0ba7cb6c8bcdcac964a34a42/pandas-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be8c515c9bc33989d97b89db66ea0cececb0f6e3c2a87fcc8b69443a6923e95f", size = 11920444, upload-time = "2026-01-21T15:50:45.932Z" }, + { url = "https://files.pythonhosted.org/packages/64/2d/4f8a2f192ed12c90a0aab47f5557ece0e56b0370c49de9454a09de7381b2/pandas-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a453aad8c4f4e9f166436994a33884442ea62aa8b27d007311e87521b97246e1", size = 9730970, upload-time = "2026-01-21T15:50:47.962Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/ff571be435cf1e643ca98d0945d76732c0b4e9c37191a89c8550b105eed1/pandas-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:da768007b5a33057f6d9053563d6b74dd6d029c337d93c6d0d22a763a5c2ecc0", size = 9041950, upload-time = "2026-01-21T15:50:50.422Z" }, + { url = "https://files.pythonhosted.org/packages/6f/fa/7f0ac4ca8877c57537aaff2a842f8760e630d8e824b730eb2e859ffe96ca/pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b78d646249b9a2bc191040988c7bb524c92fa8534fb0898a0741d7e6f2ffafa6", size = 10307129, upload-time = "2026-01-21T15:50:52.877Z" }, + { url = "https://files.pythonhosted.org/packages/6f/11/28a221815dcea4c0c9414dfc845e34a84a6a7dabc6da3194498ed5ba4361/pandas-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bc9cba7b355cb4162442a88ce495e01cb605f17ac1e27d6596ac963504e0305f", size = 9850201, upload-time = "2026-01-21T15:50:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/ba/da/53bbc8c5363b7e5bd10f9ae59ab250fc7a382ea6ba08e4d06d8694370354/pandas-3.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c9a1a149aed3b6c9bf246033ff91e1b02d529546c5d6fb6b74a28fea0cf4c70", size = 10354031, upload-time = "2026-01-21T15:50:57.463Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95683af6175d884ee89471842acfca29172a85031fccdabc35e50c0984470a0e", size = 10861165, upload-time = "2026-01-21T15:50:59.32Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fe/05a51e3cac11d161472b8297bd41723ea98013384dd6d76d115ce3482f9b/pandas-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1fbbb5a7288719e36b76b4f18d46ede46e7f916b6c8d9915b756b0a6c3f792b3", size = 11359359, upload-time = "2026-01-21T15:51:02.014Z" }, + { url = "https://files.pythonhosted.org/packages/ee/56/ba620583225f9b85a4d3e69c01df3e3870659cc525f67929b60e9f21dcd1/pandas-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e8b9808590fa364416b49b2a35c1f4cf2785a6c156935879e57f826df22038e", size = 11912907, upload-time = "2026-01-21T15:51:05.175Z" }, + { url = "https://files.pythonhosted.org/packages/c9/8c/c6638d9f67e45e07656b3826405c5cc5f57f6fd07c8b2572ade328c86e22/pandas-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:98212a38a709feb90ae658cb6227ea3657c22ba8157d4b8f913cd4c950de5e7e", size = 9732138, upload-time = "2026-01-21T15:51:07.569Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bf/bd1335c3bf1770b6d8fed2799993b11c4971af93bb1b729b9ebbc02ca2ec/pandas-3.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:177d9df10b3f43b70307a149d7ec49a1229a653f907aa60a48f1877d0e6be3be", size = 9033568, upload-time = "2026-01-21T15:51:09.484Z" }, + { url = "https://files.pythonhosted.org/packages/8e/c6/f5e2171914d5e29b9171d495344097d54e3ffe41d2d85d8115baba4dc483/pandas-3.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2713810ad3806767b89ad3b7b69ba153e1c6ff6d9c20f9c2140379b2a98b6c98", size = 10741936, upload-time = "2026-01-21T15:51:11.693Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/9a0164f99510a1acb9f548691f022c756c2314aad0d8330a24616c14c462/pandas-3.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:15d59f885ee5011daf8335dff47dcb8a912a27b4ad7826dc6cbe809fd145d327", size = 10393884, upload-time = "2026-01-21T15:51:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/e0/53/b34d78084d88d8ae2b848591229da8826d1e65aacf00b3abe34023467648/pandas-3.0.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24e6547fb64d2c92665dd2adbfa4e85fa4fd70a9c070e7cfb03b629a0bbab5eb", size = 10310740, upload-time = "2026-01-21T15:51:16.093Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d3/bee792e7c3d6930b74468d990604325701412e55d7aaf47460a22311d1a5/pandas-3.0.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48ee04b90e2505c693d3f8e8f524dab8cb8aaf7ddcab52c92afa535e717c4812", size = 10700014, upload-time = "2026-01-21T15:51:18.818Z" }, + { url = "https://files.pythonhosted.org/packages/55/db/2570bc40fb13aaed1cbc3fbd725c3a60ee162477982123c3adc8971e7ac1/pandas-3.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66f72fb172959af42a459e27a8d8d2c7e311ff4c1f7db6deb3b643dbc382ae08", size = 11323737, upload-time = "2026-01-21T15:51:20.784Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2e/297ac7f21c8181b62a4cccebad0a70caf679adf3ae5e83cb676194c8acc3/pandas-3.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4a4a400ca18230976724a5066f20878af785f36c6756e498e94c2a5e5d57779c", size = 11771558, upload-time = "2026-01-21T15:51:22.977Z" }, + { url = "https://files.pythonhosted.org/packages/0a/46/e1c6876d71c14332be70239acce9ad435975a80541086e5ffba2f249bcf6/pandas-3.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:940eebffe55528074341a5a36515f3e4c5e25e958ebbc764c9502cfc35ba3faa", size = 10473771, upload-time = "2026-01-21T15:51:25.285Z" }, ] [[package]] name = "parso" version = "0.8.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload_time = "2026-05-01T23:13:02.138Z" } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload_time = "2026-05-01T23:12:58.867Z" }, + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, ] [[package]] name = "passlib" version = "1.7.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b6/06/9da9ee59a67fae7761aab3ccc84fa4f3f33f125b370f1ccdb915bf967c11/passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04", size = 689844, upload_time = "2020-10-08T19:00:52.121Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b6/06/9da9ee59a67fae7761aab3ccc84fa4f3f33f125b370f1ccdb915bf967c11/passlib-1.7.4.tar.gz", hash = "sha256:defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04", size = 689844, upload-time = "2020-10-08T19:00:52.121Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3b/a4/ab6b7589382ca3df236e03faa71deac88cae040af60c071a78d254a62172/passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1", size = 525554, upload_time = "2020-10-08T19:00:49.856Z" }, + { url = "https://files.pythonhosted.org/packages/3b/a4/ab6b7589382ca3df236e03faa71deac88cae040af60c071a78d254a62172/passlib-1.7.4-py2.py3-none-any.whl", hash = "sha256:aa6bca462b8d8bda89c70b382f0c298a20b5560af6cbfa2dce410c0a2fb669f1", size = 525554, upload-time = "2020-10-08T19:00:49.856Z" }, ] [package.optional-dependencies] @@ -2878,45 +2928,45 @@ bcrypt = [ name = "pathspec" version = "1.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload_time = "2026-01-27T03:59:46.938Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/36/e27608899f9b8d4dff0617b2d9ab17ca5608956ca44461ac14ac48b44015/pathspec-1.0.4.tar.gz", hash = "sha256:0210e2ae8a21a9137c0d470578cb0e595af87edaa6ebf12ff176f14a02e0e645", size = 131200, upload-time = "2026-01-27T03:59:46.938Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload_time = "2026-01-27T03:59:45.137Z" }, + { url = "https://files.pythonhosted.org/packages/ef/3c/2c197d226f9ea224a9ab8d197933f9da0ae0aac5b6e0f884e2b8d9c8e9f7/pathspec-1.0.4-py3-none-any.whl", hash = "sha256:fb6ae2fd4e7c921a165808a552060e722767cfa526f99ca5156ed2ce45a5c723", size = 55206, upload-time = "2026-01-27T03:59:45.137Z" }, ] [[package]] name = "phonenumbers" version = "9.0.24" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/bf/277ae37edb6f5189937223cc3b2a21b8de9d70ac2d0eb684cf33ba055fdd/phonenumbers-9.0.24.tar.gz", hash = "sha256:97c38e4b5b8af992c75de01bd9c0f84e61701a9c900fd84f49744714910a4dc3", size = 2298138, upload_time = "2026-02-13T11:28:57.724Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/bf/277ae37edb6f5189937223cc3b2a21b8de9d70ac2d0eb684cf33ba055fdd/phonenumbers-9.0.24.tar.gz", hash = "sha256:97c38e4b5b8af992c75de01bd9c0f84e61701a9c900fd84f49744714910a4dc3", size = 2298138, upload-time = "2026-02-13T11:28:57.724Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/c7/b01beac6077df7261d92c6b52408617690147144d8946f6f6ecb7d9766ab/phonenumbers-9.0.24-py2.py3-none-any.whl", hash = "sha256:fa86ab7112ef8b286a811392311bd76bbbae7d1d271c2ed26cf73f2e9fa4d3c6", size = 2584198, upload_time = "2026-02-13T11:28:55.334Z" }, + { url = "https://files.pythonhosted.org/packages/2a/c7/b01beac6077df7261d92c6b52408617690147144d8946f6f6ecb7d9766ab/phonenumbers-9.0.24-py2.py3-none-any.whl", hash = "sha256:fa86ab7112ef8b286a811392311bd76bbbae7d1d271c2ed26cf73f2e9fa4d3c6", size = 2584198, upload-time = "2026-02-13T11:28:55.334Z" }, ] [[package]] name = "pip" version = "26.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/48/83/0d7d4e9efe3344b8e2fe25d93be44f64b65364d3c8d7bc6dc90198d5422e/pip-26.0.1.tar.gz", hash = "sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8", size = 1812747, upload_time = "2026-02-05T02:20:18.702Z" } +sdist = { url = "https://files.pythonhosted.org/packages/48/83/0d7d4e9efe3344b8e2fe25d93be44f64b65364d3c8d7bc6dc90198d5422e/pip-26.0.1.tar.gz", hash = "sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8", size = 1812747, upload-time = "2026-02-05T02:20:18.702Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl", hash = "sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b", size = 1787723, upload_time = "2026-02-05T02:20:16.416Z" }, + { url = "https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl", hash = "sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b", size = 1787723, upload-time = "2026-02-05T02:20:16.416Z" }, ] [[package]] name = "platformdirs" version = "4.9.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz", hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291", size = 28394, upload_time = "2026-02-16T03:56:10.574Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/04/fea538adf7dbbd6d186f551d595961e564a3b6715bdf276b477460858672/platformdirs-4.9.2.tar.gz", hash = "sha256:9a33809944b9db043ad67ca0db94b14bf452cc6aeaac46a88ea55b26e2e9d291", size = 28394, upload-time = "2026-02-16T03:56:10.574Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl", hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd", size = 21168, upload_time = "2026-02-16T03:56:08.891Z" }, + { url = "https://files.pythonhosted.org/packages/48/31/05e764397056194206169869b50cf2fee4dbbbc71b344705b9c0d878d4d8/platformdirs-4.9.2-py3-none-any.whl", hash = "sha256:9170634f126f8efdae22fb58ae8a0eaa86f38365bc57897a6c4f781d1f5875bd", size = 21168, upload-time = "2026-02-16T03:56:08.891Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload_time = "2025-05-15T12:30:07.975Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload_time = "2025-05-15T12:30:06.134Z" }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] @@ -2930,9 +2980,9 @@ dependencies = [ { name = "pyyaml" }, { name = "virtualenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/64/10/97ee2fa54dff1e9da9badbc5e35d0bbaef0776271ea5907eccf64140f72f/pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af", size = 177815, upload_time = "2024-07-28T19:59:01.538Z" } +sdist = { url = "https://files.pythonhosted.org/packages/64/10/97ee2fa54dff1e9da9badbc5e35d0bbaef0776271ea5907eccf64140f72f/pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af", size = 177815, upload-time = "2024-07-28T19:59:01.538Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/07/92/caae8c86e94681b42c246f0bca35c059a2f0529e5b92619f6aba4cf7e7b6/pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f", size = 204643, upload_time = "2024-07-28T19:58:59.335Z" }, + { url = "https://files.pythonhosted.org/packages/07/92/caae8c86e94681b42c246f0bca35c059a2f0529e5b92619f6aba4cf7e7b6/pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f", size = 204643, upload-time = "2024-07-28T19:58:59.335Z" }, ] [[package]] @@ -2946,9 +2996,9 @@ dependencies = [ { name = "lxml" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a3/6f/e49bd31941eff2987076383fa6d811eb785a28f498f5bb131e981bd71e13/premailer-3.10.0.tar.gz", hash = "sha256:d1875a8411f5dc92b53ef9f193db6c0f879dc378d618e0ad292723e388bfe4c2", size = 24342, upload_time = "2021-08-02T20:32:54.328Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/6f/e49bd31941eff2987076383fa6d811eb785a28f498f5bb131e981bd71e13/premailer-3.10.0.tar.gz", hash = "sha256:d1875a8411f5dc92b53ef9f193db6c0f879dc378d618e0ad292723e388bfe4c2", size = 24342, upload-time = "2021-08-02T20:32:54.328Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/07/4e8d94f94c7d41ca5ddf8a9695ad87b888104e2fd41a35546c1dc9ca74ac/premailer-3.10.0-py2.py3-none-any.whl", hash = "sha256:021b8196364d7df96d04f9ade51b794d0b77bcc19e998321c515633a2273be1a", size = 19544, upload_time = "2021-08-02T20:32:52.771Z" }, + { url = "https://files.pythonhosted.org/packages/b1/07/4e8d94f94c7d41ca5ddf8a9695ad87b888104e2fd41a35546c1dc9ca74ac/premailer-3.10.0-py2.py3-none-any.whl", hash = "sha256:021b8196364d7df96d04f9ade51b794d0b77bcc19e998321c515633a2273be1a", size = 19544, upload-time = "2021-08-02T20:32:52.771Z" }, ] [[package]] @@ -2959,40 +3009,40 @@ dependencies = [ { name = "cymem" }, { name = "murmurhash" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bf/34/eb4f5f0f678e152a96e826da867d2f41c4b18a2d589e40e1dd3347219e91/preshed-3.0.12.tar.gz", hash = "sha256:b73f9a8b54ee1d44529cc6018356896cff93d48f755f29c134734d9371c0d685", size = 15027, upload_time = "2025-11-17T13:00:33.621Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e5/d0/1245d6d89b051dd5356ffaaa43da05408f37d2da4cfadcf77356ba46da4f/preshed-3.0.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d8f0bc207bb5bfe69e3a232367c264cac900dc14e9219cd061b98eaca9e7da61", size = 128866, upload_time = "2025-11-17T12:59:06.633Z" }, - { url = "https://files.pythonhosted.org/packages/24/24/f06650f22450888434a51b17971b650186d2e68f5eaf292e6e8e4be7974c/preshed-3.0.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8a8d571c044ddab5369d30d172c87545f44daa1510bde92b7e0144a8f4f92b", size = 124848, upload_time = "2025-11-17T12:59:08.641Z" }, - { url = "https://files.pythonhosted.org/packages/88/a1/78bdd4938c3286998c0609491c4a0a8aee2f4de4003364112c295a2f32b8/preshed-3.0.12-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6cca080ac9bbc978625c8f0c56ef17471162193c7c1a4622fbde7721da1bdd40", size = 780279, upload_time = "2025-11-17T12:59:10.009Z" }, - { url = "https://files.pythonhosted.org/packages/8f/f8/6fbf083346a007927a9e4ce3686ae54ba74191e74fc3af34863ea7be9dea/preshed-3.0.12-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cfd3672007c7b7cac554a0e5f263d7bc94109dc508ee1ef43b2f6ec8c2e2e9e8", size = 781954, upload_time = "2025-11-17T12:59:11.574Z" }, - { url = "https://files.pythonhosted.org/packages/91/c3/f28c7a6cc03e85002780b75249c3557c0fe503792ac66a7b9c5379569999/preshed-3.0.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e01609074713aba93a8143480e67942fbe6898fe134b98d813819bec42a8cae7", size = 799772, upload_time = "2025-11-17T12:59:14.371Z" }, - { url = "https://files.pythonhosted.org/packages/46/25/ca22fa0db162e286db7a94a4f08c1ceb4872d3d64610b807148935ae084c/preshed-3.0.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:30d8a53015663b0d666012bc10d22e8bdd7359191d84a8980ae902e0b87caf24", size = 820532, upload_time = "2025-11-17T12:59:16.281Z" }, - { url = "https://files.pythonhosted.org/packages/0f/57/459a6eea7e15034756f4c2650a9aba6d023aa7976748b18476bd4c0b6fef/preshed-3.0.12-cp310-cp310-win_amd64.whl", hash = "sha256:bf2235bbe09b4862b914086f37a065cc84259e1b53c8ed996cbbd6519ea36b62", size = 117482, upload_time = "2025-11-17T12:59:18.36Z" }, - { url = "https://files.pythonhosted.org/packages/80/1f/a7b648a57d259891bd9b2c8ef1978622fa37b46a9368f054881488b9b4fe/preshed-3.0.12-cp310-cp310-win_arm64.whl", hash = "sha256:139d08b10693bfccb0ea000f47dcca5fc4a78fc1b96c1832c920be9b0a4c8f04", size = 105504, upload_time = "2025-11-17T12:59:19.562Z" }, - { url = "https://files.pythonhosted.org/packages/1e/54/d1e02d0a0ea348fb6a769506166e366abfe87ee917c2f11f7139c7acbf10/preshed-3.0.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc45fda3fd4ae1ae15c37f18f0777cf389ce9184ef8884b39b18894416fd1341", size = 128439, upload_time = "2025-11-17T12:59:21.317Z" }, - { url = "https://files.pythonhosted.org/packages/8c/cb/685ca57ca6e438345b3f6c20226705a0e056a3de399a5bf8a9ee89b3dd2b/preshed-3.0.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75d6e628bc78c022dbb9267242715718f862c3105927732d166076ff009d65de", size = 124544, upload_time = "2025-11-17T12:59:22.944Z" }, - { url = "https://files.pythonhosted.org/packages/f8/07/018fcd3bf298304e1570065cf80601ac16acd29f799578fd47b715dd3ca2/preshed-3.0.12-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b901cff5c814facf7a864b0a4c14a16d45fa1379899a585b3fb48ee36a2dccdb", size = 824728, upload_time = "2025-11-17T12:59:24.614Z" }, - { url = "https://files.pythonhosted.org/packages/79/dc/d888b328fcedae530df53396d9fc0006026aa8793fec54d7d34f57f31ff5/preshed-3.0.12-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d1099253bf73dd3c39313280bd5331841f769637b27ddb576ff362c4e7bad298", size = 825969, upload_time = "2025-11-17T12:59:26.493Z" }, - { url = "https://files.pythonhosted.org/packages/21/51/f19933301f42ece1ffef1f7f4c370d09f0351c43c528e66fac24560e44d2/preshed-3.0.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1af4a049ffe9d0246e5dc10d6f54820ed064c40e5c3f7b6526127c664008297c", size = 842346, upload_time = "2025-11-17T12:59:28.092Z" }, - { url = "https://files.pythonhosted.org/packages/51/46/025f60fd3d51bf60606a0f8f0cd39c40068b9b5e4d249bca1682e4ff09c3/preshed-3.0.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57159bcedca0cb4c99390f8a6e730f8659fdb663a5a3efcd9c4531e0f54b150e", size = 865504, upload_time = "2025-11-17T12:59:29.648Z" }, - { url = "https://files.pythonhosted.org/packages/88/b5/2e6ee5ab19b03e7983fc5e1850c812fb71dc178dd140d6aca3b45306bdf7/preshed-3.0.12-cp311-cp311-win_amd64.whl", hash = "sha256:8fe9cf1745e203e5aa58b8700436f78da1dcf0f0e2efb0054b467effd9d7d19d", size = 117736, upload_time = "2025-11-17T12:59:30.974Z" }, - { url = "https://files.pythonhosted.org/packages/1e/17/8a0a8f4b01e71b5fb7c5cd4c9fec04d7b852d42f1f9e096b01e7d2b16b17/preshed-3.0.12-cp311-cp311-win_arm64.whl", hash = "sha256:12d880f8786cb6deac34e99b8b07146fb92d22fbca0023208e03325f5944606b", size = 105127, upload_time = "2025-11-17T12:59:32.171Z" }, - { url = "https://files.pythonhosted.org/packages/4b/f7/ff3aca937eeaee19c52c45ddf92979546e52ed0686e58be4bc09c47e7d88/preshed-3.0.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2779861f5d69480493519ed123a622a13012d1182126779036b99d9d989bf7e9", size = 129958, upload_time = "2025-11-17T12:59:33.391Z" }, - { url = "https://files.pythonhosted.org/packages/80/24/fd654a9c0f5f3ed1a9b1d8a392f063ae9ca29ad0b462f0732ae0147f7cee/preshed-3.0.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffe1fd7d92f51ed34383e20d8b734780c814ca869cfdb7e07f2d31651f90cdf4", size = 124550, upload_time = "2025-11-17T12:59:34.688Z" }, - { url = "https://files.pythonhosted.org/packages/71/49/8271c7f680696f4b0880f44357d2a903d649cb9f6e60a1efc97a203104df/preshed-3.0.12-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:91893404858502cc4e856d338fef3d2a4a552135f79a1041c24eb919817c19db", size = 874987, upload_time = "2025-11-17T12:59:36.062Z" }, - { url = "https://files.pythonhosted.org/packages/a3/a5/ca200187ca1632f1e2c458b72f1bd100fa8b55deecd5d72e1e4ebf09e98c/preshed-3.0.12-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9e06e8f2ba52f183eb9817a616cdebe84a211bb859a2ffbc23f3295d0b189638", size = 866499, upload_time = "2025-11-17T12:59:37.586Z" }, - { url = "https://files.pythonhosted.org/packages/87/a1/943b61f850c44899910c21996cb542d0ef5931744c6d492fdfdd8457e693/preshed-3.0.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbe8b8a2d4f9af14e8a39ecca524b9de6defc91d8abcc95eb28f42da1c23272c", size = 878064, upload_time = "2025-11-17T12:59:39.651Z" }, - { url = "https://files.pythonhosted.org/packages/3e/75/d7fff7f1fa3763619aa85d6ba70493a5d9c6e6ea7958a6e8c9d3e6e88bbe/preshed-3.0.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5d0aaac9c5862f5471fddd0c931dc64d3af2efc5fe3eb48b50765adb571243b9", size = 900540, upload_time = "2025-11-17T12:59:41.384Z" }, - { url = "https://files.pythonhosted.org/packages/e4/12/a2285b78bd097a1e53fb90a1743bc8ce0d35e5b65b6853f3b3c47da398ca/preshed-3.0.12-cp312-cp312-win_amd64.whl", hash = "sha256:0eb8d411afcb1e3b12a0602fb6a0e33140342a732a795251a0ce452aba401dc0", size = 118298, upload_time = "2025-11-17T12:59:42.65Z" }, - { url = "https://files.pythonhosted.org/packages/0b/34/4e8443fe99206a2fcfc63659969a8f8c8ab184836533594a519f3899b1ad/preshed-3.0.12-cp312-cp312-win_arm64.whl", hash = "sha256:dcd3d12903c9f720a39a5c5f1339f7f46e3ab71279fb7a39776768fb840b6077", size = 104746, upload_time = "2025-11-17T12:59:43.934Z" }, - { url = "https://files.pythonhosted.org/packages/1e/36/1d3df6f9f37efc34be4ee3013b3bb698b06f1e372f80959851b54d8efdb2/preshed-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3deb3ab93d50c785eaa7694a8e169eb12d00263a99c91d56511fe943bcbacfb6", size = 128023, upload_time = "2025-11-17T12:59:45.157Z" }, - { url = "https://files.pythonhosted.org/packages/fb/d4/3ca81f42978da1b81aa57b3e9b5193d8093e187787a3b2511d16b30b7c62/preshed-3.0.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604350001238dab63dc14774ee30c257b5d71c7be976dbecd1f1ed37529f60f", size = 122851, upload_time = "2025-11-17T12:59:46.439Z" }, - { url = "https://files.pythonhosted.org/packages/17/73/f388398f8d789f69b510272d144a9186d658423f6d3ecc484c0fe392acec/preshed-3.0.12-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04fb860a8aab18d2201f06159337eda5568dc5eed218570d960fad79e783c7d0", size = 835926, upload_time = "2025-11-17T12:59:47.882Z" }, - { url = "https://files.pythonhosted.org/packages/35/c6/b7170933451cbc27eaefd57b36f61a5e7e7c8da50ae24f819172e0ca8a4d/preshed-3.0.12-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d0c8fcd44996031c46a0aa6773c7b7aa5ee58c3ee87bc05236dacd5599d35063", size = 827294, upload_time = "2025-11-17T12:59:49.365Z" }, - { url = "https://files.pythonhosted.org/packages/7d/ec/6504730d811c0a375721db2107d31684ec17ee5b7bb3796ecfa41e704d41/preshed-3.0.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b07efc3abd3714ce01cf67db0a2dada6e829ab7def74039d446e49ddb32538c5", size = 838809, upload_time = "2025-11-17T12:59:51.234Z" }, - { url = "https://files.pythonhosted.org/packages/7e/1a/09d13240c1fbadcc0603e2fe029623045a36c88b4b50b02e7fdc89e3b88e/preshed-3.0.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f184ef184b76e0e4707bce2395008779e4dfa638456b13b18469c2c1a42903a6", size = 861448, upload_time = "2025-11-17T12:59:52.702Z" }, - { url = "https://files.pythonhosted.org/packages/0d/35/9523160153037ee8337672249449be416ee92236f32602e7dd643767814f/preshed-3.0.12-cp313-cp313-win_amd64.whl", hash = "sha256:ebb3da2dc62ab09e5dc5a00ec38e7f5cdf8741c175714ab4a80773d8ee31b495", size = 117413, upload_time = "2025-11-17T12:59:54.4Z" }, - { url = "https://files.pythonhosted.org/packages/79/eb/4263e6e896753b8e2ffa93035458165850a5ea81d27e8888afdbfd8fa9c4/preshed-3.0.12-cp313-cp313-win_arm64.whl", hash = "sha256:b36a2cf57a5ca6e78e69b569c92ef3bdbfb00e3a14859e201eec6ab3bdc27085", size = 104041, upload_time = "2025-11-17T12:59:55.596Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/bf/34/eb4f5f0f678e152a96e826da867d2f41c4b18a2d589e40e1dd3347219e91/preshed-3.0.12.tar.gz", hash = "sha256:b73f9a8b54ee1d44529cc6018356896cff93d48f755f29c134734d9371c0d685", size = 15027, upload-time = "2025-11-17T13:00:33.621Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/d0/1245d6d89b051dd5356ffaaa43da05408f37d2da4cfadcf77356ba46da4f/preshed-3.0.12-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d8f0bc207bb5bfe69e3a232367c264cac900dc14e9219cd061b98eaca9e7da61", size = 128866, upload-time = "2025-11-17T12:59:06.633Z" }, + { url = "https://files.pythonhosted.org/packages/24/24/f06650f22450888434a51b17971b650186d2e68f5eaf292e6e8e4be7974c/preshed-3.0.12-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8a8d571c044ddab5369d30d172c87545f44daa1510bde92b7e0144a8f4f92b", size = 124848, upload-time = "2025-11-17T12:59:08.641Z" }, + { url = "https://files.pythonhosted.org/packages/88/a1/78bdd4938c3286998c0609491c4a0a8aee2f4de4003364112c295a2f32b8/preshed-3.0.12-cp310-cp310-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6cca080ac9bbc978625c8f0c56ef17471162193c7c1a4622fbde7721da1bdd40", size = 780279, upload-time = "2025-11-17T12:59:10.009Z" }, + { url = "https://files.pythonhosted.org/packages/8f/f8/6fbf083346a007927a9e4ce3686ae54ba74191e74fc3af34863ea7be9dea/preshed-3.0.12-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cfd3672007c7b7cac554a0e5f263d7bc94109dc508ee1ef43b2f6ec8c2e2e9e8", size = 781954, upload-time = "2025-11-17T12:59:11.574Z" }, + { url = "https://files.pythonhosted.org/packages/91/c3/f28c7a6cc03e85002780b75249c3557c0fe503792ac66a7b9c5379569999/preshed-3.0.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e01609074713aba93a8143480e67942fbe6898fe134b98d813819bec42a8cae7", size = 799772, upload-time = "2025-11-17T12:59:14.371Z" }, + { url = "https://files.pythonhosted.org/packages/46/25/ca22fa0db162e286db7a94a4f08c1ceb4872d3d64610b807148935ae084c/preshed-3.0.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:30d8a53015663b0d666012bc10d22e8bdd7359191d84a8980ae902e0b87caf24", size = 820532, upload-time = "2025-11-17T12:59:16.281Z" }, + { url = "https://files.pythonhosted.org/packages/0f/57/459a6eea7e15034756f4c2650a9aba6d023aa7976748b18476bd4c0b6fef/preshed-3.0.12-cp310-cp310-win_amd64.whl", hash = "sha256:bf2235bbe09b4862b914086f37a065cc84259e1b53c8ed996cbbd6519ea36b62", size = 117482, upload-time = "2025-11-17T12:59:18.36Z" }, + { url = "https://files.pythonhosted.org/packages/80/1f/a7b648a57d259891bd9b2c8ef1978622fa37b46a9368f054881488b9b4fe/preshed-3.0.12-cp310-cp310-win_arm64.whl", hash = "sha256:139d08b10693bfccb0ea000f47dcca5fc4a78fc1b96c1832c920be9b0a4c8f04", size = 105504, upload-time = "2025-11-17T12:59:19.562Z" }, + { url = "https://files.pythonhosted.org/packages/1e/54/d1e02d0a0ea348fb6a769506166e366abfe87ee917c2f11f7139c7acbf10/preshed-3.0.12-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc45fda3fd4ae1ae15c37f18f0777cf389ce9184ef8884b39b18894416fd1341", size = 128439, upload-time = "2025-11-17T12:59:21.317Z" }, + { url = "https://files.pythonhosted.org/packages/8c/cb/685ca57ca6e438345b3f6c20226705a0e056a3de399a5bf8a9ee89b3dd2b/preshed-3.0.12-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75d6e628bc78c022dbb9267242715718f862c3105927732d166076ff009d65de", size = 124544, upload-time = "2025-11-17T12:59:22.944Z" }, + { url = "https://files.pythonhosted.org/packages/f8/07/018fcd3bf298304e1570065cf80601ac16acd29f799578fd47b715dd3ca2/preshed-3.0.12-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b901cff5c814facf7a864b0a4c14a16d45fa1379899a585b3fb48ee36a2dccdb", size = 824728, upload-time = "2025-11-17T12:59:24.614Z" }, + { url = "https://files.pythonhosted.org/packages/79/dc/d888b328fcedae530df53396d9fc0006026aa8793fec54d7d34f57f31ff5/preshed-3.0.12-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d1099253bf73dd3c39313280bd5331841f769637b27ddb576ff362c4e7bad298", size = 825969, upload-time = "2025-11-17T12:59:26.493Z" }, + { url = "https://files.pythonhosted.org/packages/21/51/f19933301f42ece1ffef1f7f4c370d09f0351c43c528e66fac24560e44d2/preshed-3.0.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1af4a049ffe9d0246e5dc10d6f54820ed064c40e5c3f7b6526127c664008297c", size = 842346, upload-time = "2025-11-17T12:59:28.092Z" }, + { url = "https://files.pythonhosted.org/packages/51/46/025f60fd3d51bf60606a0f8f0cd39c40068b9b5e4d249bca1682e4ff09c3/preshed-3.0.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:57159bcedca0cb4c99390f8a6e730f8659fdb663a5a3efcd9c4531e0f54b150e", size = 865504, upload-time = "2025-11-17T12:59:29.648Z" }, + { url = "https://files.pythonhosted.org/packages/88/b5/2e6ee5ab19b03e7983fc5e1850c812fb71dc178dd140d6aca3b45306bdf7/preshed-3.0.12-cp311-cp311-win_amd64.whl", hash = "sha256:8fe9cf1745e203e5aa58b8700436f78da1dcf0f0e2efb0054b467effd9d7d19d", size = 117736, upload-time = "2025-11-17T12:59:30.974Z" }, + { url = "https://files.pythonhosted.org/packages/1e/17/8a0a8f4b01e71b5fb7c5cd4c9fec04d7b852d42f1f9e096b01e7d2b16b17/preshed-3.0.12-cp311-cp311-win_arm64.whl", hash = "sha256:12d880f8786cb6deac34e99b8b07146fb92d22fbca0023208e03325f5944606b", size = 105127, upload-time = "2025-11-17T12:59:32.171Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f7/ff3aca937eeaee19c52c45ddf92979546e52ed0686e58be4bc09c47e7d88/preshed-3.0.12-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2779861f5d69480493519ed123a622a13012d1182126779036b99d9d989bf7e9", size = 129958, upload-time = "2025-11-17T12:59:33.391Z" }, + { url = "https://files.pythonhosted.org/packages/80/24/fd654a9c0f5f3ed1a9b1d8a392f063ae9ca29ad0b462f0732ae0147f7cee/preshed-3.0.12-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffe1fd7d92f51ed34383e20d8b734780c814ca869cfdb7e07f2d31651f90cdf4", size = 124550, upload-time = "2025-11-17T12:59:34.688Z" }, + { url = "https://files.pythonhosted.org/packages/71/49/8271c7f680696f4b0880f44357d2a903d649cb9f6e60a1efc97a203104df/preshed-3.0.12-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:91893404858502cc4e856d338fef3d2a4a552135f79a1041c24eb919817c19db", size = 874987, upload-time = "2025-11-17T12:59:36.062Z" }, + { url = "https://files.pythonhosted.org/packages/a3/a5/ca200187ca1632f1e2c458b72f1bd100fa8b55deecd5d72e1e4ebf09e98c/preshed-3.0.12-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9e06e8f2ba52f183eb9817a616cdebe84a211bb859a2ffbc23f3295d0b189638", size = 866499, upload-time = "2025-11-17T12:59:37.586Z" }, + { url = "https://files.pythonhosted.org/packages/87/a1/943b61f850c44899910c21996cb542d0ef5931744c6d492fdfdd8457e693/preshed-3.0.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bbe8b8a2d4f9af14e8a39ecca524b9de6defc91d8abcc95eb28f42da1c23272c", size = 878064, upload-time = "2025-11-17T12:59:39.651Z" }, + { url = "https://files.pythonhosted.org/packages/3e/75/d7fff7f1fa3763619aa85d6ba70493a5d9c6e6ea7958a6e8c9d3e6e88bbe/preshed-3.0.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5d0aaac9c5862f5471fddd0c931dc64d3af2efc5fe3eb48b50765adb571243b9", size = 900540, upload-time = "2025-11-17T12:59:41.384Z" }, + { url = "https://files.pythonhosted.org/packages/e4/12/a2285b78bd097a1e53fb90a1743bc8ce0d35e5b65b6853f3b3c47da398ca/preshed-3.0.12-cp312-cp312-win_amd64.whl", hash = "sha256:0eb8d411afcb1e3b12a0602fb6a0e33140342a732a795251a0ce452aba401dc0", size = 118298, upload-time = "2025-11-17T12:59:42.65Z" }, + { url = "https://files.pythonhosted.org/packages/0b/34/4e8443fe99206a2fcfc63659969a8f8c8ab184836533594a519f3899b1ad/preshed-3.0.12-cp312-cp312-win_arm64.whl", hash = "sha256:dcd3d12903c9f720a39a5c5f1339f7f46e3ab71279fb7a39776768fb840b6077", size = 104746, upload-time = "2025-11-17T12:59:43.934Z" }, + { url = "https://files.pythonhosted.org/packages/1e/36/1d3df6f9f37efc34be4ee3013b3bb698b06f1e372f80959851b54d8efdb2/preshed-3.0.12-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3deb3ab93d50c785eaa7694a8e169eb12d00263a99c91d56511fe943bcbacfb6", size = 128023, upload-time = "2025-11-17T12:59:45.157Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d4/3ca81f42978da1b81aa57b3e9b5193d8093e187787a3b2511d16b30b7c62/preshed-3.0.12-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604350001238dab63dc14774ee30c257b5d71c7be976dbecd1f1ed37529f60f", size = 122851, upload-time = "2025-11-17T12:59:46.439Z" }, + { url = "https://files.pythonhosted.org/packages/17/73/f388398f8d789f69b510272d144a9186d658423f6d3ecc484c0fe392acec/preshed-3.0.12-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:04fb860a8aab18d2201f06159337eda5568dc5eed218570d960fad79e783c7d0", size = 835926, upload-time = "2025-11-17T12:59:47.882Z" }, + { url = "https://files.pythonhosted.org/packages/35/c6/b7170933451cbc27eaefd57b36f61a5e7e7c8da50ae24f819172e0ca8a4d/preshed-3.0.12-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d0c8fcd44996031c46a0aa6773c7b7aa5ee58c3ee87bc05236dacd5599d35063", size = 827294, upload-time = "2025-11-17T12:59:49.365Z" }, + { url = "https://files.pythonhosted.org/packages/7d/ec/6504730d811c0a375721db2107d31684ec17ee5b7bb3796ecfa41e704d41/preshed-3.0.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b07efc3abd3714ce01cf67db0a2dada6e829ab7def74039d446e49ddb32538c5", size = 838809, upload-time = "2025-11-17T12:59:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/7e/1a/09d13240c1fbadcc0603e2fe029623045a36c88b4b50b02e7fdc89e3b88e/preshed-3.0.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f184ef184b76e0e4707bce2395008779e4dfa638456b13b18469c2c1a42903a6", size = 861448, upload-time = "2025-11-17T12:59:52.702Z" }, + { url = "https://files.pythonhosted.org/packages/0d/35/9523160153037ee8337672249449be416ee92236f32602e7dd643767814f/preshed-3.0.12-cp313-cp313-win_amd64.whl", hash = "sha256:ebb3da2dc62ab09e5dc5a00ec38e7f5cdf8741c175714ab4a80773d8ee31b495", size = 117413, upload-time = "2025-11-17T12:59:54.4Z" }, + { url = "https://files.pythonhosted.org/packages/79/eb/4263e6e896753b8e2ffa93035458165850a5ea81d27e8888afdbfd8fa9c4/preshed-3.0.12-cp313-cp313-win_arm64.whl", hash = "sha256:b36a2cf57a5ca6e78e69b569c92ef3bdbfb00e3a14859e201eec6ab3bdc27085", size = 104041, upload-time = "2025-11-17T12:59:55.596Z" }, ] [[package]] @@ -3008,7 +3058,7 @@ dependencies = [ { name = "tldextract" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/f7/47/5f07857a3ae4bea36cb631adc6899ef58081cb37ad1901aab01b6a8b2849/presidio_analyzer-2.2.361-py3-none-any.whl", hash = "sha256:7054b36303f5f47dd4bb3b00600bc936fb46aa3cc5e6befde3de839f0205f7f2", size = 183910, upload_time = "2026-02-12T08:11:38.181Z" }, + { url = "https://files.pythonhosted.org/packages/f7/47/5f07857a3ae4bea36cb631adc6899ef58081cb37ad1901aab01b6a8b2849/presidio_analyzer-2.2.361-py3-none-any.whl", hash = "sha256:7054b36303f5f47dd4bb3b00600bc936fb46aa3cc5e6befde3de839f0205f7f2", size = 183910, upload-time = "2026-02-12T08:11:38.181Z" }, ] [[package]] @@ -3019,128 +3069,128 @@ dependencies = [ { name = "cryptography" }, ] wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/21/2f90005c3242b783a376848040f4e96991b3c5b4d95080a74befce5066c7/presidio_anonymizer-2.2.361-py3-none-any.whl", hash = "sha256:ff0f64c234aa7ac37042cf7f187ed4a47587cff65418304d716af7d194c96ed3", size = 36603, upload_time = "2026-02-12T08:11:38.904Z" }, + { url = "https://files.pythonhosted.org/packages/5c/21/2f90005c3242b783a376848040f4e96991b3c5b4d95080a74befce5066c7/presidio_anonymizer-2.2.361-py3-none-any.whl", hash = "sha256:ff0f64c234aa7ac37042cf7f187ed4a47587cff65418304d716af7d194c96ed3", size = 36603, upload-time = "2026-02-12T08:11:38.904Z" }, ] [[package]] name = "propcache" version = "0.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload_time = "2025-10-08T19:49:02.291Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/0e/934b541323035566a9af292dba85a195f7b78179114f2c6ebb24551118a9/propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db", size = 79534, upload_time = "2025-10-08T19:46:02.083Z" }, - { url = "https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8", size = 45526, upload_time = "2025-10-08T19:46:03.884Z" }, - { url = "https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925", size = 47263, upload_time = "2025-10-08T19:46:05.405Z" }, - { url = "https://files.pythonhosted.org/packages/df/1b/39313ddad2bf9187a1432654c38249bab4562ef535ef07f5eb6eb04d0b1b/propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21", size = 201012, upload_time = "2025-10-08T19:46:07.165Z" }, - { url = "https://files.pythonhosted.org/packages/5b/01/f1d0b57d136f294a142acf97f4ed58c8e5b974c21e543000968357115011/propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5", size = 209491, upload_time = "2025-10-08T19:46:08.909Z" }, - { url = "https://files.pythonhosted.org/packages/a1/c8/038d909c61c5bb039070b3fb02ad5cccdb1dde0d714792e251cdb17c9c05/propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db", size = 215319, upload_time = "2025-10-08T19:46:10.7Z" }, - { url = "https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7", size = 196856, upload_time = "2025-10-08T19:46:12.003Z" }, - { url = "https://files.pythonhosted.org/packages/42/df/5615fec76aa561987a534759b3686008a288e73107faa49a8ae5795a9f7a/propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4", size = 193241, upload_time = "2025-10-08T19:46:13.495Z" }, - { url = "https://files.pythonhosted.org/packages/d5/21/62949eb3a7a54afe8327011c90aca7e03547787a88fb8bd9726806482fea/propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60", size = 190552, upload_time = "2025-10-08T19:46:14.938Z" }, - { url = "https://files.pythonhosted.org/packages/30/ee/ab4d727dd70806e5b4de96a798ae7ac6e4d42516f030ee60522474b6b332/propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f", size = 200113, upload_time = "2025-10-08T19:46:16.695Z" }, - { url = "https://files.pythonhosted.org/packages/8a/0b/38b46208e6711b016aa8966a3ac793eee0d05c7159d8342aa27fc0bc365e/propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900", size = 200778, upload_time = "2025-10-08T19:46:18.023Z" }, - { url = "https://files.pythonhosted.org/packages/cf/81/5abec54355ed344476bee711e9f04815d4b00a311ab0535599204eecc257/propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c", size = 193047, upload_time = "2025-10-08T19:46:19.449Z" }, - { url = "https://files.pythonhosted.org/packages/ec/b6/1f237c04e32063cb034acd5f6ef34ef3a394f75502e72703545631ab1ef6/propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb", size = 38093, upload_time = "2025-10-08T19:46:20.643Z" }, - { url = "https://files.pythonhosted.org/packages/a6/67/354aac4e0603a15f76439caf0427781bcd6797f370377f75a642133bc954/propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37", size = 41638, upload_time = "2025-10-08T19:46:21.935Z" }, - { url = "https://files.pythonhosted.org/packages/e0/e1/74e55b9fd1a4c209ff1a9a824bf6c8b3d1fc5a1ac3eabe23462637466785/propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581", size = 38229, upload_time = "2025-10-08T19:46:23.368Z" }, - { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload_time = "2025-10-08T19:46:24.597Z" }, - { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload_time = "2025-10-08T19:46:25.733Z" }, - { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload_time = "2025-10-08T19:46:27.304Z" }, - { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload_time = "2025-10-08T19:46:28.62Z" }, - { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload_time = "2025-10-08T19:46:30.358Z" }, - { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload_time = "2025-10-08T19:46:32.607Z" }, - { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload_time = "2025-10-08T19:46:33.969Z" }, - { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload_time = "2025-10-08T19:46:35.309Z" }, - { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload_time = "2025-10-08T19:46:36.993Z" }, - { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload_time = "2025-10-08T19:46:38.398Z" }, - { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload_time = "2025-10-08T19:46:39.732Z" }, - { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload_time = "2025-10-08T19:46:41.025Z" }, - { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload_time = "2025-10-08T19:46:42.693Z" }, - { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload_time = "2025-10-08T19:46:43.778Z" }, - { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload_time = "2025-10-08T19:46:44.872Z" }, - { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload_time = "2025-10-08T19:46:46.075Z" }, - { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload_time = "2025-10-08T19:46:47.23Z" }, - { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload_time = "2025-10-08T19:46:48.384Z" }, - { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload_time = "2025-10-08T19:46:50.055Z" }, - { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload_time = "2025-10-08T19:46:51.815Z" }, - { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload_time = "2025-10-08T19:46:53.208Z" }, - { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload_time = "2025-10-08T19:46:54.511Z" }, - { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload_time = "2025-10-08T19:46:56.212Z" }, - { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload_time = "2025-10-08T19:46:57.595Z" }, - { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload_time = "2025-10-08T19:46:59.067Z" }, - { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload_time = "2025-10-08T19:47:00.544Z" }, - { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload_time = "2025-10-08T19:47:01.968Z" }, - { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload_time = "2025-10-08T19:47:03.503Z" }, - { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload_time = "2025-10-08T19:47:04.973Z" }, - { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload_time = "2025-10-08T19:47:06.077Z" }, - { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload_time = "2025-10-08T19:47:07.648Z" }, - { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload_time = "2025-10-08T19:47:08.851Z" }, - { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload_time = "2025-10-08T19:47:09.982Z" }, - { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload_time = "2025-10-08T19:47:11.319Z" }, - { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload_time = "2025-10-08T19:47:13.146Z" }, - { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload_time = "2025-10-08T19:47:14.913Z" }, - { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload_time = "2025-10-08T19:47:16.277Z" }, - { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload_time = "2025-10-08T19:47:17.962Z" }, - { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload_time = "2025-10-08T19:47:19.355Z" }, - { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload_time = "2025-10-08T19:47:21.338Z" }, - { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload_time = "2025-10-08T19:47:23.059Z" }, - { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload_time = "2025-10-08T19:47:24.445Z" }, - { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload_time = "2025-10-08T19:47:25.736Z" }, - { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload_time = "2025-10-08T19:47:26.847Z" }, - { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload_time = "2025-10-08T19:47:27.961Z" }, - { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload_time = "2025-10-08T19:47:29.445Z" }, - { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload_time = "2025-10-08T19:47:30.579Z" }, - { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload_time = "2025-10-08T19:47:31.79Z" }, - { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload_time = "2025-10-08T19:47:33.481Z" }, - { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload_time = "2025-10-08T19:47:34.906Z" }, - { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload_time = "2025-10-08T19:47:36.338Z" }, - { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload_time = "2025-10-08T19:47:37.692Z" }, - { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload_time = "2025-10-08T19:47:39.659Z" }, - { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload_time = "2025-10-08T19:47:41.084Z" }, - { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload_time = "2025-10-08T19:47:42.51Z" }, - { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload_time = "2025-10-08T19:47:43.927Z" }, - { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload_time = "2025-10-08T19:47:45.448Z" }, - { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload_time = "2025-10-08T19:47:47.202Z" }, - { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload_time = "2025-10-08T19:47:48.336Z" }, - { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload_time = "2025-10-08T19:47:49.876Z" }, - { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload_time = "2025-10-08T19:49:00.792Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/9e/da/e9fc233cf63743258bff22b3dfa7ea5baef7b5bc324af47a0ad89b8ffc6f/propcache-0.4.1.tar.gz", hash = "sha256:f48107a8c637e80362555f37ecf49abe20370e557cc4ab374f04ec4423c97c3d", size = 46442, upload-time = "2025-10-08T19:49:02.291Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/0e/934b541323035566a9af292dba85a195f7b78179114f2c6ebb24551118a9/propcache-0.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c2d1fa3201efaf55d730400d945b5b3ab6e672e100ba0f9a409d950ab25d7db", size = 79534, upload-time = "2025-10-08T19:46:02.083Z" }, + { url = "https://files.pythonhosted.org/packages/a1/6b/db0d03d96726d995dc7171286c6ba9d8d14251f37433890f88368951a44e/propcache-0.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1eb2994229cc8ce7fe9b3db88f5465f5fd8651672840b2e426b88cdb1a30aac8", size = 45526, upload-time = "2025-10-08T19:46:03.884Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c3/82728404aea669e1600f304f2609cde9e665c18df5a11cdd57ed73c1dceb/propcache-0.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:66c1f011f45a3b33d7bcb22daed4b29c0c9e2224758b6be00686731e1b46f925", size = 47263, upload-time = "2025-10-08T19:46:05.405Z" }, + { url = "https://files.pythonhosted.org/packages/df/1b/39313ddad2bf9187a1432654c38249bab4562ef535ef07f5eb6eb04d0b1b/propcache-0.4.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9a52009f2adffe195d0b605c25ec929d26b36ef986ba85244891dee3b294df21", size = 201012, upload-time = "2025-10-08T19:46:07.165Z" }, + { url = "https://files.pythonhosted.org/packages/5b/01/f1d0b57d136f294a142acf97f4ed58c8e5b974c21e543000968357115011/propcache-0.4.1-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5d4e2366a9c7b837555cf02fb9be2e3167d333aff716332ef1b7c3a142ec40c5", size = 209491, upload-time = "2025-10-08T19:46:08.909Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c8/038d909c61c5bb039070b3fb02ad5cccdb1dde0d714792e251cdb17c9c05/propcache-0.4.1-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9d2b6caef873b4f09e26ea7e33d65f42b944837563a47a94719cc3544319a0db", size = 215319, upload-time = "2025-10-08T19:46:10.7Z" }, + { url = "https://files.pythonhosted.org/packages/08/57/8c87e93142b2c1fa2408e45695205a7ba05fb5db458c0bf5c06ba0e09ea6/propcache-0.4.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b16ec437a8c8a965ecf95739448dd938b5c7f56e67ea009f4300d8df05f32b7", size = 196856, upload-time = "2025-10-08T19:46:12.003Z" }, + { url = "https://files.pythonhosted.org/packages/42/df/5615fec76aa561987a534759b3686008a288e73107faa49a8ae5795a9f7a/propcache-0.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:296f4c8ed03ca7476813fe666c9ea97869a8d7aec972618671b33a38a5182ef4", size = 193241, upload-time = "2025-10-08T19:46:13.495Z" }, + { url = "https://files.pythonhosted.org/packages/d5/21/62949eb3a7a54afe8327011c90aca7e03547787a88fb8bd9726806482fea/propcache-0.4.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:1f0978529a418ebd1f49dad413a2b68af33f85d5c5ca5c6ca2a3bed375a7ac60", size = 190552, upload-time = "2025-10-08T19:46:14.938Z" }, + { url = "https://files.pythonhosted.org/packages/30/ee/ab4d727dd70806e5b4de96a798ae7ac6e4d42516f030ee60522474b6b332/propcache-0.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:fd138803047fb4c062b1c1dd95462f5209456bfab55c734458f15d11da288f8f", size = 200113, upload-time = "2025-10-08T19:46:16.695Z" }, + { url = "https://files.pythonhosted.org/packages/8a/0b/38b46208e6711b016aa8966a3ac793eee0d05c7159d8342aa27fc0bc365e/propcache-0.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:8c9b3cbe4584636d72ff556d9036e0c9317fa27b3ac1f0f558e7e84d1c9c5900", size = 200778, upload-time = "2025-10-08T19:46:18.023Z" }, + { url = "https://files.pythonhosted.org/packages/cf/81/5abec54355ed344476bee711e9f04815d4b00a311ab0535599204eecc257/propcache-0.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f93243fdc5657247533273ac4f86ae106cc6445a0efacb9a1bfe982fcfefd90c", size = 193047, upload-time = "2025-10-08T19:46:19.449Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b6/1f237c04e32063cb034acd5f6ef34ef3a394f75502e72703545631ab1ef6/propcache-0.4.1-cp310-cp310-win32.whl", hash = "sha256:a0ee98db9c5f80785b266eb805016e36058ac72c51a064040f2bc43b61101cdb", size = 38093, upload-time = "2025-10-08T19:46:20.643Z" }, + { url = "https://files.pythonhosted.org/packages/a6/67/354aac4e0603a15f76439caf0427781bcd6797f370377f75a642133bc954/propcache-0.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:1cdb7988c4e5ac7f6d175a28a9aa0c94cb6f2ebe52756a3c0cda98d2809a9e37", size = 41638, upload-time = "2025-10-08T19:46:21.935Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e1/74e55b9fd1a4c209ff1a9a824bf6c8b3d1fc5a1ac3eabe23462637466785/propcache-0.4.1-cp310-cp310-win_arm64.whl", hash = "sha256:d82ad62b19645419fe79dd63b3f9253e15b30e955c0170e5cebc350c1844e581", size = 38229, upload-time = "2025-10-08T19:46:23.368Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d4/4e2c9aaf7ac2242b9358f98dccd8f90f2605402f5afeff6c578682c2c491/propcache-0.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:60a8fda9644b7dfd5dece8c61d8a85e271cb958075bfc4e01083c148b61a7caf", size = 80208, upload-time = "2025-10-08T19:46:24.597Z" }, + { url = "https://files.pythonhosted.org/packages/c2/21/d7b68e911f9c8e18e4ae43bdbc1e1e9bbd971f8866eb81608947b6f585ff/propcache-0.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c30b53e7e6bda1d547cabb47c825f3843a0a1a42b0496087bb58d8fedf9f41b5", size = 45777, upload-time = "2025-10-08T19:46:25.733Z" }, + { url = "https://files.pythonhosted.org/packages/d3/1d/11605e99ac8ea9435651ee71ab4cb4bf03f0949586246476a25aadfec54a/propcache-0.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6918ecbd897443087a3b7cd978d56546a812517dcaaca51b49526720571fa93e", size = 47647, upload-time = "2025-10-08T19:46:27.304Z" }, + { url = "https://files.pythonhosted.org/packages/58/1a/3c62c127a8466c9c843bccb503d40a273e5cc69838805f322e2826509e0d/propcache-0.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3d902a36df4e5989763425a8ab9e98cd8ad5c52c823b34ee7ef307fd50582566", size = 214929, upload-time = "2025-10-08T19:46:28.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/b9/8fa98f850960b367c4b8fe0592e7fc341daa7a9462e925228f10a60cf74f/propcache-0.4.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a9695397f85973bb40427dedddf70d8dc4a44b22f1650dd4af9eedf443d45165", size = 221778, upload-time = "2025-10-08T19:46:30.358Z" }, + { url = "https://files.pythonhosted.org/packages/46/a6/0ab4f660eb59649d14b3d3d65c439421cf2f87fe5dd68591cbe3c1e78a89/propcache-0.4.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2bb07ffd7eaad486576430c89f9b215f9e4be68c4866a96e97db9e97fead85dc", size = 228144, upload-time = "2025-10-08T19:46:32.607Z" }, + { url = "https://files.pythonhosted.org/packages/52/6a/57f43e054fb3d3a56ac9fc532bc684fc6169a26c75c353e65425b3e56eef/propcache-0.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd6f30fdcf9ae2a70abd34da54f18da086160e4d7d9251f81f3da0ff84fc5a48", size = 210030, upload-time = "2025-10-08T19:46:33.969Z" }, + { url = "https://files.pythonhosted.org/packages/40/e2/27e6feebb5f6b8408fa29f5efbb765cd54c153ac77314d27e457a3e993b7/propcache-0.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fc38cba02d1acba4e2869eef1a57a43dfbd3d49a59bf90dda7444ec2be6a5570", size = 208252, upload-time = "2025-10-08T19:46:35.309Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f8/91c27b22ccda1dbc7967f921c42825564fa5336a01ecd72eb78a9f4f53c2/propcache-0.4.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:67fad6162281e80e882fb3ec355398cf72864a54069d060321f6cd0ade95fe85", size = 202064, upload-time = "2025-10-08T19:46:36.993Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/7f00bd6bd1adba5aafe5f4a66390f243acab58eab24ff1a08bebb2ef9d40/propcache-0.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f10207adf04d08bec185bae14d9606a1444715bc99180f9331c9c02093e1959e", size = 212429, upload-time = "2025-10-08T19:46:38.398Z" }, + { url = "https://files.pythonhosted.org/packages/84/89/fd108ba7815c1117ddca79c228f3f8a15fc82a73bca8b142eb5de13b2785/propcache-0.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e9b0d8d0845bbc4cfcdcbcdbf5086886bc8157aa963c31c777ceff7846c77757", size = 216727, upload-time = "2025-10-08T19:46:39.732Z" }, + { url = "https://files.pythonhosted.org/packages/79/37/3ec3f7e3173e73f1d600495d8b545b53802cbf35506e5732dd8578db3724/propcache-0.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:981333cb2f4c1896a12f4ab92a9cc8f09ea664e9b7dbdc4eff74627af3a11c0f", size = 205097, upload-time = "2025-10-08T19:46:41.025Z" }, + { url = "https://files.pythonhosted.org/packages/61/b0/b2631c19793f869d35f47d5a3a56fb19e9160d3c119f15ac7344fc3ccae7/propcache-0.4.1-cp311-cp311-win32.whl", hash = "sha256:f1d2f90aeec838a52f1c1a32fe9a619fefd5e411721a9117fbf82aea638fe8a1", size = 38084, upload-time = "2025-10-08T19:46:42.693Z" }, + { url = "https://files.pythonhosted.org/packages/f4/78/6cce448e2098e9f3bfc91bb877f06aa24b6ccace872e39c53b2f707c4648/propcache-0.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:364426a62660f3f699949ac8c621aad6977be7126c5807ce48c0aeb8e7333ea6", size = 41637, upload-time = "2025-10-08T19:46:43.778Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e9/754f180cccd7f51a39913782c74717c581b9cc8177ad0e949f4d51812383/propcache-0.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:e53f3a38d3510c11953f3e6a33f205c6d1b001129f972805ca9b42fc308bc239", size = 38064, upload-time = "2025-10-08T19:46:44.872Z" }, + { url = "https://files.pythonhosted.org/packages/a2/0f/f17b1b2b221d5ca28b4b876e8bb046ac40466513960646bda8e1853cdfa2/propcache-0.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e153e9cd40cc8945138822807139367f256f89c6810c2634a4f6902b52d3b4e2", size = 80061, upload-time = "2025-10-08T19:46:46.075Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/8ccf75935f51448ba9a16a71b783eb7ef6b9ee60f5d14c7f8a8a79fbeed7/propcache-0.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cd547953428f7abb73c5ad82cbb32109566204260d98e41e5dfdc682eb7f8403", size = 46037, upload-time = "2025-10-08T19:46:47.23Z" }, + { url = "https://files.pythonhosted.org/packages/0a/b6/5c9a0e42df4d00bfb4a3cbbe5cf9f54260300c88a0e9af1f47ca5ce17ac0/propcache-0.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f048da1b4f243fc44f205dfd320933a951b8d89e0afd4c7cacc762a8b9165207", size = 47324, upload-time = "2025-10-08T19:46:48.384Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/6c7ee328b39a81ee877c962469f1e795f9db87f925251efeb0545e0020d0/propcache-0.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ec17c65562a827bba85e3872ead335f95405ea1674860d96483a02f5c698fa72", size = 225505, upload-time = "2025-10-08T19:46:50.055Z" }, + { url = "https://files.pythonhosted.org/packages/01/5d/1c53f4563490b1d06a684742cc6076ef944bc6457df6051b7d1a877c057b/propcache-0.4.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:405aac25c6394ef275dee4c709be43745d36674b223ba4eb7144bf4d691b7367", size = 230242, upload-time = "2025-10-08T19:46:51.815Z" }, + { url = "https://files.pythonhosted.org/packages/20/e1/ce4620633b0e2422207c3cb774a0ee61cac13abc6217763a7b9e2e3f4a12/propcache-0.4.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0013cb6f8dde4b2a2f66903b8ba740bdfe378c943c4377a200551ceb27f379e4", size = 238474, upload-time = "2025-10-08T19:46:53.208Z" }, + { url = "https://files.pythonhosted.org/packages/46/4b/3aae6835b8e5f44ea6a68348ad90f78134047b503765087be2f9912140ea/propcache-0.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15932ab57837c3368b024473a525e25d316d8353016e7cc0e5ba9eb343fbb1cf", size = 221575, upload-time = "2025-10-08T19:46:54.511Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a5/8a5e8678bcc9d3a1a15b9a29165640d64762d424a16af543f00629c87338/propcache-0.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:031dce78b9dc099f4c29785d9cf5577a3faf9ebf74ecbd3c856a7b92768c3df3", size = 216736, upload-time = "2025-10-08T19:46:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/f1/63/b7b215eddeac83ca1c6b934f89d09a625aa9ee4ba158338854c87210cc36/propcache-0.4.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ab08df6c9a035bee56e31af99be621526bd237bea9f32def431c656b29e41778", size = 213019, upload-time = "2025-10-08T19:46:57.595Z" }, + { url = "https://files.pythonhosted.org/packages/57/74/f580099a58c8af587cac7ba19ee7cb418506342fbbe2d4a4401661cca886/propcache-0.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4d7af63f9f93fe593afbf104c21b3b15868efb2c21d07d8732c0c4287e66b6a6", size = 220376, upload-time = "2025-10-08T19:46:59.067Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ee/542f1313aff7eaf19c2bb758c5d0560d2683dac001a1c96d0774af799843/propcache-0.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cfc27c945f422e8b5071b6e93169679e4eb5bf73bbcbf1ba3ae3a83d2f78ebd9", size = 226988, upload-time = "2025-10-08T19:47:00.544Z" }, + { url = "https://files.pythonhosted.org/packages/8f/18/9c6b015dd9c6930f6ce2229e1f02fb35298b847f2087ea2b436a5bfa7287/propcache-0.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:35c3277624a080cc6ec6f847cbbbb5b49affa3598c4535a0a4682a697aaa5c75", size = 215615, upload-time = "2025-10-08T19:47:01.968Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/e7b85720b98c45a45e1fca6a177024934dc9bc5f4d5dd04207f216fc33ed/propcache-0.4.1-cp312-cp312-win32.whl", hash = "sha256:671538c2262dadb5ba6395e26c1731e1d52534bfe9ae56d0b5573ce539266aa8", size = 38066, upload-time = "2025-10-08T19:47:03.503Z" }, + { url = "https://files.pythonhosted.org/packages/54/09/d19cff2a5aaac632ec8fc03737b223597b1e347416934c1b3a7df079784c/propcache-0.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:cb2d222e72399fcf5890d1d5cc1060857b9b236adff2792ff48ca2dfd46c81db", size = 41655, upload-time = "2025-10-08T19:47:04.973Z" }, + { url = "https://files.pythonhosted.org/packages/68/ab/6b5c191bb5de08036a8c697b265d4ca76148efb10fa162f14af14fb5f076/propcache-0.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:204483131fb222bdaaeeea9f9e6c6ed0cac32731f75dfc1d4a567fc1926477c1", size = 37789, upload-time = "2025-10-08T19:47:06.077Z" }, + { url = "https://files.pythonhosted.org/packages/bf/df/6d9c1b6ac12b003837dde8a10231a7344512186e87b36e855bef32241942/propcache-0.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:43eedf29202c08550aac1d14e0ee619b0430aaef78f85864c1a892294fbc28cf", size = 77750, upload-time = "2025-10-08T19:47:07.648Z" }, + { url = "https://files.pythonhosted.org/packages/8b/e8/677a0025e8a2acf07d3418a2e7ba529c9c33caf09d3c1f25513023c1db56/propcache-0.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d62cdfcfd89ccb8de04e0eda998535c406bf5e060ffd56be6c586cbcc05b3311", size = 44780, upload-time = "2025-10-08T19:47:08.851Z" }, + { url = "https://files.pythonhosted.org/packages/89/a4/92380f7ca60f99ebae761936bc48a72a639e8a47b29050615eef757cb2a7/propcache-0.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cae65ad55793da34db5f54e4029b89d3b9b9490d8abe1b4c7ab5d4b8ec7ebf74", size = 46308, upload-time = "2025-10-08T19:47:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/2d/48/c5ac64dee5262044348d1d78a5f85dd1a57464a60d30daee946699963eb3/propcache-0.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:333ddb9031d2704a301ee3e506dc46b1fe5f294ec198ed6435ad5b6a085facfe", size = 208182, upload-time = "2025-10-08T19:47:11.319Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0c/cd762dd011a9287389a6a3eb43aa30207bde253610cca06824aeabfe9653/propcache-0.4.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:fd0858c20f078a32cf55f7e81473d96dcf3b93fd2ccdb3d40fdf54b8573df3af", size = 211215, upload-time = "2025-10-08T19:47:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/30/3e/49861e90233ba36890ae0ca4c660e95df565b2cd15d4a68556ab5865974e/propcache-0.4.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:678ae89ebc632c5c204c794f8dab2837c5f159aeb59e6ed0539500400577298c", size = 218112, upload-time = "2025-10-08T19:47:14.913Z" }, + { url = "https://files.pythonhosted.org/packages/f1/8b/544bc867e24e1bd48f3118cecd3b05c694e160a168478fa28770f22fd094/propcache-0.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d472aeb4fbf9865e0c6d622d7f4d54a4e101a89715d8904282bb5f9a2f476c3f", size = 204442, upload-time = "2025-10-08T19:47:16.277Z" }, + { url = "https://files.pythonhosted.org/packages/50/a6/4282772fd016a76d3e5c0df58380a5ea64900afd836cec2c2f662d1b9bb3/propcache-0.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4d3df5fa7e36b3225954fba85589da77a0fe6a53e3976de39caf04a0db4c36f1", size = 199398, upload-time = "2025-10-08T19:47:17.962Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ec/d8a7cd406ee1ddb705db2139f8a10a8a427100347bd698e7014351c7af09/propcache-0.4.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ee17f18d2498f2673e432faaa71698032b0127ebf23ae5974eeaf806c279df24", size = 196920, upload-time = "2025-10-08T19:47:19.355Z" }, + { url = "https://files.pythonhosted.org/packages/f6/6c/f38ab64af3764f431e359f8baf9e0a21013e24329e8b85d2da32e8ed07ca/propcache-0.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:580e97762b950f993ae618e167e7be9256b8353c2dcd8b99ec100eb50f5286aa", size = 203748, upload-time = "2025-10-08T19:47:21.338Z" }, + { url = "https://files.pythonhosted.org/packages/d6/e3/fa846bd70f6534d647886621388f0a265254d30e3ce47e5c8e6e27dbf153/propcache-0.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:501d20b891688eb8e7aa903021f0b72d5a55db40ffaab27edefd1027caaafa61", size = 205877, upload-time = "2025-10-08T19:47:23.059Z" }, + { url = "https://files.pythonhosted.org/packages/e2/39/8163fc6f3133fea7b5f2827e8eba2029a0277ab2c5beee6c1db7b10fc23d/propcache-0.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a0bd56e5b100aef69bd8562b74b46254e7c8812918d3baa700c8a8009b0af66", size = 199437, upload-time = "2025-10-08T19:47:24.445Z" }, + { url = "https://files.pythonhosted.org/packages/93/89/caa9089970ca49c7c01662bd0eeedfe85494e863e8043565aeb6472ce8fe/propcache-0.4.1-cp313-cp313-win32.whl", hash = "sha256:bcc9aaa5d80322bc2fb24bb7accb4a30f81e90ab8d6ba187aec0744bc302ad81", size = 37586, upload-time = "2025-10-08T19:47:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/f5/ab/f76ec3c3627c883215b5c8080debb4394ef5a7a29be811f786415fc1e6fd/propcache-0.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:381914df18634f5494334d201e98245c0596067504b9372d8cf93f4bb23e025e", size = 40790, upload-time = "2025-10-08T19:47:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/59/1b/e71ae98235f8e2ba5004d8cb19765a74877abf189bc53fc0c80d799e56c3/propcache-0.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:8873eb4460fd55333ea49b7d189749ecf6e55bf85080f11b1c4530ed3034cba1", size = 37158, upload-time = "2025-10-08T19:47:27.961Z" }, + { url = "https://files.pythonhosted.org/packages/83/ce/a31bbdfc24ee0dcbba458c8175ed26089cf109a55bbe7b7640ed2470cfe9/propcache-0.4.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:92d1935ee1f8d7442da9c0c4fa7ac20d07e94064184811b685f5c4fada64553b", size = 81451, upload-time = "2025-10-08T19:47:29.445Z" }, + { url = "https://files.pythonhosted.org/packages/25/9c/442a45a470a68456e710d96cacd3573ef26a1d0a60067e6a7d5e655621ed/propcache-0.4.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:473c61b39e1460d386479b9b2f337da492042447c9b685f28be4f74d3529e566", size = 46374, upload-time = "2025-10-08T19:47:30.579Z" }, + { url = "https://files.pythonhosted.org/packages/f4/bf/b1d5e21dbc3b2e889ea4327044fb16312a736d97640fb8b6aa3f9c7b3b65/propcache-0.4.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:c0ef0aaafc66fbd87842a3fe3902fd889825646bc21149eafe47be6072725835", size = 48396, upload-time = "2025-10-08T19:47:31.79Z" }, + { url = "https://files.pythonhosted.org/packages/f4/04/5b4c54a103d480e978d3c8a76073502b18db0c4bc17ab91b3cb5092ad949/propcache-0.4.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f95393b4d66bfae908c3ca8d169d5f79cd65636ae15b5e7a4f6e67af675adb0e", size = 275950, upload-time = "2025-10-08T19:47:33.481Z" }, + { url = "https://files.pythonhosted.org/packages/b4/c1/86f846827fb969c4b78b0af79bba1d1ea2156492e1b83dea8b8a6ae27395/propcache-0.4.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c07fda85708bc48578467e85099645167a955ba093be0a2dcba962195676e859", size = 273856, upload-time = "2025-10-08T19:47:34.906Z" }, + { url = "https://files.pythonhosted.org/packages/36/1d/fc272a63c8d3bbad6878c336c7a7dea15e8f2d23a544bda43205dfa83ada/propcache-0.4.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:af223b406d6d000830c6f65f1e6431783fc3f713ba3e6cc8c024d5ee96170a4b", size = 280420, upload-time = "2025-10-08T19:47:36.338Z" }, + { url = "https://files.pythonhosted.org/packages/07/0c/01f2219d39f7e53d52e5173bcb09c976609ba30209912a0680adfb8c593a/propcache-0.4.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a78372c932c90ee474559c5ddfffd718238e8673c340dc21fe45c5b8b54559a0", size = 263254, upload-time = "2025-10-08T19:47:37.692Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/cd28081658ce597898f0c4d174d4d0f3c5b6d4dc27ffafeef835c95eb359/propcache-0.4.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:564d9f0d4d9509e1a870c920a89b2fec951b44bf5ba7d537a9e7c1ccec2c18af", size = 261205, upload-time = "2025-10-08T19:47:39.659Z" }, + { url = "https://files.pythonhosted.org/packages/7a/71/1f9e22eb8b8316701c2a19fa1f388c8a3185082607da8e406a803c9b954e/propcache-0.4.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:17612831fda0138059cc5546f4d12a2aacfb9e47068c06af35c400ba58ba7393", size = 247873, upload-time = "2025-10-08T19:47:41.084Z" }, + { url = "https://files.pythonhosted.org/packages/4a/65/3d4b61f36af2b4eddba9def857959f1016a51066b4f1ce348e0cf7881f58/propcache-0.4.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:41a89040cb10bd345b3c1a873b2bf36413d48da1def52f268a055f7398514874", size = 262739, upload-time = "2025-10-08T19:47:42.51Z" }, + { url = "https://files.pythonhosted.org/packages/2a/42/26746ab087faa77c1c68079b228810436ccd9a5ce9ac85e2b7307195fd06/propcache-0.4.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e35b88984e7fa64aacecea39236cee32dd9bd8c55f57ba8a75cf2399553f9bd7", size = 263514, upload-time = "2025-10-08T19:47:43.927Z" }, + { url = "https://files.pythonhosted.org/packages/94/13/630690fe201f5502d2403dd3cfd451ed8858fe3c738ee88d095ad2ff407b/propcache-0.4.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6f8b465489f927b0df505cbe26ffbeed4d6d8a2bbc61ce90eb074ff129ef0ab1", size = 257781, upload-time = "2025-10-08T19:47:45.448Z" }, + { url = "https://files.pythonhosted.org/packages/92/f7/1d4ec5841505f423469efbfc381d64b7b467438cd5a4bbcbb063f3b73d27/propcache-0.4.1-cp313-cp313t-win32.whl", hash = "sha256:2ad890caa1d928c7c2965b48f3a3815c853180831d0e5503d35cf00c472f4717", size = 41396, upload-time = "2025-10-08T19:47:47.202Z" }, + { url = "https://files.pythonhosted.org/packages/48/f0/615c30622316496d2cbbc29f5985f7777d3ada70f23370608c1d3e081c1f/propcache-0.4.1-cp313-cp313t-win_amd64.whl", hash = "sha256:f7ee0e597f495cf415bcbd3da3caa3bd7e816b74d0d52b8145954c5e6fd3ff37", size = 44897, upload-time = "2025-10-08T19:47:48.336Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ca/6002e46eccbe0e33dcd4069ef32f7f1c9e243736e07adca37ae8c4830ec3/propcache-0.4.1-cp313-cp313t-win_arm64.whl", hash = "sha256:929d7cbe1f01bb7baffb33dc14eb5691c95831450a26354cd210a8155170c93a", size = 39789, upload-time = "2025-10-08T19:47:49.876Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/bc7b4a4ef808fa59a816c17b20c4bef6884daebbdf627ff2a161da67da19/propcache-0.4.1-py3-none-any.whl", hash = "sha256:af2a6052aeb6cf17d3e46ee169099044fd8224cbaf75c76a2ef596e8163e2237", size = 13305, upload-time = "2025-10-08T19:49:00.792Z" }, ] [[package]] name = "protobuf" version = "6.33.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload_time = "2026-01-29T21:51:33.494Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload_time = "2026-01-29T21:51:21.751Z" }, - { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload_time = "2026-01-29T21:51:24.022Z" }, - { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload_time = "2026-01-29T21:51:25.413Z" }, - { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload_time = "2026-01-29T21:51:26.423Z" }, - { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload_time = "2026-01-29T21:51:27.446Z" }, - { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload_time = "2026-01-29T21:51:28.925Z" }, - { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload_time = "2026-01-29T21:51:32.557Z" }, + { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" }, + { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" }, + { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" }, + { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" }, ] [[package]] name = "psutil" version = "7.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload_time = "2026-01-28T18:14:54.428Z" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload_time = "2026-01-28T18:14:57.293Z" }, - { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload_time = "2026-01-28T18:14:59.732Z" }, - { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload_time = "2026-01-28T18:15:01.884Z" }, - { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload_time = "2026-01-28T18:15:04.436Z" }, - { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload_time = "2026-01-28T18:15:06.378Z" }, - { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload_time = "2026-01-28T18:15:08.03Z" }, - { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload_time = "2026-01-28T18:15:22.168Z" }, - { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload_time = "2026-01-28T18:15:23.795Z" }, - { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload_time = "2026-01-28T18:15:25.976Z" }, - { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload_time = "2026-01-28T18:15:27.794Z" }, - { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload_time = "2026-01-28T18:15:29.342Z" }, - { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload_time = "2026-01-28T18:15:31.597Z" }, - { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload_time = "2026-01-28T18:15:33.849Z" }, - { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload_time = "2026-01-28T18:15:36.514Z" }, + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, ] [[package]] @@ -3151,9 +3201,9 @@ dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, { name = "tzdata", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e0/1a/7d9ef4fdc13ef7f15b934c393edc97a35c281bb7d3c3329fbfcbe915a7c2/psycopg-3.3.2.tar.gz", hash = "sha256:707a67975ee214d200511177a6a80e56e654754c9afca06a7194ea6bbfde9ca7", size = 165630, upload_time = "2025-12-06T17:34:53.899Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/1a/7d9ef4fdc13ef7f15b934c393edc97a35c281bb7d3c3329fbfcbe915a7c2/psycopg-3.3.2.tar.gz", hash = "sha256:707a67975ee214d200511177a6a80e56e654754c9afca06a7194ea6bbfde9ca7", size = 165630, upload-time = "2025-12-06T17:34:53.899Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8c/51/2779ccdf9305981a06b21a6b27e8547c948d85c41c76ff434192784a4c93/psycopg-3.3.2-py3-none-any.whl", hash = "sha256:3e94bc5f4690247d734599af56e51bae8e0db8e4311ea413f801fef82b14a99b", size = 212774, upload_time = "2025-12-06T17:31:41.414Z" }, + { url = "https://files.pythonhosted.org/packages/8c/51/2779ccdf9305981a06b21a6b27e8547c948d85c41c76ff434192784a4c93/psycopg-3.3.2-py3-none-any.whl", hash = "sha256:3e94bc5f4690247d734599af56e51bae8e0db8e4311ea413f801fef82b14a99b", size = 212774, upload-time = "2025-12-06T17:31:41.414Z" }, ] [package.optional-dependencies] @@ -3166,59 +3216,59 @@ name = "psycopg-binary" version = "3.3.2" source = { registry = "https://pypi.org/simple" } wheels = [ - { url = "https://files.pythonhosted.org/packages/25/d7/edfb0d9e56081246fd88490f99b1bafebd3588480cca601a4de0c41a3e08/psycopg_binary-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0768c5f32934bb52a5df098317eca9bdcf411de627c5dca2ee57662b64b54b41", size = 4597785, upload_time = "2025-12-06T17:31:44.867Z" }, - { url = "https://files.pythonhosted.org/packages/71/45/8458201d9573dd851263a05cefddd4bfd31e8b3c6434b3e38d62aea9f15a/psycopg_binary-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:09b3014013f05cd89828640d3a1db5f829cc24ad8fa81b6e42b2c04685a0c9d4", size = 4664440, upload_time = "2025-12-06T17:31:49.1Z" }, - { url = "https://files.pythonhosted.org/packages/d1/33/484260d87456cfe88dc219c1919026f11949b9d1de8a6371ddbe027d4d60/psycopg_binary-3.3.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3789d452a9d17a841c7f4f97bbcba51a21f957ea35641a4c98507520e6b6a068", size = 5478355, upload_time = "2025-12-06T17:31:52.657Z" }, - { url = "https://files.pythonhosted.org/packages/34/b2/18c91630c30c83f534c2bfa75fb533293fc9c3ab31bb7f2bf1cd9579c53b/psycopg_binary-3.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44e89938d36acc4495735af70a886d206a5bfdc80258f95b69b52f68b2968d9e", size = 5152398, upload_time = "2025-12-06T17:31:56.092Z" }, - { url = "https://files.pythonhosted.org/packages/c0/14/7c705e1934107196d9dca2040cf34bce2ca26de62520e43073d2673052d4/psycopg_binary-3.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90ed9da805e52985b0202aed4f352842c907c6b4fc6c7c109c6e646c32e2f43b", size = 6748982, upload_time = "2025-12-06T17:32:00.611Z" }, - { url = "https://files.pythonhosted.org/packages/56/18/80197c47798926f79e563af02a71d1abecab88cf45ddf8dc960700598da7/psycopg_binary-3.3.2-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c3a9ccdfee4ae59cf9bf1822777e763bc097ed208f4901e21537fca1070e1391", size = 4991214, upload_time = "2025-12-06T17:32:03.897Z" }, - { url = "https://files.pythonhosted.org/packages/7e/2e/e88e2f678f5d1a968d87e57b30915061c1157e916b8aaa9b0b78bca95e25/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de9173f8cc0efd88ac2a89b3b6c287a9a0011cdc2f53b2a12c28d6fd55f9f81c", size = 4517421, upload_time = "2025-12-06T17:32:07.287Z" }, - { url = "https://files.pythonhosted.org/packages/80/9e/d56813b24370723bcd62bf73871aee4d5fca0536f3476c4c4d5b037e3c7f/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0611f4822674f3269e507a307236efb62ae5a828fcfc923ac85fe22ca19fd7c8", size = 4206124, upload_time = "2025-12-06T17:32:10.374Z" }, - { url = "https://files.pythonhosted.org/packages/91/81/5a11a898969edf0ee43d0613a6dfd689a0aa12d418c69e148a8ff153fbc7/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:522b79c7db547767ca923e441c19b97a2157f2f494272a119c854bba4804e186", size = 3937067, upload_time = "2025-12-06T17:32:13.852Z" }, - { url = "https://files.pythonhosted.org/packages/a1/33/a6180ff1e747a0395876d985e8e295c9d7cbe956a2d66f165e7c67cffe55/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1ea41c0229f3f5a3844ad0857a83a9f869aa7b840448fa0c200e6bcf85d33d19", size = 4243731, upload_time = "2025-12-06T17:32:16.803Z" }, - { url = "https://files.pythonhosted.org/packages/e9/5b/9c1b6fbc900d5b525946ed9a477865c5016a5306080c0557248bb04f1a5b/psycopg_binary-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:8ea05b499278790a8fa0ff9854ab0de2542aca02d661ddff94e830df971ff640", size = 3546403, upload_time = "2025-12-06T17:32:19.621Z" }, - { url = "https://files.pythonhosted.org/packages/57/d9/49640360fc090d27afc4655021544aa71d5393ebae124ffa53a04474b493/psycopg_binary-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:94503b79f7da0b65c80d0dbb2f81dd78b300319ec2435d5e6dcf9622160bc2fa", size = 4597890, upload_time = "2025-12-06T17:32:23.087Z" }, - { url = "https://files.pythonhosted.org/packages/85/cf/99634bbccc8af0dd86df4bce705eea5540d06bb7f5ab3067446ae9ffdae4/psycopg_binary-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07a5f030e0902ec3e27d0506ceb01238c0aecbc73ecd7fa0ee55f86134600b5b", size = 4664396, upload_time = "2025-12-06T17:32:26.421Z" }, - { url = "https://files.pythonhosted.org/packages/40/db/6035dff6d5c6dfca3a4ab0d2ac62ede623646e327e9f99e21e0cf08976c6/psycopg_binary-3.3.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e09d0d93d35c134704a2cb2b15f81ffc8174fd602f3e08f7b1a3d8896156cf0", size = 5478743, upload_time = "2025-12-06T17:32:29.901Z" }, - { url = "https://files.pythonhosted.org/packages/03/0f/fc06bbc8e87f09458d2ce04a59cd90565e54e8efca33e0802daee6d2b0e6/psycopg_binary-3.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:649c1d33bedda431e0c1df646985fbbeb9274afa964e1aef4be053c0f23a2924", size = 5151820, upload_time = "2025-12-06T17:32:33.562Z" }, - { url = "https://files.pythonhosted.org/packages/86/ab/bcc0397c96a0ad29463e33ed03285826e0fabc43595c195f419d9291ee70/psycopg_binary-3.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5774272f754605059521ff037a86e680342e3847498b0aa86b0f3560c70963c", size = 6747711, upload_time = "2025-12-06T17:32:38.074Z" }, - { url = "https://files.pythonhosted.org/packages/96/eb/7450bc75c31d5be5f7a6d02d26beef6989a4ca6f5efdec65eea6cf612d0e/psycopg_binary-3.3.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d391b70c9cc23f6e1142729772a011f364199d2c5ddc0d596f5f43316fbf982d", size = 4991626, upload_time = "2025-12-06T17:32:41.373Z" }, - { url = "https://files.pythonhosted.org/packages/dc/85/65f14453804c82a7fba31cd1a984b90349c0f327b809102c4b99115c0930/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f3f601f32244a677c7b029ec39412db2772ad04a28bc2cbb4b1f0931ed0ffad7", size = 4516760, upload_time = "2025-12-06T17:32:44.921Z" }, - { url = "https://files.pythonhosted.org/packages/24/8c/3105f00a91d73d9a443932f95156eae8159d5d9cb68a9d2cf512710d484f/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0ae60e910531cfcc364a8f615a7941cac89efeb3f0fffe0c4824a6d11461eef7", size = 4204028, upload_time = "2025-12-06T17:32:48.355Z" }, - { url = "https://files.pythonhosted.org/packages/1e/dd/74f64a383342ef7c22d1eb2768ed86411c7f877ed2580cd33c17f436fe3c/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7c43a773dd1a481dbb2fe64576aa303d80f328cce0eae5e3e4894947c41d1da7", size = 3935780, upload_time = "2025-12-06T17:32:51.347Z" }, - { url = "https://files.pythonhosted.org/packages/85/30/f3f207d1c292949a26cdea6727c9c325b4ee41e04bf2736a4afbe45eb61f/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5a327327f1188b3fbecac41bf1973a60b86b2eb237db10dc945bd3dc97ec39e4", size = 4243239, upload_time = "2025-12-06T17:32:54.924Z" }, - { url = "https://files.pythonhosted.org/packages/b3/08/8f1b5d6231338bf7bc46f635c4d4965facec52e1c9a7952ca8a70cb57dc0/psycopg_binary-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:136c43f185244893a527540307167f5d3ef4e08786508afe45d6f146228f5aa9", size = 3548102, upload_time = "2025-12-06T17:32:57.944Z" }, - { url = "https://files.pythonhosted.org/packages/4e/1e/8614b01c549dd7e385dacdcd83fe194f6b3acb255a53cc67154ee6bf00e7/psycopg_binary-3.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9387ab615f929e71ef0f4a8a51e986fa06236ccfa9f3ec98a88f60fbf230634", size = 4579832, upload_time = "2025-12-06T17:33:01.388Z" }, - { url = "https://files.pythonhosted.org/packages/26/97/0bb093570fae2f4454d42c1ae6000f15934391867402f680254e4a7def54/psycopg_binary-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3ff7489df5e06c12d1829544eaec64970fe27fe300f7cf04c8495fe682064688", size = 4658786, upload_time = "2025-12-06T17:33:05.022Z" }, - { url = "https://files.pythonhosted.org/packages/61/20/1d9383e3f2038826900a14137b0647d755f67551aab316e1021443105ed5/psycopg_binary-3.3.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:9742580ecc8e1ac45164e98d32ca6df90da509c2d3ff26be245d94c430f92db4", size = 5454896, upload_time = "2025-12-06T17:33:09.023Z" }, - { url = "https://files.pythonhosted.org/packages/a6/62/513c80ad8bbb545e364f7737bf2492d34a4c05eef4f7b5c16428dc42260d/psycopg_binary-3.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d45acedcaa58619355f18e0f42af542fcad3fd84ace4b8355d3a5dea23318578", size = 5132731, upload_time = "2025-12-06T17:33:12.519Z" }, - { url = "https://files.pythonhosted.org/packages/f3/28/ddf5f5905f088024bccb19857949467407c693389a14feb527d6171d8215/psycopg_binary-3.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d88f32ff8c47cb7f4e7e7a9d1747dcee6f3baa19ed9afa9e5694fd2fb32b61ed", size = 6724495, upload_time = "2025-12-06T17:33:16.624Z" }, - { url = "https://files.pythonhosted.org/packages/6e/93/a1157ebcc650960b264542b547f7914d87a42ff0cc15a7584b29d5807e6b/psycopg_binary-3.3.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:59d0163c4617a2c577cb34afbed93d7a45b8c8364e54b2bd2020ff25d5f5f860", size = 4964979, upload_time = "2025-12-06T17:33:20.179Z" }, - { url = "https://files.pythonhosted.org/packages/0e/27/65939ba6798f9c5be4a5d9cd2061ebaf0851798525c6811d347821c8132d/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e750afe74e6c17b2c7046d2c3e3173b5a3f6080084671c8aa327215323df155b", size = 4493648, upload_time = "2025-12-06T17:33:23.464Z" }, - { url = "https://files.pythonhosted.org/packages/8a/c4/5e9e4b9b1c1e27026e43387b0ba4aaf3537c7806465dd3f1d5bde631752a/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f26f113013c4dcfbfe9ced57b5bad2035dda1a7349f64bf726021968f9bccad3", size = 4173392, upload_time = "2025-12-06T17:33:26.88Z" }, - { url = "https://files.pythonhosted.org/packages/c6/81/cf43fb76993190cee9af1cbcfe28afb47b1928bdf45a252001017e5af26e/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8309ee4569dced5e81df5aa2dcd48c7340c8dee603a66430f042dfbd2878edca", size = 3909241, upload_time = "2025-12-06T17:33:30.092Z" }, - { url = "https://files.pythonhosted.org/packages/9d/20/c6377a0d17434674351627489deca493ea0b137c522b99c81d3a106372c8/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6464150e25b68ae3cb04c4e57496ea11ebfaae4d98126aea2f4702dd43e3c12", size = 4219746, upload_time = "2025-12-06T17:33:33.097Z" }, - { url = "https://files.pythonhosted.org/packages/25/32/716c57b28eefe02a57a4c9d5bf956849597f5ea476c7010397199e56cfde/psycopg_binary-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:716a586f99bbe4f710dc58b40069fcb33c7627e95cc6fc936f73c9235e07f9cf", size = 3537494, upload_time = "2025-12-06T17:33:35.82Z" }, - { url = "https://files.pythonhosted.org/packages/14/73/7ca7cb22b9ac7393fb5de7d28ca97e8347c375c8498b3bff2c99c1f38038/psycopg_binary-3.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fc5a189e89cbfff174588665bb18d28d2d0428366cc9dae5864afcaa2e57380b", size = 4579068, upload_time = "2025-12-06T17:33:39.303Z" }, - { url = "https://files.pythonhosted.org/packages/f5/42/0cf38ff6c62c792fc5b55398a853a77663210ebd51ed6f0c4a05b06f95a6/psycopg_binary-3.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:083c2e182be433f290dc2c516fd72b9b47054fcd305cce791e0a50d9e93e06f2", size = 4657520, upload_time = "2025-12-06T17:33:42.536Z" }, - { url = "https://files.pythonhosted.org/packages/3b/60/df846bc84cbf2231e01b0fff48b09841fe486fa177665e50f4995b1bfa44/psycopg_binary-3.3.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:ac230e3643d1c436a2dfb59ca84357dfc6862c9f372fc5dbd96bafecae581f9f", size = 5452086, upload_time = "2025-12-06T17:33:46.54Z" }, - { url = "https://files.pythonhosted.org/packages/ab/85/30c846a00db86b1b53fd5bfd4b4edfbd0c00de8f2c75dd105610bd7568fc/psycopg_binary-3.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d8c899a540f6c7585cee53cddc929dd4d2db90fd828e37f5d4017b63acbc1a5d", size = 5131125, upload_time = "2025-12-06T17:33:50.413Z" }, - { url = "https://files.pythonhosted.org/packages/6d/15/9968732013373f36f8a2a3fb76104dffc8efd9db78709caa5ae1a87b1f80/psycopg_binary-3.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50ff10ab8c0abdb5a5451b9315538865b50ba64c907742a1385fdf5f5772b73e", size = 6722914, upload_time = "2025-12-06T17:33:54.544Z" }, - { url = "https://files.pythonhosted.org/packages/b2/ba/29e361fe02143ac5ff5a1ca3e45697344cfbebe2eaf8c4e7eec164bff9a0/psycopg_binary-3.3.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:23d2594af848c1fd3d874a9364bef50730124e72df7bb145a20cb45e728c50ed", size = 4966081, upload_time = "2025-12-06T17:33:58.477Z" }, - { url = "https://files.pythonhosted.org/packages/99/45/1be90c8f1a1a237046903e91202fb06708745c179f220b361d6333ed7641/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea4fe6b4ead3bbbe27244ea224fcd1f53cb119afc38b71a2f3ce570149a03e30", size = 4493332, upload_time = "2025-12-06T17:34:02.011Z" }, - { url = "https://files.pythonhosted.org/packages/2e/b5/bbdc07d5f0a5e90c617abd624368182aa131485e18038b2c6c85fc054aed/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:742ce48cde825b8e52fb1a658253d6d1ff66d152081cbc76aa45e2986534858d", size = 4170781, upload_time = "2025-12-06T17:34:05.298Z" }, - { url = "https://files.pythonhosted.org/packages/d1/2a/0d45e4f4da2bd78c3237ffa03475ef3751f69a81919c54a6e610eb1a7c96/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e22bf6b54df994aff37ab52695d635f1ef73155e781eee1f5fa75bc08b58c8da", size = 3910544, upload_time = "2025-12-06T17:34:08.251Z" }, - { url = "https://files.pythonhosted.org/packages/3a/62/a8e0f092f4dbef9a94b032fb71e214cf0a375010692fbe7493a766339e47/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8db9034cde3bcdafc66980f0130813f5c5d19e74b3f2a19fb3cfbc25ad113121", size = 4220070, upload_time = "2025-12-06T17:34:11.392Z" }, - { url = "https://files.pythonhosted.org/packages/09/e6/5fc8d8aff8afa114bb4a94a0341b9309311e8bf3ab32d816032f8b984d4e/psycopg_binary-3.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:df65174c7cf6b05ea273ce955927d3270b3a6e27b0b12762b009ce6082b8d3fc", size = 3540922, upload_time = "2025-12-06T17:34:14.88Z" }, + { url = "https://files.pythonhosted.org/packages/25/d7/edfb0d9e56081246fd88490f99b1bafebd3588480cca601a4de0c41a3e08/psycopg_binary-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0768c5f32934bb52a5df098317eca9bdcf411de627c5dca2ee57662b64b54b41", size = 4597785, upload-time = "2025-12-06T17:31:44.867Z" }, + { url = "https://files.pythonhosted.org/packages/71/45/8458201d9573dd851263a05cefddd4bfd31e8b3c6434b3e38d62aea9f15a/psycopg_binary-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:09b3014013f05cd89828640d3a1db5f829cc24ad8fa81b6e42b2c04685a0c9d4", size = 4664440, upload-time = "2025-12-06T17:31:49.1Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/484260d87456cfe88dc219c1919026f11949b9d1de8a6371ddbe027d4d60/psycopg_binary-3.3.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3789d452a9d17a841c7f4f97bbcba51a21f957ea35641a4c98507520e6b6a068", size = 5478355, upload-time = "2025-12-06T17:31:52.657Z" }, + { url = "https://files.pythonhosted.org/packages/34/b2/18c91630c30c83f534c2bfa75fb533293fc9c3ab31bb7f2bf1cd9579c53b/psycopg_binary-3.3.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:44e89938d36acc4495735af70a886d206a5bfdc80258f95b69b52f68b2968d9e", size = 5152398, upload-time = "2025-12-06T17:31:56.092Z" }, + { url = "https://files.pythonhosted.org/packages/c0/14/7c705e1934107196d9dca2040cf34bce2ca26de62520e43073d2673052d4/psycopg_binary-3.3.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:90ed9da805e52985b0202aed4f352842c907c6b4fc6c7c109c6e646c32e2f43b", size = 6748982, upload-time = "2025-12-06T17:32:00.611Z" }, + { url = "https://files.pythonhosted.org/packages/56/18/80197c47798926f79e563af02a71d1abecab88cf45ddf8dc960700598da7/psycopg_binary-3.3.2-cp310-cp310-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c3a9ccdfee4ae59cf9bf1822777e763bc097ed208f4901e21537fca1070e1391", size = 4991214, upload-time = "2025-12-06T17:32:03.897Z" }, + { url = "https://files.pythonhosted.org/packages/7e/2e/e88e2f678f5d1a968d87e57b30915061c1157e916b8aaa9b0b78bca95e25/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:de9173f8cc0efd88ac2a89b3b6c287a9a0011cdc2f53b2a12c28d6fd55f9f81c", size = 4517421, upload-time = "2025-12-06T17:32:07.287Z" }, + { url = "https://files.pythonhosted.org/packages/80/9e/d56813b24370723bcd62bf73871aee4d5fca0536f3476c4c4d5b037e3c7f/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:0611f4822674f3269e507a307236efb62ae5a828fcfc923ac85fe22ca19fd7c8", size = 4206124, upload-time = "2025-12-06T17:32:10.374Z" }, + { url = "https://files.pythonhosted.org/packages/91/81/5a11a898969edf0ee43d0613a6dfd689a0aa12d418c69e148a8ff153fbc7/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:522b79c7db547767ca923e441c19b97a2157f2f494272a119c854bba4804e186", size = 3937067, upload-time = "2025-12-06T17:32:13.852Z" }, + { url = "https://files.pythonhosted.org/packages/a1/33/a6180ff1e747a0395876d985e8e295c9d7cbe956a2d66f165e7c67cffe55/psycopg_binary-3.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1ea41c0229f3f5a3844ad0857a83a9f869aa7b840448fa0c200e6bcf85d33d19", size = 4243731, upload-time = "2025-12-06T17:32:16.803Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5b/9c1b6fbc900d5b525946ed9a477865c5016a5306080c0557248bb04f1a5b/psycopg_binary-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:8ea05b499278790a8fa0ff9854ab0de2542aca02d661ddff94e830df971ff640", size = 3546403, upload-time = "2025-12-06T17:32:19.621Z" }, + { url = "https://files.pythonhosted.org/packages/57/d9/49640360fc090d27afc4655021544aa71d5393ebae124ffa53a04474b493/psycopg_binary-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:94503b79f7da0b65c80d0dbb2f81dd78b300319ec2435d5e6dcf9622160bc2fa", size = 4597890, upload-time = "2025-12-06T17:32:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/85/cf/99634bbccc8af0dd86df4bce705eea5540d06bb7f5ab3067446ae9ffdae4/psycopg_binary-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:07a5f030e0902ec3e27d0506ceb01238c0aecbc73ecd7fa0ee55f86134600b5b", size = 4664396, upload-time = "2025-12-06T17:32:26.421Z" }, + { url = "https://files.pythonhosted.org/packages/40/db/6035dff6d5c6dfca3a4ab0d2ac62ede623646e327e9f99e21e0cf08976c6/psycopg_binary-3.3.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e09d0d93d35c134704a2cb2b15f81ffc8174fd602f3e08f7b1a3d8896156cf0", size = 5478743, upload-time = "2025-12-06T17:32:29.901Z" }, + { url = "https://files.pythonhosted.org/packages/03/0f/fc06bbc8e87f09458d2ce04a59cd90565e54e8efca33e0802daee6d2b0e6/psycopg_binary-3.3.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:649c1d33bedda431e0c1df646985fbbeb9274afa964e1aef4be053c0f23a2924", size = 5151820, upload-time = "2025-12-06T17:32:33.562Z" }, + { url = "https://files.pythonhosted.org/packages/86/ab/bcc0397c96a0ad29463e33ed03285826e0fabc43595c195f419d9291ee70/psycopg_binary-3.3.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c5774272f754605059521ff037a86e680342e3847498b0aa86b0f3560c70963c", size = 6747711, upload-time = "2025-12-06T17:32:38.074Z" }, + { url = "https://files.pythonhosted.org/packages/96/eb/7450bc75c31d5be5f7a6d02d26beef6989a4ca6f5efdec65eea6cf612d0e/psycopg_binary-3.3.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d391b70c9cc23f6e1142729772a011f364199d2c5ddc0d596f5f43316fbf982d", size = 4991626, upload-time = "2025-12-06T17:32:41.373Z" }, + { url = "https://files.pythonhosted.org/packages/dc/85/65f14453804c82a7fba31cd1a984b90349c0f327b809102c4b99115c0930/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f3f601f32244a677c7b029ec39412db2772ad04a28bc2cbb4b1f0931ed0ffad7", size = 4516760, upload-time = "2025-12-06T17:32:44.921Z" }, + { url = "https://files.pythonhosted.org/packages/24/8c/3105f00a91d73d9a443932f95156eae8159d5d9cb68a9d2cf512710d484f/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:0ae60e910531cfcc364a8f615a7941cac89efeb3f0fffe0c4824a6d11461eef7", size = 4204028, upload-time = "2025-12-06T17:32:48.355Z" }, + { url = "https://files.pythonhosted.org/packages/1e/dd/74f64a383342ef7c22d1eb2768ed86411c7f877ed2580cd33c17f436fe3c/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7c43a773dd1a481dbb2fe64576aa303d80f328cce0eae5e3e4894947c41d1da7", size = 3935780, upload-time = "2025-12-06T17:32:51.347Z" }, + { url = "https://files.pythonhosted.org/packages/85/30/f3f207d1c292949a26cdea6727c9c325b4ee41e04bf2736a4afbe45eb61f/psycopg_binary-3.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5a327327f1188b3fbecac41bf1973a60b86b2eb237db10dc945bd3dc97ec39e4", size = 4243239, upload-time = "2025-12-06T17:32:54.924Z" }, + { url = "https://files.pythonhosted.org/packages/b3/08/8f1b5d6231338bf7bc46f635c4d4965facec52e1c9a7952ca8a70cb57dc0/psycopg_binary-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:136c43f185244893a527540307167f5d3ef4e08786508afe45d6f146228f5aa9", size = 3548102, upload-time = "2025-12-06T17:32:57.944Z" }, + { url = "https://files.pythonhosted.org/packages/4e/1e/8614b01c549dd7e385dacdcd83fe194f6b3acb255a53cc67154ee6bf00e7/psycopg_binary-3.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a9387ab615f929e71ef0f4a8a51e986fa06236ccfa9f3ec98a88f60fbf230634", size = 4579832, upload-time = "2025-12-06T17:33:01.388Z" }, + { url = "https://files.pythonhosted.org/packages/26/97/0bb093570fae2f4454d42c1ae6000f15934391867402f680254e4a7def54/psycopg_binary-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3ff7489df5e06c12d1829544eaec64970fe27fe300f7cf04c8495fe682064688", size = 4658786, upload-time = "2025-12-06T17:33:05.022Z" }, + { url = "https://files.pythonhosted.org/packages/61/20/1d9383e3f2038826900a14137b0647d755f67551aab316e1021443105ed5/psycopg_binary-3.3.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:9742580ecc8e1ac45164e98d32ca6df90da509c2d3ff26be245d94c430f92db4", size = 5454896, upload-time = "2025-12-06T17:33:09.023Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/513c80ad8bbb545e364f7737bf2492d34a4c05eef4f7b5c16428dc42260d/psycopg_binary-3.3.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d45acedcaa58619355f18e0f42af542fcad3fd84ace4b8355d3a5dea23318578", size = 5132731, upload-time = "2025-12-06T17:33:12.519Z" }, + { url = "https://files.pythonhosted.org/packages/f3/28/ddf5f5905f088024bccb19857949467407c693389a14feb527d6171d8215/psycopg_binary-3.3.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d88f32ff8c47cb7f4e7e7a9d1747dcee6f3baa19ed9afa9e5694fd2fb32b61ed", size = 6724495, upload-time = "2025-12-06T17:33:16.624Z" }, + { url = "https://files.pythonhosted.org/packages/6e/93/a1157ebcc650960b264542b547f7914d87a42ff0cc15a7584b29d5807e6b/psycopg_binary-3.3.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:59d0163c4617a2c577cb34afbed93d7a45b8c8364e54b2bd2020ff25d5f5f860", size = 4964979, upload-time = "2025-12-06T17:33:20.179Z" }, + { url = "https://files.pythonhosted.org/packages/0e/27/65939ba6798f9c5be4a5d9cd2061ebaf0851798525c6811d347821c8132d/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e750afe74e6c17b2c7046d2c3e3173b5a3f6080084671c8aa327215323df155b", size = 4493648, upload-time = "2025-12-06T17:33:23.464Z" }, + { url = "https://files.pythonhosted.org/packages/8a/c4/5e9e4b9b1c1e27026e43387b0ba4aaf3537c7806465dd3f1d5bde631752a/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f26f113013c4dcfbfe9ced57b5bad2035dda1a7349f64bf726021968f9bccad3", size = 4173392, upload-time = "2025-12-06T17:33:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/c6/81/cf43fb76993190cee9af1cbcfe28afb47b1928bdf45a252001017e5af26e/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:8309ee4569dced5e81df5aa2dcd48c7340c8dee603a66430f042dfbd2878edca", size = 3909241, upload-time = "2025-12-06T17:33:30.092Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/c6377a0d17434674351627489deca493ea0b137c522b99c81d3a106372c8/psycopg_binary-3.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c6464150e25b68ae3cb04c4e57496ea11ebfaae4d98126aea2f4702dd43e3c12", size = 4219746, upload-time = "2025-12-06T17:33:33.097Z" }, + { url = "https://files.pythonhosted.org/packages/25/32/716c57b28eefe02a57a4c9d5bf956849597f5ea476c7010397199e56cfde/psycopg_binary-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:716a586f99bbe4f710dc58b40069fcb33c7627e95cc6fc936f73c9235e07f9cf", size = 3537494, upload-time = "2025-12-06T17:33:35.82Z" }, + { url = "https://files.pythonhosted.org/packages/14/73/7ca7cb22b9ac7393fb5de7d28ca97e8347c375c8498b3bff2c99c1f38038/psycopg_binary-3.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:fc5a189e89cbfff174588665bb18d28d2d0428366cc9dae5864afcaa2e57380b", size = 4579068, upload-time = "2025-12-06T17:33:39.303Z" }, + { url = "https://files.pythonhosted.org/packages/f5/42/0cf38ff6c62c792fc5b55398a853a77663210ebd51ed6f0c4a05b06f95a6/psycopg_binary-3.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:083c2e182be433f290dc2c516fd72b9b47054fcd305cce791e0a50d9e93e06f2", size = 4657520, upload-time = "2025-12-06T17:33:42.536Z" }, + { url = "https://files.pythonhosted.org/packages/3b/60/df846bc84cbf2231e01b0fff48b09841fe486fa177665e50f4995b1bfa44/psycopg_binary-3.3.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:ac230e3643d1c436a2dfb59ca84357dfc6862c9f372fc5dbd96bafecae581f9f", size = 5452086, upload-time = "2025-12-06T17:33:46.54Z" }, + { url = "https://files.pythonhosted.org/packages/ab/85/30c846a00db86b1b53fd5bfd4b4edfbd0c00de8f2c75dd105610bd7568fc/psycopg_binary-3.3.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d8c899a540f6c7585cee53cddc929dd4d2db90fd828e37f5d4017b63acbc1a5d", size = 5131125, upload-time = "2025-12-06T17:33:50.413Z" }, + { url = "https://files.pythonhosted.org/packages/6d/15/9968732013373f36f8a2a3fb76104dffc8efd9db78709caa5ae1a87b1f80/psycopg_binary-3.3.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50ff10ab8c0abdb5a5451b9315538865b50ba64c907742a1385fdf5f5772b73e", size = 6722914, upload-time = "2025-12-06T17:33:54.544Z" }, + { url = "https://files.pythonhosted.org/packages/b2/ba/29e361fe02143ac5ff5a1ca3e45697344cfbebe2eaf8c4e7eec164bff9a0/psycopg_binary-3.3.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:23d2594af848c1fd3d874a9364bef50730124e72df7bb145a20cb45e728c50ed", size = 4966081, upload-time = "2025-12-06T17:33:58.477Z" }, + { url = "https://files.pythonhosted.org/packages/99/45/1be90c8f1a1a237046903e91202fb06708745c179f220b361d6333ed7641/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ea4fe6b4ead3bbbe27244ea224fcd1f53cb119afc38b71a2f3ce570149a03e30", size = 4493332, upload-time = "2025-12-06T17:34:02.011Z" }, + { url = "https://files.pythonhosted.org/packages/2e/b5/bbdc07d5f0a5e90c617abd624368182aa131485e18038b2c6c85fc054aed/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:742ce48cde825b8e52fb1a658253d6d1ff66d152081cbc76aa45e2986534858d", size = 4170781, upload-time = "2025-12-06T17:34:05.298Z" }, + { url = "https://files.pythonhosted.org/packages/d1/2a/0d45e4f4da2bd78c3237ffa03475ef3751f69a81919c54a6e610eb1a7c96/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:e22bf6b54df994aff37ab52695d635f1ef73155e781eee1f5fa75bc08b58c8da", size = 3910544, upload-time = "2025-12-06T17:34:08.251Z" }, + { url = "https://files.pythonhosted.org/packages/3a/62/a8e0f092f4dbef9a94b032fb71e214cf0a375010692fbe7493a766339e47/psycopg_binary-3.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8db9034cde3bcdafc66980f0130813f5c5d19e74b3f2a19fb3cfbc25ad113121", size = 4220070, upload-time = "2025-12-06T17:34:11.392Z" }, + { url = "https://files.pythonhosted.org/packages/09/e6/5fc8d8aff8afa114bb4a94a0341b9309311e8bf3ab32d816032f8b984d4e/psycopg_binary-3.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:df65174c7cf6b05ea273ce955927d3270b3a6e27b0b12762b009ce6082b8d3fc", size = 3540922, upload-time = "2025-12-06T17:34:14.88Z" }, ] [[package]] name = "pycparser" version = "3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload_time = "2026-01-21T14:26:51.89Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload_time = "2026-01-21T14:26:50.693Z" }, + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, ] [[package]] @@ -3231,9 +3281,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload_time = "2025-11-26T15:11:46.471Z" } +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload_time = "2025-11-26T15:11:44.605Z" }, + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, ] [[package]] @@ -3243,87 +3293,87 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload_time = "2025-11-04T13:43:49.098Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload_time = "2025-11-04T13:39:04.116Z" }, - { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload_time = "2025-11-04T13:39:06.055Z" }, - { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload_time = "2025-11-04T13:39:10.41Z" }, - { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload_time = "2025-11-04T13:39:12.244Z" }, - { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload_time = "2025-11-04T13:39:13.962Z" }, - { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload_time = "2025-11-04T13:39:15.889Z" }, - { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload_time = "2025-11-04T13:39:17.403Z" }, - { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload_time = "2025-11-04T13:39:19.351Z" }, - { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload_time = "2025-11-04T13:39:21Z" }, - { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload_time = "2025-11-04T13:39:22.606Z" }, - { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload_time = "2025-11-04T13:39:25.843Z" }, - { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload_time = "2025-11-04T13:39:27.92Z" }, - { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload_time = "2025-11-04T13:39:29.848Z" }, - { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload_time = "2025-11-04T13:39:31.373Z" }, - { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload_time = "2025-11-04T13:39:32.897Z" }, - { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload_time = "2025-11-04T13:39:34.469Z" }, - { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload_time = "2025-11-04T13:39:36.053Z" }, - { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload_time = "2025-11-04T13:39:37.753Z" }, - { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload_time = "2025-11-04T13:39:40.94Z" }, - { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload_time = "2025-11-04T13:39:42.523Z" }, - { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload_time = "2025-11-04T13:39:44.553Z" }, - { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload_time = "2025-11-04T13:39:46.238Z" }, - { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload_time = "2025-11-04T13:39:48.002Z" }, - { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload_time = "2025-11-04T13:39:49.705Z" }, - { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload_time = "2025-11-04T13:39:51.842Z" }, - { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload_time = "2025-11-04T13:39:53.485Z" }, - { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload_time = "2025-11-04T13:39:56.488Z" }, - { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload_time = "2025-11-04T13:39:58.079Z" }, - { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload_time = "2025-11-04T13:39:59.956Z" }, - { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload_time = "2025-11-04T13:40:02.241Z" }, - { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload_time = "2025-11-04T13:40:04.401Z" }, - { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload_time = "2025-11-04T13:40:06.072Z" }, - { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload_time = "2025-11-04T13:40:07.835Z" }, - { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload_time = "2025-11-04T13:40:09.804Z" }, - { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload_time = "2025-11-04T13:40:12.004Z" }, - { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload_time = "2025-11-04T13:40:13.868Z" }, - { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload_time = "2025-11-04T13:40:15.672Z" }, - { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload_time = "2025-11-04T13:40:17.532Z" }, - { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload_time = "2025-11-04T13:40:19.309Z" }, - { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload_time = "2025-11-04T13:40:21.548Z" }, - { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload_time = "2025-11-04T13:40:23.393Z" }, - { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload_time = "2025-11-04T13:40:25.248Z" }, - { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload_time = "2025-11-04T13:40:27.099Z" }, - { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload_time = "2025-11-04T13:40:29.806Z" }, - { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload_time = "2025-11-04T13:40:33.544Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload_time = "2025-11-04T13:40:35.479Z" }, - { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload_time = "2025-11-04T13:40:37.436Z" }, - { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload_time = "2025-11-04T13:40:40.289Z" }, - { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload_time = "2025-11-04T13:40:42.809Z" }, - { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload_time = "2025-11-04T13:40:44.752Z" }, - { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload_time = "2025-11-04T13:40:46.66Z" }, - { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload_time = "2025-11-04T13:40:48.575Z" }, - { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload_time = "2025-11-04T13:40:50.619Z" }, - { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload_time = "2025-11-04T13:40:52.631Z" }, - { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload_time = "2025-11-04T13:40:54.734Z" }, - { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload_time = "2025-11-04T13:42:39.557Z" }, - { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload_time = "2025-11-04T13:42:42.169Z" }, - { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload_time = "2025-11-04T13:42:44.564Z" }, - { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload_time = "2025-11-04T13:42:47.156Z" }, - { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload_time = "2025-11-04T13:42:49.689Z" }, - { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload_time = "2025-11-04T13:42:52.215Z" }, - { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload_time = "2025-11-04T13:42:56.483Z" }, - { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload_time = "2025-11-04T13:42:59.471Z" }, - { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload_time = "2025-11-04T13:43:02.058Z" }, - { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload_time = "2025-11-04T13:43:05.159Z" }, - { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload_time = "2025-11-04T13:43:08.116Z" }, - { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload_time = "2025-11-04T13:43:12.49Z" }, - { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload_time = "2025-11-04T13:43:15.431Z" }, - { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload_time = "2025-11-04T13:43:18.062Z" }, - { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload_time = "2025-11-04T13:43:20.679Z" }, - { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload_time = "2025-11-04T13:43:23.286Z" }, - { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload_time = "2025-11-04T13:43:25.97Z" }, - { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload_time = "2025-11-04T13:43:28.763Z" }, - { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload_time = "2025-11-04T13:43:31.71Z" }, - { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload_time = "2025-11-04T13:43:34.744Z" }, - { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload_time = "2025-11-04T13:43:37.701Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload_time = "2025-11-04T13:43:40.406Z" }, - { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload_time = "2025-11-04T13:43:43.602Z" }, - { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload_time = "2025-11-04T13:43:46.64Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/90/32c9941e728d564b411d574d8ee0cf09b12ec978cb22b294995bae5549a5/pydantic_core-2.41.5-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:77b63866ca88d804225eaa4af3e664c5faf3568cea95360d21f4725ab6e07146", size = 2107298, upload-time = "2025-11-04T13:39:04.116Z" }, + { url = "https://files.pythonhosted.org/packages/fb/a8/61c96a77fe28993d9a6fb0f4127e05430a267b235a124545d79fea46dd65/pydantic_core-2.41.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dfa8a0c812ac681395907e71e1274819dec685fec28273a28905df579ef137e2", size = 1901475, upload-time = "2025-11-04T13:39:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b6/338abf60225acc18cdc08b4faef592d0310923d19a87fba1faf05af5346e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5921a4d3ca3aee735d9fd163808f5e8dd6c6972101e4adbda9a4667908849b97", size = 1918815, upload-time = "2025-11-04T13:39:10.41Z" }, + { url = "https://files.pythonhosted.org/packages/d1/1c/2ed0433e682983d8e8cba9c8d8ef274d4791ec6a6f24c58935b90e780e0a/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25c479382d26a2a41b7ebea1043564a937db462816ea07afa8a44c0866d52f9", size = 2065567, upload-time = "2025-11-04T13:39:12.244Z" }, + { url = "https://files.pythonhosted.org/packages/b3/24/cf84974ee7d6eae06b9e63289b7b8f6549d416b5c199ca2d7ce13bbcf619/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f547144f2966e1e16ae626d8ce72b4cfa0caedc7fa28052001c94fb2fcaa1c52", size = 2230442, upload-time = "2025-11-04T13:39:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/fd/21/4e287865504b3edc0136c89c9c09431be326168b1eb7841911cbc877a995/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f52298fbd394f9ed112d56f3d11aabd0d5bd27beb3084cc3d8ad069483b8941", size = 2350956, upload-time = "2025-11-04T13:39:15.889Z" }, + { url = "https://files.pythonhosted.org/packages/a8/76/7727ef2ffa4b62fcab916686a68a0426b9b790139720e1934e8ba797e238/pydantic_core-2.41.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:100baa204bb412b74fe285fb0f3a385256dad1d1879f0a5cb1499ed2e83d132a", size = 2068253, upload-time = "2025-11-04T13:39:17.403Z" }, + { url = "https://files.pythonhosted.org/packages/d5/8c/a4abfc79604bcb4c748e18975c44f94f756f08fb04218d5cb87eb0d3a63e/pydantic_core-2.41.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:05a2c8852530ad2812cb7914dc61a1125dc4e06252ee98e5638a12da6cc6fb6c", size = 2177050, upload-time = "2025-11-04T13:39:19.351Z" }, + { url = "https://files.pythonhosted.org/packages/67/b1/de2e9a9a79b480f9cb0b6e8b6ba4c50b18d4e89852426364c66aa82bb7b3/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:29452c56df2ed968d18d7e21f4ab0ac55e71dc59524872f6fc57dcf4a3249ed2", size = 2147178, upload-time = "2025-11-04T13:39:21Z" }, + { url = "https://files.pythonhosted.org/packages/16/c1/dfb33f837a47b20417500efaa0378adc6635b3c79e8369ff7a03c494b4ac/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:d5160812ea7a8a2ffbe233d8da666880cad0cbaf5d4de74ae15c313213d62556", size = 2341833, upload-time = "2025-11-04T13:39:22.606Z" }, + { url = "https://files.pythonhosted.org/packages/47/36/00f398642a0f4b815a9a558c4f1dca1b4020a7d49562807d7bc9ff279a6c/pydantic_core-2.41.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:df3959765b553b9440adfd3c795617c352154e497a4eaf3752555cfb5da8fc49", size = 2321156, upload-time = "2025-11-04T13:39:25.843Z" }, + { url = "https://files.pythonhosted.org/packages/7e/70/cad3acd89fde2010807354d978725ae111ddf6d0ea46d1ea1775b5c1bd0c/pydantic_core-2.41.5-cp310-cp310-win32.whl", hash = "sha256:1f8d33a7f4d5a7889e60dc39856d76d09333d8a6ed0f5f1190635cbec70ec4ba", size = 1989378, upload-time = "2025-11-04T13:39:27.92Z" }, + { url = "https://files.pythonhosted.org/packages/76/92/d338652464c6c367e5608e4488201702cd1cbb0f33f7b6a85a60fe5f3720/pydantic_core-2.41.5-cp310-cp310-win_amd64.whl", hash = "sha256:62de39db01b8d593e45871af2af9e497295db8d73b085f6bfd0b18c83c70a8f9", size = 2013622, upload-time = "2025-11-04T13:39:29.848Z" }, + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b0/1a2aa41e3b5a4ba11420aba2d091b2d17959c8d1519ece3627c371951e73/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b5819cd790dbf0c5eb9f82c73c16b39a65dd6dd4d1439dcdea7816ec9adddab8", size = 2103351, upload-time = "2025-11-04T13:43:02.058Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ee/31b1f0020baaf6d091c87900ae05c6aeae101fa4e188e1613c80e4f1ea31/pydantic_core-2.41.5-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:5a4e67afbc95fa5c34cf27d9089bca7fcab4e51e57278d710320a70b956d1b9a", size = 1925363, upload-time = "2025-11-04T13:43:05.159Z" }, + { url = "https://files.pythonhosted.org/packages/e1/89/ab8e86208467e467a80deaca4e434adac37b10a9d134cd2f99b28a01e483/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ece5c59f0ce7d001e017643d8d24da587ea1f74f6993467d85ae8a5ef9d4f42b", size = 2135615, upload-time = "2025-11-04T13:43:08.116Z" }, + { url = "https://files.pythonhosted.org/packages/99/0a/99a53d06dd0348b2008f2f30884b34719c323f16c3be4e6cc1203b74a91d/pydantic_core-2.41.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:16f80f7abe3351f8ea6858914ddc8c77e02578544a0ebc15b4c2e1a0e813b0b2", size = 2175369, upload-time = "2025-11-04T13:43:12.49Z" }, + { url = "https://files.pythonhosted.org/packages/6d/94/30ca3b73c6d485b9bb0bc66e611cff4a7138ff9736b7e66bcf0852151636/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:33cb885e759a705b426baada1fe68cbb0a2e68e34c5d0d0289a364cf01709093", size = 2144218, upload-time = "2025-11-04T13:43:15.431Z" }, + { url = "https://files.pythonhosted.org/packages/87/57/31b4f8e12680b739a91f472b5671294236b82586889ef764b5fbc6669238/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:c8d8b4eb992936023be7dee581270af5c6e0697a8559895f527f5b7105ecd36a", size = 2329951, upload-time = "2025-11-04T13:43:18.062Z" }, + { url = "https://files.pythonhosted.org/packages/7d/73/3c2c8edef77b8f7310e6fb012dbc4b8551386ed575b9eb6fb2506e28a7eb/pydantic_core-2.41.5-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:242a206cd0318f95cd21bdacff3fcc3aab23e79bba5cac3db5a841c9ef9c6963", size = 2318428, upload-time = "2025-11-04T13:43:20.679Z" }, + { url = "https://files.pythonhosted.org/packages/2f/02/8559b1f26ee0d502c74f9cca5c0d2fd97e967e083e006bbbb4e97f3a043a/pydantic_core-2.41.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d3a978c4f57a597908b7e697229d996d77a6d3c94901e9edee593adada95ce1a", size = 2147009, upload-time = "2025-11-04T13:43:23.286Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, ] [[package]] @@ -3335,9 +3385,9 @@ dependencies = [ { name = "python-dotenv" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/96/a1/ae859ffac5a3338a66b74c5e29e244fd3a3cc483c89feaf9f56c39898d75/pydantic_settings-2.13.0.tar.gz", hash = "sha256:95d875514610e8595672800a5c40b073e99e4aae467fa7c8f9c263061ea2e1fe", size = 222450, upload_time = "2026-02-15T12:11:23.476Z" } +sdist = { url = "https://files.pythonhosted.org/packages/96/a1/ae859ffac5a3338a66b74c5e29e244fd3a3cc483c89feaf9f56c39898d75/pydantic_settings-2.13.0.tar.gz", hash = "sha256:95d875514610e8595672800a5c40b073e99e4aae467fa7c8f9c263061ea2e1fe", size = 222450, upload-time = "2026-02-15T12:11:23.476Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b0/1a/dd1b9d7e627486cf8e7523d09b70010e05a4bc41414f4ae6ce184cf0afb6/pydantic_settings-2.13.0-py3-none-any.whl", hash = "sha256:d67b576fff39cd086b595441bf9c75d4193ca9c0ed643b90360694d0f1240246", size = 58429, upload_time = "2026-02-15T12:11:22.133Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1a/dd1b9d7e627486cf8e7523d09b70010e05a4bc41414f4ae6ce184cf0afb6/pydantic_settings-2.13.0-py3-none-any.whl", hash = "sha256:d67b576fff39cd086b595441bf9c75d4193ca9c0ed643b90360694d0f1240246", size = 58429, upload-time = "2026-02-15T12:11:22.133Z" }, ] [[package]] @@ -3347,27 +3397,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/75/c1/1c55272f49d761cec38ddb80be9817935b9c91ebd6a8988e10f532868d56/pydash-8.0.6.tar.gz", hash = "sha256:b2821547e9723f69cf3a986be4db64de41730be149b2641947ecd12e1e11025a", size = 164338, upload_time = "2026-01-17T16:42:56.576Z" } +sdist = { url = "https://files.pythonhosted.org/packages/75/c1/1c55272f49d761cec38ddb80be9817935b9c91ebd6a8988e10f532868d56/pydash-8.0.6.tar.gz", hash = "sha256:b2821547e9723f69cf3a986be4db64de41730be149b2641947ecd12e1e11025a", size = 164338, upload-time = "2026-01-17T16:42:56.576Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/b7/cc5e7974699db40014d58c7dd7c4ad4ffc244d36930dc9ec7d06ee67d7a9/pydash-8.0.6-py3-none-any.whl", hash = "sha256:ee70a81a5b292c007f28f03a4ee8e75c1f5d7576df5457b836ec7ab2839cc5d0", size = 101561, upload_time = "2026-01-17T16:42:55.448Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b7/cc5e7974699db40014d58c7dd7c4ad4ffc244d36930dc9ec7d06ee67d7a9/pydash-8.0.6-py3-none-any.whl", hash = "sha256:ee70a81a5b292c007f28f03a4ee8e75c1f5d7576df5457b836ec7ab2839cc5d0", size = 101561, upload-time = "2026-01-17T16:42:55.448Z" }, ] [[package]] name = "pygments" version = "2.19.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload_time = "2025-06-21T13:39:12.283Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b0/77/a5b8c569bf593b0140bde72ea885a803b82086995367bf2037de0159d924/pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887", size = 4968631, upload-time = "2025-06-21T13:39:12.283Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload_time = "2025-06-21T13:39:07.939Z" }, + { url = "https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b", size = 1225217, upload-time = "2025-06-21T13:39:07.939Z" }, ] [[package]] name = "pyjwt" version = "2.11.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz", hash = "sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623", size = 98019, upload_time = "2026-01-30T19:59:55.694Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5a/b46fa56bf322901eee5b0454a34343cdbdae202cd421775a8ee4e42fd519/pyjwt-2.11.0.tar.gz", hash = "sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623", size = 98019, upload-time = "2026-01-30T19:59:55.694Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl", hash = "sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469", size = 28224, upload_time = "2026-01-30T19:59:54.539Z" }, + { url = "https://files.pythonhosted.org/packages/6f/01/c26ce75ba460d5cd503da9e13b21a33804d38c2165dec7b716d06b13010c/pyjwt-2.11.0-py3-none-any.whl", hash = "sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469", size = 28224, upload-time = "2026-01-30T19:59:54.539Z" }, ] [[package]] @@ -3378,9 +3428,9 @@ dependencies = [ { name = "markdown" }, { name = "pyyaml" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9e/26/d1015444da4d952a1ca487a236b522eb979766f0295a0bd0c5fc089989a9/pymdown_extensions-10.21.3.tar.gz", hash = "sha256:72cfcf55f07aea0d4af2c4f11dd4e52466ddfb1bb819673146398e0bd3a77354", size = 854140, upload_time = "2026-05-13T12:57:32.267Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9e/26/d1015444da4d952a1ca487a236b522eb979766f0295a0bd0c5fc089989a9/pymdown_extensions-10.21.3.tar.gz", hash = "sha256:72cfcf55f07aea0d4af2c4f11dd4e52466ddfb1bb819673146398e0bd3a77354", size = 854140, upload-time = "2026-05-13T12:57:32.267Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/85/545a951eecc270fcd688288c600017e2050a1aacb56c711d208586d3e470/pymdown_extensions-10.21.3-py3-none-any.whl", hash = "sha256:d7a5d08014fc571e80ca21dd6f854e31f94c489800350564d55d15b3c41e76b6", size = 269002, upload_time = "2026-05-13T12:57:30.296Z" }, + { url = "https://files.pythonhosted.org/packages/7e/85/545a951eecc270fcd688288c600017e2050a1aacb56c711d208586d3e470/pymdown_extensions-10.21.3-py3-none-any.whl", hash = "sha256:d7a5d08014fc571e80ca21dd6f854e31f94c489800350564d55d15b3c41e76b6", size = 269002, upload-time = "2026-05-13T12:57:30.296Z" }, ] [[package]] @@ -3395,9 +3445,9 @@ dependencies = [ { name = "pluggy" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", size = 1357116, upload_time = "2023-12-31T12:00:18.035Z" } +sdist = { url = "https://files.pythonhosted.org/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", size = 1357116, upload-time = "2023-12-31T12:00:18.035Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8", size = 325287, upload_time = "2023-12-31T12:00:13.963Z" }, + { url = "https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8", size = 325287, upload-time = "2023-12-31T12:00:13.963Z" }, ] [[package]] @@ -3407,9 +3457,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/de/b4/0b378b7bf26a8ae161c3890c0b48a91a04106c5713ce81b4b080ea2f4f18/pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3", size = 46920, upload_time = "2024-07-17T17:39:34.617Z" } +sdist = { url = "https://files.pythonhosted.org/packages/de/b4/0b378b7bf26a8ae161c3890c0b48a91a04106c5713ce81b4b080ea2f4f18/pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3", size = 46920, upload-time = "2024-07-17T17:39:34.617Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2", size = 17663, upload_time = "2024-07-17T17:39:32.478Z" }, + { url = "https://files.pythonhosted.org/packages/ee/82/62e2d63639ecb0fbe8a7ee59ef0bc69a4669ec50f6d3459f74ad4e4189a2/pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2", size = 17663, upload-time = "2024-07-17T17:39:32.478Z" }, ] [[package]] @@ -3419,9 +3469,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload_time = "2024-03-01T18:36:20.211Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload_time = "2024-03-01T18:36:18.57Z" }, + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] [[package]] @@ -3432,82 +3482,82 @@ dependencies = [ { name = "filelock" }, { name = "platformdirs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ae/e0/cc5a8653e9a24f6cf84768f05064aa8ed5a83dcefd5e2a043db14a1c5f44/python_discovery-1.3.0.tar.gz", hash = "sha256:d098f1e86be5d45fe4d14bf1029294aabbd332f4321179dec85e76cddce834b0", size = 63925, upload_time = "2026-05-05T14:38:39.769Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/e0/cc5a8653e9a24f6cf84768f05064aa8ed5a83dcefd5e2a043db14a1c5f44/python_discovery-1.3.0.tar.gz", hash = "sha256:d098f1e86be5d45fe4d14bf1029294aabbd332f4321179dec85e76cddce834b0", size = 63925, upload-time = "2026-05-05T14:38:39.769Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/30/d4/24d543ab8b8158b7f5a97113c831205f5c900c92c8762b1e7f44b7ea0405/python_discovery-1.3.0-py3-none-any.whl", hash = "sha256:441d9ced3dfce36e113beb35ca302c71c7ef06f3c0f9c227a0b9bb3bd49b9e9f", size = 33124, upload_time = "2026-05-05T14:38:38.539Z" }, + { url = "https://files.pythonhosted.org/packages/30/d4/24d543ab8b8158b7f5a97113c831205f5c900c92c8762b1e7f44b7ea0405/python_discovery-1.3.0-py3-none-any.whl", hash = "sha256:441d9ced3dfce36e113beb35ca302c71c7ef06f3c0f9c227a0b9bb3bd49b9e9f", size = 33124, upload-time = "2026-05-05T14:38:38.539Z" }, ] [[package]] name = "python-dotenv" version = "1.2.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload_time = "2025-10-26T15:12:10.434Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload_time = "2025-10-26T15:12:09.109Z" }, + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, ] [[package]] name = "python-multipart" version = "0.0.22" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612, upload_time = "2026-01-25T10:15:56.219Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/01/979e98d542a70714b0cb2b6728ed0b7c46792b695e3eaec3e20711271ca3/python_multipart-0.0.22.tar.gz", hash = "sha256:7340bef99a7e0032613f56dc36027b959fd3b30a787ed62d310e951f7c3a3a58", size = 37612, upload-time = "2026-01-25T10:15:56.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload_time = "2026-01-25T10:15:54.811Z" }, + { url = "https://files.pythonhosted.org/packages/1b/d0/397f9626e711ff749a95d96b7af99b9c566a9bb5129b8e4c10fc4d100304/python_multipart-0.0.22-py3-none-any.whl", hash = "sha256:2b2cd894c83d21bf49d702499531c7bafd057d730c201782048f7945d82de155", size = 24579, upload-time = "2026-01-25T10:15:54.811Z" }, ] [[package]] name = "pytz" version = "2025.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload_time = "2025-03-25T02:25:00.538Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f8/bf/abbd3cdfb8fbc7fb3d4d38d320f2441b1e7cbe29be4f23797b4a2b5d8aac/pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3", size = 320884, upload-time = "2025-03-25T02:25:00.538Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload_time = "2025-03-25T02:24:58.468Z" }, + { url = "https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00", size = 509225, upload-time = "2025-03-25T02:24:58.468Z" }, ] [[package]] name = "pyyaml" version = "6.0.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload_time = "2025-09-25T21:33:16.546Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload_time = "2025-09-25T21:31:46.04Z" }, - { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload_time = "2025-09-25T21:31:47.706Z" }, - { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload_time = "2025-09-25T21:31:49.21Z" }, - { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload_time = "2025-09-25T21:31:50.735Z" }, - { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload_time = "2025-09-25T21:31:51.828Z" }, - { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload_time = "2025-09-25T21:31:53.282Z" }, - { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload_time = "2025-09-25T21:31:54.807Z" }, - { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload_time = "2025-09-25T21:31:55.885Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload_time = "2025-09-25T21:31:57.406Z" }, - { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload_time = "2025-09-25T21:31:58.655Z" }, - { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload_time = "2025-09-25T21:32:00.088Z" }, - { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload_time = "2025-09-25T21:32:01.31Z" }, - { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload_time = "2025-09-25T21:32:03.376Z" }, - { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload_time = "2025-09-25T21:32:04.553Z" }, - { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload_time = "2025-09-25T21:32:06.152Z" }, - { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload_time = "2025-09-25T21:32:07.367Z" }, - { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload_time = "2025-09-25T21:32:08.95Z" }, - { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload_time = "2025-09-25T21:32:09.96Z" }, - { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload_time = "2025-09-25T21:32:11.445Z" }, - { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload_time = "2025-09-25T21:32:12.492Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload_time = "2025-09-25T21:32:13.652Z" }, - { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload_time = "2025-09-25T21:32:15.21Z" }, - { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload_time = "2025-09-25T21:32:16.431Z" }, - { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload_time = "2025-09-25T21:32:17.56Z" }, - { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload_time = "2025-09-25T21:32:18.834Z" }, - { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload_time = "2025-09-25T21:32:20.209Z" }, - { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload_time = "2025-09-25T21:32:21.167Z" }, - { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload_time = "2025-09-25T21:32:22.617Z" }, - { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload_time = "2025-09-25T21:32:23.673Z" }, - { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload_time = "2025-09-25T21:32:25.149Z" }, - { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload_time = "2025-09-25T21:32:26.575Z" }, - { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload_time = "2025-09-25T21:32:27.727Z" }, - { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload_time = "2025-09-25T21:32:28.878Z" }, - { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload_time = "2025-09-25T21:32:30.178Z" }, - { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload_time = "2025-09-25T21:32:31.353Z" }, - { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload_time = "2025-09-25T21:32:32.58Z" }, - { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload_time = "2025-09-25T21:32:33.659Z" }, - { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload_time = "2025-09-25T21:32:34.663Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, ] [[package]] @@ -3517,60 +3567,60 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cffi", marker = "(python_full_version < '3.11' and implementation_name == 'pypy') or (implementation_name == 'pypy' and sys_platform != 'emscripten')" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload_time = "2025-09-08T23:10:18.157Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/67/b9/52aa9ec2867528b54f1e60846728d8b4d84726630874fee3a91e66c7df81/pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4", size = 1329850, upload_time = "2025-09-08T23:07:26.274Z" }, - { url = "https://files.pythonhosted.org/packages/99/64/5653e7b7425b169f994835a2b2abf9486264401fdef18df91ddae47ce2cc/pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556", size = 906380, upload_time = "2025-09-08T23:07:29.78Z" }, - { url = "https://files.pythonhosted.org/packages/73/78/7d713284dbe022f6440e391bd1f3c48d9185673878034cfb3939cdf333b2/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf7b38f9fd7b81cb6d9391b2946382c8237fd814075c6aa9c3b746d53076023b", size = 666421, upload_time = "2025-09-08T23:07:31.263Z" }, - { url = "https://files.pythonhosted.org/packages/30/76/8f099f9d6482450428b17c4d6b241281af7ce6a9de8149ca8c1c649f6792/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03ff0b279b40d687691a6217c12242ee71f0fba28bf8626ff50e3ef0f4410e1e", size = 854149, upload_time = "2025-09-08T23:07:33.17Z" }, - { url = "https://files.pythonhosted.org/packages/59/f0/37fbfff06c68016019043897e4c969ceab18bde46cd2aca89821fcf4fb2e/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:677e744fee605753eac48198b15a2124016c009a11056f93807000ab11ce6526", size = 1655070, upload_time = "2025-09-08T23:07:35.205Z" }, - { url = "https://files.pythonhosted.org/packages/47/14/7254be73f7a8edc3587609554fcaa7bfd30649bf89cd260e4487ca70fdaa/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd2fec2b13137416a1c5648b7009499bcc8fea78154cd888855fa32514f3dad1", size = 2033441, upload_time = "2025-09-08T23:07:37.432Z" }, - { url = "https://files.pythonhosted.org/packages/22/dc/49f2be26c6f86f347e796a4d99b19167fc94503f0af3fd010ad262158822/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08e90bb4b57603b84eab1d0ca05b3bbb10f60c1839dc471fc1c9e1507bef3386", size = 1891529, upload_time = "2025-09-08T23:07:39.047Z" }, - { url = "https://files.pythonhosted.org/packages/a3/3e/154fb963ae25be70c0064ce97776c937ecc7d8b0259f22858154a9999769/pyzmq-27.1.0-cp310-cp310-win32.whl", hash = "sha256:a5b42d7a0658b515319148875fcb782bbf118dd41c671b62dae33666c2213bda", size = 567276, upload_time = "2025-09-08T23:07:40.695Z" }, - { url = "https://files.pythonhosted.org/packages/62/b2/f4ab56c8c595abcb26b2be5fd9fa9e6899c1e5ad54964e93ae8bb35482be/pyzmq-27.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0bb87227430ee3aefcc0ade2088100e528d5d3298a0a715a64f3d04c60ba02f", size = 632208, upload_time = "2025-09-08T23:07:42.298Z" }, - { url = "https://files.pythonhosted.org/packages/3b/e3/be2cc7ab8332bdac0522fdb64c17b1b6241a795bee02e0196636ec5beb79/pyzmq-27.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:9a916f76c2ab8d045b19f2286851a38e9ac94ea91faf65bd64735924522a8b32", size = 559766, upload_time = "2025-09-08T23:07:43.869Z" }, - { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload_time = "2025-09-08T23:07:45.946Z" }, - { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload_time = "2025-09-08T23:07:47.551Z" }, - { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload_time = "2025-09-08T23:07:49.436Z" }, - { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload_time = "2025-09-08T23:07:51.234Z" }, - { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload_time = "2025-09-08T23:07:52.795Z" }, - { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload_time = "2025-09-08T23:07:55.047Z" }, - { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload_time = "2025-09-08T23:07:57.172Z" }, - { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload_time = "2025-09-08T23:07:59.05Z" }, - { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload_time = "2025-09-08T23:08:00.663Z" }, - { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload_time = "2025-09-08T23:08:02.15Z" }, - { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload_time = "2025-09-08T23:08:03.807Z" }, - { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload_time = "2025-09-08T23:08:05.301Z" }, - { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload_time = "2025-09-08T23:08:06.828Z" }, - { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload_time = "2025-09-08T23:08:08.396Z" }, - { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload_time = "2025-09-08T23:08:09.989Z" }, - { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload_time = "2025-09-08T23:08:11.907Z" }, - { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload_time = "2025-09-08T23:08:13.513Z" }, - { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload_time = "2025-09-08T23:08:15.163Z" }, - { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload_time = "2025-09-08T23:08:17.192Z" }, - { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload_time = "2025-09-08T23:08:18.926Z" }, - { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload_time = "2025-09-08T23:08:20.801Z" }, - { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload_time = "2025-09-08T23:08:22.47Z" }, - { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload_time = "2025-09-08T23:08:24.286Z" }, - { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload_time = "2025-09-08T23:08:26.063Z" }, - { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload_time = "2025-09-08T23:08:27.623Z" }, - { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload_time = "2025-09-08T23:08:29.672Z" }, - { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload_time = "2025-09-08T23:08:31.349Z" }, - { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload_time = "2025-09-08T23:08:33.543Z" }, - { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload_time = "2025-09-08T23:08:35.51Z" }, - { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload_time = "2025-09-08T23:08:37.178Z" }, - { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload_time = "2025-09-08T23:08:40.595Z" }, - { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload_time = "2025-09-08T23:08:42.668Z" }, - { url = "https://files.pythonhosted.org/packages/f3/81/a65e71c1552f74dec9dff91d95bafb6e0d33338a8dfefbc88aa562a20c92/pyzmq-27.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c17e03cbc9312bee223864f1a2b13a99522e0dc9f7c5df0177cd45210ac286e6", size = 836266, upload_time = "2025-09-08T23:09:40.048Z" }, - { url = "https://files.pythonhosted.org/packages/58/ed/0202ca350f4f2b69faa95c6d931e3c05c3a397c184cacb84cb4f8f42f287/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f328d01128373cb6763823b2b4e7f73bdf767834268c565151eacb3b7a392f90", size = 800206, upload_time = "2025-09-08T23:09:41.902Z" }, - { url = "https://files.pythonhosted.org/packages/47/42/1ff831fa87fe8f0a840ddb399054ca0009605d820e2b44ea43114f5459f4/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c1790386614232e1b3a40a958454bdd42c6d1811837b15ddbb052a032a43f62", size = 567747, upload_time = "2025-09-08T23:09:43.741Z" }, - { url = "https://files.pythonhosted.org/packages/d1/db/5c4d6807434751e3f21231bee98109aa57b9b9b55e058e450d0aef59b70f/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:448f9cb54eb0cee4732b46584f2710c8bc178b0e5371d9e4fc8125201e413a74", size = 747371, upload_time = "2025-09-08T23:09:45.575Z" }, - { url = "https://files.pythonhosted.org/packages/26/af/78ce193dbf03567eb8c0dc30e3df2b9e56f12a670bf7eb20f9fb532c7e8a/pyzmq-27.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05b12f2d32112bf8c95ef2e74ec4f1d4beb01f8b5e703b38537f8849f92cb9ba", size = 544862, upload_time = "2025-09-08T23:09:47.448Z" }, - { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload_time = "2025-09-08T23:09:49.376Z" }, - { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload_time = "2025-09-08T23:09:51.073Z" }, - { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload_time = "2025-09-08T23:09:52.698Z" }, - { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload_time = "2025-09-08T23:09:54.563Z" }, - { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload_time = "2025-09-08T23:09:56.509Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/04/0b/3c9baedbdf613ecaa7aa07027780b8867f57b6293b6ee50de316c9f3222b/pyzmq-27.1.0.tar.gz", hash = "sha256:ac0765e3d44455adb6ddbf4417dcce460fc40a05978c08efdf2948072f6db540", size = 281750, upload-time = "2025-09-08T23:10:18.157Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/b9/52aa9ec2867528b54f1e60846728d8b4d84726630874fee3a91e66c7df81/pyzmq-27.1.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:508e23ec9bc44c0005c4946ea013d9317ae00ac67778bd47519fdf5a0e930ff4", size = 1329850, upload-time = "2025-09-08T23:07:26.274Z" }, + { url = "https://files.pythonhosted.org/packages/99/64/5653e7b7425b169f994835a2b2abf9486264401fdef18df91ddae47ce2cc/pyzmq-27.1.0-cp310-cp310-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:507b6f430bdcf0ee48c0d30e734ea89ce5567fd7b8a0f0044a369c176aa44556", size = 906380, upload-time = "2025-09-08T23:07:29.78Z" }, + { url = "https://files.pythonhosted.org/packages/73/78/7d713284dbe022f6440e391bd1f3c48d9185673878034cfb3939cdf333b2/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf7b38f9fd7b81cb6d9391b2946382c8237fd814075c6aa9c3b746d53076023b", size = 666421, upload-time = "2025-09-08T23:07:31.263Z" }, + { url = "https://files.pythonhosted.org/packages/30/76/8f099f9d6482450428b17c4d6b241281af7ce6a9de8149ca8c1c649f6792/pyzmq-27.1.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:03ff0b279b40d687691a6217c12242ee71f0fba28bf8626ff50e3ef0f4410e1e", size = 854149, upload-time = "2025-09-08T23:07:33.17Z" }, + { url = "https://files.pythonhosted.org/packages/59/f0/37fbfff06c68016019043897e4c969ceab18bde46cd2aca89821fcf4fb2e/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:677e744fee605753eac48198b15a2124016c009a11056f93807000ab11ce6526", size = 1655070, upload-time = "2025-09-08T23:07:35.205Z" }, + { url = "https://files.pythonhosted.org/packages/47/14/7254be73f7a8edc3587609554fcaa7bfd30649bf89cd260e4487ca70fdaa/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:dd2fec2b13137416a1c5648b7009499bcc8fea78154cd888855fa32514f3dad1", size = 2033441, upload-time = "2025-09-08T23:07:37.432Z" }, + { url = "https://files.pythonhosted.org/packages/22/dc/49f2be26c6f86f347e796a4d99b19167fc94503f0af3fd010ad262158822/pyzmq-27.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:08e90bb4b57603b84eab1d0ca05b3bbb10f60c1839dc471fc1c9e1507bef3386", size = 1891529, upload-time = "2025-09-08T23:07:39.047Z" }, + { url = "https://files.pythonhosted.org/packages/a3/3e/154fb963ae25be70c0064ce97776c937ecc7d8b0259f22858154a9999769/pyzmq-27.1.0-cp310-cp310-win32.whl", hash = "sha256:a5b42d7a0658b515319148875fcb782bbf118dd41c671b62dae33666c2213bda", size = 567276, upload-time = "2025-09-08T23:07:40.695Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/f4ab56c8c595abcb26b2be5fd9fa9e6899c1e5ad54964e93ae8bb35482be/pyzmq-27.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0bb87227430ee3aefcc0ade2088100e528d5d3298a0a715a64f3d04c60ba02f", size = 632208, upload-time = "2025-09-08T23:07:42.298Z" }, + { url = "https://files.pythonhosted.org/packages/3b/e3/be2cc7ab8332bdac0522fdb64c17b1b6241a795bee02e0196636ec5beb79/pyzmq-27.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:9a916f76c2ab8d045b19f2286851a38e9ac94ea91faf65bd64735924522a8b32", size = 559766, upload-time = "2025-09-08T23:07:43.869Z" }, + { url = "https://files.pythonhosted.org/packages/06/5d/305323ba86b284e6fcb0d842d6adaa2999035f70f8c38a9b6d21ad28c3d4/pyzmq-27.1.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:226b091818d461a3bef763805e75685e478ac17e9008f49fce2d3e52b3d58b86", size = 1333328, upload-time = "2025-09-08T23:07:45.946Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a0/fc7e78a23748ad5443ac3275943457e8452da67fda347e05260261108cbc/pyzmq-27.1.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0790a0161c281ca9723f804871b4027f2e8b5a528d357c8952d08cd1a9c15581", size = 908803, upload-time = "2025-09-08T23:07:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/7e/22/37d15eb05f3bdfa4abea6f6d96eb3bb58585fbd3e4e0ded4e743bc650c97/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c895a6f35476b0c3a54e3eb6ccf41bf3018de937016e6e18748317f25d4e925f", size = 668836, upload-time = "2025-09-08T23:07:49.436Z" }, + { url = "https://files.pythonhosted.org/packages/b1/c4/2a6fe5111a01005fc7af3878259ce17684fabb8852815eda6225620f3c59/pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bbf8d3630bf96550b3be8e1fc0fea5cbdc8d5466c1192887bd94869da17a63e", size = 857038, upload-time = "2025-09-08T23:07:51.234Z" }, + { url = "https://files.pythonhosted.org/packages/cb/eb/bfdcb41d0db9cd233d6fb22dc131583774135505ada800ebf14dfb0a7c40/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15c8bd0fe0dabf808e2d7a681398c4e5ded70a551ab47482067a572c054c8e2e", size = 1657531, upload-time = "2025-09-08T23:07:52.795Z" }, + { url = "https://files.pythonhosted.org/packages/ab/21/e3180ca269ed4a0de5c34417dfe71a8ae80421198be83ee619a8a485b0c7/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bafcb3dd171b4ae9f19ee6380dfc71ce0390fefaf26b504c0e5f628d7c8c54f2", size = 2034786, upload-time = "2025-09-08T23:07:55.047Z" }, + { url = "https://files.pythonhosted.org/packages/3b/b1/5e21d0b517434b7f33588ff76c177c5a167858cc38ef740608898cd329f2/pyzmq-27.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e829529fcaa09937189178115c49c504e69289abd39967cd8a4c215761373394", size = 1894220, upload-time = "2025-09-08T23:07:57.172Z" }, + { url = "https://files.pythonhosted.org/packages/03/f2/44913a6ff6941905efc24a1acf3d3cb6146b636c546c7406c38c49c403d4/pyzmq-27.1.0-cp311-cp311-win32.whl", hash = "sha256:6df079c47d5902af6db298ec92151db82ecb557af663098b92f2508c398bb54f", size = 567155, upload-time = "2025-09-08T23:07:59.05Z" }, + { url = "https://files.pythonhosted.org/packages/23/6d/d8d92a0eb270a925c9b4dd039c0b4dc10abc2fcbc48331788824ef113935/pyzmq-27.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:190cbf120fbc0fc4957b56866830def56628934a9d112aec0e2507aa6a032b97", size = 633428, upload-time = "2025-09-08T23:08:00.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/14/01afebc96c5abbbd713ecfc7469cfb1bc801c819a74ed5c9fad9a48801cb/pyzmq-27.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:eca6b47df11a132d1745eb3b5b5e557a7dae2c303277aa0e69c6ba91b8736e07", size = 559497, upload-time = "2025-09-08T23:08:02.15Z" }, + { url = "https://files.pythonhosted.org/packages/92/e7/038aab64a946d535901103da16b953c8c9cc9c961dadcbf3609ed6428d23/pyzmq-27.1.0-cp312-abi3-macosx_10_15_universal2.whl", hash = "sha256:452631b640340c928fa343801b0d07eb0c3789a5ffa843f6e1a9cee0ba4eb4fc", size = 1306279, upload-time = "2025-09-08T23:08:03.807Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/c3c49fdd0f535ef45eefcc16934648e9e59dace4a37ee88fc53f6cd8e641/pyzmq-27.1.0-cp312-abi3-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:1c179799b118e554b66da67d88ed66cd37a169f1f23b5d9f0a231b4e8d44a113", size = 895645, upload-time = "2025-09-08T23:08:05.301Z" }, + { url = "https://files.pythonhosted.org/packages/f8/e5/b0b2504cb4e903a74dcf1ebae157f9e20ebb6ea76095f6cfffea28c42ecd/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3837439b7f99e60312f0c926a6ad437b067356dc2bc2ec96eb395fd0fe804233", size = 652574, upload-time = "2025-09-08T23:08:06.828Z" }, + { url = "https://files.pythonhosted.org/packages/f8/9b/c108cdb55560eaf253f0cbdb61b29971e9fb34d9c3499b0e96e4e60ed8a5/pyzmq-27.1.0-cp312-abi3-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:43ad9a73e3da1fab5b0e7e13402f0b2fb934ae1c876c51d0afff0e7c052eca31", size = 840995, upload-time = "2025-09-08T23:08:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/c2/bb/b79798ca177b9eb0825b4c9998c6af8cd2a7f15a6a1a4272c1d1a21d382f/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0de3028d69d4cdc475bfe47a6128eb38d8bc0e8f4d69646adfbcd840facbac28", size = 1642070, upload-time = "2025-09-08T23:08:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/9c/80/2df2e7977c4ede24c79ae39dcef3899bfc5f34d1ca7a5b24f182c9b7a9ca/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_i686.whl", hash = "sha256:cf44a7763aea9298c0aa7dbf859f87ed7012de8bda0f3977b6fb1d96745df856", size = 2021121, upload-time = "2025-09-08T23:08:11.907Z" }, + { url = "https://files.pythonhosted.org/packages/46/bd/2d45ad24f5f5ae7e8d01525eb76786fa7557136555cac7d929880519e33a/pyzmq-27.1.0-cp312-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f30f395a9e6fbca195400ce833c731e7b64c3919aa481af4d88c3759e0cb7496", size = 1878550, upload-time = "2025-09-08T23:08:13.513Z" }, + { url = "https://files.pythonhosted.org/packages/e6/2f/104c0a3c778d7c2ab8190e9db4f62f0b6957b53c9d87db77c284b69f33ea/pyzmq-27.1.0-cp312-abi3-win32.whl", hash = "sha256:250e5436a4ba13885494412b3da5d518cd0d3a278a1ae640e113c073a5f88edd", size = 559184, upload-time = "2025-09-08T23:08:15.163Z" }, + { url = "https://files.pythonhosted.org/packages/fc/7f/a21b20d577e4100c6a41795842028235998a643b1ad406a6d4163ea8f53e/pyzmq-27.1.0-cp312-abi3-win_amd64.whl", hash = "sha256:9ce490cf1d2ca2ad84733aa1d69ce6855372cb5ce9223802450c9b2a7cba0ccf", size = 619480, upload-time = "2025-09-08T23:08:17.192Z" }, + { url = "https://files.pythonhosted.org/packages/78/c2/c012beae5f76b72f007a9e91ee9401cb88c51d0f83c6257a03e785c81cc2/pyzmq-27.1.0-cp312-abi3-win_arm64.whl", hash = "sha256:75a2f36223f0d535a0c919e23615fc85a1e23b71f40c7eb43d7b1dedb4d8f15f", size = 552993, upload-time = "2025-09-08T23:08:18.926Z" }, + { url = "https://files.pythonhosted.org/packages/60/cb/84a13459c51da6cec1b7b1dc1a47e6db6da50b77ad7fd9c145842750a011/pyzmq-27.1.0-cp313-cp313-android_24_arm64_v8a.whl", hash = "sha256:93ad4b0855a664229559e45c8d23797ceac03183c7b6f5b4428152a6b06684a5", size = 1122436, upload-time = "2025-09-08T23:08:20.801Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/94414759a69a26c3dd674570a81813c46a078767d931a6c70ad29fc585cb/pyzmq-27.1.0-cp313-cp313-android_24_x86_64.whl", hash = "sha256:fbb4f2400bfda24f12f009cba62ad5734148569ff4949b1b6ec3b519444342e6", size = 1156301, upload-time = "2025-09-08T23:08:22.47Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ad/15906493fd40c316377fd8a8f6b1f93104f97a752667763c9b9c1b71d42d/pyzmq-27.1.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:e343d067f7b151cfe4eb3bb796a7752c9d369eed007b91231e817071d2c2fec7", size = 1341197, upload-time = "2025-09-08T23:08:24.286Z" }, + { url = "https://files.pythonhosted.org/packages/14/1d/d343f3ce13db53a54cb8946594e567410b2125394dafcc0268d8dda027e0/pyzmq-27.1.0-cp313-cp313t-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:08363b2011dec81c354d694bdecaef4770e0ae96b9afea70b3f47b973655cc05", size = 897275, upload-time = "2025-09-08T23:08:26.063Z" }, + { url = "https://files.pythonhosted.org/packages/69/2d/d83dd6d7ca929a2fc67d2c3005415cdf322af7751d773524809f9e585129/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d54530c8c8b5b8ddb3318f481297441af102517602b569146185fa10b63f4fa9", size = 660469, upload-time = "2025-09-08T23:08:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/3e/cd/9822a7af117f4bc0f1952dbe9ef8358eb50a24928efd5edf54210b850259/pyzmq-27.1.0-cp313-cp313t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f3afa12c392f0a44a2414056d730eebc33ec0926aae92b5ad5cf26ebb6cc128", size = 847961, upload-time = "2025-09-08T23:08:29.672Z" }, + { url = "https://files.pythonhosted.org/packages/9a/12/f003e824a19ed73be15542f172fd0ec4ad0b60cf37436652c93b9df7c585/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c65047adafe573ff023b3187bb93faa583151627bc9c51fc4fb2c561ed689d39", size = 1650282, upload-time = "2025-09-08T23:08:31.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4a/e82d788ed58e9a23995cee70dbc20c9aded3d13a92d30d57ec2291f1e8a3/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:90e6e9441c946a8b0a667356f7078d96411391a3b8f80980315455574177ec97", size = 2024468, upload-time = "2025-09-08T23:08:33.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/94/2da0a60841f757481e402b34bf4c8bf57fa54a5466b965de791b1e6f747d/pyzmq-27.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:add071b2d25f84e8189aaf0882d39a285b42fa3853016ebab234a5e78c7a43db", size = 1885394, upload-time = "2025-09-08T23:08:35.51Z" }, + { url = "https://files.pythonhosted.org/packages/4f/6f/55c10e2e49ad52d080dc24e37adb215e5b0d64990b57598abc2e3f01725b/pyzmq-27.1.0-cp313-cp313t-win32.whl", hash = "sha256:7ccc0700cfdf7bd487bea8d850ec38f204478681ea02a582a8da8171b7f90a1c", size = 574964, upload-time = "2025-09-08T23:08:37.178Z" }, + { url = "https://files.pythonhosted.org/packages/87/4d/2534970ba63dd7c522d8ca80fb92777f362c0f321900667c615e2067cb29/pyzmq-27.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8085a9fba668216b9b4323be338ee5437a235fe275b9d1610e422ccc279733e2", size = 641029, upload-time = "2025-09-08T23:08:40.595Z" }, + { url = "https://files.pythonhosted.org/packages/f6/fa/f8aea7a28b0641f31d40dea42d7ef003fded31e184ef47db696bc74cd610/pyzmq-27.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:6bb54ca21bcfe361e445256c15eedf083f153811c37be87e0514934d6913061e", size = 561541, upload-time = "2025-09-08T23:08:42.668Z" }, + { url = "https://files.pythonhosted.org/packages/f3/81/a65e71c1552f74dec9dff91d95bafb6e0d33338a8dfefbc88aa562a20c92/pyzmq-27.1.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c17e03cbc9312bee223864f1a2b13a99522e0dc9f7c5df0177cd45210ac286e6", size = 836266, upload-time = "2025-09-08T23:09:40.048Z" }, + { url = "https://files.pythonhosted.org/packages/58/ed/0202ca350f4f2b69faa95c6d931e3c05c3a397c184cacb84cb4f8f42f287/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f328d01128373cb6763823b2b4e7f73bdf767834268c565151eacb3b7a392f90", size = 800206, upload-time = "2025-09-08T23:09:41.902Z" }, + { url = "https://files.pythonhosted.org/packages/47/42/1ff831fa87fe8f0a840ddb399054ca0009605d820e2b44ea43114f5459f4/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c1790386614232e1b3a40a958454bdd42c6d1811837b15ddbb052a032a43f62", size = 567747, upload-time = "2025-09-08T23:09:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/d1/db/5c4d6807434751e3f21231bee98109aa57b9b9b55e058e450d0aef59b70f/pyzmq-27.1.0-pp310-pypy310_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:448f9cb54eb0cee4732b46584f2710c8bc178b0e5371d9e4fc8125201e413a74", size = 747371, upload-time = "2025-09-08T23:09:45.575Z" }, + { url = "https://files.pythonhosted.org/packages/26/af/78ce193dbf03567eb8c0dc30e3df2b9e56f12a670bf7eb20f9fb532c7e8a/pyzmq-27.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:05b12f2d32112bf8c95ef2e74ec4f1d4beb01f8b5e703b38537f8849f92cb9ba", size = 544862, upload-time = "2025-09-08T23:09:47.448Z" }, + { url = "https://files.pythonhosted.org/packages/4c/c6/c4dcdecdbaa70969ee1fdced6d7b8f60cfabe64d25361f27ac4665a70620/pyzmq-27.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:18770c8d3563715387139060d37859c02ce40718d1faf299abddcdcc6a649066", size = 836265, upload-time = "2025-09-08T23:09:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/3e/79/f38c92eeaeb03a2ccc2ba9866f0439593bb08c5e3b714ac1d553e5c96e25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:ac25465d42f92e990f8d8b0546b01c391ad431c3bf447683fdc40565941d0604", size = 800208, upload-time = "2025-09-08T23:09:51.073Z" }, + { url = "https://files.pythonhosted.org/packages/49/0e/3f0d0d335c6b3abb9b7b723776d0b21fa7f3a6c819a0db6097059aada160/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53b40f8ae006f2734ee7608d59ed661419f087521edbfc2149c3932e9c14808c", size = 567747, upload-time = "2025-09-08T23:09:52.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/cf/f2b3784d536250ffd4be70e049f3b60981235d70c6e8ce7e3ef21e1adb25/pyzmq-27.1.0-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f605d884e7c8be8fe1aa94e0a783bf3f591b84c24e4bc4f3e7564c82ac25e271", size = 747371, upload-time = "2025-09-08T23:09:54.563Z" }, + { url = "https://files.pythonhosted.org/packages/01/1b/5dbe84eefc86f48473947e2f41711aded97eecef1231f4558f1f02713c12/pyzmq-27.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:c9f7f6e13dff2e44a6afeaf2cf54cee5929ad64afaf4d40b50f93c58fc687355", size = 544862, upload-time = "2025-09-08T23:09:56.509Z" }, ] [[package]] @@ -3582,98 +3632,98 @@ dependencies = [ { name = "rpds-py" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload_time = "2025-10-13T15:30:48.871Z" } +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload_time = "2025-10-13T15:30:47.625Z" }, + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, ] [[package]] name = "regex" version = "2026.1.15" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/86/07d5056945f9ec4590b518171c4254a5925832eb727b56d3c38a7476f316/regex-2026.1.15.tar.gz", hash = "sha256:164759aa25575cbc0651bef59a0b18353e54300d79ace8084c818ad8ac72b7d5", size = 414811, upload_time = "2026-01-14T23:18:02.775Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ea/d2/e6ee96b7dff201a83f650241c52db8e5bd080967cb93211f57aa448dc9d6/regex-2026.1.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4e3dd93c8f9abe8aa4b6c652016da9a3afa190df5ad822907efe6b206c09896e", size = 488166, upload_time = "2026-01-14T23:13:46.408Z" }, - { url = "https://files.pythonhosted.org/packages/23/8a/819e9ce14c9f87af026d0690901b3931f3101160833e5d4c8061fa3a1b67/regex-2026.1.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97499ff7862e868b1977107873dd1a06e151467129159a6ffd07b66706ba3a9f", size = 290632, upload_time = "2026-01-14T23:13:48.688Z" }, - { url = "https://files.pythonhosted.org/packages/d5/c3/23dfe15af25d1d45b07dfd4caa6003ad710dcdcb4c4b279909bdfe7a2de8/regex-2026.1.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bda75ebcac38d884240914c6c43d8ab5fb82e74cde6da94b43b17c411aa4c2b", size = 288500, upload_time = "2026-01-14T23:13:50.503Z" }, - { url = "https://files.pythonhosted.org/packages/c6/31/1adc33e2f717df30d2f4d973f8776d2ba6ecf939301efab29fca57505c95/regex-2026.1.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7dcc02368585334f5bc81fc73a2a6a0bbade60e7d83da21cead622faf408f32c", size = 781670, upload_time = "2026-01-14T23:13:52.453Z" }, - { url = "https://files.pythonhosted.org/packages/23/ce/21a8a22d13bc4adcb927c27b840c948f15fc973e21ed2346c1bd0eae22dc/regex-2026.1.15-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:693b465171707bbe882a7a05de5e866f33c76aa449750bee94a8d90463533cc9", size = 850820, upload_time = "2026-01-14T23:13:54.894Z" }, - { url = "https://files.pythonhosted.org/packages/6c/4f/3eeacdf587a4705a44484cd0b30e9230a0e602811fb3e2cc32268c70d509/regex-2026.1.15-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b0d190e6f013ea938623a58706d1469a62103fb2a241ce2873a9906e0386582c", size = 898777, upload_time = "2026-01-14T23:13:56.908Z" }, - { url = "https://files.pythonhosted.org/packages/79/a9/1898a077e2965c35fc22796488141a22676eed2d73701e37c73ad7c0b459/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ff818702440a5878a81886f127b80127f5d50563753a28211482867f8318106", size = 791750, upload_time = "2026-01-14T23:13:58.527Z" }, - { url = "https://files.pythonhosted.org/packages/4c/84/e31f9d149a178889b3817212827f5e0e8c827a049ff31b4b381e76b26e2d/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f052d1be37ef35a54e394de66136e30fa1191fab64f71fc06ac7bc98c9a84618", size = 782674, upload_time = "2026-01-14T23:13:59.874Z" }, - { url = "https://files.pythonhosted.org/packages/d2/ff/adf60063db24532add6a1676943754a5654dcac8237af024ede38244fd12/regex-2026.1.15-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6bfc31a37fd1592f0c4fc4bfc674b5c42e52efe45b4b7a6a14f334cca4bcebe4", size = 767906, upload_time = "2026-01-14T23:14:01.298Z" }, - { url = "https://files.pythonhosted.org/packages/af/3e/e6a216cee1e2780fec11afe7fc47b6f3925d7264e8149c607ac389fd9b1a/regex-2026.1.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d6ce5ae80066b319ae3bc62fd55a557c9491baa5efd0d355f0de08c4ba54e79", size = 774798, upload_time = "2026-01-14T23:14:02.715Z" }, - { url = "https://files.pythonhosted.org/packages/0f/98/23a4a8378a9208514ed3efc7e7850c27fa01e00ed8557c958df0335edc4a/regex-2026.1.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1704d204bd42b6bb80167df0e4554f35c255b579ba99616def38f69e14a5ccb9", size = 845861, upload_time = "2026-01-14T23:14:04.824Z" }, - { url = "https://files.pythonhosted.org/packages/f8/57/d7605a9d53bd07421a8785d349cd29677fe660e13674fa4c6cbd624ae354/regex-2026.1.15-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3174a5ed4171570dc8318afada56373aa9289eb6dc0d96cceb48e7358b0e220", size = 755648, upload_time = "2026-01-14T23:14:06.371Z" }, - { url = "https://files.pythonhosted.org/packages/6f/76/6f2e24aa192da1e299cc1101674a60579d3912391867ce0b946ba83e2194/regex-2026.1.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:87adf5bd6d72e3e17c9cb59ac4096b1faaf84b7eb3037a5ffa61c4b4370f0f13", size = 836250, upload_time = "2026-01-14T23:14:08.343Z" }, - { url = "https://files.pythonhosted.org/packages/11/3a/1f2a1d29453299a7858eab7759045fc3d9d1b429b088dec2dc85b6fa16a2/regex-2026.1.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e85dc94595f4d766bd7d872a9de5ede1ca8d3063f3bdf1e2c725f5eb411159e3", size = 779919, upload_time = "2026-01-14T23:14:09.954Z" }, - { url = "https://files.pythonhosted.org/packages/c0/67/eab9bc955c9dcc58e9b222c801e39cff7ca0b04261792a2149166ce7e792/regex-2026.1.15-cp310-cp310-win32.whl", hash = "sha256:21ca32c28c30d5d65fc9886ff576fc9b59bbca08933e844fa2363e530f4c8218", size = 265888, upload_time = "2026-01-14T23:14:11.35Z" }, - { url = "https://files.pythonhosted.org/packages/1d/62/31d16ae24e1f8803bddb0885508acecaec997fcdcde9c243787103119ae4/regex-2026.1.15-cp310-cp310-win_amd64.whl", hash = "sha256:3038a62fc7d6e5547b8915a3d927a0fbeef84cdbe0b1deb8c99bbd4a8961b52a", size = 277830, upload_time = "2026-01-14T23:14:12.908Z" }, - { url = "https://files.pythonhosted.org/packages/e5/36/5d9972bccd6417ecd5a8be319cebfd80b296875e7f116c37fb2a2deecebf/regex-2026.1.15-cp310-cp310-win_arm64.whl", hash = "sha256:505831646c945e3e63552cc1b1b9b514f0e93232972a2d5bedbcc32f15bc82e3", size = 270376, upload_time = "2026-01-14T23:14:14.782Z" }, - { url = "https://files.pythonhosted.org/packages/d0/c9/0c80c96eab96948363d270143138d671d5731c3a692b417629bf3492a9d6/regex-2026.1.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ae6020fb311f68d753b7efa9d4b9a5d47a5d6466ea0d5e3b5a471a960ea6e4a", size = 488168, upload_time = "2026-01-14T23:14:16.129Z" }, - { url = "https://files.pythonhosted.org/packages/17/f0/271c92f5389a552494c429e5cc38d76d1322eb142fb5db3c8ccc47751468/regex-2026.1.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eddf73f41225942c1f994914742afa53dc0d01a6e20fe14b878a1b1edc74151f", size = 290636, upload_time = "2026-01-14T23:14:17.715Z" }, - { url = "https://files.pythonhosted.org/packages/a0/f9/5f1fd077d106ca5655a0f9ff8f25a1ab55b92128b5713a91ed7134ff688e/regex-2026.1.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e8cd52557603f5c66a548f69421310886b28b7066853089e1a71ee710e1cdc1", size = 288496, upload_time = "2026-01-14T23:14:19.326Z" }, - { url = "https://files.pythonhosted.org/packages/b5/e1/8f43b03a4968c748858ec77f746c286d81f896c2e437ccf050ebc5d3128c/regex-2026.1.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5170907244b14303edc5978f522f16c974f32d3aa92109fabc2af52411c9433b", size = 793503, upload_time = "2026-01-14T23:14:20.922Z" }, - { url = "https://files.pythonhosted.org/packages/8d/4e/a39a5e8edc5377a46a7c875c2f9a626ed3338cb3bb06931be461c3e1a34a/regex-2026.1.15-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2748c1ec0663580b4510bd89941a31560b4b439a0b428b49472a3d9944d11cd8", size = 860535, upload_time = "2026-01-14T23:14:22.405Z" }, - { url = "https://files.pythonhosted.org/packages/dc/1c/9dce667a32a9477f7a2869c1c767dc00727284a9fa3ff5c09a5c6c03575e/regex-2026.1.15-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2f2775843ca49360508d080eaa87f94fa248e2c946bbcd963bb3aae14f333413", size = 907225, upload_time = "2026-01-14T23:14:23.897Z" }, - { url = "https://files.pythonhosted.org/packages/a4/3c/87ca0a02736d16b6262921425e84b48984e77d8e4e572c9072ce96e66c30/regex-2026.1.15-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9ea2604370efc9a174c1b5dcc81784fb040044232150f7f33756049edfc9026", size = 800526, upload_time = "2026-01-14T23:14:26.039Z" }, - { url = "https://files.pythonhosted.org/packages/4b/ff/647d5715aeea7c87bdcbd2f578f47b415f55c24e361e639fe8c0cc88878f/regex-2026.1.15-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dcd31594264029b57bf16f37fd7248a70b3b764ed9e0839a8f271b2d22c0785", size = 773446, upload_time = "2026-01-14T23:14:28.109Z" }, - { url = "https://files.pythonhosted.org/packages/af/89/bf22cac25cb4ba0fe6bff52ebedbb65b77a179052a9d6037136ae93f42f4/regex-2026.1.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c08c1f3e34338256732bd6938747daa3c0d5b251e04b6e43b5813e94d503076e", size = 783051, upload_time = "2026-01-14T23:14:29.929Z" }, - { url = "https://files.pythonhosted.org/packages/1e/f4/6ed03e71dca6348a5188363a34f5e26ffd5db1404780288ff0d79513bce4/regex-2026.1.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e43a55f378df1e7a4fa3547c88d9a5a9b7113f653a66821bcea4718fe6c58763", size = 854485, upload_time = "2026-01-14T23:14:31.366Z" }, - { url = "https://files.pythonhosted.org/packages/d9/9a/8e8560bd78caded8eb137e3e47612430a05b9a772caf60876435192d670a/regex-2026.1.15-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f82110ab962a541737bd0ce87978d4c658f06e7591ba899192e2712a517badbb", size = 762195, upload_time = "2026-01-14T23:14:32.802Z" }, - { url = "https://files.pythonhosted.org/packages/38/6b/61fc710f9aa8dfcd764fe27d37edfaa023b1a23305a0d84fccd5adb346ea/regex-2026.1.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:27618391db7bdaf87ac6c92b31e8f0dfb83a9de0075855152b720140bda177a2", size = 845986, upload_time = "2026-01-14T23:14:34.898Z" }, - { url = "https://files.pythonhosted.org/packages/fd/2e/fbee4cb93f9d686901a7ca8d94285b80405e8c34fe4107f63ffcbfb56379/regex-2026.1.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bfb0d6be01fbae8d6655c8ca21b3b72458606c4aec9bbc932db758d47aba6db1", size = 788992, upload_time = "2026-01-14T23:14:37.116Z" }, - { url = "https://files.pythonhosted.org/packages/ed/14/3076348f3f586de64b1ab75a3fbabdaab7684af7f308ad43be7ef1849e55/regex-2026.1.15-cp311-cp311-win32.whl", hash = "sha256:b10e42a6de0e32559a92f2f8dc908478cc0fa02838d7dbe764c44dca3fa13569", size = 265893, upload_time = "2026-01-14T23:14:38.426Z" }, - { url = "https://files.pythonhosted.org/packages/0f/19/772cf8b5fc803f5c89ba85d8b1870a1ca580dc482aa030383a9289c82e44/regex-2026.1.15-cp311-cp311-win_amd64.whl", hash = "sha256:e9bf3f0bbdb56633c07d7116ae60a576f846efdd86a8848f8d62b749e1209ca7", size = 277840, upload_time = "2026-01-14T23:14:39.785Z" }, - { url = "https://files.pythonhosted.org/packages/78/84/d05f61142709474da3c0853222d91086d3e1372bcdab516c6fd8d80f3297/regex-2026.1.15-cp311-cp311-win_arm64.whl", hash = "sha256:41aef6f953283291c4e4e6850607bd71502be67779586a61472beacb315c97ec", size = 270374, upload_time = "2026-01-14T23:14:41.592Z" }, - { url = "https://files.pythonhosted.org/packages/92/81/10d8cf43c807d0326efe874c1b79f22bfb0fb226027b0b19ebc26d301408/regex-2026.1.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c8fcc5793dde01641a35905d6731ee1548f02b956815f8f1cab89e515a5bdf1", size = 489398, upload_time = "2026-01-14T23:14:43.741Z" }, - { url = "https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bfd876041a956e6a90ad7cdb3f6a630c07d491280bfeed4544053cd434901681", size = 291339, upload_time = "2026-01-14T23:14:45.183Z" }, - { url = "https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f", size = 289003, upload_time = "2026-01-14T23:14:47.25Z" }, - { url = "https://files.pythonhosted.org/packages/c6/e4/1fc4599450c9f0863d9406e944592d968b8d6dfd0d552a7d569e43bceada/regex-2026.1.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8a154cf6537ebbc110e24dabe53095e714245c272da9c1be05734bdad4a61aa", size = 798656, upload_time = "2026-01-14T23:14:48.77Z" }, - { url = "https://files.pythonhosted.org/packages/b2/e6/59650d73a73fa8a60b3a590545bfcf1172b4384a7df2e7fe7b9aab4e2da9/regex-2026.1.15-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8050ba2e3ea1d8731a549e83c18d2f0999fbc99a5f6bd06b4c91449f55291804", size = 864252, upload_time = "2026-01-14T23:14:50.528Z" }, - { url = "https://files.pythonhosted.org/packages/6e/ab/1d0f4d50a1638849a97d731364c9a80fa304fec46325e48330c170ee8e80/regex-2026.1.15-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf065240704cb8951cc04972cf107063917022511273e0969bdb34fc173456c", size = 912268, upload_time = "2026-01-14T23:14:52.952Z" }, - { url = "https://files.pythonhosted.org/packages/dd/df/0d722c030c82faa1d331d1921ee268a4e8fb55ca8b9042c9341c352f17fa/regex-2026.1.15-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c32bef3e7aeee75746748643667668ef941d28b003bfc89994ecf09a10f7a1b5", size = 803589, upload_time = "2026-01-14T23:14:55.182Z" }, - { url = "https://files.pythonhosted.org/packages/66/23/33289beba7ccb8b805c6610a8913d0131f834928afc555b241caabd422a9/regex-2026.1.15-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5eaa4a4c5b1906bd0d2508d68927f15b81821f85092e06f1a34a4254b0e1af3", size = 775700, upload_time = "2026-01-14T23:14:56.707Z" }, - { url = "https://files.pythonhosted.org/packages/e7/65/bf3a42fa6897a0d3afa81acb25c42f4b71c274f698ceabd75523259f6688/regex-2026.1.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:86c1077a3cc60d453d4084d5b9649065f3bf1184e22992bd322e1f081d3117fb", size = 787928, upload_time = "2026-01-14T23:14:58.312Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f5/13bf65864fc314f68cdd6d8ca94adcab064d4d39dbd0b10fef29a9da48fc/regex-2026.1.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2b091aefc05c78d286657cd4db95f2e6313375ff65dcf085e42e4c04d9c8d410", size = 858607, upload_time = "2026-01-14T23:15:00.657Z" }, - { url = "https://files.pythonhosted.org/packages/a3/31/040e589834d7a439ee43fb0e1e902bc81bd58a5ba81acffe586bb3321d35/regex-2026.1.15-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:57e7d17f59f9ebfa9667e6e5a1c0127b96b87cb9cede8335482451ed00788ba4", size = 763729, upload_time = "2026-01-14T23:15:02.248Z" }, - { url = "https://files.pythonhosted.org/packages/9b/84/6921e8129687a427edf25a34a5594b588b6d88f491320b9de5b6339a4fcb/regex-2026.1.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c6c4dcdfff2c08509faa15d36ba7e5ef5fcfab25f1e8f85a0c8f45bc3a30725d", size = 850697, upload_time = "2026-01-14T23:15:03.878Z" }, - { url = "https://files.pythonhosted.org/packages/8a/87/3d06143d4b128f4229158f2de5de6c8f2485170c7221e61bf381313314b2/regex-2026.1.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf8ff04c642716a7f2048713ddc6278c5fd41faa3b9cab12607c7abecd012c22", size = 789849, upload_time = "2026-01-14T23:15:06.102Z" }, - { url = "https://files.pythonhosted.org/packages/77/69/c50a63842b6bd48850ebc7ab22d46e7a2a32d824ad6c605b218441814639/regex-2026.1.15-cp312-cp312-win32.whl", hash = "sha256:82345326b1d8d56afbe41d881fdf62f1926d7264b2fc1537f99ae5da9aad7913", size = 266279, upload_time = "2026-01-14T23:15:07.678Z" }, - { url = "https://files.pythonhosted.org/packages/f2/36/39d0b29d087e2b11fd8191e15e81cce1b635fcc845297c67f11d0d19274d/regex-2026.1.15-cp312-cp312-win_amd64.whl", hash = "sha256:4def140aa6156bc64ee9912383d4038f3fdd18fee03a6f222abd4de6357ce42a", size = 277166, upload_time = "2026-01-14T23:15:09.257Z" }, - { url = "https://files.pythonhosted.org/packages/28/32/5b8e476a12262748851fa8ab1b0be540360692325975b094e594dfebbb52/regex-2026.1.15-cp312-cp312-win_arm64.whl", hash = "sha256:c6c565d9a6e1a8d783c1948937ffc377dd5771e83bd56de8317c450a954d2056", size = 270415, upload_time = "2026-01-14T23:15:10.743Z" }, - { url = "https://files.pythonhosted.org/packages/f8/2e/6870bb16e982669b674cce3ee9ff2d1d46ab80528ee6bcc20fb2292efb60/regex-2026.1.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e69d0deeb977ffe7ed3d2e4439360089f9c3f217ada608f0f88ebd67afb6385e", size = 489164, upload_time = "2026-01-14T23:15:13.962Z" }, - { url = "https://files.pythonhosted.org/packages/dc/67/9774542e203849b0286badf67199970a44ebdb0cc5fb739f06e47ada72f8/regex-2026.1.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3601ffb5375de85a16f407854d11cca8fe3f5febbe3ac78fb2866bb220c74d10", size = 291218, upload_time = "2026-01-14T23:15:15.647Z" }, - { url = "https://files.pythonhosted.org/packages/b2/87/b0cda79f22b8dee05f774922a214da109f9a4c0eca5da2c9d72d77ea062c/regex-2026.1.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4c5ef43b5c2d4114eb8ea424bb8c9cec01d5d17f242af88b2448f5ee81caadbc", size = 288895, upload_time = "2026-01-14T23:15:17.788Z" }, - { url = "https://files.pythonhosted.org/packages/3b/6a/0041f0a2170d32be01ab981d6346c83a8934277d82c780d60b127331f264/regex-2026.1.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:968c14d4f03e10b2fd960f1d5168c1f0ac969381d3c1fcc973bc45fb06346599", size = 798680, upload_time = "2026-01-14T23:15:19.342Z" }, - { url = "https://files.pythonhosted.org/packages/58/de/30e1cfcdbe3e891324aa7568b7c968771f82190df5524fabc1138cb2d45a/regex-2026.1.15-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56a5595d0f892f214609c9f76b41b7428bed439d98dc961efafdd1354d42baae", size = 864210, upload_time = "2026-01-14T23:15:22.005Z" }, - { url = "https://files.pythonhosted.org/packages/64/44/4db2f5c5ca0ccd40ff052ae7b1e9731352fcdad946c2b812285a7505ca75/regex-2026.1.15-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf650f26087363434c4e560011f8e4e738f6f3e029b85d4904c50135b86cfa5", size = 912358, upload_time = "2026-01-14T23:15:24.569Z" }, - { url = "https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18388a62989c72ac24de75f1449d0fb0b04dfccd0a1a7c1c43af5eb503d890f6", size = 803583, upload_time = "2026-01-14T23:15:26.526Z" }, - { url = "https://files.pythonhosted.org/packages/e7/53/7cd478222169d85d74d7437e74750005e993f52f335f7c04ff7adfda3310/regex-2026.1.15-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d220a2517f5893f55daac983bfa9fe998a7dbcaee4f5d27a88500f8b7873788", size = 775782, upload_time = "2026-01-14T23:15:29.352Z" }, - { url = "https://files.pythonhosted.org/packages/ca/b5/75f9a9ee4b03a7c009fe60500fe550b45df94f0955ca29af16333ef557c5/regex-2026.1.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9c08c2fbc6120e70abff5d7f28ffb4d969e14294fb2143b4b5c7d20e46d1714", size = 787978, upload_time = "2026-01-14T23:15:31.295Z" }, - { url = "https://files.pythonhosted.org/packages/72/b3/79821c826245bbe9ccbb54f6eadb7879c722fd3e0248c17bfc90bf54e123/regex-2026.1.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7ef7d5d4bd49ec7364315167a4134a015f61e8266c6d446fc116a9ac4456e10d", size = 858550, upload_time = "2026-01-14T23:15:33.558Z" }, - { url = "https://files.pythonhosted.org/packages/4a/85/2ab5f77a1c465745bfbfcb3ad63178a58337ae8d5274315e2cc623a822fa/regex-2026.1.15-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6e42844ad64194fa08d5ccb75fe6a459b9b08e6d7296bd704460168d58a388f3", size = 763747, upload_time = "2026-01-14T23:15:35.206Z" }, - { url = "https://files.pythonhosted.org/packages/6d/84/c27df502d4bfe2873a3e3a7cf1bdb2b9cc10284d1a44797cf38bed790470/regex-2026.1.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cfecdaa4b19f9ca534746eb3b55a5195d5c95b88cac32a205e981ec0a22b7d31", size = 850615, upload_time = "2026-01-14T23:15:37.523Z" }, - { url = "https://files.pythonhosted.org/packages/7d/b7/658a9782fb253680aa8ecb5ccbb51f69e088ed48142c46d9f0c99b46c575/regex-2026.1.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08df9722d9b87834a3d701f3fca570b2be115654dbfd30179f30ab2f39d606d3", size = 789951, upload_time = "2026-01-14T23:15:39.582Z" }, - { url = "https://files.pythonhosted.org/packages/fc/2a/5928af114441e059f15b2f63e188bd00c6529b3051c974ade7444b85fcda/regex-2026.1.15-cp313-cp313-win32.whl", hash = "sha256:d426616dae0967ca225ab12c22274eb816558f2f99ccb4a1d52ca92e8baf180f", size = 266275, upload_time = "2026-01-14T23:15:42.108Z" }, - { url = "https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl", hash = "sha256:febd38857b09867d3ed3f4f1af7d241c5c50362e25ef43034995b77a50df494e", size = 277145, upload_time = "2026-01-14T23:15:44.244Z" }, - { url = "https://files.pythonhosted.org/packages/56/c1/a09ff7392ef4233296e821aec5f78c51be5e91ffde0d163059e50fd75835/regex-2026.1.15-cp313-cp313-win_arm64.whl", hash = "sha256:8e32f7896f83774f91499d239e24cebfadbc07639c1494bb7213983842348337", size = 270411, upload_time = "2026-01-14T23:15:45.858Z" }, - { url = "https://files.pythonhosted.org/packages/3c/38/0cfd5a78e5c6db00e6782fdae70458f89850ce95baa5e8694ab91d89744f/regex-2026.1.15-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ec94c04149b6a7b8120f9f44565722c7ae31b7a6d2275569d2eefa76b83da3be", size = 492068, upload_time = "2026-01-14T23:15:47.616Z" }, - { url = "https://files.pythonhosted.org/packages/50/72/6c86acff16cb7c959c4355826bbf06aad670682d07c8f3998d9ef4fee7cd/regex-2026.1.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40c86d8046915bb9aeb15d3f3f15b6fd500b8ea4485b30e1bbc799dab3fe29f8", size = 292756, upload_time = "2026-01-14T23:15:49.307Z" }, - { url = "https://files.pythonhosted.org/packages/4e/58/df7fb69eadfe76526ddfce28abdc0af09ffe65f20c2c90932e89d705153f/regex-2026.1.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:726ea4e727aba21643205edad8f2187ec682d3305d790f73b7a51c7587b64bdd", size = 291114, upload_time = "2026-01-14T23:15:51.484Z" }, - { url = "https://files.pythonhosted.org/packages/ed/6c/a4011cd1cf96b90d2cdc7e156f91efbd26531e822a7fbb82a43c1016678e/regex-2026.1.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1cb740d044aff31898804e7bf1181cc72c03d11dfd19932b9911ffc19a79070a", size = 807524, upload_time = "2026-01-14T23:15:53.102Z" }, - { url = "https://files.pythonhosted.org/packages/1d/25/a53ffb73183f69c3e9f4355c4922b76d2840aee160af6af5fac229b6201d/regex-2026.1.15-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05d75a668e9ea16f832390d22131fe1e8acc8389a694c8febc3e340b0f810b93", size = 873455, upload_time = "2026-01-14T23:15:54.956Z" }, - { url = "https://files.pythonhosted.org/packages/66/0b/8b47fc2e8f97d9b4a851736f3890a5f786443aa8901061c55f24c955f45b/regex-2026.1.15-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d991483606f3dbec93287b9f35596f41aa2e92b7c2ebbb935b63f409e243c9af", size = 915007, upload_time = "2026-01-14T23:15:57.041Z" }, - { url = "https://files.pythonhosted.org/packages/c2/fa/97de0d681e6d26fabe71968dbee06dd52819e9a22fdce5dac7256c31ed84/regex-2026.1.15-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:194312a14819d3e44628a44ed6fea6898fdbecb0550089d84c403475138d0a09", size = 812794, upload_time = "2026-01-14T23:15:58.916Z" }, - { url = "https://files.pythonhosted.org/packages/22/38/e752f94e860d429654aa2b1c51880bff8dfe8f084268258adf9151cf1f53/regex-2026.1.15-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe2fda4110a3d0bc163c2e0664be44657431440722c5c5315c65155cab92f9e5", size = 781159, upload_time = "2026-01-14T23:16:00.817Z" }, - { url = "https://files.pythonhosted.org/packages/e9/a7/d739ffaef33c378fc888302a018d7f81080393d96c476b058b8c64fd2b0d/regex-2026.1.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:124dc36c85d34ef2d9164da41a53c1c8c122cfb1f6e1ec377a1f27ee81deb794", size = 795558, upload_time = "2026-01-14T23:16:03.267Z" }, - { url = "https://files.pythonhosted.org/packages/3e/c4/542876f9a0ac576100fc73e9c75b779f5c31e3527576cfc9cb3009dcc58a/regex-2026.1.15-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1774cd1981cd212506a23a14dba7fdeaee259f5deba2df6229966d9911e767a", size = 868427, upload_time = "2026-01-14T23:16:05.646Z" }, - { url = "https://files.pythonhosted.org/packages/fc/0f/d5655bea5b22069e32ae85a947aa564912f23758e112cdb74212848a1a1b/regex-2026.1.15-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b5f7d8d2867152cdb625e72a530d2ccb48a3d199159144cbdd63870882fb6f80", size = 769939, upload_time = "2026-01-14T23:16:07.542Z" }, - { url = "https://files.pythonhosted.org/packages/20/06/7e18a4fa9d326daeda46d471a44ef94201c46eaa26dbbb780b5d92cbfdda/regex-2026.1.15-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:492534a0ab925d1db998defc3c302dae3616a2fc3fe2e08db1472348f096ddf2", size = 854753, upload_time = "2026-01-14T23:16:10.395Z" }, - { url = "https://files.pythonhosted.org/packages/3b/67/dc8946ef3965e166f558ef3b47f492bc364e96a265eb4a2bb3ca765c8e46/regex-2026.1.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c661fc820cfb33e166bf2450d3dadbda47c8d8981898adb9b6fe24e5e582ba60", size = 799559, upload_time = "2026-01-14T23:16:12.347Z" }, - { url = "https://files.pythonhosted.org/packages/a5/61/1bba81ff6d50c86c65d9fd84ce9699dd106438ee4cdb105bf60374ee8412/regex-2026.1.15-cp313-cp313t-win32.whl", hash = "sha256:99ad739c3686085e614bf77a508e26954ff1b8f14da0e3765ff7abbf7799f952", size = 268879, upload_time = "2026-01-14T23:16:14.049Z" }, - { url = "https://files.pythonhosted.org/packages/e9/5e/cef7d4c5fb0ea3ac5c775fd37db5747f7378b29526cc83f572198924ff47/regex-2026.1.15-cp313-cp313t-win_amd64.whl", hash = "sha256:32655d17905e7ff8ba5c764c43cb124e34a9245e45b83c22e81041e1071aee10", size = 280317, upload_time = "2026-01-14T23:16:15.718Z" }, - { url = "https://files.pythonhosted.org/packages/b4/52/4317f7a5988544e34ab57b4bde0f04944c4786128c933fb09825924d3e82/regex-2026.1.15-cp313-cp313t-win_arm64.whl", hash = "sha256:b2a13dd6a95e95a489ca242319d18fc02e07ceb28fa9ad146385194d95b3c829", size = 271551, upload_time = "2026-01-14T23:16:17.533Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/0b/86/07d5056945f9ec4590b518171c4254a5925832eb727b56d3c38a7476f316/regex-2026.1.15.tar.gz", hash = "sha256:164759aa25575cbc0651bef59a0b18353e54300d79ace8084c818ad8ac72b7d5", size = 414811, upload-time = "2026-01-14T23:18:02.775Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/d2/e6ee96b7dff201a83f650241c52db8e5bd080967cb93211f57aa448dc9d6/regex-2026.1.15-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4e3dd93c8f9abe8aa4b6c652016da9a3afa190df5ad822907efe6b206c09896e", size = 488166, upload-time = "2026-01-14T23:13:46.408Z" }, + { url = "https://files.pythonhosted.org/packages/23/8a/819e9ce14c9f87af026d0690901b3931f3101160833e5d4c8061fa3a1b67/regex-2026.1.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:97499ff7862e868b1977107873dd1a06e151467129159a6ffd07b66706ba3a9f", size = 290632, upload-time = "2026-01-14T23:13:48.688Z" }, + { url = "https://files.pythonhosted.org/packages/d5/c3/23dfe15af25d1d45b07dfd4caa6003ad710dcdcb4c4b279909bdfe7a2de8/regex-2026.1.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0bda75ebcac38d884240914c6c43d8ab5fb82e74cde6da94b43b17c411aa4c2b", size = 288500, upload-time = "2026-01-14T23:13:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/c6/31/1adc33e2f717df30d2f4d973f8776d2ba6ecf939301efab29fca57505c95/regex-2026.1.15-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7dcc02368585334f5bc81fc73a2a6a0bbade60e7d83da21cead622faf408f32c", size = 781670, upload-time = "2026-01-14T23:13:52.453Z" }, + { url = "https://files.pythonhosted.org/packages/23/ce/21a8a22d13bc4adcb927c27b840c948f15fc973e21ed2346c1bd0eae22dc/regex-2026.1.15-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:693b465171707bbe882a7a05de5e866f33c76aa449750bee94a8d90463533cc9", size = 850820, upload-time = "2026-01-14T23:13:54.894Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4f/3eeacdf587a4705a44484cd0b30e9230a0e602811fb3e2cc32268c70d509/regex-2026.1.15-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b0d190e6f013ea938623a58706d1469a62103fb2a241ce2873a9906e0386582c", size = 898777, upload-time = "2026-01-14T23:13:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/79/a9/1898a077e2965c35fc22796488141a22676eed2d73701e37c73ad7c0b459/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ff818702440a5878a81886f127b80127f5d50563753a28211482867f8318106", size = 791750, upload-time = "2026-01-14T23:13:58.527Z" }, + { url = "https://files.pythonhosted.org/packages/4c/84/e31f9d149a178889b3817212827f5e0e8c827a049ff31b4b381e76b26e2d/regex-2026.1.15-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f052d1be37ef35a54e394de66136e30fa1191fab64f71fc06ac7bc98c9a84618", size = 782674, upload-time = "2026-01-14T23:13:59.874Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ff/adf60063db24532add6a1676943754a5654dcac8237af024ede38244fd12/regex-2026.1.15-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6bfc31a37fd1592f0c4fc4bfc674b5c42e52efe45b4b7a6a14f334cca4bcebe4", size = 767906, upload-time = "2026-01-14T23:14:01.298Z" }, + { url = "https://files.pythonhosted.org/packages/af/3e/e6a216cee1e2780fec11afe7fc47b6f3925d7264e8149c607ac389fd9b1a/regex-2026.1.15-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3d6ce5ae80066b319ae3bc62fd55a557c9491baa5efd0d355f0de08c4ba54e79", size = 774798, upload-time = "2026-01-14T23:14:02.715Z" }, + { url = "https://files.pythonhosted.org/packages/0f/98/23a4a8378a9208514ed3efc7e7850c27fa01e00ed8557c958df0335edc4a/regex-2026.1.15-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:1704d204bd42b6bb80167df0e4554f35c255b579ba99616def38f69e14a5ccb9", size = 845861, upload-time = "2026-01-14T23:14:04.824Z" }, + { url = "https://files.pythonhosted.org/packages/f8/57/d7605a9d53bd07421a8785d349cd29677fe660e13674fa4c6cbd624ae354/regex-2026.1.15-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:e3174a5ed4171570dc8318afada56373aa9289eb6dc0d96cceb48e7358b0e220", size = 755648, upload-time = "2026-01-14T23:14:06.371Z" }, + { url = "https://files.pythonhosted.org/packages/6f/76/6f2e24aa192da1e299cc1101674a60579d3912391867ce0b946ba83e2194/regex-2026.1.15-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:87adf5bd6d72e3e17c9cb59ac4096b1faaf84b7eb3037a5ffa61c4b4370f0f13", size = 836250, upload-time = "2026-01-14T23:14:08.343Z" }, + { url = "https://files.pythonhosted.org/packages/11/3a/1f2a1d29453299a7858eab7759045fc3d9d1b429b088dec2dc85b6fa16a2/regex-2026.1.15-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e85dc94595f4d766bd7d872a9de5ede1ca8d3063f3bdf1e2c725f5eb411159e3", size = 779919, upload-time = "2026-01-14T23:14:09.954Z" }, + { url = "https://files.pythonhosted.org/packages/c0/67/eab9bc955c9dcc58e9b222c801e39cff7ca0b04261792a2149166ce7e792/regex-2026.1.15-cp310-cp310-win32.whl", hash = "sha256:21ca32c28c30d5d65fc9886ff576fc9b59bbca08933e844fa2363e530f4c8218", size = 265888, upload-time = "2026-01-14T23:14:11.35Z" }, + { url = "https://files.pythonhosted.org/packages/1d/62/31d16ae24e1f8803bddb0885508acecaec997fcdcde9c243787103119ae4/regex-2026.1.15-cp310-cp310-win_amd64.whl", hash = "sha256:3038a62fc7d6e5547b8915a3d927a0fbeef84cdbe0b1deb8c99bbd4a8961b52a", size = 277830, upload-time = "2026-01-14T23:14:12.908Z" }, + { url = "https://files.pythonhosted.org/packages/e5/36/5d9972bccd6417ecd5a8be319cebfd80b296875e7f116c37fb2a2deecebf/regex-2026.1.15-cp310-cp310-win_arm64.whl", hash = "sha256:505831646c945e3e63552cc1b1b9b514f0e93232972a2d5bedbcc32f15bc82e3", size = 270376, upload-time = "2026-01-14T23:14:14.782Z" }, + { url = "https://files.pythonhosted.org/packages/d0/c9/0c80c96eab96948363d270143138d671d5731c3a692b417629bf3492a9d6/regex-2026.1.15-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ae6020fb311f68d753b7efa9d4b9a5d47a5d6466ea0d5e3b5a471a960ea6e4a", size = 488168, upload-time = "2026-01-14T23:14:16.129Z" }, + { url = "https://files.pythonhosted.org/packages/17/f0/271c92f5389a552494c429e5cc38d76d1322eb142fb5db3c8ccc47751468/regex-2026.1.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eddf73f41225942c1f994914742afa53dc0d01a6e20fe14b878a1b1edc74151f", size = 290636, upload-time = "2026-01-14T23:14:17.715Z" }, + { url = "https://files.pythonhosted.org/packages/a0/f9/5f1fd077d106ca5655a0f9ff8f25a1ab55b92128b5713a91ed7134ff688e/regex-2026.1.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e8cd52557603f5c66a548f69421310886b28b7066853089e1a71ee710e1cdc1", size = 288496, upload-time = "2026-01-14T23:14:19.326Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e1/8f43b03a4968c748858ec77f746c286d81f896c2e437ccf050ebc5d3128c/regex-2026.1.15-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5170907244b14303edc5978f522f16c974f32d3aa92109fabc2af52411c9433b", size = 793503, upload-time = "2026-01-14T23:14:20.922Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4e/a39a5e8edc5377a46a7c875c2f9a626ed3338cb3bb06931be461c3e1a34a/regex-2026.1.15-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2748c1ec0663580b4510bd89941a31560b4b439a0b428b49472a3d9944d11cd8", size = 860535, upload-time = "2026-01-14T23:14:22.405Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1c/9dce667a32a9477f7a2869c1c767dc00727284a9fa3ff5c09a5c6c03575e/regex-2026.1.15-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2f2775843ca49360508d080eaa87f94fa248e2c946bbcd963bb3aae14f333413", size = 907225, upload-time = "2026-01-14T23:14:23.897Z" }, + { url = "https://files.pythonhosted.org/packages/a4/3c/87ca0a02736d16b6262921425e84b48984e77d8e4e572c9072ce96e66c30/regex-2026.1.15-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9ea2604370efc9a174c1b5dcc81784fb040044232150f7f33756049edfc9026", size = 800526, upload-time = "2026-01-14T23:14:26.039Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/647d5715aeea7c87bdcbd2f578f47b415f55c24e361e639fe8c0cc88878f/regex-2026.1.15-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0dcd31594264029b57bf16f37fd7248a70b3b764ed9e0839a8f271b2d22c0785", size = 773446, upload-time = "2026-01-14T23:14:28.109Z" }, + { url = "https://files.pythonhosted.org/packages/af/89/bf22cac25cb4ba0fe6bff52ebedbb65b77a179052a9d6037136ae93f42f4/regex-2026.1.15-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c08c1f3e34338256732bd6938747daa3c0d5b251e04b6e43b5813e94d503076e", size = 783051, upload-time = "2026-01-14T23:14:29.929Z" }, + { url = "https://files.pythonhosted.org/packages/1e/f4/6ed03e71dca6348a5188363a34f5e26ffd5db1404780288ff0d79513bce4/regex-2026.1.15-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e43a55f378df1e7a4fa3547c88d9a5a9b7113f653a66821bcea4718fe6c58763", size = 854485, upload-time = "2026-01-14T23:14:31.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/8e8560bd78caded8eb137e3e47612430a05b9a772caf60876435192d670a/regex-2026.1.15-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f82110ab962a541737bd0ce87978d4c658f06e7591ba899192e2712a517badbb", size = 762195, upload-time = "2026-01-14T23:14:32.802Z" }, + { url = "https://files.pythonhosted.org/packages/38/6b/61fc710f9aa8dfcd764fe27d37edfaa023b1a23305a0d84fccd5adb346ea/regex-2026.1.15-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:27618391db7bdaf87ac6c92b31e8f0dfb83a9de0075855152b720140bda177a2", size = 845986, upload-time = "2026-01-14T23:14:34.898Z" }, + { url = "https://files.pythonhosted.org/packages/fd/2e/fbee4cb93f9d686901a7ca8d94285b80405e8c34fe4107f63ffcbfb56379/regex-2026.1.15-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bfb0d6be01fbae8d6655c8ca21b3b72458606c4aec9bbc932db758d47aba6db1", size = 788992, upload-time = "2026-01-14T23:14:37.116Z" }, + { url = "https://files.pythonhosted.org/packages/ed/14/3076348f3f586de64b1ab75a3fbabdaab7684af7f308ad43be7ef1849e55/regex-2026.1.15-cp311-cp311-win32.whl", hash = "sha256:b10e42a6de0e32559a92f2f8dc908478cc0fa02838d7dbe764c44dca3fa13569", size = 265893, upload-time = "2026-01-14T23:14:38.426Z" }, + { url = "https://files.pythonhosted.org/packages/0f/19/772cf8b5fc803f5c89ba85d8b1870a1ca580dc482aa030383a9289c82e44/regex-2026.1.15-cp311-cp311-win_amd64.whl", hash = "sha256:e9bf3f0bbdb56633c07d7116ae60a576f846efdd86a8848f8d62b749e1209ca7", size = 277840, upload-time = "2026-01-14T23:14:39.785Z" }, + { url = "https://files.pythonhosted.org/packages/78/84/d05f61142709474da3c0853222d91086d3e1372bcdab516c6fd8d80f3297/regex-2026.1.15-cp311-cp311-win_arm64.whl", hash = "sha256:41aef6f953283291c4e4e6850607bd71502be67779586a61472beacb315c97ec", size = 270374, upload-time = "2026-01-14T23:14:41.592Z" }, + { url = "https://files.pythonhosted.org/packages/92/81/10d8cf43c807d0326efe874c1b79f22bfb0fb226027b0b19ebc26d301408/regex-2026.1.15-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4c8fcc5793dde01641a35905d6731ee1548f02b956815f8f1cab89e515a5bdf1", size = 489398, upload-time = "2026-01-14T23:14:43.741Z" }, + { url = "https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:bfd876041a956e6a90ad7cdb3f6a630c07d491280bfeed4544053cd434901681", size = 291339, upload-time = "2026-01-14T23:14:45.183Z" }, + { url = "https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f", size = 289003, upload-time = "2026-01-14T23:14:47.25Z" }, + { url = "https://files.pythonhosted.org/packages/c6/e4/1fc4599450c9f0863d9406e944592d968b8d6dfd0d552a7d569e43bceada/regex-2026.1.15-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8a154cf6537ebbc110e24dabe53095e714245c272da9c1be05734bdad4a61aa", size = 798656, upload-time = "2026-01-14T23:14:48.77Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e6/59650d73a73fa8a60b3a590545bfcf1172b4384a7df2e7fe7b9aab4e2da9/regex-2026.1.15-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8050ba2e3ea1d8731a549e83c18d2f0999fbc99a5f6bd06b4c91449f55291804", size = 864252, upload-time = "2026-01-14T23:14:50.528Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ab/1d0f4d50a1638849a97d731364c9a80fa304fec46325e48330c170ee8e80/regex-2026.1.15-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf065240704cb8951cc04972cf107063917022511273e0969bdb34fc173456c", size = 912268, upload-time = "2026-01-14T23:14:52.952Z" }, + { url = "https://files.pythonhosted.org/packages/dd/df/0d722c030c82faa1d331d1921ee268a4e8fb55ca8b9042c9341c352f17fa/regex-2026.1.15-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c32bef3e7aeee75746748643667668ef941d28b003bfc89994ecf09a10f7a1b5", size = 803589, upload-time = "2026-01-14T23:14:55.182Z" }, + { url = "https://files.pythonhosted.org/packages/66/23/33289beba7ccb8b805c6610a8913d0131f834928afc555b241caabd422a9/regex-2026.1.15-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5eaa4a4c5b1906bd0d2508d68927f15b81821f85092e06f1a34a4254b0e1af3", size = 775700, upload-time = "2026-01-14T23:14:56.707Z" }, + { url = "https://files.pythonhosted.org/packages/e7/65/bf3a42fa6897a0d3afa81acb25c42f4b71c274f698ceabd75523259f6688/regex-2026.1.15-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:86c1077a3cc60d453d4084d5b9649065f3bf1184e22992bd322e1f081d3117fb", size = 787928, upload-time = "2026-01-14T23:14:58.312Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f5/13bf65864fc314f68cdd6d8ca94adcab064d4d39dbd0b10fef29a9da48fc/regex-2026.1.15-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:2b091aefc05c78d286657cd4db95f2e6313375ff65dcf085e42e4c04d9c8d410", size = 858607, upload-time = "2026-01-14T23:15:00.657Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/040e589834d7a439ee43fb0e1e902bc81bd58a5ba81acffe586bb3321d35/regex-2026.1.15-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:57e7d17f59f9ebfa9667e6e5a1c0127b96b87cb9cede8335482451ed00788ba4", size = 763729, upload-time = "2026-01-14T23:15:02.248Z" }, + { url = "https://files.pythonhosted.org/packages/9b/84/6921e8129687a427edf25a34a5594b588b6d88f491320b9de5b6339a4fcb/regex-2026.1.15-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:c6c4dcdfff2c08509faa15d36ba7e5ef5fcfab25f1e8f85a0c8f45bc3a30725d", size = 850697, upload-time = "2026-01-14T23:15:03.878Z" }, + { url = "https://files.pythonhosted.org/packages/8a/87/3d06143d4b128f4229158f2de5de6c8f2485170c7221e61bf381313314b2/regex-2026.1.15-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:cf8ff04c642716a7f2048713ddc6278c5fd41faa3b9cab12607c7abecd012c22", size = 789849, upload-time = "2026-01-14T23:15:06.102Z" }, + { url = "https://files.pythonhosted.org/packages/77/69/c50a63842b6bd48850ebc7ab22d46e7a2a32d824ad6c605b218441814639/regex-2026.1.15-cp312-cp312-win32.whl", hash = "sha256:82345326b1d8d56afbe41d881fdf62f1926d7264b2fc1537f99ae5da9aad7913", size = 266279, upload-time = "2026-01-14T23:15:07.678Z" }, + { url = "https://files.pythonhosted.org/packages/f2/36/39d0b29d087e2b11fd8191e15e81cce1b635fcc845297c67f11d0d19274d/regex-2026.1.15-cp312-cp312-win_amd64.whl", hash = "sha256:4def140aa6156bc64ee9912383d4038f3fdd18fee03a6f222abd4de6357ce42a", size = 277166, upload-time = "2026-01-14T23:15:09.257Z" }, + { url = "https://files.pythonhosted.org/packages/28/32/5b8e476a12262748851fa8ab1b0be540360692325975b094e594dfebbb52/regex-2026.1.15-cp312-cp312-win_arm64.whl", hash = "sha256:c6c565d9a6e1a8d783c1948937ffc377dd5771e83bd56de8317c450a954d2056", size = 270415, upload-time = "2026-01-14T23:15:10.743Z" }, + { url = "https://files.pythonhosted.org/packages/f8/2e/6870bb16e982669b674cce3ee9ff2d1d46ab80528ee6bcc20fb2292efb60/regex-2026.1.15-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e69d0deeb977ffe7ed3d2e4439360089f9c3f217ada608f0f88ebd67afb6385e", size = 489164, upload-time = "2026-01-14T23:15:13.962Z" }, + { url = "https://files.pythonhosted.org/packages/dc/67/9774542e203849b0286badf67199970a44ebdb0cc5fb739f06e47ada72f8/regex-2026.1.15-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3601ffb5375de85a16f407854d11cca8fe3f5febbe3ac78fb2866bb220c74d10", size = 291218, upload-time = "2026-01-14T23:15:15.647Z" }, + { url = "https://files.pythonhosted.org/packages/b2/87/b0cda79f22b8dee05f774922a214da109f9a4c0eca5da2c9d72d77ea062c/regex-2026.1.15-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4c5ef43b5c2d4114eb8ea424bb8c9cec01d5d17f242af88b2448f5ee81caadbc", size = 288895, upload-time = "2026-01-14T23:15:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/3b/6a/0041f0a2170d32be01ab981d6346c83a8934277d82c780d60b127331f264/regex-2026.1.15-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:968c14d4f03e10b2fd960f1d5168c1f0ac969381d3c1fcc973bc45fb06346599", size = 798680, upload-time = "2026-01-14T23:15:19.342Z" }, + { url = "https://files.pythonhosted.org/packages/58/de/30e1cfcdbe3e891324aa7568b7c968771f82190df5524fabc1138cb2d45a/regex-2026.1.15-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56a5595d0f892f214609c9f76b41b7428bed439d98dc961efafdd1354d42baae", size = 864210, upload-time = "2026-01-14T23:15:22.005Z" }, + { url = "https://files.pythonhosted.org/packages/64/44/4db2f5c5ca0ccd40ff052ae7b1e9731352fcdad946c2b812285a7505ca75/regex-2026.1.15-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf650f26087363434c4e560011f8e4e738f6f3e029b85d4904c50135b86cfa5", size = 912358, upload-time = "2026-01-14T23:15:24.569Z" }, + { url = "https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18388a62989c72ac24de75f1449d0fb0b04dfccd0a1a7c1c43af5eb503d890f6", size = 803583, upload-time = "2026-01-14T23:15:26.526Z" }, + { url = "https://files.pythonhosted.org/packages/e7/53/7cd478222169d85d74d7437e74750005e993f52f335f7c04ff7adfda3310/regex-2026.1.15-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6d220a2517f5893f55daac983bfa9fe998a7dbcaee4f5d27a88500f8b7873788", size = 775782, upload-time = "2026-01-14T23:15:29.352Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b5/75f9a9ee4b03a7c009fe60500fe550b45df94f0955ca29af16333ef557c5/regex-2026.1.15-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c9c08c2fbc6120e70abff5d7f28ffb4d969e14294fb2143b4b5c7d20e46d1714", size = 787978, upload-time = "2026-01-14T23:15:31.295Z" }, + { url = "https://files.pythonhosted.org/packages/72/b3/79821c826245bbe9ccbb54f6eadb7879c722fd3e0248c17bfc90bf54e123/regex-2026.1.15-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:7ef7d5d4bd49ec7364315167a4134a015f61e8266c6d446fc116a9ac4456e10d", size = 858550, upload-time = "2026-01-14T23:15:33.558Z" }, + { url = "https://files.pythonhosted.org/packages/4a/85/2ab5f77a1c465745bfbfcb3ad63178a58337ae8d5274315e2cc623a822fa/regex-2026.1.15-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6e42844ad64194fa08d5ccb75fe6a459b9b08e6d7296bd704460168d58a388f3", size = 763747, upload-time = "2026-01-14T23:15:35.206Z" }, + { url = "https://files.pythonhosted.org/packages/6d/84/c27df502d4bfe2873a3e3a7cf1bdb2b9cc10284d1a44797cf38bed790470/regex-2026.1.15-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cfecdaa4b19f9ca534746eb3b55a5195d5c95b88cac32a205e981ec0a22b7d31", size = 850615, upload-time = "2026-01-14T23:15:37.523Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b7/658a9782fb253680aa8ecb5ccbb51f69e088ed48142c46d9f0c99b46c575/regex-2026.1.15-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:08df9722d9b87834a3d701f3fca570b2be115654dbfd30179f30ab2f39d606d3", size = 789951, upload-time = "2026-01-14T23:15:39.582Z" }, + { url = "https://files.pythonhosted.org/packages/fc/2a/5928af114441e059f15b2f63e188bd00c6529b3051c974ade7444b85fcda/regex-2026.1.15-cp313-cp313-win32.whl", hash = "sha256:d426616dae0967ca225ab12c22274eb816558f2f99ccb4a1d52ca92e8baf180f", size = 266275, upload-time = "2026-01-14T23:15:42.108Z" }, + { url = "https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl", hash = "sha256:febd38857b09867d3ed3f4f1af7d241c5c50362e25ef43034995b77a50df494e", size = 277145, upload-time = "2026-01-14T23:15:44.244Z" }, + { url = "https://files.pythonhosted.org/packages/56/c1/a09ff7392ef4233296e821aec5f78c51be5e91ffde0d163059e50fd75835/regex-2026.1.15-cp313-cp313-win_arm64.whl", hash = "sha256:8e32f7896f83774f91499d239e24cebfadbc07639c1494bb7213983842348337", size = 270411, upload-time = "2026-01-14T23:15:45.858Z" }, + { url = "https://files.pythonhosted.org/packages/3c/38/0cfd5a78e5c6db00e6782fdae70458f89850ce95baa5e8694ab91d89744f/regex-2026.1.15-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:ec94c04149b6a7b8120f9f44565722c7ae31b7a6d2275569d2eefa76b83da3be", size = 492068, upload-time = "2026-01-14T23:15:47.616Z" }, + { url = "https://files.pythonhosted.org/packages/50/72/6c86acff16cb7c959c4355826bbf06aad670682d07c8f3998d9ef4fee7cd/regex-2026.1.15-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:40c86d8046915bb9aeb15d3f3f15b6fd500b8ea4485b30e1bbc799dab3fe29f8", size = 292756, upload-time = "2026-01-14T23:15:49.307Z" }, + { url = "https://files.pythonhosted.org/packages/4e/58/df7fb69eadfe76526ddfce28abdc0af09ffe65f20c2c90932e89d705153f/regex-2026.1.15-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:726ea4e727aba21643205edad8f2187ec682d3305d790f73b7a51c7587b64bdd", size = 291114, upload-time = "2026-01-14T23:15:51.484Z" }, + { url = "https://files.pythonhosted.org/packages/ed/6c/a4011cd1cf96b90d2cdc7e156f91efbd26531e822a7fbb82a43c1016678e/regex-2026.1.15-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1cb740d044aff31898804e7bf1181cc72c03d11dfd19932b9911ffc19a79070a", size = 807524, upload-time = "2026-01-14T23:15:53.102Z" }, + { url = "https://files.pythonhosted.org/packages/1d/25/a53ffb73183f69c3e9f4355c4922b76d2840aee160af6af5fac229b6201d/regex-2026.1.15-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05d75a668e9ea16f832390d22131fe1e8acc8389a694c8febc3e340b0f810b93", size = 873455, upload-time = "2026-01-14T23:15:54.956Z" }, + { url = "https://files.pythonhosted.org/packages/66/0b/8b47fc2e8f97d9b4a851736f3890a5f786443aa8901061c55f24c955f45b/regex-2026.1.15-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d991483606f3dbec93287b9f35596f41aa2e92b7c2ebbb935b63f409e243c9af", size = 915007, upload-time = "2026-01-14T23:15:57.041Z" }, + { url = "https://files.pythonhosted.org/packages/c2/fa/97de0d681e6d26fabe71968dbee06dd52819e9a22fdce5dac7256c31ed84/regex-2026.1.15-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:194312a14819d3e44628a44ed6fea6898fdbecb0550089d84c403475138d0a09", size = 812794, upload-time = "2026-01-14T23:15:58.916Z" }, + { url = "https://files.pythonhosted.org/packages/22/38/e752f94e860d429654aa2b1c51880bff8dfe8f084268258adf9151cf1f53/regex-2026.1.15-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fe2fda4110a3d0bc163c2e0664be44657431440722c5c5315c65155cab92f9e5", size = 781159, upload-time = "2026-01-14T23:16:00.817Z" }, + { url = "https://files.pythonhosted.org/packages/e9/a7/d739ffaef33c378fc888302a018d7f81080393d96c476b058b8c64fd2b0d/regex-2026.1.15-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:124dc36c85d34ef2d9164da41a53c1c8c122cfb1f6e1ec377a1f27ee81deb794", size = 795558, upload-time = "2026-01-14T23:16:03.267Z" }, + { url = "https://files.pythonhosted.org/packages/3e/c4/542876f9a0ac576100fc73e9c75b779f5c31e3527576cfc9cb3009dcc58a/regex-2026.1.15-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:a1774cd1981cd212506a23a14dba7fdeaee259f5deba2df6229966d9911e767a", size = 868427, upload-time = "2026-01-14T23:16:05.646Z" }, + { url = "https://files.pythonhosted.org/packages/fc/0f/d5655bea5b22069e32ae85a947aa564912f23758e112cdb74212848a1a1b/regex-2026.1.15-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b5f7d8d2867152cdb625e72a530d2ccb48a3d199159144cbdd63870882fb6f80", size = 769939, upload-time = "2026-01-14T23:16:07.542Z" }, + { url = "https://files.pythonhosted.org/packages/20/06/7e18a4fa9d326daeda46d471a44ef94201c46eaa26dbbb780b5d92cbfdda/regex-2026.1.15-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:492534a0ab925d1db998defc3c302dae3616a2fc3fe2e08db1472348f096ddf2", size = 854753, upload-time = "2026-01-14T23:16:10.395Z" }, + { url = "https://files.pythonhosted.org/packages/3b/67/dc8946ef3965e166f558ef3b47f492bc364e96a265eb4a2bb3ca765c8e46/regex-2026.1.15-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c661fc820cfb33e166bf2450d3dadbda47c8d8981898adb9b6fe24e5e582ba60", size = 799559, upload-time = "2026-01-14T23:16:12.347Z" }, + { url = "https://files.pythonhosted.org/packages/a5/61/1bba81ff6d50c86c65d9fd84ce9699dd106438ee4cdb105bf60374ee8412/regex-2026.1.15-cp313-cp313t-win32.whl", hash = "sha256:99ad739c3686085e614bf77a508e26954ff1b8f14da0e3765ff7abbf7799f952", size = 268879, upload-time = "2026-01-14T23:16:14.049Z" }, + { url = "https://files.pythonhosted.org/packages/e9/5e/cef7d4c5fb0ea3ac5c775fd37db5747f7378b29526cc83f572198924ff47/regex-2026.1.15-cp313-cp313t-win_amd64.whl", hash = "sha256:32655d17905e7ff8ba5c764c43cb124e34a9245e45b83c22e81041e1071aee10", size = 280317, upload-time = "2026-01-14T23:16:15.718Z" }, + { url = "https://files.pythonhosted.org/packages/b4/52/4317f7a5988544e34ab57b4bde0f04944c4786128c933fb09825924d3e82/regex-2026.1.15-cp313-cp313t-win_arm64.whl", hash = "sha256:b2a13dd6a95e95a489ca242319d18fc02e07ceb28fa9ad146385194d95b3c829", size = 271551, upload-time = "2026-01-14T23:16:17.533Z" }, ] [[package]] @@ -3686,9 +3736,9 @@ dependencies = [ { name = "idna" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload_time = "2025-08-18T20:46:02.573Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload_time = "2025-08-18T20:46:00.542Z" }, + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, ] [[package]] @@ -3698,9 +3748,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3c/f8/5dc70102e4d337063452c82e1f0d95e39abfe67aa222ed8a5ddeb9df8de8/requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576", size = 6967, upload_time = "2025-10-20T18:56:42.279Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3c/f8/5dc70102e4d337063452c82e1f0d95e39abfe67aa222ed8a5ddeb9df8de8/requests_file-3.0.1.tar.gz", hash = "sha256:f14243d7796c588f3521bd423c5dea2ee4cc730e54a3cac9574d78aca1272576", size = 6967, upload-time = "2025-10-20T18:56:42.279Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/d5/de8f089119205a09da657ed4784c584ede8381a0ce6821212a6d4ca47054/requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2", size = 4514, upload_time = "2025-10-20T18:56:41.184Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d5/de8f089119205a09da657ed4784c584ede8381a0ce6821212a6d4ca47054/requests_file-3.0.1-py2.py3-none-any.whl", hash = "sha256:d0f5eb94353986d998f80ac63c7f146a307728be051d4d1cd390dbdb59c10fa2", size = 4514, upload-time = "2025-10-20T18:56:41.184Z" }, ] [[package]] @@ -3710,9 +3760,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload_time = "2023-05-01T04:11:33.229Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload_time = "2023-05-01T04:11:28.427Z" }, + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, ] [[package]] @@ -3722,18 +3772,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "six" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload_time = "2021-05-12T16:37:54.178Z" } +sdist = { url = "https://files.pythonhosted.org/packages/28/ea/a9387748e2d111c3c2b275ba970b735e04e15cdb1eb30693b6b5708c4dbd/rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b", size = 5513, upload-time = "2021-05-12T16:37:54.178Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload_time = "2021-05-12T16:37:52.536Z" }, + { url = "https://files.pythonhosted.org/packages/7b/44/4e421b96b67b2daff264473f7465db72fbdf36a07e05494f50300cc7b0c6/rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa", size = 3490, upload-time = "2021-05-12T16:37:52.536Z" }, ] [[package]] name = "rfc3986-validator" version = "0.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload_time = "2019-10-28T16:00:19.144Z" } +sdist = { url = "https://files.pythonhosted.org/packages/da/88/f270de456dd7d11dcc808abfa291ecdd3f45ff44e3b549ffa01b126464d0/rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055", size = 6760, upload-time = "2019-10-28T16:00:19.144Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload_time = "2019-10-28T16:00:13.976Z" }, + { url = "https://files.pythonhosted.org/packages/9e/51/17023c0f8f1869d8806b979a2bffa3f861f26a3f1a66b094288323fba52f/rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9", size = 4242, upload-time = "2019-10-28T16:00:13.976Z" }, ] [[package]] @@ -3743,9 +3793,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "lark" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload_time = "2025-07-18T01:05:05.015Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2c/06/37c1a5557acf449e8e406a830a05bf885ac47d33270aec454ef78675008d/rfc3987_syntax-1.1.0.tar.gz", hash = "sha256:717a62cbf33cffdd16dfa3a497d81ce48a660ea691b1ddd7be710c22f00b4a0d", size = 14239, upload-time = "2025-07-18T01:05:05.015Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload_time = "2025-07-18T01:05:03.843Z" }, + { url = "https://files.pythonhosted.org/packages/7e/71/44ce230e1b7fadd372515a97e32a83011f906ddded8d03e3c6aafbdedbb7/rfc3987_syntax-1.1.0-py3-none-any.whl", hash = "sha256:6c3d97604e4c5ce9f714898e05401a0445a641cfa276432b0a648c80856f6a3f", size = 8046, upload-time = "2025-07-18T01:05:03.843Z" }, ] [[package]] @@ -3756,9 +3806,9 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/99/a4cab2acbb884f80e558b0771e97e21e939c5dfb460f488d19df485e8298/rich-14.3.2.tar.gz", hash = "sha256:e712f11c1a562a11843306f5ed999475f09ac31ffb64281f73ab29ffdda8b3b8", size = 230143, upload_time = "2026-02-01T16:20:47.908Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/99/a4cab2acbb884f80e558b0771e97e21e939c5dfb460f488d19df485e8298/rich-14.3.2.tar.gz", hash = "sha256:e712f11c1a562a11843306f5ed999475f09ac31ffb64281f73ab29ffdda8b3b8", size = 230143, upload-time = "2026-02-01T16:20:47.908Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl", hash = "sha256:08e67c3e90884651da3239ea668222d19bea7b589149d8014a21c633420dbb69", size = 309963, upload_time = "2026-02-01T16:20:46.078Z" }, + { url = "https://files.pythonhosted.org/packages/ef/45/615f5babd880b4bd7d405cc0dc348234c5ffb6ed1ea33e152ede08b2072d/rich-14.3.2-py3-none-any.whl", hash = "sha256:08e67c3e90884651da3239ea668222d19bea7b589149d8014a21c633420dbb69", size = 309963, upload-time = "2026-02-01T16:20:46.078Z" }, ] [[package]] @@ -3770,162 +3820,162 @@ dependencies = [ { name = "rich" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d0/c9/4bbf4bfee195ed1b7d7a6733cc523ca61dbfb4a3e3c12ea090aaffd97597/rich_toolkit-0.19.4.tar.gz", hash = "sha256:52e23d56f9dc30d1343eb3b3f6f18764c313fbfea24e52e6a1d6069bec9c18eb", size = 193951, upload_time = "2026-02-12T10:08:15.814Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/c9/4bbf4bfee195ed1b7d7a6733cc523ca61dbfb4a3e3c12ea090aaffd97597/rich_toolkit-0.19.4.tar.gz", hash = "sha256:52e23d56f9dc30d1343eb3b3f6f18764c313fbfea24e52e6a1d6069bec9c18eb", size = 193951, upload-time = "2026-02-12T10:08:15.814Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/28/31/97d39719def09c134385bfcfbedfed255168b571e7beb3ad7765aae660ca/rich_toolkit-0.19.4-py3-none-any.whl", hash = "sha256:34ac344de8862801644be8b703e26becf44b047e687f208d7829e8f7cfc311d6", size = 32757, upload_time = "2026-02-12T10:08:15.037Z" }, + { url = "https://files.pythonhosted.org/packages/28/31/97d39719def09c134385bfcfbedfed255168b571e7beb3ad7765aae660ca/rich_toolkit-0.19.4-py3-none-any.whl", hash = "sha256:34ac344de8862801644be8b703e26becf44b047e687f208d7829e8f7cfc311d6", size = 32757, upload-time = "2026-02-12T10:08:15.037Z" }, ] [[package]] name = "rpds-py" version = "0.30.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload_time = "2025-11-30T20:24:38.837Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload_time = "2025-11-30T20:21:33.256Z" }, - { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload_time = "2025-11-30T20:21:34.591Z" }, - { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload_time = "2025-11-30T20:21:36.122Z" }, - { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload_time = "2025-11-30T20:21:37.728Z" }, - { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload_time = "2025-11-30T20:21:38.92Z" }, - { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload_time = "2025-11-30T20:21:40.407Z" }, - { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload_time = "2025-11-30T20:21:42.17Z" }, - { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload_time = "2025-11-30T20:21:43.769Z" }, - { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload_time = "2025-11-30T20:21:44.994Z" }, - { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload_time = "2025-11-30T20:21:46.91Z" }, - { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload_time = "2025-11-30T20:21:48.709Z" }, - { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload_time = "2025-11-30T20:21:50.024Z" }, - { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload_time = "2025-11-30T20:21:51.32Z" }, - { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload_time = "2025-11-30T20:21:52.505Z" }, - { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload_time = "2025-11-30T20:21:53.789Z" }, - { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload_time = "2025-11-30T20:21:55.475Z" }, - { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload_time = "2025-11-30T20:21:57.079Z" }, - { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload_time = "2025-11-30T20:21:58.47Z" }, - { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload_time = "2025-11-30T20:21:59.699Z" }, - { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload_time = "2025-11-30T20:22:00.991Z" }, - { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload_time = "2025-11-30T20:22:02.723Z" }, - { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload_time = "2025-11-30T20:22:04.367Z" }, - { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload_time = "2025-11-30T20:22:05.814Z" }, - { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload_time = "2025-11-30T20:22:07.713Z" }, - { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload_time = "2025-11-30T20:22:09.312Z" }, - { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload_time = "2025-11-30T20:22:11.309Z" }, - { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload_time = "2025-11-30T20:22:13.101Z" }, - { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload_time = "2025-11-30T20:22:14.853Z" }, - { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload_time = "2025-11-30T20:22:16.577Z" }, - { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload_time = "2025-11-30T20:22:17.93Z" }, - { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload_time = "2025-11-30T20:22:19.297Z" }, - { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload_time = "2025-11-30T20:22:21.661Z" }, - { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload_time = "2025-11-30T20:22:23.408Z" }, - { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload_time = "2025-11-30T20:22:25.16Z" }, - { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload_time = "2025-11-30T20:22:26.505Z" }, - { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload_time = "2025-11-30T20:22:27.934Z" }, - { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload_time = "2025-11-30T20:22:29.341Z" }, - { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload_time = "2025-11-30T20:22:31.469Z" }, - { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload_time = "2025-11-30T20:22:32.997Z" }, - { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload_time = "2025-11-30T20:22:34.419Z" }, - { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload_time = "2025-11-30T20:22:35.903Z" }, - { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload_time = "2025-11-30T20:22:37.271Z" }, - { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload_time = "2025-11-30T20:22:39.021Z" }, - { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload_time = "2025-11-30T20:22:40.493Z" }, - { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload_time = "2025-11-30T20:22:41.812Z" }, - { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload_time = "2025-11-30T20:22:43.479Z" }, - { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload_time = "2025-11-30T20:22:44.819Z" }, - { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload_time = "2025-11-30T20:22:46.103Z" }, - { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload_time = "2025-11-30T20:22:47.458Z" }, - { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload_time = "2025-11-30T20:22:48.872Z" }, - { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload_time = "2025-11-30T20:22:50.196Z" }, - { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload_time = "2025-11-30T20:22:51.87Z" }, - { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload_time = "2025-11-30T20:22:53.341Z" }, - { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload_time = "2025-11-30T20:22:54.778Z" }, - { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload_time = "2025-11-30T20:22:56.212Z" }, - { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload_time = "2025-11-30T20:22:58.2Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload_time = "2025-11-30T20:23:00.209Z" }, - { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload_time = "2025-11-30T20:23:02.008Z" }, - { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload_time = "2025-11-30T20:23:03.43Z" }, - { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload_time = "2025-11-30T20:23:04.878Z" }, - { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload_time = "2025-11-30T20:23:06.342Z" }, - { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload_time = "2025-11-30T20:23:07.825Z" }, - { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload_time = "2025-11-30T20:23:09.228Z" }, - { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload_time = "2025-11-30T20:23:11.186Z" }, - { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload_time = "2025-11-30T20:23:12.864Z" }, - { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload_time = "2025-11-30T20:23:14.638Z" }, - { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload_time = "2025-11-30T20:23:16.105Z" }, - { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload_time = "2025-11-30T20:23:17.539Z" }, - { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload_time = "2025-11-30T20:23:19.029Z" }, - { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload_time = "2025-11-30T20:23:20.885Z" }, - { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload_time = "2025-11-30T20:23:22.488Z" }, - { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload_time = "2025-11-30T20:23:24.449Z" }, - { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload_time = "2025-11-30T20:23:25.908Z" }, - { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload_time = "2025-11-30T20:24:16.537Z" }, - { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload_time = "2025-11-30T20:24:18.086Z" }, - { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload_time = "2025-11-30T20:24:20.092Z" }, - { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload_time = "2025-11-30T20:24:22.231Z" }, - { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload_time = "2025-11-30T20:24:24.302Z" }, - { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload_time = "2025-11-30T20:24:25.916Z" }, - { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload_time = "2025-11-30T20:24:27.834Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload_time = "2025-11-30T20:24:29.457Z" }, - { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload_time = "2025-11-30T20:24:31.22Z" }, - { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload_time = "2025-11-30T20:24:32.934Z" }, - { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload_time = "2025-11-30T20:24:35.169Z" }, - { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload_time = "2025-11-30T20:24:36.853Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/20/af/3f2f423103f1113b36230496629986e0ef7e199d2aa8392452b484b38ced/rpds_py-0.30.0.tar.gz", hash = "sha256:dd8ff7cf90014af0c0f787eea34794ebf6415242ee1d6fa91eaba725cc441e84", size = 69469, upload-time = "2025-11-30T20:24:38.837Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/0c/0c411a0ec64ccb6d104dcabe0e713e05e153a9a2c3c2bd2b32ce412166fe/rpds_py-0.30.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:679ae98e00c0e8d68a7fda324e16b90fd5260945b45d3b824c892cec9eea3288", size = 370490, upload-time = "2025-11-30T20:21:33.256Z" }, + { url = "https://files.pythonhosted.org/packages/19/6a/4ba3d0fb7297ebae71171822554abe48d7cab29c28b8f9f2c04b79988c05/rpds_py-0.30.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4cc2206b76b4f576934f0ed374b10d7ca5f457858b157ca52064bdfc26b9fc00", size = 359751, upload-time = "2025-11-30T20:21:34.591Z" }, + { url = "https://files.pythonhosted.org/packages/cd/7c/e4933565ef7f7a0818985d87c15d9d273f1a649afa6a52ea35ad011195ea/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389a2d49eded1896c3d48b0136ead37c48e221b391c052fba3f4055c367f60a6", size = 389696, upload-time = "2025-11-30T20:21:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/5e/01/6271a2511ad0815f00f7ed4390cf2567bec1d4b1da39e2c27a41e6e3b4de/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32c8528634e1bf7121f3de08fa85b138f4e0dc47657866630611b03967f041d7", size = 403136, upload-time = "2025-11-30T20:21:37.728Z" }, + { url = "https://files.pythonhosted.org/packages/55/64/c857eb7cd7541e9b4eee9d49c196e833128a55b89a9850a9c9ac33ccf897/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f207f69853edd6f6700b86efb84999651baf3789e78a466431df1331608e5324", size = 524699, upload-time = "2025-11-30T20:21:38.92Z" }, + { url = "https://files.pythonhosted.org/packages/9c/ed/94816543404078af9ab26159c44f9e98e20fe47e2126d5d32c9d9948d10a/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:67b02ec25ba7a9e8fa74c63b6ca44cf5707f2fbfadae3ee8e7494297d56aa9df", size = 412022, upload-time = "2025-11-30T20:21:40.407Z" }, + { url = "https://files.pythonhosted.org/packages/61/b5/707f6cf0066a6412aacc11d17920ea2e19e5b2f04081c64526eb35b5c6e7/rpds_py-0.30.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0e95f6819a19965ff420f65578bacb0b00f251fefe2c8b23347c37174271f3", size = 390522, upload-time = "2025-11-30T20:21:42.17Z" }, + { url = "https://files.pythonhosted.org/packages/13/4e/57a85fda37a229ff4226f8cbcf09f2a455d1ed20e802ce5b2b4a7f5ed053/rpds_py-0.30.0-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:a452763cc5198f2f98898eb98f7569649fe5da666c2dc6b5ddb10fde5a574221", size = 404579, upload-time = "2025-11-30T20:21:43.769Z" }, + { url = "https://files.pythonhosted.org/packages/f9/da/c9339293513ec680a721e0e16bf2bac3db6e5d7e922488de471308349bba/rpds_py-0.30.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e0b65193a413ccc930671c55153a03ee57cecb49e6227204b04fae512eb657a7", size = 421305, upload-time = "2025-11-30T20:21:44.994Z" }, + { url = "https://files.pythonhosted.org/packages/f9/be/522cb84751114f4ad9d822ff5a1aa3c98006341895d5f084779b99596e5c/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:858738e9c32147f78b3ac24dc0edb6610000e56dc0f700fd5f651d0a0f0eb9ff", size = 572503, upload-time = "2025-11-30T20:21:46.91Z" }, + { url = "https://files.pythonhosted.org/packages/a2/9b/de879f7e7ceddc973ea6e4629e9b380213a6938a249e94b0cdbcc325bb66/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:da279aa314f00acbb803da1e76fa18666778e8a8f83484fba94526da5de2cba7", size = 598322, upload-time = "2025-11-30T20:21:48.709Z" }, + { url = "https://files.pythonhosted.org/packages/48/ac/f01fc22efec3f37d8a914fc1b2fb9bcafd56a299edbe96406f3053edea5a/rpds_py-0.30.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7c64d38fb49b6cdeda16ab49e35fe0da2e1e9b34bc38bd78386530f218b37139", size = 560792, upload-time = "2025-11-30T20:21:50.024Z" }, + { url = "https://files.pythonhosted.org/packages/e2/da/4e2b19d0f131f35b6146425f846563d0ce036763e38913d917187307a671/rpds_py-0.30.0-cp310-cp310-win32.whl", hash = "sha256:6de2a32a1665b93233cde140ff8b3467bdb9e2af2b91079f0333a0974d12d464", size = 221901, upload-time = "2025-11-30T20:21:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/96/cb/156d7a5cf4f78a7cc571465d8aec7a3c447c94f6749c5123f08438bcf7bc/rpds_py-0.30.0-cp310-cp310-win_amd64.whl", hash = "sha256:1726859cd0de969f88dc8673bdd954185b9104e05806be64bcd87badbe313169", size = 235823, upload-time = "2025-11-30T20:21:52.505Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6e/f964e88b3d2abee2a82c1ac8366da848fce1c6d834dc2132c3fda3970290/rpds_py-0.30.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a2bffea6a4ca9f01b3f8e548302470306689684e61602aa3d141e34da06cf425", size = 370157, upload-time = "2025-11-30T20:21:53.789Z" }, + { url = "https://files.pythonhosted.org/packages/94/ba/24e5ebb7c1c82e74c4e4f33b2112a5573ddc703915b13a073737b59b86e0/rpds_py-0.30.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dc4f992dfe1e2bc3ebc7444f6c7051b4bc13cd8e33e43511e8ffd13bf407010d", size = 359676, upload-time = "2025-11-30T20:21:55.475Z" }, + { url = "https://files.pythonhosted.org/packages/84/86/04dbba1b087227747d64d80c3b74df946b986c57af0a9f0c98726d4d7a3b/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:422c3cb9856d80b09d30d2eb255d0754b23e090034e1deb4083f8004bd0761e4", size = 389938, upload-time = "2025-11-30T20:21:57.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/bb/1463f0b1722b7f45431bdd468301991d1328b16cffe0b1c2918eba2c4eee/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:07ae8a593e1c3c6b82ca3292efbe73c30b61332fd612e05abee07c79359f292f", size = 402932, upload-time = "2025-11-30T20:21:58.47Z" }, + { url = "https://files.pythonhosted.org/packages/99/ee/2520700a5c1f2d76631f948b0736cdf9b0acb25abd0ca8e889b5c62ac2e3/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12f90dd7557b6bd57f40abe7747e81e0c0b119bef015ea7726e69fe550e394a4", size = 525830, upload-time = "2025-11-30T20:21:59.699Z" }, + { url = "https://files.pythonhosted.org/packages/e0/ad/bd0331f740f5705cc555a5e17fdf334671262160270962e69a2bdef3bf76/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:99b47d6ad9a6da00bec6aabe5a6279ecd3c06a329d4aa4771034a21e335c3a97", size = 412033, upload-time = "2025-11-30T20:22:00.991Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1e/372195d326549bb51f0ba0f2ecb9874579906b97e08880e7a65c3bef1a99/rpds_py-0.30.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33f559f3104504506a44bb666b93a33f5d33133765b0c216a5bf2f1e1503af89", size = 390828, upload-time = "2025-11-30T20:22:02.723Z" }, + { url = "https://files.pythonhosted.org/packages/ab/2b/d88bb33294e3e0c76bc8f351a3721212713629ffca1700fa94979cb3eae8/rpds_py-0.30.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:946fe926af6e44f3697abbc305ea168c2c31d3e3ef1058cf68f379bf0335a78d", size = 404683, upload-time = "2025-11-30T20:22:04.367Z" }, + { url = "https://files.pythonhosted.org/packages/50/32/c759a8d42bcb5289c1fac697cd92f6fe01a018dd937e62ae77e0e7f15702/rpds_py-0.30.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:495aeca4b93d465efde585977365187149e75383ad2684f81519f504f5c13038", size = 421583, upload-time = "2025-11-30T20:22:05.814Z" }, + { url = "https://files.pythonhosted.org/packages/2b/81/e729761dbd55ddf5d84ec4ff1f47857f4374b0f19bdabfcf929164da3e24/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9a0ca5da0386dee0655b4ccdf46119df60e0f10da268d04fe7cc87886872ba7", size = 572496, upload-time = "2025-11-30T20:22:07.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/f6/69066a924c3557c9c30baa6ec3a0aa07526305684c6f86c696b08860726c/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8d6d1cc13664ec13c1b84241204ff3b12f9bb82464b8ad6e7a5d3486975c2eed", size = 598669, upload-time = "2025-11-30T20:22:09.312Z" }, + { url = "https://files.pythonhosted.org/packages/5f/48/905896b1eb8a05630d20333d1d8ffd162394127b74ce0b0784ae04498d32/rpds_py-0.30.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3896fa1be39912cf0757753826bc8bdc8ca331a28a7c4ae46b7a21280b06bb85", size = 561011, upload-time = "2025-11-30T20:22:11.309Z" }, + { url = "https://files.pythonhosted.org/packages/22/16/cd3027c7e279d22e5eb431dd3c0fbc677bed58797fe7581e148f3f68818b/rpds_py-0.30.0-cp311-cp311-win32.whl", hash = "sha256:55f66022632205940f1827effeff17c4fa7ae1953d2b74a8581baaefb7d16f8c", size = 221406, upload-time = "2025-11-30T20:22:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/fa/5b/e7b7aa136f28462b344e652ee010d4de26ee9fd16f1bfd5811f5153ccf89/rpds_py-0.30.0-cp311-cp311-win_amd64.whl", hash = "sha256:a51033ff701fca756439d641c0ad09a41d9242fa69121c7d8769604a0a629825", size = 236024, upload-time = "2025-11-30T20:22:14.853Z" }, + { url = "https://files.pythonhosted.org/packages/14/a6/364bba985e4c13658edb156640608f2c9e1d3ea3c81b27aa9d889fff0e31/rpds_py-0.30.0-cp311-cp311-win_arm64.whl", hash = "sha256:47b0ef6231c58f506ef0b74d44e330405caa8428e770fec25329ed2cb971a229", size = 229069, upload-time = "2025-11-30T20:22:16.577Z" }, + { url = "https://files.pythonhosted.org/packages/03/e7/98a2f4ac921d82f33e03f3835f5bf3a4a40aa1bfdc57975e74a97b2b4bdd/rpds_py-0.30.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a161f20d9a43006833cd7068375a94d035714d73a172b681d8881820600abfad", size = 375086, upload-time = "2025-11-30T20:22:17.93Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a1/bca7fd3d452b272e13335db8d6b0b3ecde0f90ad6f16f3328c6fb150c889/rpds_py-0.30.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6abc8880d9d036ecaafe709079969f56e876fcf107f7a8e9920ba6d5a3878d05", size = 359053, upload-time = "2025-11-30T20:22:19.297Z" }, + { url = "https://files.pythonhosted.org/packages/65/1c/ae157e83a6357eceff62ba7e52113e3ec4834a84cfe07fa4b0757a7d105f/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca28829ae5f5d569bb62a79512c842a03a12576375d5ece7d2cadf8abe96ec28", size = 390763, upload-time = "2025-11-30T20:22:21.661Z" }, + { url = "https://files.pythonhosted.org/packages/d4/36/eb2eb8515e2ad24c0bd43c3ee9cd74c33f7ca6430755ccdb240fd3144c44/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1010ed9524c73b94d15919ca4d41d8780980e1765babf85f9a2f90d247153dd", size = 408951, upload-time = "2025-11-30T20:22:23.408Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/ad8dc1784a331fabbd740ef6f71ce2198c7ed0890dab595adb9ea2d775a1/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8d1736cfb49381ba528cd5baa46f82fdc65c06e843dab24dd70b63d09121b3f", size = 514622, upload-time = "2025-11-30T20:22:25.16Z" }, + { url = "https://files.pythonhosted.org/packages/63/8e/0cfa7ae158e15e143fe03993b5bcd743a59f541f5952e1546b1ac1b5fd45/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d948b135c4693daff7bc2dcfc4ec57237a29bd37e60c2fabf5aff2bbacf3e2f1", size = 414492, upload-time = "2025-11-30T20:22:26.505Z" }, + { url = "https://files.pythonhosted.org/packages/60/1b/6f8f29f3f995c7ffdde46a626ddccd7c63aefc0efae881dc13b6e5d5bb16/rpds_py-0.30.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47f236970bccb2233267d89173d3ad2703cd36a0e2a6e92d0560d333871a3d23", size = 394080, upload-time = "2025-11-30T20:22:27.934Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d5/a266341051a7a3ca2f4b750a3aa4abc986378431fc2da508c5034d081b70/rpds_py-0.30.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:2e6ecb5a5bcacf59c3f912155044479af1d0b6681280048b338b28e364aca1f6", size = 408680, upload-time = "2025-11-30T20:22:29.341Z" }, + { url = "https://files.pythonhosted.org/packages/10/3b/71b725851df9ab7a7a4e33cf36d241933da66040d195a84781f49c50490c/rpds_py-0.30.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a8fa71a2e078c527c3e9dc9fc5a98c9db40bcc8a92b4e8858e36d329f8684b51", size = 423589, upload-time = "2025-11-30T20:22:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/00/2b/e59e58c544dc9bd8bd8384ecdb8ea91f6727f0e37a7131baeff8d6f51661/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:73c67f2db7bc334e518d097c6d1e6fed021bbc9b7d678d6cc433478365d1d5f5", size = 573289, upload-time = "2025-11-30T20:22:32.997Z" }, + { url = "https://files.pythonhosted.org/packages/da/3e/a18e6f5b460893172a7d6a680e86d3b6bc87a54c1f0b03446a3c8c7b588f/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5ba103fb455be00f3b1c2076c9d4264bfcb037c976167a6047ed82f23153f02e", size = 599737, upload-time = "2025-11-30T20:22:34.419Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e2/714694e4b87b85a18e2c243614974413c60aa107fd815b8cbc42b873d1d7/rpds_py-0.30.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7cee9c752c0364588353e627da8a7e808a66873672bcb5f52890c33fd965b394", size = 563120, upload-time = "2025-11-30T20:22:35.903Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ab/d5d5e3bcedb0a77f4f613706b750e50a5a3ba1c15ccd3665ecc636c968fd/rpds_py-0.30.0-cp312-cp312-win32.whl", hash = "sha256:1ab5b83dbcf55acc8b08fc62b796ef672c457b17dbd7820a11d6c52c06839bdf", size = 223782, upload-time = "2025-11-30T20:22:37.271Z" }, + { url = "https://files.pythonhosted.org/packages/39/3b/f786af9957306fdc38a74cef405b7b93180f481fb48453a114bb6465744a/rpds_py-0.30.0-cp312-cp312-win_amd64.whl", hash = "sha256:a090322ca841abd453d43456ac34db46e8b05fd9b3b4ac0c78bcde8b089f959b", size = 240463, upload-time = "2025-11-30T20:22:39.021Z" }, + { url = "https://files.pythonhosted.org/packages/f3/d2/b91dc748126c1559042cfe41990deb92c4ee3e2b415f6b5234969ffaf0cc/rpds_py-0.30.0-cp312-cp312-win_arm64.whl", hash = "sha256:669b1805bd639dd2989b281be2cfd951c6121b65e729d9b843e9639ef1fd555e", size = 230868, upload-time = "2025-11-30T20:22:40.493Z" }, + { url = "https://files.pythonhosted.org/packages/ed/dc/d61221eb88ff410de3c49143407f6f3147acf2538c86f2ab7ce65ae7d5f9/rpds_py-0.30.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f83424d738204d9770830d35290ff3273fbb02b41f919870479fab14b9d303b2", size = 374887, upload-time = "2025-11-30T20:22:41.812Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/55fb50ae104061dbc564ef15cc43c013dc4a9f4527a1f4d99baddf56fe5f/rpds_py-0.30.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e7536cd91353c5273434b4e003cbda89034d67e7710eab8761fd918ec6c69cf8", size = 358904, upload-time = "2025-11-30T20:22:43.479Z" }, + { url = "https://files.pythonhosted.org/packages/58/70/faed8186300e3b9bdd138d0273109784eea2396c68458ed580f885dfe7ad/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2771c6c15973347f50fece41fc447c054b7ac2ae0502388ce3b6738cd366e3d4", size = 389945, upload-time = "2025-11-30T20:22:44.819Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a8/073cac3ed2c6387df38f71296d002ab43496a96b92c823e76f46b8af0543/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a59119fc6e3f460315fe9d08149f8102aa322299deaa5cab5b40092345c2136", size = 407783, upload-time = "2025-11-30T20:22:46.103Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/5999eb8c58671f1c11eba084115e77a8899d6e694d2a18f69f0ba471ec8b/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76fec018282b4ead0364022e3c54b60bf368b9d926877957a8624b58419169b7", size = 515021, upload-time = "2025-11-30T20:22:47.458Z" }, + { url = "https://files.pythonhosted.org/packages/e0/af/5ab4833eadc36c0a8ed2bc5c0de0493c04f6c06de223170bd0798ff98ced/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:692bef75a5525db97318e8cd061542b5a79812d711ea03dbc1f6f8dbb0c5f0d2", size = 414589, upload-time = "2025-11-30T20:22:48.872Z" }, + { url = "https://files.pythonhosted.org/packages/b7/de/f7192e12b21b9e9a68a6d0f249b4af3fdcdff8418be0767a627564afa1f1/rpds_py-0.30.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9027da1ce107104c50c81383cae773ef5c24d296dd11c99e2629dbd7967a20c6", size = 394025, upload-time = "2025-11-30T20:22:50.196Z" }, + { url = "https://files.pythonhosted.org/packages/91/c4/fc70cd0249496493500e7cc2de87504f5aa6509de1e88623431fec76d4b6/rpds_py-0.30.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:9cf69cdda1f5968a30a359aba2f7f9aa648a9ce4b580d6826437f2b291cfc86e", size = 408895, upload-time = "2025-11-30T20:22:51.87Z" }, + { url = "https://files.pythonhosted.org/packages/58/95/d9275b05ab96556fefff73a385813eb66032e4c99f411d0795372d9abcea/rpds_py-0.30.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a4796a717bf12b9da9d3ad002519a86063dcac8988b030e405704ef7d74d2d9d", size = 422799, upload-time = "2025-11-30T20:22:53.341Z" }, + { url = "https://files.pythonhosted.org/packages/06/c1/3088fc04b6624eb12a57eb814f0d4997a44b0d208d6cace713033ff1a6ba/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5d4c2aa7c50ad4728a094ebd5eb46c452e9cb7edbfdb18f9e1221f597a73e1e7", size = 572731, upload-time = "2025-11-30T20:22:54.778Z" }, + { url = "https://files.pythonhosted.org/packages/d8/42/c612a833183b39774e8ac8fecae81263a68b9583ee343db33ab571a7ce55/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ba81a9203d07805435eb06f536d95a266c21e5b2dfbf6517748ca40c98d19e31", size = 599027, upload-time = "2025-11-30T20:22:56.212Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/525a50f45b01d70005403ae0e25f43c0384369ad24ffe46e8d9068b50086/rpds_py-0.30.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:945dccface01af02675628334f7cf49c2af4c1c904748efc5cf7bbdf0b579f95", size = 563020, upload-time = "2025-11-30T20:22:58.2Z" }, + { url = "https://files.pythonhosted.org/packages/0b/5d/47c4655e9bcd5ca907148535c10e7d489044243cc9941c16ed7cd53be91d/rpds_py-0.30.0-cp313-cp313-win32.whl", hash = "sha256:b40fb160a2db369a194cb27943582b38f79fc4887291417685f3ad693c5a1d5d", size = 223139, upload-time = "2025-11-30T20:23:00.209Z" }, + { url = "https://files.pythonhosted.org/packages/f2/e1/485132437d20aa4d3e1d8b3fb5a5e65aa8139f1e097080c2a8443201742c/rpds_py-0.30.0-cp313-cp313-win_amd64.whl", hash = "sha256:806f36b1b605e2d6a72716f321f20036b9489d29c51c91f4dd29a3e3afb73b15", size = 240224, upload-time = "2025-11-30T20:23:02.008Z" }, + { url = "https://files.pythonhosted.org/packages/24/95/ffd128ed1146a153d928617b0ef673960130be0009c77d8fbf0abe306713/rpds_py-0.30.0-cp313-cp313-win_arm64.whl", hash = "sha256:d96c2086587c7c30d44f31f42eae4eac89b60dabbac18c7669be3700f13c3ce1", size = 230645, upload-time = "2025-11-30T20:23:03.43Z" }, + { url = "https://files.pythonhosted.org/packages/ff/1b/b10de890a0def2a319a2626334a7f0ae388215eb60914dbac8a3bae54435/rpds_py-0.30.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:eb0b93f2e5c2189ee831ee43f156ed34e2a89a78a66b98cadad955972548be5a", size = 364443, upload-time = "2025-11-30T20:23:04.878Z" }, + { url = "https://files.pythonhosted.org/packages/0d/bf/27e39f5971dc4f305a4fb9c672ca06f290f7c4e261c568f3dea16a410d47/rpds_py-0.30.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:922e10f31f303c7c920da8981051ff6d8c1a56207dbdf330d9047f6d30b70e5e", size = 353375, upload-time = "2025-11-30T20:23:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/40/58/442ada3bba6e8e6615fc00483135c14a7538d2ffac30e2d933ccf6852232/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdc62c8286ba9bf7f47befdcea13ea0e26bf294bda99758fd90535cbaf408000", size = 383850, upload-time = "2025-11-30T20:23:07.825Z" }, + { url = "https://files.pythonhosted.org/packages/14/14/f59b0127409a33c6ef6f5c1ebd5ad8e32d7861c9c7adfa9a624fc3889f6c/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:47f9a91efc418b54fb8190a6b4aa7813a23fb79c51f4bb84e418f5476c38b8db", size = 392812, upload-time = "2025-11-30T20:23:09.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/66/e0be3e162ac299b3a22527e8913767d869e6cc75c46bd844aa43fb81ab62/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f3587eb9b17f3789ad50824084fa6f81921bbf9a795826570bda82cb3ed91f2", size = 517841, upload-time = "2025-11-30T20:23:11.186Z" }, + { url = "https://files.pythonhosted.org/packages/3d/55/fa3b9cf31d0c963ecf1ba777f7cf4b2a2c976795ac430d24a1f43d25a6ba/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39c02563fc592411c2c61d26b6c5fe1e51eaa44a75aa2c8735ca88b0d9599daa", size = 408149, upload-time = "2025-11-30T20:23:12.864Z" }, + { url = "https://files.pythonhosted.org/packages/60/ca/780cf3b1a32b18c0f05c441958d3758f02544f1d613abf9488cd78876378/rpds_py-0.30.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51a1234d8febafdfd33a42d97da7a43f5dcb120c1060e352a3fbc0c6d36e2083", size = 383843, upload-time = "2025-11-30T20:23:14.638Z" }, + { url = "https://files.pythonhosted.org/packages/82/86/d5f2e04f2aa6247c613da0c1dd87fcd08fa17107e858193566048a1e2f0a/rpds_py-0.30.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:eb2c4071ab598733724c08221091e8d80e89064cd472819285a9ab0f24bcedb9", size = 396507, upload-time = "2025-11-30T20:23:16.105Z" }, + { url = "https://files.pythonhosted.org/packages/4b/9a/453255d2f769fe44e07ea9785c8347edaf867f7026872e76c1ad9f7bed92/rpds_py-0.30.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6bdfdb946967d816e6adf9a3d8201bfad269c67efe6cefd7093ef959683c8de0", size = 414949, upload-time = "2025-11-30T20:23:17.539Z" }, + { url = "https://files.pythonhosted.org/packages/a3/31/622a86cdc0c45d6df0e9ccb6becdba5074735e7033c20e401a6d9d0e2ca0/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c77afbd5f5250bf27bf516c7c4a016813eb2d3e116139aed0096940c5982da94", size = 565790, upload-time = "2025-11-30T20:23:19.029Z" }, + { url = "https://files.pythonhosted.org/packages/1c/5d/15bbf0fb4a3f58a3b1c67855ec1efcc4ceaef4e86644665fff03e1b66d8d/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:61046904275472a76c8c90c9ccee9013d70a6d0f73eecefd38c1ae7c39045a08", size = 590217, upload-time = "2025-11-30T20:23:20.885Z" }, + { url = "https://files.pythonhosted.org/packages/6d/61/21b8c41f68e60c8cc3b2e25644f0e3681926020f11d06ab0b78e3c6bbff1/rpds_py-0.30.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c5f36a861bc4b7da6516dbdf302c55313afa09b81931e8280361a4f6c9a2d27", size = 555806, upload-time = "2025-11-30T20:23:22.488Z" }, + { url = "https://files.pythonhosted.org/packages/f9/39/7e067bb06c31de48de3eb200f9fc7c58982a4d3db44b07e73963e10d3be9/rpds_py-0.30.0-cp313-cp313t-win32.whl", hash = "sha256:3d4a69de7a3e50ffc214ae16d79d8fbb0922972da0356dcf4d0fdca2878559c6", size = 211341, upload-time = "2025-11-30T20:23:24.449Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4d/222ef0b46443cf4cf46764d9c630f3fe4abaa7245be9417e56e9f52b8f65/rpds_py-0.30.0-cp313-cp313t-win_amd64.whl", hash = "sha256:f14fc5df50a716f7ece6a80b6c78bb35ea2ca47c499e422aa4463455dd96d56d", size = 225768, upload-time = "2025-11-30T20:23:25.908Z" }, + { url = "https://files.pythonhosted.org/packages/69/71/3f34339ee70521864411f8b6992e7ab13ac30d8e4e3309e07c7361767d91/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c2262bdba0ad4fc6fb5545660673925c2d2a5d9e2e0fb603aad545427be0fc58", size = 372292, upload-time = "2025-11-30T20:24:16.537Z" }, + { url = "https://files.pythonhosted.org/packages/57/09/f183df9b8f2d66720d2ef71075c59f7e1b336bec7ee4c48f0a2b06857653/rpds_py-0.30.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:ee6af14263f25eedc3bb918a3c04245106a42dfd4f5c2285ea6f997b1fc3f89a", size = 362128, upload-time = "2025-11-30T20:24:18.086Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/5c2594e937253457342e078f0cc1ded3dd7b2ad59afdbf2d354869110a02/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3adbb8179ce342d235c31ab8ec511e66c73faa27a47e076ccc92421add53e2bb", size = 391542, upload-time = "2025-11-30T20:24:20.092Z" }, + { url = "https://files.pythonhosted.org/packages/49/5c/31ef1afd70b4b4fbdb2800249f34c57c64beb687495b10aec0365f53dfc4/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:250fa00e9543ac9b97ac258bd37367ff5256666122c2d0f2bc97577c60a1818c", size = 404004, upload-time = "2025-11-30T20:24:22.231Z" }, + { url = "https://files.pythonhosted.org/packages/e3/63/0cfbea38d05756f3440ce6534d51a491d26176ac045e2707adc99bb6e60a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9854cf4f488b3d57b9aaeb105f06d78e5529d3145b1e4a41750167e8c213c6d3", size = 527063, upload-time = "2025-11-30T20:24:24.302Z" }, + { url = "https://files.pythonhosted.org/packages/42/e6/01e1f72a2456678b0f618fc9a1a13f882061690893c192fcad9f2926553a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:993914b8e560023bc0a8bf742c5f303551992dcb85e247b1e5c7f4a7d145bda5", size = 413099, upload-time = "2025-11-30T20:24:25.916Z" }, + { url = "https://files.pythonhosted.org/packages/b8/25/8df56677f209003dcbb180765520c544525e3ef21ea72279c98b9aa7c7fb/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58edca431fb9b29950807e301826586e5bbf24163677732429770a697ffe6738", size = 392177, upload-time = "2025-11-30T20:24:27.834Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b4/0a771378c5f16f8115f796d1f437950158679bcd2a7c68cf251cfb00ed5b/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:dea5b552272a944763b34394d04577cf0f9bd013207bc32323b5a89a53cf9c2f", size = 406015, upload-time = "2025-11-30T20:24:29.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/d8/456dbba0af75049dc6f63ff295a2f92766b9d521fa00de67a2bd6427d57a/rpds_py-0.30.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ba3af48635eb83d03f6c9735dfb21785303e73d22ad03d489e88adae6eab8877", size = 423736, upload-time = "2025-11-30T20:24:31.22Z" }, + { url = "https://files.pythonhosted.org/packages/13/64/b4d76f227d5c45a7e0b796c674fd81b0a6c4fbd48dc29271857d8219571c/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:dff13836529b921e22f15cb099751209a60009731a68519630a24d61f0b1b30a", size = 573981, upload-time = "2025-11-30T20:24:32.934Z" }, + { url = "https://files.pythonhosted.org/packages/20/91/092bacadeda3edf92bf743cc96a7be133e13a39cdbfd7b5082e7ab638406/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1b151685b23929ab7beec71080a8889d4d6d9fa9a983d213f07121205d48e2c4", size = 599782, upload-time = "2025-11-30T20:24:35.169Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b7/b95708304cd49b7b6f82fdd039f1748b66ec2b21d6a45180910802f1abf1/rpds_py-0.30.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ac37f9f516c51e5753f27dfdef11a88330f04de2d564be3991384b2f3535d02e", size = 562191, upload-time = "2025-11-30T20:24:36.853Z" }, ] [[package]] name = "rstr" version = "3.2.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/9f/80/d7449656d45a776b7a443ce3af4eb97c4debe416a1a80f60311c7cfd02ff/rstr-3.2.2.tar.gz", hash = "sha256:c4a564d4dfb4472d931d145c43d1cf1ad78c24592142e7755b8866179eeac012", size = 13560, upload_time = "2023-10-11T20:07:57.422Z" } +sdist = { url = "https://files.pythonhosted.org/packages/9f/80/d7449656d45a776b7a443ce3af4eb97c4debe416a1a80f60311c7cfd02ff/rstr-3.2.2.tar.gz", hash = "sha256:c4a564d4dfb4472d931d145c43d1cf1ad78c24592142e7755b8866179eeac012", size = 13560, upload-time = "2023-10-11T20:07:57.422Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/8c/a0f14f2fcdd846839c478048032b2fc93293deaa936ff6751f27dcf50995/rstr-3.2.2-py3-none-any.whl", hash = "sha256:f39195d38da1748331eeec52f1276e71eb6295e7949beea91a5e9af2340d7b3b", size = 10030, upload_time = "2023-10-11T20:07:55.873Z" }, + { url = "https://files.pythonhosted.org/packages/c8/8c/a0f14f2fcdd846839c478048032b2fc93293deaa936ff6751f27dcf50995/rstr-3.2.2-py3-none-any.whl", hash = "sha256:f39195d38da1748331eeec52f1276e71eb6295e7949beea91a5e9af2340d7b3b", size = 10030, upload-time = "2023-10-11T20:07:55.873Z" }, ] [[package]] name = "ruff" version = "0.15.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/dc/4e6ac71b511b141cf626357a3946679abeba4cf67bc7cc5a17920f31e10d/ruff-0.15.1.tar.gz", hash = "sha256:c590fe13fb57c97141ae975c03a1aedb3d3156030cabd740d6ff0b0d601e203f", size = 4540855, upload_time = "2026-02-12T23:09:09.998Z" } +sdist = { url = "https://files.pythonhosted.org/packages/04/dc/4e6ac71b511b141cf626357a3946679abeba4cf67bc7cc5a17920f31e10d/ruff-0.15.1.tar.gz", hash = "sha256:c590fe13fb57c97141ae975c03a1aedb3d3156030cabd740d6ff0b0d601e203f", size = 4540855, upload-time = "2026-02-12T23:09:09.998Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/23/bf/e6e4324238c17f9d9120a9d60aa99a7daaa21204c07fcd84e2ef03bb5fd1/ruff-0.15.1-py3-none-linux_armv6l.whl", hash = "sha256:b101ed7cf4615bda6ffe65bdb59f964e9f4a0d3f85cbf0e54f0ab76d7b90228a", size = 10367819, upload_time = "2026-02-12T23:09:03.598Z" }, - { url = "https://files.pythonhosted.org/packages/b3/ea/c8f89d32e7912269d38c58f3649e453ac32c528f93bb7f4219258be2e7ed/ruff-0.15.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:939c995e9277e63ea632cc8d3fae17aa758526f49a9a850d2e7e758bfef46602", size = 10798618, upload_time = "2026-02-12T23:09:22.928Z" }, - { url = "https://files.pythonhosted.org/packages/5e/0f/1d0d88bc862624247d82c20c10d4c0f6bb2f346559d8af281674cf327f15/ruff-0.15.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1d83466455fdefe60b8d9c8df81d3c1bbb2115cede53549d3b522ce2bc703899", size = 10148518, upload_time = "2026-02-12T23:08:58.339Z" }, - { url = "https://files.pythonhosted.org/packages/f5/c8/291c49cefaa4a9248e986256df2ade7add79388fe179e0691be06fae6f37/ruff-0.15.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9457e3c3291024866222b96108ab2d8265b477e5b1534c7ddb1810904858d16", size = 10518811, upload_time = "2026-02-12T23:09:31.865Z" }, - { url = "https://files.pythonhosted.org/packages/c3/1a/f5707440e5ae43ffa5365cac8bbb91e9665f4a883f560893829cf16a606b/ruff-0.15.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92c92b003e9d4f7fbd33b1867bb15a1b785b1735069108dfc23821ba045b29bc", size = 10196169, upload_time = "2026-02-12T23:09:17.306Z" }, - { url = "https://files.pythonhosted.org/packages/2a/ff/26ddc8c4da04c8fd3ee65a89c9fb99eaa5c30394269d424461467be2271f/ruff-0.15.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe5c41ab43e3a06778844c586251eb5a510f67125427625f9eb2b9526535779", size = 10990491, upload_time = "2026-02-12T23:09:25.503Z" }, - { url = "https://files.pythonhosted.org/packages/fc/00/50920cb385b89413f7cdb4bb9bc8fc59c1b0f30028d8bccc294189a54955/ruff-0.15.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66a6dd6df4d80dc382c6484f8ce1bcceb55c32e9f27a8b94c32f6c7331bf14fb", size = 11843280, upload_time = "2026-02-12T23:09:19.88Z" }, - { url = "https://files.pythonhosted.org/packages/5d/6d/2f5cad8380caf5632a15460c323ae326f1e1a2b5b90a6ee7519017a017ca/ruff-0.15.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a4a42cbb8af0bda9bcd7606b064d7c0bc311a88d141d02f78920be6acb5aa83", size = 11274336, upload_time = "2026-02-12T23:09:14.907Z" }, - { url = "https://files.pythonhosted.org/packages/a3/1d/5f56cae1d6c40b8a318513599b35ea4b075d7dc1cd1d04449578c29d1d75/ruff-0.15.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ab064052c31dddada35079901592dfba2e05f5b1e43af3954aafcbc1096a5b2", size = 11137288, upload_time = "2026-02-12T23:09:07.475Z" }, - { url = "https://files.pythonhosted.org/packages/cd/20/6f8d7d8f768c93b0382b33b9306b3b999918816da46537d5a61635514635/ruff-0.15.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:5631c940fe9fe91f817a4c2ea4e81f47bee3ca4aa646134a24374f3c19ad9454", size = 11070681, upload_time = "2026-02-12T23:08:55.43Z" }, - { url = "https://files.pythonhosted.org/packages/9a/67/d640ac76069f64cdea59dba02af2e00b1fa30e2103c7f8d049c0cff4cafd/ruff-0.15.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:68138a4ba184b4691ccdc39f7795c66b3c68160c586519e7e8444cf5a53e1b4c", size = 10486401, upload_time = "2026-02-12T23:09:27.927Z" }, - { url = "https://files.pythonhosted.org/packages/65/3d/e1429f64a3ff89297497916b88c32a5cc88eeca7e9c787072d0e7f1d3e1e/ruff-0.15.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:518f9af03bfc33c03bdb4cb63fabc935341bb7f54af500f92ac309ecfbba6330", size = 10197452, upload_time = "2026-02-12T23:09:12.147Z" }, - { url = "https://files.pythonhosted.org/packages/78/83/e2c3bade17dad63bf1e1c2ffaf11490603b760be149e1419b07049b36ef2/ruff-0.15.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:da79f4d6a826caaea95de0237a67e33b81e6ec2e25fc7e1993a4015dffca7c61", size = 10693900, upload_time = "2026-02-12T23:09:34.418Z" }, - { url = "https://files.pythonhosted.org/packages/a1/27/fdc0e11a813e6338e0706e8b39bb7a1d61ea5b36873b351acee7e524a72a/ruff-0.15.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3dd86dccb83cd7d4dcfac303ffc277e6048600dfc22e38158afa208e8bf94a1f", size = 11227302, upload_time = "2026-02-12T23:09:36.536Z" }, - { url = "https://files.pythonhosted.org/packages/f6/58/ac864a75067dcbd3b95be5ab4eb2b601d7fbc3d3d736a27e391a4f92a5c1/ruff-0.15.1-py3-none-win32.whl", hash = "sha256:660975d9cb49b5d5278b12b03bb9951d554543a90b74ed5d366b20e2c57c2098", size = 10462555, upload_time = "2026-02-12T23:09:29.899Z" }, - { url = "https://files.pythonhosted.org/packages/e0/5e/d4ccc8a27ecdb78116feac4935dfc39d1304536f4296168f91ed3ec00cd2/ruff-0.15.1-py3-none-win_amd64.whl", hash = "sha256:c820fef9dd5d4172a6570e5721704a96c6679b80cf7be41659ed439653f62336", size = 11599956, upload_time = "2026-02-12T23:09:01.157Z" }, - { url = "https://files.pythonhosted.org/packages/2a/07/5bda6a85b220c64c65686bc85bd0bbb23b29c62b3a9f9433fa55f17cda93/ruff-0.15.1-py3-none-win_arm64.whl", hash = "sha256:5ff7d5f0f88567850f45081fac8f4ec212be8d0b963e385c3f7d0d2eb4899416", size = 10874604, upload_time = "2026-02-12T23:09:05.515Z" }, + { url = "https://files.pythonhosted.org/packages/23/bf/e6e4324238c17f9d9120a9d60aa99a7daaa21204c07fcd84e2ef03bb5fd1/ruff-0.15.1-py3-none-linux_armv6l.whl", hash = "sha256:b101ed7cf4615bda6ffe65bdb59f964e9f4a0d3f85cbf0e54f0ab76d7b90228a", size = 10367819, upload-time = "2026-02-12T23:09:03.598Z" }, + { url = "https://files.pythonhosted.org/packages/b3/ea/c8f89d32e7912269d38c58f3649e453ac32c528f93bb7f4219258be2e7ed/ruff-0.15.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:939c995e9277e63ea632cc8d3fae17aa758526f49a9a850d2e7e758bfef46602", size = 10798618, upload-time = "2026-02-12T23:09:22.928Z" }, + { url = "https://files.pythonhosted.org/packages/5e/0f/1d0d88bc862624247d82c20c10d4c0f6bb2f346559d8af281674cf327f15/ruff-0.15.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1d83466455fdefe60b8d9c8df81d3c1bbb2115cede53549d3b522ce2bc703899", size = 10148518, upload-time = "2026-02-12T23:08:58.339Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c8/291c49cefaa4a9248e986256df2ade7add79388fe179e0691be06fae6f37/ruff-0.15.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9457e3c3291024866222b96108ab2d8265b477e5b1534c7ddb1810904858d16", size = 10518811, upload-time = "2026-02-12T23:09:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/c3/1a/f5707440e5ae43ffa5365cac8bbb91e9665f4a883f560893829cf16a606b/ruff-0.15.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92c92b003e9d4f7fbd33b1867bb15a1b785b1735069108dfc23821ba045b29bc", size = 10196169, upload-time = "2026-02-12T23:09:17.306Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ff/26ddc8c4da04c8fd3ee65a89c9fb99eaa5c30394269d424461467be2271f/ruff-0.15.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe5c41ab43e3a06778844c586251eb5a510f67125427625f9eb2b9526535779", size = 10990491, upload-time = "2026-02-12T23:09:25.503Z" }, + { url = "https://files.pythonhosted.org/packages/fc/00/50920cb385b89413f7cdb4bb9bc8fc59c1b0f30028d8bccc294189a54955/ruff-0.15.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66a6dd6df4d80dc382c6484f8ce1bcceb55c32e9f27a8b94c32f6c7331bf14fb", size = 11843280, upload-time = "2026-02-12T23:09:19.88Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6d/2f5cad8380caf5632a15460c323ae326f1e1a2b5b90a6ee7519017a017ca/ruff-0.15.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a4a42cbb8af0bda9bcd7606b064d7c0bc311a88d141d02f78920be6acb5aa83", size = 11274336, upload-time = "2026-02-12T23:09:14.907Z" }, + { url = "https://files.pythonhosted.org/packages/a3/1d/5f56cae1d6c40b8a318513599b35ea4b075d7dc1cd1d04449578c29d1d75/ruff-0.15.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ab064052c31dddada35079901592dfba2e05f5b1e43af3954aafcbc1096a5b2", size = 11137288, upload-time = "2026-02-12T23:09:07.475Z" }, + { url = "https://files.pythonhosted.org/packages/cd/20/6f8d7d8f768c93b0382b33b9306b3b999918816da46537d5a61635514635/ruff-0.15.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:5631c940fe9fe91f817a4c2ea4e81f47bee3ca4aa646134a24374f3c19ad9454", size = 11070681, upload-time = "2026-02-12T23:08:55.43Z" }, + { url = "https://files.pythonhosted.org/packages/9a/67/d640ac76069f64cdea59dba02af2e00b1fa30e2103c7f8d049c0cff4cafd/ruff-0.15.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:68138a4ba184b4691ccdc39f7795c66b3c68160c586519e7e8444cf5a53e1b4c", size = 10486401, upload-time = "2026-02-12T23:09:27.927Z" }, + { url = "https://files.pythonhosted.org/packages/65/3d/e1429f64a3ff89297497916b88c32a5cc88eeca7e9c787072d0e7f1d3e1e/ruff-0.15.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:518f9af03bfc33c03bdb4cb63fabc935341bb7f54af500f92ac309ecfbba6330", size = 10197452, upload-time = "2026-02-12T23:09:12.147Z" }, + { url = "https://files.pythonhosted.org/packages/78/83/e2c3bade17dad63bf1e1c2ffaf11490603b760be149e1419b07049b36ef2/ruff-0.15.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:da79f4d6a826caaea95de0237a67e33b81e6ec2e25fc7e1993a4015dffca7c61", size = 10693900, upload-time = "2026-02-12T23:09:34.418Z" }, + { url = "https://files.pythonhosted.org/packages/a1/27/fdc0e11a813e6338e0706e8b39bb7a1d61ea5b36873b351acee7e524a72a/ruff-0.15.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3dd86dccb83cd7d4dcfac303ffc277e6048600dfc22e38158afa208e8bf94a1f", size = 11227302, upload-time = "2026-02-12T23:09:36.536Z" }, + { url = "https://files.pythonhosted.org/packages/f6/58/ac864a75067dcbd3b95be5ab4eb2b601d7fbc3d3d736a27e391a4f92a5c1/ruff-0.15.1-py3-none-win32.whl", hash = "sha256:660975d9cb49b5d5278b12b03bb9951d554543a90b74ed5d366b20e2c57c2098", size = 10462555, upload-time = "2026-02-12T23:09:29.899Z" }, + { url = "https://files.pythonhosted.org/packages/e0/5e/d4ccc8a27ecdb78116feac4935dfc39d1304536f4296168f91ed3ec00cd2/ruff-0.15.1-py3-none-win_amd64.whl", hash = "sha256:c820fef9dd5d4172a6570e5721704a96c6679b80cf7be41659ed439653f62336", size = 11599956, upload-time = "2026-02-12T23:09:01.157Z" }, + { url = "https://files.pythonhosted.org/packages/2a/07/5bda6a85b220c64c65686bc85bd0bbb23b29c62b3a9f9433fa55f17cda93/ruff-0.15.1-py3-none-win_arm64.whl", hash = "sha256:5ff7d5f0f88567850f45081fac8f4ec212be8d0b963e385c3f7d0d2eb4899416", size = 10874604, upload-time = "2026-02-12T23:09:05.515Z" }, ] [[package]] name = "safetensors" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz", hash = "sha256:07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0", size = 200878, upload_time = "2025-11-19T15:18:43.199Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/fa/47/aef6c06649039accf914afef490268e1067ed82be62bcfa5b7e886ad15e8/safetensors-0.7.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c82f4d474cf725255d9e6acf17252991c3c8aac038d6ef363a4bf8be2f6db517", size = 467781, upload_time = "2025-11-19T15:18:35.84Z" }, - { url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57", size = 447058, upload_time = "2025-11-19T15:18:34.416Z" }, - { url = "https://files.pythonhosted.org/packages/f1/06/578ffed52c2296f93d7fd2d844cabfa92be51a587c38c8afbb8ae449ca89/safetensors-0.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e07d91d0c92a31200f25351f4acb2bc6aff7f48094e13ebb1d0fb995b54b6542", size = 491748, upload_time = "2025-11-19T15:18:09.79Z" }, - { url = "https://files.pythonhosted.org/packages/ae/33/1debbbb70e4791dde185edb9413d1fe01619255abb64b300157d7f15dddd/safetensors-0.7.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8469155f4cb518bafb4acf4865e8bb9d6804110d2d9bdcaa78564b9fd841e104", size = 503881, upload_time = "2025-11-19T15:18:16.145Z" }, - { url = "https://files.pythonhosted.org/packages/8e/1c/40c2ca924d60792c3be509833df711b553c60effbd91da6f5284a83f7122/safetensors-0.7.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:54bef08bf00a2bff599982f6b08e8770e09cc012d7bba00783fc7ea38f1fb37d", size = 623463, upload_time = "2025-11-19T15:18:21.11Z" }, - { url = "https://files.pythonhosted.org/packages/9b/3a/13784a9364bd43b0d61eef4bea2845039bc2030458b16594a1bd787ae26e/safetensors-0.7.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:42cb091236206bb2016d245c377ed383aa7f78691748f3bb6ee1bfa51ae2ce6a", size = 532855, upload_time = "2025-11-19T15:18:25.719Z" }, - { url = "https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac7252938f0696ddea46f5e855dd3138444e82236e3be475f54929f0c510d48", size = 507152, upload_time = "2025-11-19T15:18:33.023Z" }, - { url = "https://files.pythonhosted.org/packages/3c/a8/4b45e4e059270d17af60359713ffd83f97900d45a6afa73aaa0d737d48b6/safetensors-0.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1d060c70284127fa805085d8f10fbd0962792aed71879d00864acda69dbab981", size = 541856, upload_time = "2025-11-19T15:18:31.075Z" }, - { url = "https://files.pythonhosted.org/packages/06/87/d26d8407c44175d8ae164a95b5a62707fcc445f3c0c56108e37d98070a3d/safetensors-0.7.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cdab83a366799fa730f90a4ebb563e494f28e9e92c4819e556152ad55e43591b", size = 674060, upload_time = "2025-11-19T15:18:37.211Z" }, - { url = "https://files.pythonhosted.org/packages/11/f5/57644a2ff08dc6325816ba7217e5095f17269dada2554b658442c66aed51/safetensors-0.7.0-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:672132907fcad9f2aedcb705b2d7b3b93354a2aec1b2f706c4db852abe338f85", size = 771715, upload_time = "2025-11-19T15:18:38.689Z" }, - { url = "https://files.pythonhosted.org/packages/86/31/17883e13a814bd278ae6e266b13282a01049b0c81341da7fd0e3e71a80a3/safetensors-0.7.0-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:5d72abdb8a4d56d4020713724ba81dac065fedb7f3667151c4a637f1d3fb26c0", size = 714377, upload_time = "2025-11-19T15:18:40.162Z" }, - { url = "https://files.pythonhosted.org/packages/4a/d8/0c8a7dc9b41dcac53c4cbf9df2b9c83e0e0097203de8b37a712b345c0be5/safetensors-0.7.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0f6d66c1c538d5a94a73aa9ddca8ccc4227e6c9ff555322ea40bdd142391dd4", size = 677368, upload_time = "2025-11-19T15:18:41.627Z" }, - { url = "https://files.pythonhosted.org/packages/05/e5/cb4b713c8a93469e3c5be7c3f8d77d307e65fe89673e731f5c2bfd0a9237/safetensors-0.7.0-cp38-abi3-win32.whl", hash = "sha256:c74af94bf3ac15ac4d0f2a7c7b4663a15f8c2ab15ed0fc7531ca61d0835eccba", size = 326423, upload_time = "2025-11-19T15:18:45.74Z" }, - { url = "https://files.pythonhosted.org/packages/5d/e6/ec8471c8072382cb91233ba7267fd931219753bb43814cbc71757bfd4dab/safetensors-0.7.0-cp38-abi3-win_amd64.whl", hash = "sha256:d1239932053f56f3456f32eb9625590cc7582e905021f94636202a864d470755", size = 341380, upload_time = "2025-11-19T15:18:44.427Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6a/4d08d89a6fcbe905c5ae68b8b34f0791850882fc19782d0d02c65abbdf3b/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4729811a6640d019a4b7ba8638ee2fd21fa5ca8c7e7bdf0fed62068fcaac737", size = 492430, upload_time = "2025-11-19T15:18:11.884Z" }, - { url = "https://files.pythonhosted.org/packages/dd/29/59ed8152b30f72c42d00d241e58eaca558ae9dbfa5695206e2e0f54c7063/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12f49080303fa6bb424b362149a12949dfbbf1e06811a88f2307276b0c131afd", size = 503977, upload_time = "2025-11-19T15:18:17.523Z" }, - { url = "https://files.pythonhosted.org/packages/d3/0b/4811bfec67fa260e791369b16dab105e4bae82686120554cc484064e22b4/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0071bffba4150c2f46cae1432d31995d77acfd9f8db598b5d1a2ce67e8440ad2", size = 623890, upload_time = "2025-11-19T15:18:22.666Z" }, - { url = "https://files.pythonhosted.org/packages/58/5b/632a58724221ef03d78ab65062e82a1010e1bef8e8e0b9d7c6d7b8044841/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:473b32699f4200e69801bf5abf93f1a4ecd432a70984df164fc22ccf39c4a6f3", size = 531885, upload_time = "2025-11-19T15:18:27.146Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/29/9c/6e74567782559a63bd040a236edca26fd71bc7ba88de2ef35d75df3bca5e/safetensors-0.7.0.tar.gz", hash = "sha256:07663963b67e8bd9f0b8ad15bb9163606cd27cc5a1b96235a50d8369803b96b0", size = 200878, upload-time = "2025-11-19T15:18:43.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/47/aef6c06649039accf914afef490268e1067ed82be62bcfa5b7e886ad15e8/safetensors-0.7.0-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c82f4d474cf725255d9e6acf17252991c3c8aac038d6ef363a4bf8be2f6db517", size = 467781, upload-time = "2025-11-19T15:18:35.84Z" }, + { url = "https://files.pythonhosted.org/packages/e8/00/374c0c068e30cd31f1e1b46b4b5738168ec79e7689ca82ee93ddfea05109/safetensors-0.7.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:94fd4858284736bb67a897a41608b5b0c2496c9bdb3bf2af1fa3409127f20d57", size = 447058, upload-time = "2025-11-19T15:18:34.416Z" }, + { url = "https://files.pythonhosted.org/packages/f1/06/578ffed52c2296f93d7fd2d844cabfa92be51a587c38c8afbb8ae449ca89/safetensors-0.7.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e07d91d0c92a31200f25351f4acb2bc6aff7f48094e13ebb1d0fb995b54b6542", size = 491748, upload-time = "2025-11-19T15:18:09.79Z" }, + { url = "https://files.pythonhosted.org/packages/ae/33/1debbbb70e4791dde185edb9413d1fe01619255abb64b300157d7f15dddd/safetensors-0.7.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8469155f4cb518bafb4acf4865e8bb9d6804110d2d9bdcaa78564b9fd841e104", size = 503881, upload-time = "2025-11-19T15:18:16.145Z" }, + { url = "https://files.pythonhosted.org/packages/8e/1c/40c2ca924d60792c3be509833df711b553c60effbd91da6f5284a83f7122/safetensors-0.7.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:54bef08bf00a2bff599982f6b08e8770e09cc012d7bba00783fc7ea38f1fb37d", size = 623463, upload-time = "2025-11-19T15:18:21.11Z" }, + { url = "https://files.pythonhosted.org/packages/9b/3a/13784a9364bd43b0d61eef4bea2845039bc2030458b16594a1bd787ae26e/safetensors-0.7.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:42cb091236206bb2016d245c377ed383aa7f78691748f3bb6ee1bfa51ae2ce6a", size = 532855, upload-time = "2025-11-19T15:18:25.719Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/429e9b1cb3fc651937727befe258ea24122d9663e4d5709a48c9cbfceecb/safetensors-0.7.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac7252938f0696ddea46f5e855dd3138444e82236e3be475f54929f0c510d48", size = 507152, upload-time = "2025-11-19T15:18:33.023Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a8/4b45e4e059270d17af60359713ffd83f97900d45a6afa73aaa0d737d48b6/safetensors-0.7.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1d060c70284127fa805085d8f10fbd0962792aed71879d00864acda69dbab981", size = 541856, upload-time = "2025-11-19T15:18:31.075Z" }, + { url = "https://files.pythonhosted.org/packages/06/87/d26d8407c44175d8ae164a95b5a62707fcc445f3c0c56108e37d98070a3d/safetensors-0.7.0-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cdab83a366799fa730f90a4ebb563e494f28e9e92c4819e556152ad55e43591b", size = 674060, upload-time = "2025-11-19T15:18:37.211Z" }, + { url = "https://files.pythonhosted.org/packages/11/f5/57644a2ff08dc6325816ba7217e5095f17269dada2554b658442c66aed51/safetensors-0.7.0-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:672132907fcad9f2aedcb705b2d7b3b93354a2aec1b2f706c4db852abe338f85", size = 771715, upload-time = "2025-11-19T15:18:38.689Z" }, + { url = "https://files.pythonhosted.org/packages/86/31/17883e13a814bd278ae6e266b13282a01049b0c81341da7fd0e3e71a80a3/safetensors-0.7.0-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:5d72abdb8a4d56d4020713724ba81dac065fedb7f3667151c4a637f1d3fb26c0", size = 714377, upload-time = "2025-11-19T15:18:40.162Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d8/0c8a7dc9b41dcac53c4cbf9df2b9c83e0e0097203de8b37a712b345c0be5/safetensors-0.7.0-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b0f6d66c1c538d5a94a73aa9ddca8ccc4227e6c9ff555322ea40bdd142391dd4", size = 677368, upload-time = "2025-11-19T15:18:41.627Z" }, + { url = "https://files.pythonhosted.org/packages/05/e5/cb4b713c8a93469e3c5be7c3f8d77d307e65fe89673e731f5c2bfd0a9237/safetensors-0.7.0-cp38-abi3-win32.whl", hash = "sha256:c74af94bf3ac15ac4d0f2a7c7b4663a15f8c2ab15ed0fc7531ca61d0835eccba", size = 326423, upload-time = "2025-11-19T15:18:45.74Z" }, + { url = "https://files.pythonhosted.org/packages/5d/e6/ec8471c8072382cb91233ba7267fd931219753bb43814cbc71757bfd4dab/safetensors-0.7.0-cp38-abi3-win_amd64.whl", hash = "sha256:d1239932053f56f3456f32eb9625590cc7582e905021f94636202a864d470755", size = 341380, upload-time = "2025-11-19T15:18:44.427Z" }, + { url = "https://files.pythonhosted.org/packages/a7/6a/4d08d89a6fcbe905c5ae68b8b34f0791850882fc19782d0d02c65abbdf3b/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4729811a6640d019a4b7ba8638ee2fd21fa5ca8c7e7bdf0fed62068fcaac737", size = 492430, upload-time = "2025-11-19T15:18:11.884Z" }, + { url = "https://files.pythonhosted.org/packages/dd/29/59ed8152b30f72c42d00d241e58eaca558ae9dbfa5695206e2e0f54c7063/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12f49080303fa6bb424b362149a12949dfbbf1e06811a88f2307276b0c131afd", size = 503977, upload-time = "2025-11-19T15:18:17.523Z" }, + { url = "https://files.pythonhosted.org/packages/d3/0b/4811bfec67fa260e791369b16dab105e4bae82686120554cc484064e22b4/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0071bffba4150c2f46cae1432d31995d77acfd9f8db598b5d1a2ce67e8440ad2", size = 623890, upload-time = "2025-11-19T15:18:22.666Z" }, + { url = "https://files.pythonhosted.org/packages/58/5b/632a58724221ef03d78ab65062e82a1010e1bef8e8e0b9d7c6d7b8044841/safetensors-0.7.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:473b32699f4200e69801bf5abf93f1a4ecd432a70984df164fc22ccf39c4a6f3", size = 531885, upload-time = "2025-11-19T15:18:27.146Z" }, ] [[package]] @@ -3942,33 +3992,33 @@ dependencies = [ { name = "scipy", version = "1.15.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "threadpoolctl", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", size = 7193136, upload_time = "2025-09-09T08:21:29.075Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ba/3e/daed796fd69cce768b8788401cc464ea90b306fb196ae1ffed0b98182859/scikit_learn-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b33579c10a3081d076ab403df4a4190da4f4432d443521674637677dc91e61f", size = 9336221, upload_time = "2025-09-09T08:20:19.328Z" }, - { url = "https://files.pythonhosted.org/packages/1c/ce/af9d99533b24c55ff4e18d9b7b4d9919bbc6cd8f22fe7a7be01519a347d5/scikit_learn-1.7.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:36749fb62b3d961b1ce4fedf08fa57a1986cd409eff2d783bca5d4b9b5fce51c", size = 8653834, upload_time = "2025-09-09T08:20:22.073Z" }, - { url = "https://files.pythonhosted.org/packages/58/0e/8c2a03d518fb6bd0b6b0d4b114c63d5f1db01ff0f9925d8eb10960d01c01/scikit_learn-1.7.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7a58814265dfc52b3295b1900cfb5701589d30a8bb026c7540f1e9d3499d5ec8", size = 9660938, upload_time = "2025-09-09T08:20:24.327Z" }, - { url = "https://files.pythonhosted.org/packages/2b/75/4311605069b5d220e7cf5adabb38535bd96f0079313cdbb04b291479b22a/scikit_learn-1.7.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a847fea807e278f821a0406ca01e387f97653e284ecbd9750e3ee7c90347f18", size = 9477818, upload_time = "2025-09-09T08:20:26.845Z" }, - { url = "https://files.pythonhosted.org/packages/7f/9b/87961813c34adbca21a6b3f6b2bea344c43b30217a6d24cc437c6147f3e8/scikit_learn-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:ca250e6836d10e6f402436d6463d6c0e4d8e0234cfb6a9a47835bd392b852ce5", size = 8886969, upload_time = "2025-09-09T08:20:29.329Z" }, - { url = "https://files.pythonhosted.org/packages/43/83/564e141eef908a5863a54da8ca342a137f45a0bfb71d1d79704c9894c9d1/scikit_learn-1.7.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7509693451651cd7361d30ce4e86a1347493554f172b1c72a39300fa2aea79e", size = 9331967, upload_time = "2025-09-09T08:20:32.421Z" }, - { url = "https://files.pythonhosted.org/packages/18/d6/ba863a4171ac9d7314c4d3fc251f015704a2caeee41ced89f321c049ed83/scikit_learn-1.7.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:0486c8f827c2e7b64837c731c8feff72c0bd2b998067a8a9cbc10643c31f0fe1", size = 8648645, upload_time = "2025-09-09T08:20:34.436Z" }, - { url = "https://files.pythonhosted.org/packages/ef/0e/97dbca66347b8cf0ea8b529e6bb9367e337ba2e8be0ef5c1a545232abfde/scikit_learn-1.7.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89877e19a80c7b11a2891a27c21c4894fb18e2c2e077815bcade10d34287b20d", size = 9715424, upload_time = "2025-09-09T08:20:36.776Z" }, - { url = "https://files.pythonhosted.org/packages/f7/32/1f3b22e3207e1d2c883a7e09abb956362e7d1bd2f14458c7de258a26ac15/scikit_learn-1.7.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8da8bf89d4d79aaec192d2bda62f9b56ae4e5b4ef93b6a56b5de4977e375c1f1", size = 9509234, upload_time = "2025-09-09T08:20:38.957Z" }, - { url = "https://files.pythonhosted.org/packages/9f/71/34ddbd21f1da67c7a768146968b4d0220ee6831e4bcbad3e03dd3eae88b6/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ed8d58725030568523e937c43e56bc01cadb478fc43c042a9aca1dacb3ba1", size = 8894244, upload_time = "2025-09-09T08:20:41.166Z" }, - { url = "https://files.pythonhosted.org/packages/a7/aa/3996e2196075689afb9fce0410ebdb4a09099d7964d061d7213700204409/scikit_learn-1.7.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8d91a97fa2b706943822398ab943cde71858a50245e31bc71dba62aab1d60a96", size = 9259818, upload_time = "2025-09-09T08:20:43.19Z" }, - { url = "https://files.pythonhosted.org/packages/43/5d/779320063e88af9c4a7c2cf463ff11c21ac9c8bd730c4a294b0000b666c9/scikit_learn-1.7.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:acbc0f5fd2edd3432a22c69bed78e837c70cf896cd7993d71d51ba6708507476", size = 8636997, upload_time = "2025-09-09T08:20:45.468Z" }, - { url = "https://files.pythonhosted.org/packages/5c/d0/0c577d9325b05594fdd33aa970bf53fb673f051a45496842caee13cfd7fe/scikit_learn-1.7.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5bf3d930aee75a65478df91ac1225ff89cd28e9ac7bd1196853a9229b6adb0b", size = 9478381, upload_time = "2025-09-09T08:20:47.982Z" }, - { url = "https://files.pythonhosted.org/packages/82/70/8bf44b933837ba8494ca0fc9a9ab60f1c13b062ad0197f60a56e2fc4c43e/scikit_learn-1.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d6e9deed1a47aca9fe2f267ab8e8fe82ee20b4526b2c0cd9e135cea10feb44", size = 9300296, upload_time = "2025-09-09T08:20:50.366Z" }, - { url = "https://files.pythonhosted.org/packages/c6/99/ed35197a158f1fdc2fe7c3680e9c70d0128f662e1fee4ed495f4b5e13db0/scikit_learn-1.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:6088aa475f0785e01bcf8529f55280a3d7d298679f50c0bb70a2364a82d0b290", size = 8731256, upload_time = "2025-09-09T08:20:52.627Z" }, - { url = "https://files.pythonhosted.org/packages/ae/93/a3038cb0293037fd335f77f31fe053b89c72f17b1c8908c576c29d953e84/scikit_learn-1.7.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b7dacaa05e5d76759fb071558a8b5130f4845166d88654a0f9bdf3eb57851b7", size = 9212382, upload_time = "2025-09-09T08:20:54.731Z" }, - { url = "https://files.pythonhosted.org/packages/40/dd/9a88879b0c1104259136146e4742026b52df8540c39fec21a6383f8292c7/scikit_learn-1.7.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:abebbd61ad9e1deed54cca45caea8ad5f79e1b93173dece40bb8e0c658dbe6fe", size = 8592042, upload_time = "2025-09-09T08:20:57.313Z" }, - { url = "https://files.pythonhosted.org/packages/46/af/c5e286471b7d10871b811b72ae794ac5fe2989c0a2df07f0ec723030f5f5/scikit_learn-1.7.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:502c18e39849c0ea1a5d681af1dbcf15f6cce601aebb657aabbfe84133c1907f", size = 9434180, upload_time = "2025-09-09T08:20:59.671Z" }, - { url = "https://files.pythonhosted.org/packages/f1/fd/df59faa53312d585023b2da27e866524ffb8faf87a68516c23896c718320/scikit_learn-1.7.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a4c328a71785382fe3fe676a9ecf2c86189249beff90bf85e22bdb7efaf9ae0", size = 9283660, upload_time = "2025-09-09T08:21:01.71Z" }, - { url = "https://files.pythonhosted.org/packages/a7/c7/03000262759d7b6f38c836ff9d512f438a70d8a8ddae68ee80de72dcfb63/scikit_learn-1.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:63a9afd6f7b229aad94618c01c252ce9e6fa97918c5ca19c9a17a087d819440c", size = 8702057, upload_time = "2025-09-09T08:21:04.234Z" }, - { url = "https://files.pythonhosted.org/packages/55/87/ef5eb1f267084532c8e4aef98a28b6ffe7425acbfd64b5e2f2e066bc29b3/scikit_learn-1.7.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9acb6c5e867447b4e1390930e3944a005e2cb115922e693c08a323421a6966e8", size = 9558731, upload_time = "2025-09-09T08:21:06.381Z" }, - { url = "https://files.pythonhosted.org/packages/93/f8/6c1e3fc14b10118068d7938878a9f3f4e6d7b74a8ddb1e5bed65159ccda8/scikit_learn-1.7.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:2a41e2a0ef45063e654152ec9d8bcfc39f7afce35b08902bfe290c2498a67a6a", size = 9038852, upload_time = "2025-09-09T08:21:08.628Z" }, - { url = "https://files.pythonhosted.org/packages/83/87/066cafc896ee540c34becf95d30375fe5cbe93c3b75a0ee9aa852cd60021/scikit_learn-1.7.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98335fb98509b73385b3ab2bd0639b1f610541d3988ee675c670371d6a87aa7c", size = 9527094, upload_time = "2025-09-09T08:21:11.486Z" }, - { url = "https://files.pythonhosted.org/packages/9c/2b/4903e1ccafa1f6453b1ab78413938c8800633988c838aa0be386cbb33072/scikit_learn-1.7.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:191e5550980d45449126e23ed1d5e9e24b2c68329ee1f691a3987476e115e09c", size = 9367436, upload_time = "2025-09-09T08:21:13.602Z" }, - { url = "https://files.pythonhosted.org/packages/b5/aa/8444be3cfb10451617ff9d177b3c190288f4563e6c50ff02728be67ad094/scikit_learn-1.7.2-cp313-cp313t-win_amd64.whl", hash = "sha256:57dc4deb1d3762c75d685507fbd0bc17160144b2f2ba4ccea5dc285ab0d0e973", size = 9275749, upload_time = "2025-09-09T08:21:15.96Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/98/c2/a7855e41c9d285dfe86dc50b250978105dce513d6e459ea66a6aeb0e1e0c/scikit_learn-1.7.2.tar.gz", hash = "sha256:20e9e49ecd130598f1ca38a1d85090e1a600147b9c02fa6f15d69cb53d968fda", size = 7193136, upload-time = "2025-09-09T08:21:29.075Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/3e/daed796fd69cce768b8788401cc464ea90b306fb196ae1ffed0b98182859/scikit_learn-1.7.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b33579c10a3081d076ab403df4a4190da4f4432d443521674637677dc91e61f", size = 9336221, upload-time = "2025-09-09T08:20:19.328Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ce/af9d99533b24c55ff4e18d9b7b4d9919bbc6cd8f22fe7a7be01519a347d5/scikit_learn-1.7.2-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:36749fb62b3d961b1ce4fedf08fa57a1986cd409eff2d783bca5d4b9b5fce51c", size = 8653834, upload-time = "2025-09-09T08:20:22.073Z" }, + { url = "https://files.pythonhosted.org/packages/58/0e/8c2a03d518fb6bd0b6b0d4b114c63d5f1db01ff0f9925d8eb10960d01c01/scikit_learn-1.7.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7a58814265dfc52b3295b1900cfb5701589d30a8bb026c7540f1e9d3499d5ec8", size = 9660938, upload-time = "2025-09-09T08:20:24.327Z" }, + { url = "https://files.pythonhosted.org/packages/2b/75/4311605069b5d220e7cf5adabb38535bd96f0079313cdbb04b291479b22a/scikit_learn-1.7.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4a847fea807e278f821a0406ca01e387f97653e284ecbd9750e3ee7c90347f18", size = 9477818, upload-time = "2025-09-09T08:20:26.845Z" }, + { url = "https://files.pythonhosted.org/packages/7f/9b/87961813c34adbca21a6b3f6b2bea344c43b30217a6d24cc437c6147f3e8/scikit_learn-1.7.2-cp310-cp310-win_amd64.whl", hash = "sha256:ca250e6836d10e6f402436d6463d6c0e4d8e0234cfb6a9a47835bd392b852ce5", size = 8886969, upload-time = "2025-09-09T08:20:29.329Z" }, + { url = "https://files.pythonhosted.org/packages/43/83/564e141eef908a5863a54da8ca342a137f45a0bfb71d1d79704c9894c9d1/scikit_learn-1.7.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c7509693451651cd7361d30ce4e86a1347493554f172b1c72a39300fa2aea79e", size = 9331967, upload-time = "2025-09-09T08:20:32.421Z" }, + { url = "https://files.pythonhosted.org/packages/18/d6/ba863a4171ac9d7314c4d3fc251f015704a2caeee41ced89f321c049ed83/scikit_learn-1.7.2-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:0486c8f827c2e7b64837c731c8feff72c0bd2b998067a8a9cbc10643c31f0fe1", size = 8648645, upload-time = "2025-09-09T08:20:34.436Z" }, + { url = "https://files.pythonhosted.org/packages/ef/0e/97dbca66347b8cf0ea8b529e6bb9367e337ba2e8be0ef5c1a545232abfde/scikit_learn-1.7.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:89877e19a80c7b11a2891a27c21c4894fb18e2c2e077815bcade10d34287b20d", size = 9715424, upload-time = "2025-09-09T08:20:36.776Z" }, + { url = "https://files.pythonhosted.org/packages/f7/32/1f3b22e3207e1d2c883a7e09abb956362e7d1bd2f14458c7de258a26ac15/scikit_learn-1.7.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8da8bf89d4d79aaec192d2bda62f9b56ae4e5b4ef93b6a56b5de4977e375c1f1", size = 9509234, upload-time = "2025-09-09T08:20:38.957Z" }, + { url = "https://files.pythonhosted.org/packages/9f/71/34ddbd21f1da67c7a768146968b4d0220ee6831e4bcbad3e03dd3eae88b6/scikit_learn-1.7.2-cp311-cp311-win_amd64.whl", hash = "sha256:9b7ed8d58725030568523e937c43e56bc01cadb478fc43c042a9aca1dacb3ba1", size = 8894244, upload-time = "2025-09-09T08:20:41.166Z" }, + { url = "https://files.pythonhosted.org/packages/a7/aa/3996e2196075689afb9fce0410ebdb4a09099d7964d061d7213700204409/scikit_learn-1.7.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8d91a97fa2b706943822398ab943cde71858a50245e31bc71dba62aab1d60a96", size = 9259818, upload-time = "2025-09-09T08:20:43.19Z" }, + { url = "https://files.pythonhosted.org/packages/43/5d/779320063e88af9c4a7c2cf463ff11c21ac9c8bd730c4a294b0000b666c9/scikit_learn-1.7.2-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:acbc0f5fd2edd3432a22c69bed78e837c70cf896cd7993d71d51ba6708507476", size = 8636997, upload-time = "2025-09-09T08:20:45.468Z" }, + { url = "https://files.pythonhosted.org/packages/5c/d0/0c577d9325b05594fdd33aa970bf53fb673f051a45496842caee13cfd7fe/scikit_learn-1.7.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e5bf3d930aee75a65478df91ac1225ff89cd28e9ac7bd1196853a9229b6adb0b", size = 9478381, upload-time = "2025-09-09T08:20:47.982Z" }, + { url = "https://files.pythonhosted.org/packages/82/70/8bf44b933837ba8494ca0fc9a9ab60f1c13b062ad0197f60a56e2fc4c43e/scikit_learn-1.7.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4d6e9deed1a47aca9fe2f267ab8e8fe82ee20b4526b2c0cd9e135cea10feb44", size = 9300296, upload-time = "2025-09-09T08:20:50.366Z" }, + { url = "https://files.pythonhosted.org/packages/c6/99/ed35197a158f1fdc2fe7c3680e9c70d0128f662e1fee4ed495f4b5e13db0/scikit_learn-1.7.2-cp312-cp312-win_amd64.whl", hash = "sha256:6088aa475f0785e01bcf8529f55280a3d7d298679f50c0bb70a2364a82d0b290", size = 8731256, upload-time = "2025-09-09T08:20:52.627Z" }, + { url = "https://files.pythonhosted.org/packages/ae/93/a3038cb0293037fd335f77f31fe053b89c72f17b1c8908c576c29d953e84/scikit_learn-1.7.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0b7dacaa05e5d76759fb071558a8b5130f4845166d88654a0f9bdf3eb57851b7", size = 9212382, upload-time = "2025-09-09T08:20:54.731Z" }, + { url = "https://files.pythonhosted.org/packages/40/dd/9a88879b0c1104259136146e4742026b52df8540c39fec21a6383f8292c7/scikit_learn-1.7.2-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:abebbd61ad9e1deed54cca45caea8ad5f79e1b93173dece40bb8e0c658dbe6fe", size = 8592042, upload-time = "2025-09-09T08:20:57.313Z" }, + { url = "https://files.pythonhosted.org/packages/46/af/c5e286471b7d10871b811b72ae794ac5fe2989c0a2df07f0ec723030f5f5/scikit_learn-1.7.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:502c18e39849c0ea1a5d681af1dbcf15f6cce601aebb657aabbfe84133c1907f", size = 9434180, upload-time = "2025-09-09T08:20:59.671Z" }, + { url = "https://files.pythonhosted.org/packages/f1/fd/df59faa53312d585023b2da27e866524ffb8faf87a68516c23896c718320/scikit_learn-1.7.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a4c328a71785382fe3fe676a9ecf2c86189249beff90bf85e22bdb7efaf9ae0", size = 9283660, upload-time = "2025-09-09T08:21:01.71Z" }, + { url = "https://files.pythonhosted.org/packages/a7/c7/03000262759d7b6f38c836ff9d512f438a70d8a8ddae68ee80de72dcfb63/scikit_learn-1.7.2-cp313-cp313-win_amd64.whl", hash = "sha256:63a9afd6f7b229aad94618c01c252ce9e6fa97918c5ca19c9a17a087d819440c", size = 8702057, upload-time = "2025-09-09T08:21:04.234Z" }, + { url = "https://files.pythonhosted.org/packages/55/87/ef5eb1f267084532c8e4aef98a28b6ffe7425acbfd64b5e2f2e066bc29b3/scikit_learn-1.7.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9acb6c5e867447b4e1390930e3944a005e2cb115922e693c08a323421a6966e8", size = 9558731, upload-time = "2025-09-09T08:21:06.381Z" }, + { url = "https://files.pythonhosted.org/packages/93/f8/6c1e3fc14b10118068d7938878a9f3f4e6d7b74a8ddb1e5bed65159ccda8/scikit_learn-1.7.2-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:2a41e2a0ef45063e654152ec9d8bcfc39f7afce35b08902bfe290c2498a67a6a", size = 9038852, upload-time = "2025-09-09T08:21:08.628Z" }, + { url = "https://files.pythonhosted.org/packages/83/87/066cafc896ee540c34becf95d30375fe5cbe93c3b75a0ee9aa852cd60021/scikit_learn-1.7.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:98335fb98509b73385b3ab2bd0639b1f610541d3988ee675c670371d6a87aa7c", size = 9527094, upload-time = "2025-09-09T08:21:11.486Z" }, + { url = "https://files.pythonhosted.org/packages/9c/2b/4903e1ccafa1f6453b1ab78413938c8800633988c838aa0be386cbb33072/scikit_learn-1.7.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:191e5550980d45449126e23ed1d5e9e24b2c68329ee1f691a3987476e115e09c", size = 9367436, upload-time = "2025-09-09T08:21:13.602Z" }, + { url = "https://files.pythonhosted.org/packages/b5/aa/8444be3cfb10451617ff9d177b3c190288f4563e6c50ff02728be67ad094/scikit_learn-1.7.2-cp313-cp313t-win_amd64.whl", hash = "sha256:57dc4deb1d3762c75d685507fbd0bc17160144b2f2ba4ccea5dc285ab0d0e973", size = 9275749, upload-time = "2025-09-09T08:21:15.96Z" }, ] [[package]] @@ -3991,32 +4041,32 @@ dependencies = [ { name = "scipy", version = "1.17.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "threadpoolctl", marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload_time = "2025-12-10T07:08:53.618Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/c9/92/53ea2181da8ac6bf27170191028aee7251f8f841f8d3edbfdcaf2008fde9/scikit_learn-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:146b4d36f800c013d267b29168813f7a03a43ecd2895d04861f1240b564421da", size = 8595835, upload_time = "2025-12-10T07:07:39.385Z" }, - { url = "https://files.pythonhosted.org/packages/01/18/d154dc1638803adf987910cdd07097d9c526663a55666a97c124d09fb96a/scikit_learn-1.8.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f984ca4b14914e6b4094c5d52a32ea16b49832c03bd17a110f004db3c223e8e1", size = 8080381, upload_time = "2025-12-10T07:07:41.93Z" }, - { url = "https://files.pythonhosted.org/packages/8a/44/226142fcb7b7101e64fdee5f49dbe6288d4c7af8abf593237b70fca080a4/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e30adb87f0cc81c7690a84f7932dd66be5bac57cfe16b91cb9151683a4a2d3b", size = 8799632, upload_time = "2025-12-10T07:07:43.899Z" }, - { url = "https://files.pythonhosted.org/packages/36/4d/4a67f30778a45d542bbea5db2dbfa1e9e100bf9ba64aefe34215ba9f11f6/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ada8121bcb4dac28d930febc791a69f7cb1673c8495e5eee274190b73a4559c1", size = 9103788, upload_time = "2025-12-10T07:07:45.982Z" }, - { url = "https://files.pythonhosted.org/packages/89/3c/45c352094cfa60050bcbb967b1faf246b22e93cb459f2f907b600f2ceda5/scikit_learn-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:c57b1b610bd1f40ba43970e11ce62821c2e6569e4d74023db19c6b26f246cb3b", size = 8081706, upload_time = "2025-12-10T07:07:48.111Z" }, - { url = "https://files.pythonhosted.org/packages/3d/46/5416595bb395757f754feb20c3d776553a386b661658fb21b7c814e89efe/scikit_learn-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:2838551e011a64e3053ad7618dda9310175f7515f1742fa2d756f7c874c05961", size = 7688451, upload_time = "2025-12-10T07:07:49.873Z" }, - { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload_time = "2025-12-10T07:07:51.568Z" }, - { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload_time = "2025-12-10T07:07:53.697Z" }, - { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload_time = "2025-12-10T07:07:55.574Z" }, - { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload_time = "2025-12-10T07:07:57.666Z" }, - { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload_time = "2025-12-10T07:07:59.838Z" }, - { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload_time = "2025-12-10T07:08:01.36Z" }, - { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload_time = "2025-12-10T07:08:03.251Z" }, - { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload_time = "2025-12-10T07:08:05.336Z" }, - { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload_time = "2025-12-10T07:08:07.732Z" }, - { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload_time = "2025-12-10T07:08:09.862Z" }, - { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload_time = "2025-12-10T07:08:12.028Z" }, - { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload_time = "2025-12-10T07:08:13.688Z" }, - { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload_time = "2025-12-10T07:08:15.215Z" }, - { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload_time = "2025-12-10T07:08:17.561Z" }, - { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload_time = "2025-12-10T07:08:19.952Z" }, - { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload_time = "2025-12-10T07:08:22.11Z" }, - { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload_time = "2025-12-10T07:08:23.943Z" }, - { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload_time = "2025-12-10T07:08:25.71Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/92/53ea2181da8ac6bf27170191028aee7251f8f841f8d3edbfdcaf2008fde9/scikit_learn-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:146b4d36f800c013d267b29168813f7a03a43ecd2895d04861f1240b564421da", size = 8595835, upload-time = "2025-12-10T07:07:39.385Z" }, + { url = "https://files.pythonhosted.org/packages/01/18/d154dc1638803adf987910cdd07097d9c526663a55666a97c124d09fb96a/scikit_learn-1.8.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f984ca4b14914e6b4094c5d52a32ea16b49832c03bd17a110f004db3c223e8e1", size = 8080381, upload-time = "2025-12-10T07:07:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/44/226142fcb7b7101e64fdee5f49dbe6288d4c7af8abf593237b70fca080a4/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e30adb87f0cc81c7690a84f7932dd66be5bac57cfe16b91cb9151683a4a2d3b", size = 8799632, upload-time = "2025-12-10T07:07:43.899Z" }, + { url = "https://files.pythonhosted.org/packages/36/4d/4a67f30778a45d542bbea5db2dbfa1e9e100bf9ba64aefe34215ba9f11f6/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ada8121bcb4dac28d930febc791a69f7cb1673c8495e5eee274190b73a4559c1", size = 9103788, upload-time = "2025-12-10T07:07:45.982Z" }, + { url = "https://files.pythonhosted.org/packages/89/3c/45c352094cfa60050bcbb967b1faf246b22e93cb459f2f907b600f2ceda5/scikit_learn-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:c57b1b610bd1f40ba43970e11ce62821c2e6569e4d74023db19c6b26f246cb3b", size = 8081706, upload-time = "2025-12-10T07:07:48.111Z" }, + { url = "https://files.pythonhosted.org/packages/3d/46/5416595bb395757f754feb20c3d776553a386b661658fb21b7c814e89efe/scikit_learn-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:2838551e011a64e3053ad7618dda9310175f7515f1742fa2d756f7c874c05961", size = 7688451, upload-time = "2025-12-10T07:07:49.873Z" }, + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, ] [[package]] @@ -4030,53 +4080,53 @@ resolution-markers = [ dependencies = [ { name = "numpy", version = "2.2.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload_time = "2025-05-08T16:13:05.955Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload_time = "2025-05-08T16:04:20.849Z" }, - { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload_time = "2025-05-08T16:04:27.103Z" }, - { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload_time = "2025-05-08T16:04:31.731Z" }, - { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload_time = "2025-05-08T16:04:36.596Z" }, - { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload_time = "2025-05-08T16:04:43.546Z" }, - { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload_time = "2025-05-08T16:04:49.431Z" }, - { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload_time = "2025-05-08T16:04:55.215Z" }, - { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload_time = "2025-05-08T16:05:01.914Z" }, - { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload_time = "2025-05-08T16:05:08.166Z" }, - { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload_time = "2025-05-08T16:05:14.596Z" }, - { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload_time = "2025-05-08T16:05:20.152Z" }, - { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload_time = "2025-05-08T16:05:24.494Z" }, - { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload_time = "2025-05-08T16:05:29.313Z" }, - { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload_time = "2025-05-08T16:05:34.699Z" }, - { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload_time = "2025-05-08T16:05:40.762Z" }, - { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload_time = "2025-05-08T16:05:48.119Z" }, - { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload_time = "2025-05-08T16:05:54.22Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload_time = "2025-05-08T16:06:00.437Z" }, - { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload_time = "2025-05-08T16:06:06.471Z" }, - { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload_time = "2025-05-08T16:06:11.686Z" }, - { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload_time = "2025-05-08T16:06:15.97Z" }, - { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload_time = "2025-05-08T16:06:20.394Z" }, - { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload_time = "2025-05-08T16:06:26.159Z" }, - { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload_time = "2025-05-08T16:06:32.778Z" }, - { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload_time = "2025-05-08T16:06:39.249Z" }, - { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload_time = "2025-05-08T16:06:45.729Z" }, - { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload_time = "2025-05-08T16:06:52.623Z" }, - { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload_time = "2025-05-08T16:06:58.696Z" }, - { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload_time = "2025-05-08T16:07:04.209Z" }, - { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload_time = "2025-05-08T16:07:08.998Z" }, - { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload_time = "2025-05-08T16:07:14.091Z" }, - { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload_time = "2025-05-08T16:07:19.427Z" }, - { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload_time = "2025-05-08T16:07:25.712Z" }, - { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload_time = "2025-05-08T16:07:31.468Z" }, - { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload_time = "2025-05-08T16:07:38.002Z" }, - { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload_time = "2025-05-08T16:08:33.671Z" }, - { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload_time = "2025-05-08T16:07:44.039Z" }, - { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload_time = "2025-05-08T16:07:49.891Z" }, - { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload_time = "2025-05-08T16:07:54.121Z" }, - { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload_time = "2025-05-08T16:07:58.506Z" }, - { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload_time = "2025-05-08T16:08:03.929Z" }, - { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload_time = "2025-05-08T16:08:09.558Z" }, - { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload_time = "2025-05-08T16:08:15.34Z" }, - { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload_time = "2025-05-08T16:08:21.513Z" }, - { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload_time = "2025-05-08T16:08:27.627Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/0f/37/6964b830433e654ec7485e45a00fc9a27cf868d622838f6b6d9c5ec0d532/scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf", size = 59419214, upload-time = "2025-05-08T16:13:05.955Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/2f/4966032c5f8cc7e6a60f1b2e0ad686293b9474b65246b0c642e3ef3badd0/scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c", size = 38702770, upload-time = "2025-05-08T16:04:20.849Z" }, + { url = "https://files.pythonhosted.org/packages/a0/6e/0c3bf90fae0e910c274db43304ebe25a6b391327f3f10b5dcc638c090795/scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253", size = 30094511, upload-time = "2025-05-08T16:04:27.103Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b1/4deb37252311c1acff7f101f6453f0440794f51b6eacb1aad4459a134081/scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f", size = 22368151, upload-time = "2025-05-08T16:04:31.731Z" }, + { url = "https://files.pythonhosted.org/packages/38/7d/f457626e3cd3c29b3a49ca115a304cebb8cc6f31b04678f03b216899d3c6/scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92", size = 25121732, upload-time = "2025-05-08T16:04:36.596Z" }, + { url = "https://files.pythonhosted.org/packages/db/0a/92b1de4a7adc7a15dcf5bddc6e191f6f29ee663b30511ce20467ef9b82e4/scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82", size = 35547617, upload-time = "2025-05-08T16:04:43.546Z" }, + { url = "https://files.pythonhosted.org/packages/8e/6d/41991e503e51fc1134502694c5fa7a1671501a17ffa12716a4a9151af3df/scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40", size = 37662964, upload-time = "2025-05-08T16:04:49.431Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/3df8f83cb15f3500478c889be8fb18700813b95e9e087328230b98d547ff/scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e", size = 37238749, upload-time = "2025-05-08T16:04:55.215Z" }, + { url = "https://files.pythonhosted.org/packages/93/3e/b3257cf446f2a3533ed7809757039016b74cd6f38271de91682aa844cfc5/scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c", size = 40022383, upload-time = "2025-05-08T16:05:01.914Z" }, + { url = "https://files.pythonhosted.org/packages/d1/84/55bc4881973d3f79b479a5a2e2df61c8c9a04fcb986a213ac9c02cfb659b/scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13", size = 41259201, upload-time = "2025-05-08T16:05:08.166Z" }, + { url = "https://files.pythonhosted.org/packages/96/ab/5cc9f80f28f6a7dff646c5756e559823614a42b1939d86dd0ed550470210/scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b", size = 38714255, upload-time = "2025-05-08T16:05:14.596Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/66ba30abe5ad1a3ad15bfb0b59d22174012e8056ff448cb1644deccbfed2/scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba", size = 30111035, upload-time = "2025-05-08T16:05:20.152Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/a7e5b95afd80d24313307f03624acc65801846fa75599034f8ceb9e2cbf6/scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65", size = 22384499, upload-time = "2025-05-08T16:05:24.494Z" }, + { url = "https://files.pythonhosted.org/packages/17/99/f3aaddccf3588bb4aea70ba35328c204cadd89517a1612ecfda5b2dd9d7a/scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1", size = 25152602, upload-time = "2025-05-08T16:05:29.313Z" }, + { url = "https://files.pythonhosted.org/packages/56/c5/1032cdb565f146109212153339f9cb8b993701e9fe56b1c97699eee12586/scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889", size = 35503415, upload-time = "2025-05-08T16:05:34.699Z" }, + { url = "https://files.pythonhosted.org/packages/bd/37/89f19c8c05505d0601ed5650156e50eb881ae3918786c8fd7262b4ee66d3/scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982", size = 37652622, upload-time = "2025-05-08T16:05:40.762Z" }, + { url = "https://files.pythonhosted.org/packages/7e/31/be59513aa9695519b18e1851bb9e487de66f2d31f835201f1b42f5d4d475/scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9", size = 37244796, upload-time = "2025-05-08T16:05:48.119Z" }, + { url = "https://files.pythonhosted.org/packages/10/c0/4f5f3eeccc235632aab79b27a74a9130c6c35df358129f7ac8b29f562ac7/scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594", size = 40047684, upload-time = "2025-05-08T16:05:54.22Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a7/0ddaf514ce8a8714f6ed243a2b391b41dbb65251affe21ee3077ec45ea9a/scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb", size = 41246504, upload-time = "2025-05-08T16:06:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/683aa044c4162e10ed7a7ea30527f2cbd92e6999c10a8ed8edb253836e9c/scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019", size = 38766735, upload-time = "2025-05-08T16:06:06.471Z" }, + { url = "https://files.pythonhosted.org/packages/7b/7e/f30be3d03de07f25dc0ec926d1681fed5c732d759ac8f51079708c79e680/scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6", size = 30173284, upload-time = "2025-05-08T16:06:11.686Z" }, + { url = "https://files.pythonhosted.org/packages/07/9c/0ddb0d0abdabe0d181c1793db51f02cd59e4901da6f9f7848e1f96759f0d/scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477", size = 22446958, upload-time = "2025-05-08T16:06:15.97Z" }, + { url = "https://files.pythonhosted.org/packages/af/43/0bce905a965f36c58ff80d8bea33f1f9351b05fad4beaad4eae34699b7a1/scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c", size = 25242454, upload-time = "2025-05-08T16:06:20.394Z" }, + { url = "https://files.pythonhosted.org/packages/56/30/a6f08f84ee5b7b28b4c597aca4cbe545535c39fe911845a96414700b64ba/scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45", size = 35210199, upload-time = "2025-05-08T16:06:26.159Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49", size = 37309455, upload-time = "2025-05-08T16:06:32.778Z" }, + { url = "https://files.pythonhosted.org/packages/89/b1/fbb53137f42c4bf630b1ffdfc2151a62d1d1b903b249f030d2b1c0280af8/scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e", size = 36885140, upload-time = "2025-05-08T16:06:39.249Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2e/025e39e339f5090df1ff266d021892694dbb7e63568edcfe43f892fa381d/scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539", size = 39710549, upload-time = "2025-05-08T16:06:45.729Z" }, + { url = "https://files.pythonhosted.org/packages/e6/eb/3bf6ea8ab7f1503dca3a10df2e4b9c3f6b3316df07f6c0ded94b281c7101/scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed", size = 40966184, upload-time = "2025-05-08T16:06:52.623Z" }, + { url = "https://files.pythonhosted.org/packages/73/18/ec27848c9baae6e0d6573eda6e01a602e5649ee72c27c3a8aad673ebecfd/scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759", size = 38728256, upload-time = "2025-05-08T16:06:58.696Z" }, + { url = "https://files.pythonhosted.org/packages/74/cd/1aef2184948728b4b6e21267d53b3339762c285a46a274ebb7863c9e4742/scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62", size = 30109540, upload-time = "2025-05-08T16:07:04.209Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d8/59e452c0a255ec352bd0a833537a3bc1bfb679944c4938ab375b0a6b3a3e/scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb", size = 22383115, upload-time = "2025-05-08T16:07:08.998Z" }, + { url = "https://files.pythonhosted.org/packages/08/f5/456f56bbbfccf696263b47095291040655e3cbaf05d063bdc7c7517f32ac/scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730", size = 25163884, upload-time = "2025-05-08T16:07:14.091Z" }, + { url = "https://files.pythonhosted.org/packages/a2/66/a9618b6a435a0f0c0b8a6d0a2efb32d4ec5a85f023c2b79d39512040355b/scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825", size = 35174018, upload-time = "2025-05-08T16:07:19.427Z" }, + { url = "https://files.pythonhosted.org/packages/b5/09/c5b6734a50ad4882432b6bb7c02baf757f5b2f256041da5df242e2d7e6b6/scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7", size = 37269716, upload-time = "2025-05-08T16:07:25.712Z" }, + { url = "https://files.pythonhosted.org/packages/77/0a/eac00ff741f23bcabd352731ed9b8995a0a60ef57f5fd788d611d43d69a1/scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11", size = 36872342, upload-time = "2025-05-08T16:07:31.468Z" }, + { url = "https://files.pythonhosted.org/packages/fe/54/4379be86dd74b6ad81551689107360d9a3e18f24d20767a2d5b9253a3f0a/scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126", size = 39670869, upload-time = "2025-05-08T16:07:38.002Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/892ad2862ba54f084ffe8cc4a22667eaf9c2bcec6d2bff1d15713c6c0703/scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163", size = 40988851, upload-time = "2025-05-08T16:08:33.671Z" }, + { url = "https://files.pythonhosted.org/packages/1b/e9/7a879c137f7e55b30d75d90ce3eb468197646bc7b443ac036ae3fe109055/scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8", size = 38863011, upload-time = "2025-05-08T16:07:44.039Z" }, + { url = "https://files.pythonhosted.org/packages/51/d1/226a806bbd69f62ce5ef5f3ffadc35286e9fbc802f606a07eb83bf2359de/scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5", size = 30266407, upload-time = "2025-05-08T16:07:49.891Z" }, + { url = "https://files.pythonhosted.org/packages/e5/9b/f32d1d6093ab9eeabbd839b0f7619c62e46cc4b7b6dbf05b6e615bbd4400/scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e", size = 22540030, upload-time = "2025-05-08T16:07:54.121Z" }, + { url = "https://files.pythonhosted.org/packages/e7/29/c278f699b095c1a884f29fda126340fcc201461ee8bfea5c8bdb1c7c958b/scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb", size = 25218709, upload-time = "2025-05-08T16:07:58.506Z" }, + { url = "https://files.pythonhosted.org/packages/24/18/9e5374b617aba742a990581373cd6b68a2945d65cc588482749ef2e64467/scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723", size = 34809045, upload-time = "2025-05-08T16:08:03.929Z" }, + { url = "https://files.pythonhosted.org/packages/e1/fe/9c4361e7ba2927074360856db6135ef4904d505e9b3afbbcb073c4008328/scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb", size = 36703062, upload-time = "2025-05-08T16:08:09.558Z" }, + { url = "https://files.pythonhosted.org/packages/b7/8e/038ccfe29d272b30086b25a4960f757f97122cb2ec42e62b460d02fe98e9/scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4", size = 36393132, upload-time = "2025-05-08T16:08:15.34Z" }, + { url = "https://files.pythonhosted.org/packages/10/7e/5c12285452970be5bdbe8352c619250b97ebf7917d7a9a9e96b8a8140f17/scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5", size = 38979503, upload-time = "2025-05-08T16:08:21.513Z" }, + { url = "https://files.pythonhosted.org/packages/81/06/0a5e5349474e1cbc5757975b21bd4fad0e72ebf138c5592f191646154e06/scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca", size = 40308097, upload-time = "2025-05-08T16:08:27.627Z" }, ] [[package]] @@ -4096,57 +4146,57 @@ resolution-markers = [ dependencies = [ { name = "numpy", version = "2.4.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload_time = "2026-01-10T21:34:23.009Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/4b/c89c131aa87cad2b77a54eb0fb94d633a842420fa7e919dc2f922037c3d8/scipy-1.17.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd", size = 31381316, upload_time = "2026-01-10T21:24:33.42Z" }, - { url = "https://files.pythonhosted.org/packages/5e/5f/a6b38f79a07d74989224d5f11b55267714707582908a5f1ae854cf9a9b84/scipy-1.17.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558", size = 27966760, upload_time = "2026-01-10T21:24:38.911Z" }, - { url = "https://files.pythonhosted.org/packages/c1/20/095ad24e031ee8ed3c5975954d816b8e7e2abd731e04f8be573de8740885/scipy-1.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7", size = 20138701, upload_time = "2026-01-10T21:24:43.249Z" }, - { url = "https://files.pythonhosted.org/packages/89/11/4aad2b3858d0337756f3323f8960755704e530b27eb2a94386c970c32cbe/scipy-1.17.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6", size = 22480574, upload_time = "2026-01-10T21:24:47.266Z" }, - { url = "https://files.pythonhosted.org/packages/85/bd/f5af70c28c6da2227e510875cadf64879855193a687fb19951f0f44cfd6b/scipy-1.17.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042", size = 32862414, upload_time = "2026-01-10T21:24:52.566Z" }, - { url = "https://files.pythonhosted.org/packages/ef/df/df1457c4df3826e908879fe3d76bc5b6e60aae45f4ee42539512438cfd5d/scipy-1.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4", size = 35112380, upload_time = "2026-01-10T21:24:58.433Z" }, - { url = "https://files.pythonhosted.org/packages/5f/bb/88e2c16bd1dd4de19d80d7c5e238387182993c2fb13b4b8111e3927ad422/scipy-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0", size = 34922676, upload_time = "2026-01-10T21:25:04.287Z" }, - { url = "https://files.pythonhosted.org/packages/02/ba/5120242cc735f71fc002cff0303d536af4405eb265f7c60742851e7ccfe9/scipy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449", size = 37507599, upload_time = "2026-01-10T21:25:09.851Z" }, - { url = "https://files.pythonhosted.org/packages/52/c8/08629657ac6c0da198487ce8cd3de78e02cfde42b7f34117d56a3fe249dc/scipy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea", size = 36380284, upload_time = "2026-01-10T21:25:15.632Z" }, - { url = "https://files.pythonhosted.org/packages/6c/4a/465f96d42c6f33ad324a40049dfd63269891db9324aa66c4a1c108c6f994/scipy-1.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379", size = 24370427, upload_time = "2026-01-10T21:25:20.514Z" }, - { url = "https://files.pythonhosted.org/packages/0b/11/7241a63e73ba5a516f1930ac8d5b44cbbfabd35ac73a2d08ca206df007c4/scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57", size = 31364580, upload_time = "2026-01-10T21:25:25.717Z" }, - { url = "https://files.pythonhosted.org/packages/ed/1d/5057f812d4f6adc91a20a2d6f2ebcdb517fdbc87ae3acc5633c9b97c8ba5/scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e", size = 27969012, upload_time = "2026-01-10T21:25:30.921Z" }, - { url = "https://files.pythonhosted.org/packages/e3/21/f6ec556c1e3b6ec4e088da667d9987bb77cc3ab3026511f427dc8451187d/scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8", size = 20140691, upload_time = "2026-01-10T21:25:34.802Z" }, - { url = "https://files.pythonhosted.org/packages/7a/fe/5e5ad04784964ba964a96f16c8d4676aa1b51357199014dce58ab7ec5670/scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306", size = 22463015, upload_time = "2026-01-10T21:25:39.277Z" }, - { url = "https://files.pythonhosted.org/packages/4a/69/7c347e857224fcaf32a34a05183b9d8a7aca25f8f2d10b8a698b8388561a/scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742", size = 32724197, upload_time = "2026-01-10T21:25:44.084Z" }, - { url = "https://files.pythonhosted.org/packages/d1/fe/66d73b76d378ba8cc2fe605920c0c75092e3a65ae746e1e767d9d020a75a/scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b", size = 35009148, upload_time = "2026-01-10T21:25:50.591Z" }, - { url = "https://files.pythonhosted.org/packages/af/07/07dec27d9dc41c18d8c43c69e9e413431d20c53a0339c388bcf72f353c4b/scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d", size = 34798766, upload_time = "2026-01-10T21:25:59.41Z" }, - { url = "https://files.pythonhosted.org/packages/81/61/0470810c8a093cdacd4ba7504b8a218fd49ca070d79eca23a615f5d9a0b0/scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e", size = 37405953, upload_time = "2026-01-10T21:26:07.75Z" }, - { url = "https://files.pythonhosted.org/packages/92/ce/672ed546f96d5d41ae78c4b9b02006cedd0b3d6f2bf5bb76ea455c320c28/scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8", size = 36328121, upload_time = "2026-01-10T21:26:16.509Z" }, - { url = "https://files.pythonhosted.org/packages/9d/21/38165845392cae67b61843a52c6455d47d0cc2a40dd495c89f4362944654/scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b", size = 24314368, upload_time = "2026-01-10T21:26:23.087Z" }, - { url = "https://files.pythonhosted.org/packages/0c/51/3468fdfd49387ddefee1636f5cf6d03ce603b75205bf439bbf0e62069bfd/scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6", size = 31344101, upload_time = "2026-01-10T21:26:30.25Z" }, - { url = "https://files.pythonhosted.org/packages/b2/9a/9406aec58268d437636069419e6977af953d1e246df941d42d3720b7277b/scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269", size = 27950385, upload_time = "2026-01-10T21:26:36.801Z" }, - { url = "https://files.pythonhosted.org/packages/4f/98/e7342709e17afdfd1b26b56ae499ef4939b45a23a00e471dfb5375eea205/scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72", size = 20122115, upload_time = "2026-01-10T21:26:42.107Z" }, - { url = "https://files.pythonhosted.org/packages/fd/0e/9eeeb5357a64fd157cbe0302c213517c541cc16b8486d82de251f3c68ede/scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61", size = 22442402, upload_time = "2026-01-10T21:26:48.029Z" }, - { url = "https://files.pythonhosted.org/packages/c9/10/be13397a0e434f98e0c79552b2b584ae5bb1c8b2be95db421533bbca5369/scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6", size = 32696338, upload_time = "2026-01-10T21:26:55.521Z" }, - { url = "https://files.pythonhosted.org/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752", size = 34977201, upload_time = "2026-01-10T21:27:03.501Z" }, - { url = "https://files.pythonhosted.org/packages/19/5b/1a63923e23ccd20bd32156d7dd708af5bbde410daa993aa2500c847ab2d2/scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d", size = 34777384, upload_time = "2026-01-10T21:27:11.423Z" }, - { url = "https://files.pythonhosted.org/packages/39/22/b5da95d74edcf81e540e467202a988c50fef41bd2011f46e05f72ba07df6/scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea", size = 37379586, upload_time = "2026-01-10T21:27:20.171Z" }, - { url = "https://files.pythonhosted.org/packages/b9/b6/8ac583d6da79e7b9e520579f03007cb006f063642afd6b2eeb16b890bf93/scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812", size = 36287211, upload_time = "2026-01-10T21:28:43.122Z" }, - { url = "https://files.pythonhosted.org/packages/55/fb/7db19e0b3e52f882b420417644ec81dd57eeef1bd1705b6f689d8ff93541/scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2", size = 24312646, upload_time = "2026-01-10T21:28:49.893Z" }, - { url = "https://files.pythonhosted.org/packages/20/b6/7feaa252c21cc7aff335c6c55e1b90ab3e3306da3f048109b8b639b94648/scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3", size = 31693194, upload_time = "2026-01-10T21:27:27.454Z" }, - { url = "https://files.pythonhosted.org/packages/76/bb/bbb392005abce039fb7e672cb78ac7d158700e826b0515cab6b5b60c26fb/scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97", size = 28365415, upload_time = "2026-01-10T21:27:34.26Z" }, - { url = "https://files.pythonhosted.org/packages/37/da/9d33196ecc99fba16a409c691ed464a3a283ac454a34a13a3a57c0d66f3a/scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e", size = 20537232, upload_time = "2026-01-10T21:27:40.306Z" }, - { url = "https://files.pythonhosted.org/packages/56/9d/f4b184f6ddb28e9a5caea36a6f98e8ecd2a524f9127354087ce780885d83/scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07", size = 22791051, upload_time = "2026-01-10T21:27:46.539Z" }, - { url = "https://files.pythonhosted.org/packages/9b/9d/025cccdd738a72140efc582b1641d0dd4caf2e86c3fb127568dc80444e6e/scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00", size = 32815098, upload_time = "2026-01-10T21:27:54.389Z" }, - { url = "https://files.pythonhosted.org/packages/48/5f/09b879619f8bca15ce392bfc1894bd9c54377e01d1b3f2f3b595a1b4d945/scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45", size = 35031342, upload_time = "2026-01-10T21:28:03.012Z" }, - { url = "https://files.pythonhosted.org/packages/f2/9a/f0f0a9f0aa079d2f106555b984ff0fbb11a837df280f04f71f056ea9c6e4/scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209", size = 34893199, upload_time = "2026-01-10T21:28:10.832Z" }, - { url = "https://files.pythonhosted.org/packages/90/b8/4f0f5cf0c5ea4d7548424e6533e6b17d164f34a6e2fb2e43ffebb6697b06/scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04", size = 37438061, upload_time = "2026-01-10T21:28:19.684Z" }, - { url = "https://files.pythonhosted.org/packages/f9/cc/2bd59140ed3b2fa2882fb15da0a9cb1b5a6443d67cfd0d98d4cec83a57ec/scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0", size = 36328593, upload_time = "2026-01-10T21:28:28.007Z" }, - { url = "https://files.pythonhosted.org/packages/13/1b/c87cc44a0d2c7aaf0f003aef2904c3d097b422a96c7e7c07f5efd9073c1b/scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67", size = 24625083, upload_time = "2026-01-10T21:28:35.188Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/4b/c89c131aa87cad2b77a54eb0fb94d633a842420fa7e919dc2f922037c3d8/scipy-1.17.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd", size = 31381316, upload-time = "2026-01-10T21:24:33.42Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5f/a6b38f79a07d74989224d5f11b55267714707582908a5f1ae854cf9a9b84/scipy-1.17.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558", size = 27966760, upload-time = "2026-01-10T21:24:38.911Z" }, + { url = "https://files.pythonhosted.org/packages/c1/20/095ad24e031ee8ed3c5975954d816b8e7e2abd731e04f8be573de8740885/scipy-1.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7", size = 20138701, upload-time = "2026-01-10T21:24:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/89/11/4aad2b3858d0337756f3323f8960755704e530b27eb2a94386c970c32cbe/scipy-1.17.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6", size = 22480574, upload-time = "2026-01-10T21:24:47.266Z" }, + { url = "https://files.pythonhosted.org/packages/85/bd/f5af70c28c6da2227e510875cadf64879855193a687fb19951f0f44cfd6b/scipy-1.17.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042", size = 32862414, upload-time = "2026-01-10T21:24:52.566Z" }, + { url = "https://files.pythonhosted.org/packages/ef/df/df1457c4df3826e908879fe3d76bc5b6e60aae45f4ee42539512438cfd5d/scipy-1.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4", size = 35112380, upload-time = "2026-01-10T21:24:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/5f/bb/88e2c16bd1dd4de19d80d7c5e238387182993c2fb13b4b8111e3927ad422/scipy-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0", size = 34922676, upload-time = "2026-01-10T21:25:04.287Z" }, + { url = "https://files.pythonhosted.org/packages/02/ba/5120242cc735f71fc002cff0303d536af4405eb265f7c60742851e7ccfe9/scipy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449", size = 37507599, upload-time = "2026-01-10T21:25:09.851Z" }, + { url = "https://files.pythonhosted.org/packages/52/c8/08629657ac6c0da198487ce8cd3de78e02cfde42b7f34117d56a3fe249dc/scipy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea", size = 36380284, upload-time = "2026-01-10T21:25:15.632Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4a/465f96d42c6f33ad324a40049dfd63269891db9324aa66c4a1c108c6f994/scipy-1.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379", size = 24370427, upload-time = "2026-01-10T21:25:20.514Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/7241a63e73ba5a516f1930ac8d5b44cbbfabd35ac73a2d08ca206df007c4/scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57", size = 31364580, upload-time = "2026-01-10T21:25:25.717Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1d/5057f812d4f6adc91a20a2d6f2ebcdb517fdbc87ae3acc5633c9b97c8ba5/scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e", size = 27969012, upload-time = "2026-01-10T21:25:30.921Z" }, + { url = "https://files.pythonhosted.org/packages/e3/21/f6ec556c1e3b6ec4e088da667d9987bb77cc3ab3026511f427dc8451187d/scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8", size = 20140691, upload-time = "2026-01-10T21:25:34.802Z" }, + { url = "https://files.pythonhosted.org/packages/7a/fe/5e5ad04784964ba964a96f16c8d4676aa1b51357199014dce58ab7ec5670/scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306", size = 22463015, upload-time = "2026-01-10T21:25:39.277Z" }, + { url = "https://files.pythonhosted.org/packages/4a/69/7c347e857224fcaf32a34a05183b9d8a7aca25f8f2d10b8a698b8388561a/scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742", size = 32724197, upload-time = "2026-01-10T21:25:44.084Z" }, + { url = "https://files.pythonhosted.org/packages/d1/fe/66d73b76d378ba8cc2fe605920c0c75092e3a65ae746e1e767d9d020a75a/scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b", size = 35009148, upload-time = "2026-01-10T21:25:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/07dec27d9dc41c18d8c43c69e9e413431d20c53a0339c388bcf72f353c4b/scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d", size = 34798766, upload-time = "2026-01-10T21:25:59.41Z" }, + { url = "https://files.pythonhosted.org/packages/81/61/0470810c8a093cdacd4ba7504b8a218fd49ca070d79eca23a615f5d9a0b0/scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e", size = 37405953, upload-time = "2026-01-10T21:26:07.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/ce/672ed546f96d5d41ae78c4b9b02006cedd0b3d6f2bf5bb76ea455c320c28/scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8", size = 36328121, upload-time = "2026-01-10T21:26:16.509Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/38165845392cae67b61843a52c6455d47d0cc2a40dd495c89f4362944654/scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b", size = 24314368, upload-time = "2026-01-10T21:26:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/0c/51/3468fdfd49387ddefee1636f5cf6d03ce603b75205bf439bbf0e62069bfd/scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6", size = 31344101, upload-time = "2026-01-10T21:26:30.25Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9a/9406aec58268d437636069419e6977af953d1e246df941d42d3720b7277b/scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269", size = 27950385, upload-time = "2026-01-10T21:26:36.801Z" }, + { url = "https://files.pythonhosted.org/packages/4f/98/e7342709e17afdfd1b26b56ae499ef4939b45a23a00e471dfb5375eea205/scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72", size = 20122115, upload-time = "2026-01-10T21:26:42.107Z" }, + { url = "https://files.pythonhosted.org/packages/fd/0e/9eeeb5357a64fd157cbe0302c213517c541cc16b8486d82de251f3c68ede/scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61", size = 22442402, upload-time = "2026-01-10T21:26:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c9/10/be13397a0e434f98e0c79552b2b584ae5bb1c8b2be95db421533bbca5369/scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6", size = 32696338, upload-time = "2026-01-10T21:26:55.521Z" }, + { url = "https://files.pythonhosted.org/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752", size = 34977201, upload-time = "2026-01-10T21:27:03.501Z" }, + { url = "https://files.pythonhosted.org/packages/19/5b/1a63923e23ccd20bd32156d7dd708af5bbde410daa993aa2500c847ab2d2/scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d", size = 34777384, upload-time = "2026-01-10T21:27:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/39/22/b5da95d74edcf81e540e467202a988c50fef41bd2011f46e05f72ba07df6/scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea", size = 37379586, upload-time = "2026-01-10T21:27:20.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b6/8ac583d6da79e7b9e520579f03007cb006f063642afd6b2eeb16b890bf93/scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812", size = 36287211, upload-time = "2026-01-10T21:28:43.122Z" }, + { url = "https://files.pythonhosted.org/packages/55/fb/7db19e0b3e52f882b420417644ec81dd57eeef1bd1705b6f689d8ff93541/scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2", size = 24312646, upload-time = "2026-01-10T21:28:49.893Z" }, + { url = "https://files.pythonhosted.org/packages/20/b6/7feaa252c21cc7aff335c6c55e1b90ab3e3306da3f048109b8b639b94648/scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3", size = 31693194, upload-time = "2026-01-10T21:27:27.454Z" }, + { url = "https://files.pythonhosted.org/packages/76/bb/bbb392005abce039fb7e672cb78ac7d158700e826b0515cab6b5b60c26fb/scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97", size = 28365415, upload-time = "2026-01-10T21:27:34.26Z" }, + { url = "https://files.pythonhosted.org/packages/37/da/9d33196ecc99fba16a409c691ed464a3a283ac454a34a13a3a57c0d66f3a/scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e", size = 20537232, upload-time = "2026-01-10T21:27:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/56/9d/f4b184f6ddb28e9a5caea36a6f98e8ecd2a524f9127354087ce780885d83/scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07", size = 22791051, upload-time = "2026-01-10T21:27:46.539Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9d/025cccdd738a72140efc582b1641d0dd4caf2e86c3fb127568dc80444e6e/scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00", size = 32815098, upload-time = "2026-01-10T21:27:54.389Z" }, + { url = "https://files.pythonhosted.org/packages/48/5f/09b879619f8bca15ce392bfc1894bd9c54377e01d1b3f2f3b595a1b4d945/scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45", size = 35031342, upload-time = "2026-01-10T21:28:03.012Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9a/f0f0a9f0aa079d2f106555b984ff0fbb11a837df280f04f71f056ea9c6e4/scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209", size = 34893199, upload-time = "2026-01-10T21:28:10.832Z" }, + { url = "https://files.pythonhosted.org/packages/90/b8/4f0f5cf0c5ea4d7548424e6533e6b17d164f34a6e2fb2e43ffebb6697b06/scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04", size = 37438061, upload-time = "2026-01-10T21:28:19.684Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cc/2bd59140ed3b2fa2882fb15da0a9cb1b5a6443d67cfd0d98d4cec83a57ec/scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0", size = 36328593, upload-time = "2026-01-10T21:28:28.007Z" }, + { url = "https://files.pythonhosted.org/packages/13/1b/c87cc44a0d2c7aaf0f003aef2904c3d097b422a96c7e7c07f5efd9073c1b/scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67", size = 24625083, upload-time = "2026-01-10T21:28:35.188Z" }, ] [[package]] name = "semver" version = "3.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/d1/d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132/semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602", size = 269730, upload_time = "2025-01-24T13:19:27.617Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/d1/d3159231aec234a59dd7d601e9dd9fe96f3afff15efd33c1070019b26132/semver-3.0.4.tar.gz", hash = "sha256:afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602", size = 269730, upload-time = "2025-01-24T13:19:27.617Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a6/24/4d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543/semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746", size = 17912, upload_time = "2025-01-24T13:19:24.949Z" }, + { url = "https://files.pythonhosted.org/packages/a6/24/4d91e05817e92e3a61c8a21e08fd0f390f5301f1c448b137c57c4bc6e543/semver-3.0.4-py3-none-any.whl", hash = "sha256:9c824d87ba7f7ab4a1890799cec8596f15c1241cb473404ea1cb0c55e4b04746", size = 17912, upload-time = "2025-01-24T13:19:24.949Z" }, ] [[package]] @@ -4157,9 +4207,9 @@ dependencies = [ { name = "certifi" }, { name = "urllib3" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c8/28/02c0cd9184f9108e3c52519f9628b215077a3854240e0b17ae845e664855/sentry_sdk-1.45.1.tar.gz", hash = "sha256:a16c997c0f4e3df63c0fc5e4207ccb1ab37900433e0f72fef88315d317829a26", size = 244774, upload_time = "2024-07-26T13:48:32.375Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/28/02c0cd9184f9108e3c52519f9628b215077a3854240e0b17ae845e664855/sentry_sdk-1.45.1.tar.gz", hash = "sha256:a16c997c0f4e3df63c0fc5e4207ccb1ab37900433e0f72fef88315d317829a26", size = 244774, upload-time = "2024-07-26T13:48:32.375Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fe/9f/105366a122efa93f0cb1914f841747d160788e4d022d0488d2d44c2ba26c/sentry_sdk-1.45.1-py2.py3-none-any.whl", hash = "sha256:608887855ccfe39032bfd03936e3a1c4f4fc99b3a4ac49ced54a4220de61c9c1", size = 267163, upload_time = "2024-07-26T13:48:29.38Z" }, + { url = "https://files.pythonhosted.org/packages/fe/9f/105366a122efa93f0cb1914f841747d160788e4d022d0488d2d44c2ba26c/sentry_sdk-1.45.1-py2.py3-none-any.whl", hash = "sha256:608887855ccfe39032bfd03936e3a1c4f4fc99b3a4ac49ced54a4220de61c9c1", size = 267163, upload-time = "2024-07-26T13:48:29.38Z" }, ] [package.optional-dependencies] @@ -4171,27 +4221,27 @@ fastapi = [ name = "setuptools" version = "81.0.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload_time = "2026-02-06T21:10:39.601Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0d/1c/73e719955c59b8e424d015ab450f51c0af856ae46ea2da83eba51cc88de1/setuptools-81.0.0.tar.gz", hash = "sha256:487b53915f52501f0a79ccfd0c02c165ffe06631443a886740b91af4b7a5845a", size = 1198299, upload-time = "2026-02-06T21:10:39.601Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload_time = "2026-02-06T21:10:37.175Z" }, + { url = "https://files.pythonhosted.org/packages/e1/e3/c164c88b2e5ce7b24d667b9bd83589cf4f3520d97cad01534cd3c4f55fdb/setuptools-81.0.0-py3-none-any.whl", hash = "sha256:fdd925d5c5d9f62e4b74b30d6dd7828ce236fd6ed998a08d81de62ce5a6310d6", size = 1062021, upload-time = "2026-02-06T21:10:37.175Z" }, ] [[package]] name = "shellingham" version = "1.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload_time = "2023-10-24T04:13:40.426Z" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload_time = "2023-10-24T04:13:38.866Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] [[package]] name = "six" version = "1.17.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload_time = "2024-12-04T17:35:28.174Z" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload_time = "2024-12-04T17:35:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] [[package]] @@ -4201,18 +4251,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/67/9a/0a7acb748b86e2922982366d780ca4b16c33f7246fa5860d26005c97e4f3/smart_open-7.5.0.tar.gz", hash = "sha256:f394b143851d8091011832ac8113ea4aba6b92e6c35f6e677ddaaccb169d7cb9", size = 53920, upload_time = "2025-11-08T21:38:40.698Z" } +sdist = { url = "https://files.pythonhosted.org/packages/67/9a/0a7acb748b86e2922982366d780ca4b16c33f7246fa5860d26005c97e4f3/smart_open-7.5.0.tar.gz", hash = "sha256:f394b143851d8091011832ac8113ea4aba6b92e6c35f6e677ddaaccb169d7cb9", size = 53920, upload-time = "2025-11-08T21:38:40.698Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/95/bc978be7ea0babf2fb48a414b6afaad414c6a9e8b1eafc5b8a53c030381a/smart_open-7.5.0-py3-none-any.whl", hash = "sha256:87e695c5148bbb988f15cec00971602765874163be85acb1c9fb8abc012e6599", size = 63940, upload_time = "2025-11-08T21:38:39.024Z" }, + { url = "https://files.pythonhosted.org/packages/ad/95/bc978be7ea0babf2fb48a414b6afaad414c6a9e8b1eafc5b8a53c030381a/smart_open-7.5.0-py3-none-any.whl", hash = "sha256:87e695c5148bbb988f15cec00971602765874163be85acb1c9fb8abc012e6599", size = 63940, upload-time = "2025-11-08T21:38:39.024Z" }, ] [[package]] name = "sniffio" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload_time = "2024-02-25T23:20:04.057Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload_time = "2024-02-25T23:20:01.196Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, ] [[package]] @@ -4240,57 +4290,57 @@ dependencies = [ { name = "wasabi" }, { name = "weasel" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/59/9f/424244b0e2656afc9ff82fb7a96931a47397bfce5ba382213827b198312a/spacy-3.8.11.tar.gz", hash = "sha256:54e1e87b74a2f9ea807ffd606166bf29ac45e2bd81ff7f608eadc7b05787d90d", size = 1326804, upload_time = "2025-11-17T20:40:03.079Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/99/63/f23db7119e0bb7740d74eff4583543824be84e7c0aad1c87683b8f40a17e/spacy-3.8.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9cc7f775cfc41ccb8be63bd6258a1ec4613d4ad3859f2ba2c079f34240b21f6", size = 6499016, upload_time = "2025-11-17T20:38:22.359Z" }, - { url = "https://files.pythonhosted.org/packages/5d/e4/e8c0f0561e8b29b4f38ba3d491fca427faa750765df3e27850036af28762/spacy-3.8.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be9d665be8581926fba4303543ba189d34e8517803052551b000cf1a1af33b87", size = 6159121, upload_time = "2025-11-17T20:38:24.85Z" }, - { url = "https://files.pythonhosted.org/packages/15/7a/7ce7320f2a384023240fad0e6b7ffb2e3717ae4cc09ec0770706fd20c419/spacy-3.8.11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:06e46ad776a1b20cc6296fe04890dea8a7b4e4653d7e8c143dd4a707f7ae2670", size = 30763429, upload_time = "2025-11-17T20:38:27.001Z" }, - { url = "https://files.pythonhosted.org/packages/db/36/b16df8f5ba8d5fc3d2b23f004eb55f3edf4f3345e743efdd560b6b20faf8/spacy-3.8.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e1b91199926eb9de507f7bfc63090b17ee9a12663bcfc76357560c2c7ef4750a", size = 31002535, upload_time = "2025-11-17T20:38:30.115Z" }, - { url = "https://files.pythonhosted.org/packages/6e/be/58183313f1401fff896d3dd8f8da977847fb1c205a2c2a8a7030e81da265/spacy-3.8.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1d4c506adcbefd19ead59daca2e0e61ce669ff35372cc9c23aae1b292c57f94", size = 31033341, upload_time = "2025-11-17T20:38:33.06Z" }, - { url = "https://files.pythonhosted.org/packages/94/08/d490ed3a4ea070734c58cf1f2e3e6081a20630067bca2c58d5dbcfb36558/spacy-3.8.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d885a2bf427c854c5a5f1dda7451924a1f2c036aefaa2946c741201ff05a915a", size = 31882346, upload_time = "2025-11-17T20:38:35.596Z" }, - { url = "https://files.pythonhosted.org/packages/79/38/e64856b3f768754def0f5dc4c5fb3f692d96a193eec7e2eee03d37c233b6/spacy-3.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:909d12ff2365c2e7ebf0258ddc566d2b361ef1fd2e7684ce1af5f7022111e366", size = 15346864, upload_time = "2025-11-17T20:38:37.95Z" }, - { url = "https://files.pythonhosted.org/packages/74/d3/0c795e6f31ee3535b6e70d08e89fc22247b95b61f94fc8334a01d39bf871/spacy-3.8.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a12d83e8bfba07563300ae5e0086548e41aa4bfe3734c97dda87e0eec813df0d", size = 6487958, upload_time = "2025-11-17T20:38:40.378Z" }, - { url = "https://files.pythonhosted.org/packages/4e/2a/83ca9b4d0a2b31adcf0ced49fa667212d12958f75d4e238618a60eb50b10/spacy-3.8.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e07a50b69500ef376326545353a470f00d1ed7203c76341b97242af976e3681a", size = 6148078, upload_time = "2025-11-17T20:38:42.524Z" }, - { url = "https://files.pythonhosted.org/packages/2c/f0/ff520df18a6152ba2dbf808c964014308e71a48feb4c7563f2a6cd6e668d/spacy-3.8.11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:718b7bb5e83c76cb841ed6e407f7b40255d0b46af7101a426c20e04af3afd64e", size = 32056451, upload_time = "2025-11-17T20:38:44.92Z" }, - { url = "https://files.pythonhosted.org/packages/9d/3a/6c44c0b9b6a70595888b8d021514ded065548a5b10718ac253bd39f9fd73/spacy-3.8.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f860f9d51c1aeb2d61852442b232576e4ca4d239cb3d1b40ac452118b8eb2c68", size = 32302908, upload_time = "2025-11-17T20:38:47.672Z" }, - { url = "https://files.pythonhosted.org/packages/db/77/00e99e00efd4c2456772befc48400c2e19255140660d663e16b6924a0f2e/spacy-3.8.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ff8d928ce70d751b7bb27f60ee5e3a308216efd4ab4517291e6ff05d9b194840", size = 32280936, upload_time = "2025-11-17T20:38:50.893Z" }, - { url = "https://files.pythonhosted.org/packages/d8/da/692b51e9e5be2766d2d1fb9a7c8122cfd99c337570e621f09c40ce94ad17/spacy-3.8.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3f3cb91d7d42fafd92b8d5bf9f696571170d2f0747f85724a2c5b997753e33c9", size = 33117270, upload_time = "2025-11-17T20:38:53.596Z" }, - { url = "https://files.pythonhosted.org/packages/9b/13/a542ac9b61d071f3328fda1fd8087b523fb7a4f2c340010bc70b1f762485/spacy-3.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:745c190923584935272188c604e0cc170f4179aace1025814a25d92ee90cf3de", size = 15348350, upload_time = "2025-11-17T20:38:56.833Z" }, - { url = "https://files.pythonhosted.org/packages/23/53/975c16514322f6385d6caa5929771613d69f5458fb24f03e189ba533f279/spacy-3.8.11-cp311-cp311-win_arm64.whl", hash = "sha256:27535d81d9dee0483b66660cadd93d14c1668f55e4faf4386aca4a11a41a8b97", size = 14701913, upload_time = "2025-11-17T20:38:59.507Z" }, - { url = "https://files.pythonhosted.org/packages/51/fb/01eadf4ba70606b3054702dc41fc2ccf7d70fb14514b3cd57f0ff78ebea8/spacy-3.8.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aa1ee8362074c30098feaaf2dd888c829a1a79c4311eec1b117a0a61f16fa6dd", size = 6073726, upload_time = "2025-11-17T20:39:01.679Z" }, - { url = "https://files.pythonhosted.org/packages/3a/f8/07b03a2997fc2621aaeafae00af50f55522304a7da6926b07027bb6d0709/spacy-3.8.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:75a036d04c2cf11d6cb566c0a689860cc5a7a75b439e8fea1b3a6b673dabf25d", size = 5724702, upload_time = "2025-11-17T20:39:03.486Z" }, - { url = "https://files.pythonhosted.org/packages/13/0c/c4fa0f379dbe3258c305d2e2df3760604a9fcd71b34f8f65c23e43f4cf55/spacy-3.8.11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cb599d2747d4a59a5f90e8a453c149b13db382a8297925cf126333141dbc4f7", size = 32727774, upload_time = "2025-11-17T20:39:05.894Z" }, - { url = "https://files.pythonhosted.org/packages/ce/8e/6a4ba82bed480211ebdf5341b0f89e7271b454307525ac91b5e447825914/spacy-3.8.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:94632e302ad2fb79dc285bf1e9e4d4a178904d5c67049e0e02b7fb4a77af85c4", size = 33215053, upload_time = "2025-11-17T20:39:08.588Z" }, - { url = "https://files.pythonhosted.org/packages/a6/bc/44d863d248e9d7358c76a0aa8b3f196b8698df520650ed8de162e18fbffb/spacy-3.8.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aeca6cf34009d48cda9fb1bbfb532469e3d643817241a73e367b34ab99a5806f", size = 32074195, upload_time = "2025-11-17T20:39:11.601Z" }, - { url = "https://files.pythonhosted.org/packages/6f/7d/0b115f3f16e1dd2d3f99b0f89497867fc11c41aed94f4b7a4367b4b54136/spacy-3.8.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:368a79b8df925b15d89dccb5e502039446fb2ce93cf3020e092d5b962c3349b9", size = 32996143, upload_time = "2025-11-17T20:39:14.705Z" }, - { url = "https://files.pythonhosted.org/packages/7d/48/7e9581b476df76aaf9ee182888d15322e77c38b0bbbd5e80160ba0bddd4c/spacy-3.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:88d65941a87f58d75afca1785bd64d01183a92f7269dcbcf28bd9d6f6a77d1a7", size = 14217511, upload_time = "2025-11-17T20:39:17.316Z" }, - { url = "https://files.pythonhosted.org/packages/7b/1f/307a16f32f90aa5ee7ad8d29ff8620a57132b80a4c8c536963d46d192e1a/spacy-3.8.11-cp312-cp312-win_arm64.whl", hash = "sha256:97b865d6d3658e2ab103a67d6c8a2d678e193e84a07f40d9938565b669ceee39", size = 13614446, upload_time = "2025-11-17T20:39:19.748Z" }, - { url = "https://files.pythonhosted.org/packages/ed/5c/3f07cff8bc478fcf48a915ca9fe8637486a1ec676587ed3e6fd775423301/spacy-3.8.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea4adeb399636059925be085c5bb852c1f3a2ebe1c2060332cbad6257d223bbc", size = 6051355, upload_time = "2025-11-17T20:39:22.243Z" }, - { url = "https://files.pythonhosted.org/packages/6d/44/4671e8098b62befec69c7848538a0824086559f74065284bbd57a5747781/spacy-3.8.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dd785e6bd85a58fa037da0c18fcd7250e2daecdfc30464d3882912529d1ad588", size = 5700468, upload_time = "2025-11-17T20:39:23.87Z" }, - { url = "https://files.pythonhosted.org/packages/0c/98/5708bdfb39f94af0655568e14d953886117e18bd04c3aa3ab5ff1a60ea89/spacy-3.8.11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:598c177054eb6196deed03cac6fb7a3229f4789719ad0c9f7483f9491e375749", size = 32521877, upload_time = "2025-11-17T20:39:26.291Z" }, - { url = "https://files.pythonhosted.org/packages/c6/1f/731beb48f2c7415a71e2f655876fea8a0b3a6798be3d4d51b794f939623d/spacy-3.8.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a5a449ed3f2d03399481870b776f3ec61f2b831812d63dc1acedf6da70e5ab03", size = 32848355, upload_time = "2025-11-17T20:39:28.971Z" }, - { url = "https://files.pythonhosted.org/packages/47/6b/f3d131d3f9bb1c7de4f355a12adcd0a5fa77f9f624711ddd0f19c517e88b/spacy-3.8.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a6c35c2cb93bade9b7360d1f9db608a066246a41301bb579309efb50764ba55b", size = 31764944, upload_time = "2025-11-17T20:39:31.788Z" }, - { url = "https://files.pythonhosted.org/packages/72/bf/37ea8134667a4f2787b5f0e0146f2e8df1fb36ab67d598ad06eb5ed2e7db/spacy-3.8.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0156ae575b20290021573faa1fed8a82b11314e9a1c28f034713359a5240a325", size = 32718517, upload_time = "2025-11-17T20:39:35.286Z" }, - { url = "https://files.pythonhosted.org/packages/79/fe/436435dfa93cc355ed511f21cf3cda5302b7aa29716457317eb07f1cf2da/spacy-3.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:6f39cf36f86bd6a8882076f86ca80f246c73aa41d7ebc8679fbbe41b6f8ec045", size = 14211913, upload_time = "2025-11-17T20:39:37.906Z" }, - { url = "https://files.pythonhosted.org/packages/c8/23/f89cfa51f54aa5e9c6c7a37f8bf4952d678f0902a5e1d81dfda33a94bfb2/spacy-3.8.11-cp313-cp313-win_arm64.whl", hash = "sha256:9a7151eee0814a5ced36642b42b1ecc8f98ac7225f3e378fb9f862ffbe84b8bf", size = 13605169, upload_time = "2025-11-17T20:39:40.455Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/59/9f/424244b0e2656afc9ff82fb7a96931a47397bfce5ba382213827b198312a/spacy-3.8.11.tar.gz", hash = "sha256:54e1e87b74a2f9ea807ffd606166bf29ac45e2bd81ff7f608eadc7b05787d90d", size = 1326804, upload-time = "2025-11-17T20:40:03.079Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/63/f23db7119e0bb7740d74eff4583543824be84e7c0aad1c87683b8f40a17e/spacy-3.8.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9cc7f775cfc41ccb8be63bd6258a1ec4613d4ad3859f2ba2c079f34240b21f6", size = 6499016, upload-time = "2025-11-17T20:38:22.359Z" }, + { url = "https://files.pythonhosted.org/packages/5d/e4/e8c0f0561e8b29b4f38ba3d491fca427faa750765df3e27850036af28762/spacy-3.8.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:be9d665be8581926fba4303543ba189d34e8517803052551b000cf1a1af33b87", size = 6159121, upload-time = "2025-11-17T20:38:24.85Z" }, + { url = "https://files.pythonhosted.org/packages/15/7a/7ce7320f2a384023240fad0e6b7ffb2e3717ae4cc09ec0770706fd20c419/spacy-3.8.11-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:06e46ad776a1b20cc6296fe04890dea8a7b4e4653d7e8c143dd4a707f7ae2670", size = 30763429, upload-time = "2025-11-17T20:38:27.001Z" }, + { url = "https://files.pythonhosted.org/packages/db/36/b16df8f5ba8d5fc3d2b23f004eb55f3edf4f3345e743efdd560b6b20faf8/spacy-3.8.11-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e1b91199926eb9de507f7bfc63090b17ee9a12663bcfc76357560c2c7ef4750a", size = 31002535, upload-time = "2025-11-17T20:38:30.115Z" }, + { url = "https://files.pythonhosted.org/packages/6e/be/58183313f1401fff896d3dd8f8da977847fb1c205a2c2a8a7030e81da265/spacy-3.8.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1d4c506adcbefd19ead59daca2e0e61ce669ff35372cc9c23aae1b292c57f94", size = 31033341, upload-time = "2025-11-17T20:38:33.06Z" }, + { url = "https://files.pythonhosted.org/packages/94/08/d490ed3a4ea070734c58cf1f2e3e6081a20630067bca2c58d5dbcfb36558/spacy-3.8.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:d885a2bf427c854c5a5f1dda7451924a1f2c036aefaa2946c741201ff05a915a", size = 31882346, upload-time = "2025-11-17T20:38:35.596Z" }, + { url = "https://files.pythonhosted.org/packages/79/38/e64856b3f768754def0f5dc4c5fb3f692d96a193eec7e2eee03d37c233b6/spacy-3.8.11-cp310-cp310-win_amd64.whl", hash = "sha256:909d12ff2365c2e7ebf0258ddc566d2b361ef1fd2e7684ce1af5f7022111e366", size = 15346864, upload-time = "2025-11-17T20:38:37.95Z" }, + { url = "https://files.pythonhosted.org/packages/74/d3/0c795e6f31ee3535b6e70d08e89fc22247b95b61f94fc8334a01d39bf871/spacy-3.8.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a12d83e8bfba07563300ae5e0086548e41aa4bfe3734c97dda87e0eec813df0d", size = 6487958, upload-time = "2025-11-17T20:38:40.378Z" }, + { url = "https://files.pythonhosted.org/packages/4e/2a/83ca9b4d0a2b31adcf0ced49fa667212d12958f75d4e238618a60eb50b10/spacy-3.8.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e07a50b69500ef376326545353a470f00d1ed7203c76341b97242af976e3681a", size = 6148078, upload-time = "2025-11-17T20:38:42.524Z" }, + { url = "https://files.pythonhosted.org/packages/2c/f0/ff520df18a6152ba2dbf808c964014308e71a48feb4c7563f2a6cd6e668d/spacy-3.8.11-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:718b7bb5e83c76cb841ed6e407f7b40255d0b46af7101a426c20e04af3afd64e", size = 32056451, upload-time = "2025-11-17T20:38:44.92Z" }, + { url = "https://files.pythonhosted.org/packages/9d/3a/6c44c0b9b6a70595888b8d021514ded065548a5b10718ac253bd39f9fd73/spacy-3.8.11-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f860f9d51c1aeb2d61852442b232576e4ca4d239cb3d1b40ac452118b8eb2c68", size = 32302908, upload-time = "2025-11-17T20:38:47.672Z" }, + { url = "https://files.pythonhosted.org/packages/db/77/00e99e00efd4c2456772befc48400c2e19255140660d663e16b6924a0f2e/spacy-3.8.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ff8d928ce70d751b7bb27f60ee5e3a308216efd4ab4517291e6ff05d9b194840", size = 32280936, upload-time = "2025-11-17T20:38:50.893Z" }, + { url = "https://files.pythonhosted.org/packages/d8/da/692b51e9e5be2766d2d1fb9a7c8122cfd99c337570e621f09c40ce94ad17/spacy-3.8.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3f3cb91d7d42fafd92b8d5bf9f696571170d2f0747f85724a2c5b997753e33c9", size = 33117270, upload-time = "2025-11-17T20:38:53.596Z" }, + { url = "https://files.pythonhosted.org/packages/9b/13/a542ac9b61d071f3328fda1fd8087b523fb7a4f2c340010bc70b1f762485/spacy-3.8.11-cp311-cp311-win_amd64.whl", hash = "sha256:745c190923584935272188c604e0cc170f4179aace1025814a25d92ee90cf3de", size = 15348350, upload-time = "2025-11-17T20:38:56.833Z" }, + { url = "https://files.pythonhosted.org/packages/23/53/975c16514322f6385d6caa5929771613d69f5458fb24f03e189ba533f279/spacy-3.8.11-cp311-cp311-win_arm64.whl", hash = "sha256:27535d81d9dee0483b66660cadd93d14c1668f55e4faf4386aca4a11a41a8b97", size = 14701913, upload-time = "2025-11-17T20:38:59.507Z" }, + { url = "https://files.pythonhosted.org/packages/51/fb/01eadf4ba70606b3054702dc41fc2ccf7d70fb14514b3cd57f0ff78ebea8/spacy-3.8.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:aa1ee8362074c30098feaaf2dd888c829a1a79c4311eec1b117a0a61f16fa6dd", size = 6073726, upload-time = "2025-11-17T20:39:01.679Z" }, + { url = "https://files.pythonhosted.org/packages/3a/f8/07b03a2997fc2621aaeafae00af50f55522304a7da6926b07027bb6d0709/spacy-3.8.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:75a036d04c2cf11d6cb566c0a689860cc5a7a75b439e8fea1b3a6b673dabf25d", size = 5724702, upload-time = "2025-11-17T20:39:03.486Z" }, + { url = "https://files.pythonhosted.org/packages/13/0c/c4fa0f379dbe3258c305d2e2df3760604a9fcd71b34f8f65c23e43f4cf55/spacy-3.8.11-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cb599d2747d4a59a5f90e8a453c149b13db382a8297925cf126333141dbc4f7", size = 32727774, upload-time = "2025-11-17T20:39:05.894Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8e/6a4ba82bed480211ebdf5341b0f89e7271b454307525ac91b5e447825914/spacy-3.8.11-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:94632e302ad2fb79dc285bf1e9e4d4a178904d5c67049e0e02b7fb4a77af85c4", size = 33215053, upload-time = "2025-11-17T20:39:08.588Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bc/44d863d248e9d7358c76a0aa8b3f196b8698df520650ed8de162e18fbffb/spacy-3.8.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:aeca6cf34009d48cda9fb1bbfb532469e3d643817241a73e367b34ab99a5806f", size = 32074195, upload-time = "2025-11-17T20:39:11.601Z" }, + { url = "https://files.pythonhosted.org/packages/6f/7d/0b115f3f16e1dd2d3f99b0f89497867fc11c41aed94f4b7a4367b4b54136/spacy-3.8.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:368a79b8df925b15d89dccb5e502039446fb2ce93cf3020e092d5b962c3349b9", size = 32996143, upload-time = "2025-11-17T20:39:14.705Z" }, + { url = "https://files.pythonhosted.org/packages/7d/48/7e9581b476df76aaf9ee182888d15322e77c38b0bbbd5e80160ba0bddd4c/spacy-3.8.11-cp312-cp312-win_amd64.whl", hash = "sha256:88d65941a87f58d75afca1785bd64d01183a92f7269dcbcf28bd9d6f6a77d1a7", size = 14217511, upload-time = "2025-11-17T20:39:17.316Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1f/307a16f32f90aa5ee7ad8d29ff8620a57132b80a4c8c536963d46d192e1a/spacy-3.8.11-cp312-cp312-win_arm64.whl", hash = "sha256:97b865d6d3658e2ab103a67d6c8a2d678e193e84a07f40d9938565b669ceee39", size = 13614446, upload-time = "2025-11-17T20:39:19.748Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5c/3f07cff8bc478fcf48a915ca9fe8637486a1ec676587ed3e6fd775423301/spacy-3.8.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ea4adeb399636059925be085c5bb852c1f3a2ebe1c2060332cbad6257d223bbc", size = 6051355, upload-time = "2025-11-17T20:39:22.243Z" }, + { url = "https://files.pythonhosted.org/packages/6d/44/4671e8098b62befec69c7848538a0824086559f74065284bbd57a5747781/spacy-3.8.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dd785e6bd85a58fa037da0c18fcd7250e2daecdfc30464d3882912529d1ad588", size = 5700468, upload-time = "2025-11-17T20:39:23.87Z" }, + { url = "https://files.pythonhosted.org/packages/0c/98/5708bdfb39f94af0655568e14d953886117e18bd04c3aa3ab5ff1a60ea89/spacy-3.8.11-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:598c177054eb6196deed03cac6fb7a3229f4789719ad0c9f7483f9491e375749", size = 32521877, upload-time = "2025-11-17T20:39:26.291Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1f/731beb48f2c7415a71e2f655876fea8a0b3a6798be3d4d51b794f939623d/spacy-3.8.11-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a5a449ed3f2d03399481870b776f3ec61f2b831812d63dc1acedf6da70e5ab03", size = 32848355, upload-time = "2025-11-17T20:39:28.971Z" }, + { url = "https://files.pythonhosted.org/packages/47/6b/f3d131d3f9bb1c7de4f355a12adcd0a5fa77f9f624711ddd0f19c517e88b/spacy-3.8.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a6c35c2cb93bade9b7360d1f9db608a066246a41301bb579309efb50764ba55b", size = 31764944, upload-time = "2025-11-17T20:39:31.788Z" }, + { url = "https://files.pythonhosted.org/packages/72/bf/37ea8134667a4f2787b5f0e0146f2e8df1fb36ab67d598ad06eb5ed2e7db/spacy-3.8.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0156ae575b20290021573faa1fed8a82b11314e9a1c28f034713359a5240a325", size = 32718517, upload-time = "2025-11-17T20:39:35.286Z" }, + { url = "https://files.pythonhosted.org/packages/79/fe/436435dfa93cc355ed511f21cf3cda5302b7aa29716457317eb07f1cf2da/spacy-3.8.11-cp313-cp313-win_amd64.whl", hash = "sha256:6f39cf36f86bd6a8882076f86ca80f246c73aa41d7ebc8679fbbe41b6f8ec045", size = 14211913, upload-time = "2025-11-17T20:39:37.906Z" }, + { url = "https://files.pythonhosted.org/packages/c8/23/f89cfa51f54aa5e9c6c7a37f8bf4952d678f0902a5e1d81dfda33a94bfb2/spacy-3.8.11-cp313-cp313-win_arm64.whl", hash = "sha256:9a7151eee0814a5ced36642b42b1ecc8f98ac7225f3e378fb9f862ffbe84b8bf", size = 13605169, upload-time = "2025-11-17T20:39:40.455Z" }, ] [[package]] name = "spacy-legacy" version = "3.0.12" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload_time = "2023-01-23T09:04:15.104Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d9/79/91f9d7cc8db5642acad830dcc4b49ba65a7790152832c4eceb305e46d681/spacy-legacy-3.0.12.tar.gz", hash = "sha256:b37d6e0c9b6e1d7ca1cf5bc7152ab64a4c4671f59c85adaf7a3fcb870357a774", size = 23806, upload-time = "2023-01-23T09:04:15.104Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload_time = "2023-01-23T09:04:13.45Z" }, + { url = "https://files.pythonhosted.org/packages/c3/55/12e842c70ff8828e34e543a2c7176dac4da006ca6901c9e8b43efab8bc6b/spacy_legacy-3.0.12-py2.py3-none-any.whl", hash = "sha256:476e3bd0d05f8c339ed60f40986c07387c0a71479245d6d0f4298dbd52cda55f", size = 29971, upload-time = "2023-01-23T09:04:13.45Z" }, ] [[package]] name = "spacy-loggers" version = "1.0.5" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload_time = "2023-09-11T12:26:52.323Z" } +sdist = { url = "https://files.pythonhosted.org/packages/67/3d/926db774c9c98acf66cb4ed7faf6c377746f3e00b84b700d0868b95d0712/spacy-loggers-1.0.5.tar.gz", hash = "sha256:d60b0bdbf915a60e516cc2e653baeff946f0cfc461b452d11a4d5458c6fe5f24", size = 20811, upload-time = "2023-09-11T12:26:52.323Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload_time = "2023-09-11T12:26:50.586Z" }, + { url = "https://files.pythonhosted.org/packages/33/78/d1a1a026ef3af911159398c939b1509d5c36fe524c7b644f34a5146c4e16/spacy_loggers-1.0.5-py3-none-any.whl", hash = "sha256:196284c9c446cc0cdb944005384270d775fdeaf4f494d8e269466cfa497ef645", size = 22343, upload-time = "2023-09-11T12:26:50.586Z" }, ] [[package]] @@ -4301,41 +4351,41 @@ dependencies = [ { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/aa/9ce0f3e7a9829ead5c8ce549392f33a12c4555a6c0609bb27d882e9c7ddf/sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7", size = 9865393, upload_time = "2026-01-21T18:03:45.119Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/40/26/66ba59328dc25e523bfcb0f8db48bdebe2035e0159d600e1f01c0fc93967/sqlalchemy-2.0.46-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:895296687ad06dc9b11a024cf68e8d9d3943aa0b4964278d2553b86f1b267735", size = 2155051, upload_time = "2026-01-21T18:27:28.965Z" }, - { url = "https://files.pythonhosted.org/packages/21/cd/9336732941df972fbbfa394db9caa8bb0cf9fe03656ec728d12e9cbd6edc/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab65cb2885a9f80f979b85aa4e9c9165a31381ca322cbde7c638fe6eefd1ec39", size = 3234666, upload_time = "2026-01-21T18:32:28.72Z" }, - { url = "https://files.pythonhosted.org/packages/38/62/865ae8b739930ec433cd4123760bee7f8dafdc10abefd725a025604fb0de/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52fe29b3817bd191cc20bad564237c808967972c97fa683c04b28ec8979ae36f", size = 3232917, upload_time = "2026-01-21T18:44:54.064Z" }, - { url = "https://files.pythonhosted.org/packages/24/38/805904b911857f2b5e00fdea44e9570df62110f834378706939825579296/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:09168817d6c19954d3b7655da6ba87fcb3a62bb575fb396a81a8b6a9fadfe8b5", size = 3185790, upload_time = "2026-01-21T18:32:30.581Z" }, - { url = "https://files.pythonhosted.org/packages/69/4f/3260bb53aabd2d274856337456ea52f6a7eccf6cce208e558f870cec766b/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:be6c0466b4c25b44c5d82b0426b5501de3c424d7a3220e86cd32f319ba56798e", size = 3207206, upload_time = "2026-01-21T18:44:55.93Z" }, - { url = "https://files.pythonhosted.org/packages/ce/b3/67c432d7f9d88bb1a61909b67e29f6354d59186c168fb5d381cf438d3b73/sqlalchemy-2.0.46-cp310-cp310-win32.whl", hash = "sha256:1bc3f601f0a818d27bfe139f6766487d9c88502062a2cd3a7ee6c342e81d5047", size = 2115296, upload_time = "2026-01-21T18:33:12.498Z" }, - { url = "https://files.pythonhosted.org/packages/4a/8c/25fb284f570f9d48e6c240f0269a50cec9cf009a7e08be4c0aaaf0654972/sqlalchemy-2.0.46-cp310-cp310-win_amd64.whl", hash = "sha256:e0c05aff5c6b1bb5fb46a87e0f9d2f733f83ef6cbbbcd5c642b6c01678268061", size = 2138540, upload_time = "2026-01-21T18:33:14.22Z" }, - { url = "https://files.pythonhosted.org/packages/69/ac/b42ad16800d0885105b59380ad69aad0cce5a65276e269ce2729a2343b6a/sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684", size = 2154851, upload_time = "2026-01-21T18:27:30.54Z" }, - { url = "https://files.pythonhosted.org/packages/a0/60/d8710068cb79f64d002ebed62a7263c00c8fd95f4ebd4b5be8f7ca93f2bc/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62", size = 3311241, upload_time = "2026-01-21T18:32:33.45Z" }, - { url = "https://files.pythonhosted.org/packages/2b/0f/20c71487c7219ab3aa7421c7c62d93824c97c1460f2e8bb72404b0192d13/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f", size = 3310741, upload_time = "2026-01-21T18:44:57.887Z" }, - { url = "https://files.pythonhosted.org/packages/65/80/d26d00b3b249ae000eee4db206fcfc564bf6ca5030e4747adf451f4b5108/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01", size = 3263116, upload_time = "2026-01-21T18:32:35.044Z" }, - { url = "https://files.pythonhosted.org/packages/da/ee/74dda7506640923821340541e8e45bd3edd8df78664f1f2e0aae8077192b/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999", size = 3285327, upload_time = "2026-01-21T18:44:59.254Z" }, - { url = "https://files.pythonhosted.org/packages/9f/25/6dcf8abafff1389a21c7185364de145107b7394ecdcb05233815b236330d/sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d", size = 2114564, upload_time = "2026-01-21T18:33:15.85Z" }, - { url = "https://files.pythonhosted.org/packages/93/5f/e081490f8523adc0088f777e4ebad3cac21e498ec8a3d4067074e21447a1/sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597", size = 2139233, upload_time = "2026-01-21T18:33:17.528Z" }, - { url = "https://files.pythonhosted.org/packages/b6/35/d16bfa235c8b7caba3730bba43e20b1e376d2224f407c178fbf59559f23e/sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c", size = 2153405, upload_time = "2026-01-21T19:05:54.143Z" }, - { url = "https://files.pythonhosted.org/packages/06/6c/3192e24486749862f495ddc6584ed730c0c994a67550ec395d872a2ad650/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9", size = 3334702, upload_time = "2026-01-21T18:46:45.384Z" }, - { url = "https://files.pythonhosted.org/packages/ea/a2/b9f33c8d68a3747d972a0bb758c6b63691f8fb8a49014bc3379ba15d4274/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b", size = 3347664, upload_time = "2026-01-21T18:40:09.979Z" }, - { url = "https://files.pythonhosted.org/packages/aa/d2/3e59e2a91eaec9db7e8dc6b37b91489b5caeb054f670f32c95bcba98940f/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53", size = 3277372, upload_time = "2026-01-21T18:46:47.168Z" }, - { url = "https://files.pythonhosted.org/packages/dd/dd/67bc2e368b524e2192c3927b423798deda72c003e73a1e94c21e74b20a85/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e", size = 3312425, upload_time = "2026-01-21T18:40:11.548Z" }, - { url = "https://files.pythonhosted.org/packages/43/82/0ecd68e172bfe62247e96cb47867c2d68752566811a4e8c9d8f6e7c38a65/sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb", size = 2113155, upload_time = "2026-01-21T18:42:49.748Z" }, - { url = "https://files.pythonhosted.org/packages/bc/2a/2821a45742073fc0331dc132552b30de68ba9563230853437cac54b2b53e/sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff", size = 2140078, upload_time = "2026-01-21T18:42:51.197Z" }, - { url = "https://files.pythonhosted.org/packages/b3/4b/fa7838fe20bb752810feed60e45625a9a8b0102c0c09971e2d1d95362992/sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00", size = 2150268, upload_time = "2026-01-21T19:05:56.621Z" }, - { url = "https://files.pythonhosted.org/packages/46/c1/b34dccd712e8ea846edf396e00973dda82d598cb93762e55e43e6835eba9/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2", size = 3276511, upload_time = "2026-01-21T18:46:49.022Z" }, - { url = "https://files.pythonhosted.org/packages/96/48/a04d9c94753e5d5d096c628c82a98c4793b9c08ca0e7155c3eb7d7db9f24/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee", size = 3292881, upload_time = "2026-01-21T18:40:13.089Z" }, - { url = "https://files.pythonhosted.org/packages/be/f4/06eda6e91476f90a7d8058f74311cb65a2fb68d988171aced81707189131/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad", size = 3224559, upload_time = "2026-01-21T18:46:50.974Z" }, - { url = "https://files.pythonhosted.org/packages/ab/a2/d2af04095412ca6345ac22b33b89fe8d6f32a481e613ffcb2377d931d8d0/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e", size = 3262728, upload_time = "2026-01-21T18:40:14.883Z" }, - { url = "https://files.pythonhosted.org/packages/31/48/1980c7caa5978a3b8225b4d230e69a2a6538a3562b8b31cea679b6933c83/sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f", size = 2111295, upload_time = "2026-01-21T18:42:52.366Z" }, - { url = "https://files.pythonhosted.org/packages/2d/54/f8d65bbde3d877617c4720f3c9f60e99bb7266df0d5d78b6e25e7c149f35/sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef", size = 2137076, upload_time = "2026-01-21T18:42:53.924Z" }, - { url = "https://files.pythonhosted.org/packages/56/ba/9be4f97c7eb2b9d5544f2624adfc2853e796ed51d2bb8aec90bc94b7137e/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10", size = 3556533, upload_time = "2026-01-21T18:33:06.636Z" }, - { url = "https://files.pythonhosted.org/packages/20/a6/b1fc6634564dbb4415b7ed6419cdfeaadefd2c39cdab1e3aa07a5f2474c2/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764", size = 3523208, upload_time = "2026-01-21T18:45:08.436Z" }, - { url = "https://files.pythonhosted.org/packages/a1/d8/41e0bdfc0f930ff236f86fccd12962d8fa03713f17ed57332d38af6a3782/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b", size = 3464292, upload_time = "2026-01-21T18:33:08.208Z" }, - { url = "https://files.pythonhosted.org/packages/f0/8b/9dcbec62d95bea85f5ecad9b8d65b78cc30fb0ffceeb3597961f3712549b/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447", size = 3473497, upload_time = "2026-01-21T18:45:10.552Z" }, - { url = "https://files.pythonhosted.org/packages/fc/a1/9c4efa03300926601c19c18582531b45aededfb961ab3c3585f1e24f120b/sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e", size = 1937882, upload_time = "2026-01-21T18:22:10.456Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/06/aa/9ce0f3e7a9829ead5c8ce549392f33a12c4555a6c0609bb27d882e9c7ddf/sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7", size = 9865393, upload-time = "2026-01-21T18:03:45.119Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/26/66ba59328dc25e523bfcb0f8db48bdebe2035e0159d600e1f01c0fc93967/sqlalchemy-2.0.46-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:895296687ad06dc9b11a024cf68e8d9d3943aa0b4964278d2553b86f1b267735", size = 2155051, upload-time = "2026-01-21T18:27:28.965Z" }, + { url = "https://files.pythonhosted.org/packages/21/cd/9336732941df972fbbfa394db9caa8bb0cf9fe03656ec728d12e9cbd6edc/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab65cb2885a9f80f979b85aa4e9c9165a31381ca322cbde7c638fe6eefd1ec39", size = 3234666, upload-time = "2026-01-21T18:32:28.72Z" }, + { url = "https://files.pythonhosted.org/packages/38/62/865ae8b739930ec433cd4123760bee7f8dafdc10abefd725a025604fb0de/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52fe29b3817bd191cc20bad564237c808967972c97fa683c04b28ec8979ae36f", size = 3232917, upload-time = "2026-01-21T18:44:54.064Z" }, + { url = "https://files.pythonhosted.org/packages/24/38/805904b911857f2b5e00fdea44e9570df62110f834378706939825579296/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:09168817d6c19954d3b7655da6ba87fcb3a62bb575fb396a81a8b6a9fadfe8b5", size = 3185790, upload-time = "2026-01-21T18:32:30.581Z" }, + { url = "https://files.pythonhosted.org/packages/69/4f/3260bb53aabd2d274856337456ea52f6a7eccf6cce208e558f870cec766b/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:be6c0466b4c25b44c5d82b0426b5501de3c424d7a3220e86cd32f319ba56798e", size = 3207206, upload-time = "2026-01-21T18:44:55.93Z" }, + { url = "https://files.pythonhosted.org/packages/ce/b3/67c432d7f9d88bb1a61909b67e29f6354d59186c168fb5d381cf438d3b73/sqlalchemy-2.0.46-cp310-cp310-win32.whl", hash = "sha256:1bc3f601f0a818d27bfe139f6766487d9c88502062a2cd3a7ee6c342e81d5047", size = 2115296, upload-time = "2026-01-21T18:33:12.498Z" }, + { url = "https://files.pythonhosted.org/packages/4a/8c/25fb284f570f9d48e6c240f0269a50cec9cf009a7e08be4c0aaaf0654972/sqlalchemy-2.0.46-cp310-cp310-win_amd64.whl", hash = "sha256:e0c05aff5c6b1bb5fb46a87e0f9d2f733f83ef6cbbbcd5c642b6c01678268061", size = 2138540, upload-time = "2026-01-21T18:33:14.22Z" }, + { url = "https://files.pythonhosted.org/packages/69/ac/b42ad16800d0885105b59380ad69aad0cce5a65276e269ce2729a2343b6a/sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684", size = 2154851, upload-time = "2026-01-21T18:27:30.54Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/d8710068cb79f64d002ebed62a7263c00c8fd95f4ebd4b5be8f7ca93f2bc/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62", size = 3311241, upload-time = "2026-01-21T18:32:33.45Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/20c71487c7219ab3aa7421c7c62d93824c97c1460f2e8bb72404b0192d13/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f", size = 3310741, upload-time = "2026-01-21T18:44:57.887Z" }, + { url = "https://files.pythonhosted.org/packages/65/80/d26d00b3b249ae000eee4db206fcfc564bf6ca5030e4747adf451f4b5108/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01", size = 3263116, upload-time = "2026-01-21T18:32:35.044Z" }, + { url = "https://files.pythonhosted.org/packages/da/ee/74dda7506640923821340541e8e45bd3edd8df78664f1f2e0aae8077192b/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999", size = 3285327, upload-time = "2026-01-21T18:44:59.254Z" }, + { url = "https://files.pythonhosted.org/packages/9f/25/6dcf8abafff1389a21c7185364de145107b7394ecdcb05233815b236330d/sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d", size = 2114564, upload-time = "2026-01-21T18:33:15.85Z" }, + { url = "https://files.pythonhosted.org/packages/93/5f/e081490f8523adc0088f777e4ebad3cac21e498ec8a3d4067074e21447a1/sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597", size = 2139233, upload-time = "2026-01-21T18:33:17.528Z" }, + { url = "https://files.pythonhosted.org/packages/b6/35/d16bfa235c8b7caba3730bba43e20b1e376d2224f407c178fbf59559f23e/sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c", size = 2153405, upload-time = "2026-01-21T19:05:54.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/6c/3192e24486749862f495ddc6584ed730c0c994a67550ec395d872a2ad650/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9", size = 3334702, upload-time = "2026-01-21T18:46:45.384Z" }, + { url = "https://files.pythonhosted.org/packages/ea/a2/b9f33c8d68a3747d972a0bb758c6b63691f8fb8a49014bc3379ba15d4274/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b", size = 3347664, upload-time = "2026-01-21T18:40:09.979Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d2/3e59e2a91eaec9db7e8dc6b37b91489b5caeb054f670f32c95bcba98940f/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53", size = 3277372, upload-time = "2026-01-21T18:46:47.168Z" }, + { url = "https://files.pythonhosted.org/packages/dd/dd/67bc2e368b524e2192c3927b423798deda72c003e73a1e94c21e74b20a85/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e", size = 3312425, upload-time = "2026-01-21T18:40:11.548Z" }, + { url = "https://files.pythonhosted.org/packages/43/82/0ecd68e172bfe62247e96cb47867c2d68752566811a4e8c9d8f6e7c38a65/sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb", size = 2113155, upload-time = "2026-01-21T18:42:49.748Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2a/2821a45742073fc0331dc132552b30de68ba9563230853437cac54b2b53e/sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff", size = 2140078, upload-time = "2026-01-21T18:42:51.197Z" }, + { url = "https://files.pythonhosted.org/packages/b3/4b/fa7838fe20bb752810feed60e45625a9a8b0102c0c09971e2d1d95362992/sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00", size = 2150268, upload-time = "2026-01-21T19:05:56.621Z" }, + { url = "https://files.pythonhosted.org/packages/46/c1/b34dccd712e8ea846edf396e00973dda82d598cb93762e55e43e6835eba9/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2", size = 3276511, upload-time = "2026-01-21T18:46:49.022Z" }, + { url = "https://files.pythonhosted.org/packages/96/48/a04d9c94753e5d5d096c628c82a98c4793b9c08ca0e7155c3eb7d7db9f24/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee", size = 3292881, upload-time = "2026-01-21T18:40:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/be/f4/06eda6e91476f90a7d8058f74311cb65a2fb68d988171aced81707189131/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad", size = 3224559, upload-time = "2026-01-21T18:46:50.974Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/d2af04095412ca6345ac22b33b89fe8d6f32a481e613ffcb2377d931d8d0/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e", size = 3262728, upload-time = "2026-01-21T18:40:14.883Z" }, + { url = "https://files.pythonhosted.org/packages/31/48/1980c7caa5978a3b8225b4d230e69a2a6538a3562b8b31cea679b6933c83/sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f", size = 2111295, upload-time = "2026-01-21T18:42:52.366Z" }, + { url = "https://files.pythonhosted.org/packages/2d/54/f8d65bbde3d877617c4720f3c9f60e99bb7266df0d5d78b6e25e7c149f35/sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef", size = 2137076, upload-time = "2026-01-21T18:42:53.924Z" }, + { url = "https://files.pythonhosted.org/packages/56/ba/9be4f97c7eb2b9d5544f2624adfc2853e796ed51d2bb8aec90bc94b7137e/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10", size = 3556533, upload-time = "2026-01-21T18:33:06.636Z" }, + { url = "https://files.pythonhosted.org/packages/20/a6/b1fc6634564dbb4415b7ed6419cdfeaadefd2c39cdab1e3aa07a5f2474c2/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764", size = 3523208, upload-time = "2026-01-21T18:45:08.436Z" }, + { url = "https://files.pythonhosted.org/packages/a1/d8/41e0bdfc0f930ff236f86fccd12962d8fa03713f17ed57332d38af6a3782/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b", size = 3464292, upload-time = "2026-01-21T18:33:08.208Z" }, + { url = "https://files.pythonhosted.org/packages/f0/8b/9dcbec62d95bea85f5ecad9b8d65b78cc30fb0ffceeb3597961f3712549b/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447", size = 3473497, upload-time = "2026-01-21T18:45:10.552Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a1/9c4efa03300926601c19c18582531b45aededfb961ab3c3585f1e24f120b/sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e", size = 1937882, upload-time = "2026-01-21T18:22:10.456Z" }, ] [[package]] @@ -4346,9 +4396,9 @@ dependencies = [ { name = "pydantic" }, { name = "sqlalchemy" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/3b/6a/b1b26d589063e53a08c10a2d7bc624cba63dec045a312758d68f550a4ea1/sqlmodel-0.0.34.tar.gz", hash = "sha256:577e4aae1ba96ee5038e03d8b1404c642dad1a92e628988cdf4ce68d27abe982", size = 96236, upload_time = "2026-02-16T19:06:34.275Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/6a/b1b26d589063e53a08c10a2d7bc624cba63dec045a312758d68f550a4ea1/sqlmodel-0.0.34.tar.gz", hash = "sha256:577e4aae1ba96ee5038e03d8b1404c642dad1a92e628988cdf4ce68d27abe982", size = 96236, upload-time = "2026-02-16T19:06:34.275Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/ee/1910f4eee41af4268b0d8cd688a05fb8ea23e9e6c64b8710592df24a8c66/sqlmodel-0.0.34-py3-none-any.whl", hash = "sha256:aeabc8f0de32076a0ed9216e88568459d737fca1e7133bfc6d1c657920789a2d", size = 27445, upload_time = "2026-02-16T19:06:35.709Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ee/1910f4eee41af4268b0d8cd688a05fb8ea23e9e6c64b8710592df24a8c66/sqlmodel-0.0.34-py3-none-any.whl", hash = "sha256:aeabc8f0de32076a0ed9216e88568459d737fca1e7133bfc6d1c657920789a2d", size = 27445, upload-time = "2026-02-16T19:06:35.709Z" }, ] [[package]] @@ -4358,36 +4408,36 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "catalogue" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cf/77/5633c4ba65e3421b72b5b4bd93aa328360b351b3a1e5bf3c90eb224668e5/srsly-2.5.2.tar.gz", hash = "sha256:4092bc843c71b7595c6c90a0302a197858c5b9fe43067f62ae6a45bc3baa1c19", size = 492055, upload_time = "2025-11-17T14:11:02.543Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/93/58/ff9fd981b6e0fae261c48a3a941aeca5735eace4a137de883c8d69029bc7/srsly-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5491fe0683da900cd0c563538510c70a007380e1f6b29ebbb5225e7590981e2a", size = 655635, upload_time = "2025-11-17T14:09:41.167Z" }, - { url = "https://files.pythonhosted.org/packages/fd/a6/5b03c2a3b407caec3e7a5df61523154de3c5d36dc2f9328be91d3df368d5/srsly-2.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7375c2955935b73a6cad3851fe819c2f4ec506504afe7ca92b917555e6850fae", size = 653395, upload_time = "2025-11-17T14:09:42.827Z" }, - { url = "https://files.pythonhosted.org/packages/62/5d/1829a208d6d291c1ab3b81acd6e7a9f11984afc674ba2778e57984eee1a7/srsly-2.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0709a97ca463c1e85b03432c7d8028c82439f0248816707bafc553ffe66ec6f9", size = 1121898, upload_time = "2025-11-17T14:09:44.461Z" }, - { url = "https://files.pythonhosted.org/packages/c6/ce/71766be1488ce4058dc5eded6f5c0ce7cbb18ff7263f3cc718fe8b1033ad/srsly-2.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea2ee0122312802ed531fee6de679d74ce99ce8addce49aff8d52ee670d810f8", size = 1122831, upload_time = "2025-11-17T14:09:46.011Z" }, - { url = "https://files.pythonhosted.org/packages/ab/5c/259e5b0e70c22c5bbd1327a79bb4b2d75efb38295475229e9310251c240e/srsly-2.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2e9fc418585832c7ce01bfc7fe85b96afe11165eb9a31ff0ed52aa3e32ec08b", size = 1080719, upload_time = "2025-11-17T14:09:47.685Z" }, - { url = "https://files.pythonhosted.org/packages/32/c4/20face1113cfa436434c7c152b374edae1631177d0d44dd60103297ffe03/srsly-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3df0ef22d571e733b181ac488823b01f4dd13da23497f46956839c718e48f36b", size = 1092783, upload_time = "2025-11-17T14:09:49.295Z" }, - { url = "https://files.pythonhosted.org/packages/c1/aa/16c405cf830bf3d843a631d62681403eb44563e27a42648f417f40209045/srsly-2.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:a116b926dd24702f5474f6367d8083412f218ddf82d5c7b5831a7b2ba3d8bd55", size = 654041, upload_time = "2025-11-17T14:09:51.056Z" }, - { url = "https://files.pythonhosted.org/packages/59/6e/2e3d07b38c1c2e98487f0af92f93b392c6741062d85c65cdc18c7b77448a/srsly-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e07babdcece2405b32c9eea25ef415749f214c889545e38965622bb66837ce", size = 655286, upload_time = "2025-11-17T14:09:52.468Z" }, - { url = "https://files.pythonhosted.org/packages/a1/e7/587bcade6b72f919133e587edf60e06039d88049aef9015cd0bdea8df189/srsly-2.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1718fe40b73e5cc73b14625233f57e15fb23643d146f53193e8fe653a49e9a0f", size = 653094, upload_time = "2025-11-17T14:09:53.837Z" }, - { url = "https://files.pythonhosted.org/packages/8d/24/5c3aabe292cb4eb906c828f2866624e3a65603ef0a73e964e486ff146b84/srsly-2.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d7b07e6103db7dd3199c0321935b0c8b9297fd6e018a66de97dc836068440111", size = 1141286, upload_time = "2025-11-17T14:09:55.535Z" }, - { url = "https://files.pythonhosted.org/packages/2a/fe/2cbdcef2495e0c40dafb96da205d9ab3b9e59f64938277800bf65f923281/srsly-2.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2dedf03b2ae143dd70039f097d128fb901deba2482c3a749ac0a985ac735aad", size = 1144667, upload_time = "2025-11-17T14:09:57.24Z" }, - { url = "https://files.pythonhosted.org/packages/91/7c/9a2c9d8141daf7b7a6f092c2be403421a0ab280e7c03cc62c223f37fdf47/srsly-2.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d5be1d8b79a4c4180073461425cb49c8924a184ab49d976c9c81a7bf87731d9", size = 1103935, upload_time = "2025-11-17T14:09:58.576Z" }, - { url = "https://files.pythonhosted.org/packages/f1/ad/8ae727430368fedbb1a7fa41b62d7a86237558bc962c5c5a9aa8bfa82548/srsly-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c8e42d6bcddda2e6fc1a8438cc050c4a36d0e457a63bcc7117d23c5175dfedec", size = 1117985, upload_time = "2025-11-17T14:10:00.348Z" }, - { url = "https://files.pythonhosted.org/packages/60/69/d6afaef1a8d5192fd802752115c7c3cc104493a7d604b406112b8bc2b610/srsly-2.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:e7362981e687eead00248525c3ef3b8ddd95904c93362c481988d91b26b6aeef", size = 654148, upload_time = "2025-11-17T14:10:01.772Z" }, - { url = "https://files.pythonhosted.org/packages/8f/1c/21f658d98d602a559491b7886c7ca30245c2cd8987ff1b7709437c0f74b1/srsly-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6f92b4f883e6be4ca77f15980b45d394d310f24903e25e1b2c46df783c7edcce", size = 656161, upload_time = "2025-11-17T14:10:03.181Z" }, - { url = "https://files.pythonhosted.org/packages/2f/a2/bc6fd484ed703857043ae9abd6c9aea9152f9480a6961186ee6c1e0c49e8/srsly-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac4790a54b00203f1af5495b6b8ac214131139427f30fcf05cf971dde81930eb", size = 653237, upload_time = "2025-11-17T14:10:04.636Z" }, - { url = "https://files.pythonhosted.org/packages/ab/ea/e3895da29a15c8d325e050ad68a0d1238eece1d2648305796adf98dcba66/srsly-2.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ce5c6b016050857a7dd365c9dcdd00d96e7ac26317cfcb175db387e403de05bf", size = 1174418, upload_time = "2025-11-17T14:10:05.945Z" }, - { url = "https://files.pythonhosted.org/packages/a6/a5/21996231f53ee97191d0746c3a672ba33a4d86a19ffad85a1c0096c91c5f/srsly-2.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:539c6d0016e91277b5e9be31ebed03f03c32580d49c960e4a92c9003baecf69e", size = 1183089, upload_time = "2025-11-17T14:10:07.335Z" }, - { url = "https://files.pythonhosted.org/packages/7b/df/eb17aa8e4a828e8df7aa7dc471295529d9126e6b710f1833ebe0d8568a8e/srsly-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f24b2c4f4c29da04083f09158543eb3f8893ba0ac39818693b3b259ee8044f0", size = 1122594, upload_time = "2025-11-17T14:10:08.899Z" }, - { url = "https://files.pythonhosted.org/packages/80/74/1654a80e6c8ec3ee32370ea08a78d3651e0ba1c4d6e6be31c9efdb9a2d10/srsly-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d34675047460a3f6999e43478f40d9b43917ea1e93a75c41d05bf7648f3e872d", size = 1139594, upload_time = "2025-11-17T14:10:10.286Z" }, - { url = "https://files.pythonhosted.org/packages/73/aa/8393344ca7f0e81965febba07afc5cad68335ed0426408d480b861ab915b/srsly-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:81fd133ba3c66c07f0e3a889d2b4c852984d71ea833a665238a9d47d8e051ba5", size = 654750, upload_time = "2025-11-17T14:10:11.637Z" }, - { url = "https://files.pythonhosted.org/packages/c2/c5/dc29e65419692444253ea549106be156c5911041f16791f3b62fb90c14f2/srsly-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d976d6ae8e66006797b919e3d58533dce64cd48a5447a8ff7277f9b0505b0185", size = 654723, upload_time = "2025-11-17T14:10:13.305Z" }, - { url = "https://files.pythonhosted.org/packages/80/8c/8111e7e8c766b47b5a5f9864f27f532cf6bb92837a3e277eb297170bd6af/srsly-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:24f52ecd27409ea24ba116ee9f07a2bb1c4b9ba11284b32a0bf2ca364499d1c1", size = 651651, upload_time = "2025-11-17T14:10:14.907Z" }, - { url = "https://files.pythonhosted.org/packages/45/de/3f99d4e44af427ee09004df6586d0746640536b382c948f456be027c599b/srsly-2.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b0667ce1effb32a57522db10705db7c78d144547fcacc8a06df62c4bb7f96e", size = 1158012, upload_time = "2025-11-17T14:10:16.176Z" }, - { url = "https://files.pythonhosted.org/packages/c3/2f/66044ef5a10a487652913c1a7f32396cb0e9e32ecfc3fdc0a0bc0382e703/srsly-2.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60782f6f79c340cdaf1ba7cbaa1d354a0f7c8f86b285f1e14e75edb51452895a", size = 1163258, upload_time = "2025-11-17T14:10:17.471Z" }, - { url = "https://files.pythonhosted.org/packages/74/6b/698834048672b52937e8cf09b554adb81b106c0492f9bc62e41e3b46a69b/srsly-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec51abb1b58e1e6c689714104aeeba6290c40c0bfad0243b9b594df89f05881", size = 1112214, upload_time = "2025-11-17T14:10:18.679Z" }, - { url = "https://files.pythonhosted.org/packages/85/17/1efc70426be93d32a3c6c5c12d795eb266a9255d8b537fcb924a3de57fcb/srsly-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:76464e45f73afd20c2c34d2ef145bf788afc32e7d45f36f6393ed92a85189ed3", size = 1130687, upload_time = "2025-11-17T14:10:20.346Z" }, - { url = "https://files.pythonhosted.org/packages/e2/25/07f8c8a778bc0447ee15e37089b08af81b24fcc1d4a2c09eff4c3a79b241/srsly-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:009424a96d763951e4872b36ba38823f973bef094a1adbc11102e23e8d1ef429", size = 653128, upload_time = "2025-11-17T14:10:21.552Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/cf/77/5633c4ba65e3421b72b5b4bd93aa328360b351b3a1e5bf3c90eb224668e5/srsly-2.5.2.tar.gz", hash = "sha256:4092bc843c71b7595c6c90a0302a197858c5b9fe43067f62ae6a45bc3baa1c19", size = 492055, upload-time = "2025-11-17T14:11:02.543Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/58/ff9fd981b6e0fae261c48a3a941aeca5735eace4a137de883c8d69029bc7/srsly-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5491fe0683da900cd0c563538510c70a007380e1f6b29ebbb5225e7590981e2a", size = 655635, upload-time = "2025-11-17T14:09:41.167Z" }, + { url = "https://files.pythonhosted.org/packages/fd/a6/5b03c2a3b407caec3e7a5df61523154de3c5d36dc2f9328be91d3df368d5/srsly-2.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7375c2955935b73a6cad3851fe819c2f4ec506504afe7ca92b917555e6850fae", size = 653395, upload-time = "2025-11-17T14:09:42.827Z" }, + { url = "https://files.pythonhosted.org/packages/62/5d/1829a208d6d291c1ab3b81acd6e7a9f11984afc674ba2778e57984eee1a7/srsly-2.5.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0709a97ca463c1e85b03432c7d8028c82439f0248816707bafc553ffe66ec6f9", size = 1121898, upload-time = "2025-11-17T14:09:44.461Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ce/71766be1488ce4058dc5eded6f5c0ce7cbb18ff7263f3cc718fe8b1033ad/srsly-2.5.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ea2ee0122312802ed531fee6de679d74ce99ce8addce49aff8d52ee670d810f8", size = 1122831, upload-time = "2025-11-17T14:09:46.011Z" }, + { url = "https://files.pythonhosted.org/packages/ab/5c/259e5b0e70c22c5bbd1327a79bb4b2d75efb38295475229e9310251c240e/srsly-2.5.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c2e9fc418585832c7ce01bfc7fe85b96afe11165eb9a31ff0ed52aa3e32ec08b", size = 1080719, upload-time = "2025-11-17T14:09:47.685Z" }, + { url = "https://files.pythonhosted.org/packages/32/c4/20face1113cfa436434c7c152b374edae1631177d0d44dd60103297ffe03/srsly-2.5.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3df0ef22d571e733b181ac488823b01f4dd13da23497f46956839c718e48f36b", size = 1092783, upload-time = "2025-11-17T14:09:49.295Z" }, + { url = "https://files.pythonhosted.org/packages/c1/aa/16c405cf830bf3d843a631d62681403eb44563e27a42648f417f40209045/srsly-2.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:a116b926dd24702f5474f6367d8083412f218ddf82d5c7b5831a7b2ba3d8bd55", size = 654041, upload-time = "2025-11-17T14:09:51.056Z" }, + { url = "https://files.pythonhosted.org/packages/59/6e/2e3d07b38c1c2e98487f0af92f93b392c6741062d85c65cdc18c7b77448a/srsly-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e07babdcece2405b32c9eea25ef415749f214c889545e38965622bb66837ce", size = 655286, upload-time = "2025-11-17T14:09:52.468Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/587bcade6b72f919133e587edf60e06039d88049aef9015cd0bdea8df189/srsly-2.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1718fe40b73e5cc73b14625233f57e15fb23643d146f53193e8fe653a49e9a0f", size = 653094, upload-time = "2025-11-17T14:09:53.837Z" }, + { url = "https://files.pythonhosted.org/packages/8d/24/5c3aabe292cb4eb906c828f2866624e3a65603ef0a73e964e486ff146b84/srsly-2.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d7b07e6103db7dd3199c0321935b0c8b9297fd6e018a66de97dc836068440111", size = 1141286, upload-time = "2025-11-17T14:09:55.535Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fe/2cbdcef2495e0c40dafb96da205d9ab3b9e59f64938277800bf65f923281/srsly-2.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f2dedf03b2ae143dd70039f097d128fb901deba2482c3a749ac0a985ac735aad", size = 1144667, upload-time = "2025-11-17T14:09:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/91/7c/9a2c9d8141daf7b7a6f092c2be403421a0ab280e7c03cc62c223f37fdf47/srsly-2.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d5be1d8b79a4c4180073461425cb49c8924a184ab49d976c9c81a7bf87731d9", size = 1103935, upload-time = "2025-11-17T14:09:58.576Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ad/8ae727430368fedbb1a7fa41b62d7a86237558bc962c5c5a9aa8bfa82548/srsly-2.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c8e42d6bcddda2e6fc1a8438cc050c4a36d0e457a63bcc7117d23c5175dfedec", size = 1117985, upload-time = "2025-11-17T14:10:00.348Z" }, + { url = "https://files.pythonhosted.org/packages/60/69/d6afaef1a8d5192fd802752115c7c3cc104493a7d604b406112b8bc2b610/srsly-2.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:e7362981e687eead00248525c3ef3b8ddd95904c93362c481988d91b26b6aeef", size = 654148, upload-time = "2025-11-17T14:10:01.772Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1c/21f658d98d602a559491b7886c7ca30245c2cd8987ff1b7709437c0f74b1/srsly-2.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6f92b4f883e6be4ca77f15980b45d394d310f24903e25e1b2c46df783c7edcce", size = 656161, upload-time = "2025-11-17T14:10:03.181Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a2/bc6fd484ed703857043ae9abd6c9aea9152f9480a6961186ee6c1e0c49e8/srsly-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ac4790a54b00203f1af5495b6b8ac214131139427f30fcf05cf971dde81930eb", size = 653237, upload-time = "2025-11-17T14:10:04.636Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ea/e3895da29a15c8d325e050ad68a0d1238eece1d2648305796adf98dcba66/srsly-2.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ce5c6b016050857a7dd365c9dcdd00d96e7ac26317cfcb175db387e403de05bf", size = 1174418, upload-time = "2025-11-17T14:10:05.945Z" }, + { url = "https://files.pythonhosted.org/packages/a6/a5/21996231f53ee97191d0746c3a672ba33a4d86a19ffad85a1c0096c91c5f/srsly-2.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:539c6d0016e91277b5e9be31ebed03f03c32580d49c960e4a92c9003baecf69e", size = 1183089, upload-time = "2025-11-17T14:10:07.335Z" }, + { url = "https://files.pythonhosted.org/packages/7b/df/eb17aa8e4a828e8df7aa7dc471295529d9126e6b710f1833ebe0d8568a8e/srsly-2.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9f24b2c4f4c29da04083f09158543eb3f8893ba0ac39818693b3b259ee8044f0", size = 1122594, upload-time = "2025-11-17T14:10:08.899Z" }, + { url = "https://files.pythonhosted.org/packages/80/74/1654a80e6c8ec3ee32370ea08a78d3651e0ba1c4d6e6be31c9efdb9a2d10/srsly-2.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d34675047460a3f6999e43478f40d9b43917ea1e93a75c41d05bf7648f3e872d", size = 1139594, upload-time = "2025-11-17T14:10:10.286Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/8393344ca7f0e81965febba07afc5cad68335ed0426408d480b861ab915b/srsly-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:81fd133ba3c66c07f0e3a889d2b4c852984d71ea833a665238a9d47d8e051ba5", size = 654750, upload-time = "2025-11-17T14:10:11.637Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c5/dc29e65419692444253ea549106be156c5911041f16791f3b62fb90c14f2/srsly-2.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d976d6ae8e66006797b919e3d58533dce64cd48a5447a8ff7277f9b0505b0185", size = 654723, upload-time = "2025-11-17T14:10:13.305Z" }, + { url = "https://files.pythonhosted.org/packages/80/8c/8111e7e8c766b47b5a5f9864f27f532cf6bb92837a3e277eb297170bd6af/srsly-2.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:24f52ecd27409ea24ba116ee9f07a2bb1c4b9ba11284b32a0bf2ca364499d1c1", size = 651651, upload-time = "2025-11-17T14:10:14.907Z" }, + { url = "https://files.pythonhosted.org/packages/45/de/3f99d4e44af427ee09004df6586d0746640536b382c948f456be027c599b/srsly-2.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b0667ce1effb32a57522db10705db7c78d144547fcacc8a06df62c4bb7f96e", size = 1158012, upload-time = "2025-11-17T14:10:16.176Z" }, + { url = "https://files.pythonhosted.org/packages/c3/2f/66044ef5a10a487652913c1a7f32396cb0e9e32ecfc3fdc0a0bc0382e703/srsly-2.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60782f6f79c340cdaf1ba7cbaa1d354a0f7c8f86b285f1e14e75edb51452895a", size = 1163258, upload-time = "2025-11-17T14:10:17.471Z" }, + { url = "https://files.pythonhosted.org/packages/74/6b/698834048672b52937e8cf09b554adb81b106c0492f9bc62e41e3b46a69b/srsly-2.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec51abb1b58e1e6c689714104aeeba6290c40c0bfad0243b9b594df89f05881", size = 1112214, upload-time = "2025-11-17T14:10:18.679Z" }, + { url = "https://files.pythonhosted.org/packages/85/17/1efc70426be93d32a3c6c5c12d795eb266a9255d8b537fcb924a3de57fcb/srsly-2.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:76464e45f73afd20c2c34d2ef145bf788afc32e7d45f36f6393ed92a85189ed3", size = 1130687, upload-time = "2025-11-17T14:10:20.346Z" }, + { url = "https://files.pythonhosted.org/packages/e2/25/07f8c8a778bc0447ee15e37089b08af81b24fcc1d4a2c09eff4c3a79b241/srsly-2.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:009424a96d763951e4872b36ba38823f973bef094a1adbc11102e23e8d1ef429", size = 653128, upload-time = "2025-11-17T14:10:21.552Z" }, ] [[package]] @@ -4397,9 +4447,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846, upload_time = "2025-04-13T13:56:17.942Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846, upload-time = "2025-04-13T13:56:17.942Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037, upload_time = "2025-04-13T13:56:16.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/0c/9d30a4ebeb6db2b25a841afbb80f6ef9a854fc3b41be131d249a977b4959/starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35", size = 72037, upload-time = "2025-04-13T13:56:16.21Z" }, ] [[package]] @@ -4409,18 +4459,18 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mpmath" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload_time = "2025-04-27T18:05:01.611Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload_time = "2025-04-27T18:04:59.103Z" }, + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, ] [[package]] name = "tenacity" version = "8.5.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/a3/4d/6a19536c50b849338fcbe9290d562b52cbdcf30d8963d3588a68a4107df1/tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78", size = 47309, upload_time = "2024-07-05T07:25:31.836Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/4d/6a19536c50b849338fcbe9290d562b52cbdcf30d8963d3588a68a4107df1/tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78", size = 47309, upload-time = "2024-07-05T07:25:31.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687", size = 28165, upload_time = "2024-07-05T07:25:29.591Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/8ba87d9e287b9d385a02a7114ddcef61b26f86411e121c9003eb509a1773/tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687", size = 28165, upload-time = "2024-07-05T07:25:29.591Z" }, ] [[package]] @@ -4442,48 +4492,48 @@ dependencies = [ { name = "srsly" }, { name = "wasabi" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2f/3a/2d0f0be132b9faaa6d56f04565ae122684273e4bf4eab8dee5f48dc00f68/thinc-8.3.10.tar.gz", hash = "sha256:5a75109f4ee1c968fc055ce651a17cb44b23b000d9e95f04a4d047ab3cb3e34e", size = 194196, upload_time = "2025-11-17T17:21:46.435Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/bc/d3c364c0278e420e0e3d328cbae7cd7aac8d2cfe4d9b8022a12e99f03755/thinc-8.3.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbe0313cb3c898f4e6a3f13b704af51f4bf8f927078deb0fe2d6eaf3c6c5b31b", size = 821615, upload_time = "2025-11-17T17:20:31.257Z" }, - { url = "https://files.pythonhosted.org/packages/0e/97/70fe96d86fe5d024882fd96f054be94f87828da67862749aa439de33d452/thinc-8.3.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:892ac91cf7cc8d3ac9a4527c68ead37a96e87132c9f589de56b057b50358e895", size = 772280, upload_time = "2025-11-17T17:20:34.408Z" }, - { url = "https://files.pythonhosted.org/packages/08/a8/a6906490a756a4ad09781bcd02490e5427d942a918abed8424f639d317c3/thinc-8.3.10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0fbf142050feb5490f6366e251d48e0429315abe487faa7d371fac4d043efd1e", size = 3881222, upload_time = "2025-11-17T17:20:36.525Z" }, - { url = "https://files.pythonhosted.org/packages/e6/bf/bebeddbab816c4d909455499f7e1b0a88cec9497fd737412e1189971d193/thinc-8.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:470b05fd1af4024cf183f387f71270943f652dd711304d1fa8b672d268052af8", size = 3905534, upload_time = "2025-11-17T17:20:38.901Z" }, - { url = "https://files.pythonhosted.org/packages/fd/c4/c78f1e1091b73dbeee8623f856e2dd25888aab600ded5fa9944dfbe38efb/thinc-8.3.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06ebf4aa642991b8dc5c2a6db4c0aedf6d5589a361c93531ec3721d76eabe859", size = 4888188, upload_time = "2025-11-17T17:20:41.394Z" }, - { url = "https://files.pythonhosted.org/packages/ca/bc/36297efade38e0f3e56795f49094d19fbe560bda60a42ce134bbfc1796da/thinc-8.3.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:026999d749075c890fbb1df47d75389a81b712afccea519a5c7bb86783d0cd73", size = 5033361, upload_time = "2025-11-17T17:20:45.332Z" }, - { url = "https://files.pythonhosted.org/packages/a8/bf/70d97758b5b1c7ee06afca8240b6e02bdf5b18d18eb59b873e319b3e01b2/thinc-8.3.10-cp310-cp310-win_amd64.whl", hash = "sha256:8d5ae7d96ff3ea2e4f23bd4005c773f4765f41b11dfb79598a81e5feb1437b91", size = 1792397, upload_time = "2025-11-17T17:20:47.014Z" }, - { url = "https://files.pythonhosted.org/packages/38/43/01b662540888140b5e9f76c957c7118c203cb91f17867ce78fc4f2d3800f/thinc-8.3.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72793e0bd3f0f391ca36ab0996b3c21db7045409bd3740840e7d6fcd9a044d81", size = 818632, upload_time = "2025-11-17T17:20:49.123Z" }, - { url = "https://files.pythonhosted.org/packages/f0/ba/e0edcc84014bdde1bc9a082408279616a061566a82b5e3b90b9e64f33c1b/thinc-8.3.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4b13311acb061e04e3a0c4bd677b85ec2971e3a3674558252443b5446e378256", size = 770622, upload_time = "2025-11-17T17:20:50.467Z" }, - { url = "https://files.pythonhosted.org/packages/f3/51/0558f8cb69c13e1114428726a3fb36fe1adc5821a62ccd3fa7b7c1a5bd9a/thinc-8.3.10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ffddcf311fb7c998eb8988d22c618dc0f33b26303853c0445edb8a69819ac60", size = 4094652, upload_time = "2025-11-17T17:20:52.104Z" }, - { url = "https://files.pythonhosted.org/packages/a0/c9/bb78601f74f9bcadb2d3d4d5b057c4dc3f2e52d9771bad3d93a4e38a9dc1/thinc-8.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9b1e0511e8421f20abe4f22d8c8073a0d7ce4a31597cc7a404fdbad72bf38058", size = 4124379, upload_time = "2025-11-17T17:20:53.781Z" }, - { url = "https://files.pythonhosted.org/packages/f6/3e/961e1b9794111c89f2ceadfef5692aba5097bec4aaaf89f1b8a04c5bc961/thinc-8.3.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e31e49441dfad8fd64b8ca5f5c9b8c33ee87a553bf79c830a15b4cd02efcc444", size = 5094221, upload_time = "2025-11-17T17:20:55.466Z" }, - { url = "https://files.pythonhosted.org/packages/e5/de/da163a1533faaef5b17dd11dfb9ffd9fd5627dbef56e1160da6edbe1b224/thinc-8.3.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9de5dd73ce7135dcf41d68625d35cd9f5cf8e5f55a3932001a188b45057c3379", size = 5262834, upload_time = "2025-11-17T17:20:57.459Z" }, - { url = "https://files.pythonhosted.org/packages/4c/4e/449d29e33f7ddda6ba1b9e06de3ea5155c2dc33c21f438f8faafebde4e13/thinc-8.3.10-cp311-cp311-win_amd64.whl", hash = "sha256:b6d64e390a1996d489872b9d99a584142542aba59ebdc60f941f473732582f6f", size = 1791864, upload_time = "2025-11-17T17:20:59.817Z" }, - { url = "https://files.pythonhosted.org/packages/4a/b3/68038d88d45d83a501c3f19bd654d275b7ac730c807f52bbb46f35f591bc/thinc-8.3.10-cp311-cp311-win_arm64.whl", hash = "sha256:3991b6ad72e611dfbfb58235de5b67bcc9f61426127cc023607f97e8c5f43e0e", size = 1717563, upload_time = "2025-11-17T17:21:01.634Z" }, - { url = "https://files.pythonhosted.org/packages/d3/34/ba3b386d92edf50784b60ee34318d47c7f49c198268746ef7851c5bbe8cf/thinc-8.3.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51bc6ef735bdbcab75ab2916731b8f61f94c66add6f9db213d900d3c6a244f95", size = 794509, upload_time = "2025-11-17T17:21:03.21Z" }, - { url = "https://files.pythonhosted.org/packages/07/f3/9f52d18115cd9d8d7b2590d226cb2752d2a5ffec61576b19462b48410184/thinc-8.3.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4f48b4d346915f98e9722c0c50ef911cc16c6790a2b7afebc6e1a2c96a6ce6c6", size = 741084, upload_time = "2025-11-17T17:21:04.568Z" }, - { url = "https://files.pythonhosted.org/packages/ad/9c/129c2b740c4e3d3624b6fb3dec1577ef27cb804bc1647f9bc3e1801ea20c/thinc-8.3.10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5003f4db2db22cc8d686db8db83509acc3c50f4c55ebdcb2bbfcc1095096f7d2", size = 3846337, upload_time = "2025-11-17T17:21:06.079Z" }, - { url = "https://files.pythonhosted.org/packages/22/d2/738cf188dea8240c2be081c83ea47270fea585eba446171757d2cdb9b675/thinc-8.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b12484c3ed0632331fada2c334680dd6bc35972d0717343432dfc701f04a9b4c", size = 3901216, upload_time = "2025-11-17T17:21:07.842Z" }, - { url = "https://files.pythonhosted.org/packages/22/92/32f66eb9b1a29b797bf378a0874615d810d79eefca1d6c736c5ca3f8b918/thinc-8.3.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8677c446d3f9b97a465472c58683b785b25dfcf26c683e3f4e8f8c7c188e4362", size = 4827286, upload_time = "2025-11-17T17:21:09.62Z" }, - { url = "https://files.pythonhosted.org/packages/c4/5f/7ceae1e1f2029efd67ed88e23cd6dc13a5ee647cdc2b35113101b2a62c10/thinc-8.3.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:759c385ac08dcf950238b60b96a28f9c04618861141766928dff4a51b1679b25", size = 5024421, upload_time = "2025-11-17T17:21:11.199Z" }, - { url = "https://files.pythonhosted.org/packages/0b/66/30f9d8d41049b78bc614213d492792fbcfeb1b28642adf661c42110a7ebd/thinc-8.3.10-cp312-cp312-win_amd64.whl", hash = "sha256:bf3f188c3fa1fdcefd547d1f90a1245c29025d6d0e3f71d7fdf21dad210b990c", size = 1718631, upload_time = "2025-11-17T17:21:12.965Z" }, - { url = "https://files.pythonhosted.org/packages/f8/44/32e2a5018a1165a304d25eb9b1c74e5310da19a533a35331e8d824dc6a88/thinc-8.3.10-cp312-cp312-win_arm64.whl", hash = "sha256:234b7e57a6ef4e0260d99f4e8fdc328ed12d0ba9bbd98fdaa567294a17700d1c", size = 1642224, upload_time = "2025-11-17T17:21:14.371Z" }, - { url = "https://files.pythonhosted.org/packages/53/fc/17a2818d1f460b8c4f33b8bd3f21b19d263a647bfd23b572768d175e6b64/thinc-8.3.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c7c3a50ddd423d1c49419899acef4ac80d800af3b423593acb9e40578384b543", size = 789771, upload_time = "2025-11-17T17:21:15.784Z" }, - { url = "https://files.pythonhosted.org/packages/8d/24/649f54774b1fbe791a1c2efd7d7f0a95cfd9244902553ca7dcf19daab1dd/thinc-8.3.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a1cb110398f51fc2b9a07a2a4daec6f91e166533a9c9f1c565225330f46569a", size = 737051, upload_time = "2025-11-17T17:21:17.933Z" }, - { url = "https://files.pythonhosted.org/packages/b2/8c/5840c6c504c1fa9718e1c74d6e04d77a474f594888867dbba53f9317285f/thinc-8.3.10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42318746a67403d04be57d862fe0c0015b58b6fb9bbbf7b6db01f3f103b73a99", size = 3839221, upload_time = "2025-11-17T17:21:20.003Z" }, - { url = "https://files.pythonhosted.org/packages/45/ef/e7fca88074cb0aa1c1a23195470b4549492c2797fe7dc9ff79a85500153a/thinc-8.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6b0e41e79973f8828adead770f885db8d0f199bfbaa9591d1d896c385842e993", size = 3885024, upload_time = "2025-11-17T17:21:21.735Z" }, - { url = "https://files.pythonhosted.org/packages/9a/eb/805e277aa019896009028d727460f071c6cf83843d70f6a69e58994d2203/thinc-8.3.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9ed982daa1eddbad813bfd079546483b849a68b98c01ad4a7e4efd125ddc5d7b", size = 4815939, upload_time = "2025-11-17T17:21:23.942Z" }, - { url = "https://files.pythonhosted.org/packages/4f/f5/6425f12a60e3782091c9ec16394b9239f0c18c52c70218f3c8c047ff985c/thinc-8.3.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d22bd381410749dec5f629b3162b7d1f1e2d9b7364fd49a7ea555b61c93772b9", size = 5020260, upload_time = "2025-11-17T17:21:25.507Z" }, - { url = "https://files.pythonhosted.org/packages/85/a2/ae98feffe0b161400e87b7bfc8859e6fa1e6023fa7bcfa0a8cacd83b39a1/thinc-8.3.10-cp313-cp313-win_amd64.whl", hash = "sha256:9c32830446a57da13b6856cacb0225bc2f2104f279d9928d40500081c13aa9ec", size = 1717562, upload_time = "2025-11-17T17:21:27.468Z" }, - { url = "https://files.pythonhosted.org/packages/b8/e0/faa1d04a6890ea33b9541727d2a3ca88bad794a89f73b9111af6f9aefe10/thinc-8.3.10-cp313-cp313-win_arm64.whl", hash = "sha256:aa43f9af76781d32f5f9fe29299204c8841d71e64cbb56e0e4f3d1e0387c2783", size = 1641536, upload_time = "2025-11-17T17:21:30.129Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/2f/3a/2d0f0be132b9faaa6d56f04565ae122684273e4bf4eab8dee5f48dc00f68/thinc-8.3.10.tar.gz", hash = "sha256:5a75109f4ee1c968fc055ce651a17cb44b23b000d9e95f04a4d047ab3cb3e34e", size = 194196, upload-time = "2025-11-17T17:21:46.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/bc/d3c364c0278e420e0e3d328cbae7cd7aac8d2cfe4d9b8022a12e99f03755/thinc-8.3.10-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbe0313cb3c898f4e6a3f13b704af51f4bf8f927078deb0fe2d6eaf3c6c5b31b", size = 821615, upload-time = "2025-11-17T17:20:31.257Z" }, + { url = "https://files.pythonhosted.org/packages/0e/97/70fe96d86fe5d024882fd96f054be94f87828da67862749aa439de33d452/thinc-8.3.10-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:892ac91cf7cc8d3ac9a4527c68ead37a96e87132c9f589de56b057b50358e895", size = 772280, upload-time = "2025-11-17T17:20:34.408Z" }, + { url = "https://files.pythonhosted.org/packages/08/a8/a6906490a756a4ad09781bcd02490e5427d942a918abed8424f639d317c3/thinc-8.3.10-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0fbf142050feb5490f6366e251d48e0429315abe487faa7d371fac4d043efd1e", size = 3881222, upload-time = "2025-11-17T17:20:36.525Z" }, + { url = "https://files.pythonhosted.org/packages/e6/bf/bebeddbab816c4d909455499f7e1b0a88cec9497fd737412e1189971d193/thinc-8.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:470b05fd1af4024cf183f387f71270943f652dd711304d1fa8b672d268052af8", size = 3905534, upload-time = "2025-11-17T17:20:38.901Z" }, + { url = "https://files.pythonhosted.org/packages/fd/c4/c78f1e1091b73dbeee8623f856e2dd25888aab600ded5fa9944dfbe38efb/thinc-8.3.10-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06ebf4aa642991b8dc5c2a6db4c0aedf6d5589a361c93531ec3721d76eabe859", size = 4888188, upload-time = "2025-11-17T17:20:41.394Z" }, + { url = "https://files.pythonhosted.org/packages/ca/bc/36297efade38e0f3e56795f49094d19fbe560bda60a42ce134bbfc1796da/thinc-8.3.10-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:026999d749075c890fbb1df47d75389a81b712afccea519a5c7bb86783d0cd73", size = 5033361, upload-time = "2025-11-17T17:20:45.332Z" }, + { url = "https://files.pythonhosted.org/packages/a8/bf/70d97758b5b1c7ee06afca8240b6e02bdf5b18d18eb59b873e319b3e01b2/thinc-8.3.10-cp310-cp310-win_amd64.whl", hash = "sha256:8d5ae7d96ff3ea2e4f23bd4005c773f4765f41b11dfb79598a81e5feb1437b91", size = 1792397, upload-time = "2025-11-17T17:20:47.014Z" }, + { url = "https://files.pythonhosted.org/packages/38/43/01b662540888140b5e9f76c957c7118c203cb91f17867ce78fc4f2d3800f/thinc-8.3.10-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:72793e0bd3f0f391ca36ab0996b3c21db7045409bd3740840e7d6fcd9a044d81", size = 818632, upload-time = "2025-11-17T17:20:49.123Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ba/e0edcc84014bdde1bc9a082408279616a061566a82b5e3b90b9e64f33c1b/thinc-8.3.10-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4b13311acb061e04e3a0c4bd677b85ec2971e3a3674558252443b5446e378256", size = 770622, upload-time = "2025-11-17T17:20:50.467Z" }, + { url = "https://files.pythonhosted.org/packages/f3/51/0558f8cb69c13e1114428726a3fb36fe1adc5821a62ccd3fa7b7c1a5bd9a/thinc-8.3.10-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9ffddcf311fb7c998eb8988d22c618dc0f33b26303853c0445edb8a69819ac60", size = 4094652, upload-time = "2025-11-17T17:20:52.104Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c9/bb78601f74f9bcadb2d3d4d5b057c4dc3f2e52d9771bad3d93a4e38a9dc1/thinc-8.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9b1e0511e8421f20abe4f22d8c8073a0d7ce4a31597cc7a404fdbad72bf38058", size = 4124379, upload-time = "2025-11-17T17:20:53.781Z" }, + { url = "https://files.pythonhosted.org/packages/f6/3e/961e1b9794111c89f2ceadfef5692aba5097bec4aaaf89f1b8a04c5bc961/thinc-8.3.10-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e31e49441dfad8fd64b8ca5f5c9b8c33ee87a553bf79c830a15b4cd02efcc444", size = 5094221, upload-time = "2025-11-17T17:20:55.466Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/da163a1533faaef5b17dd11dfb9ffd9fd5627dbef56e1160da6edbe1b224/thinc-8.3.10-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9de5dd73ce7135dcf41d68625d35cd9f5cf8e5f55a3932001a188b45057c3379", size = 5262834, upload-time = "2025-11-17T17:20:57.459Z" }, + { url = "https://files.pythonhosted.org/packages/4c/4e/449d29e33f7ddda6ba1b9e06de3ea5155c2dc33c21f438f8faafebde4e13/thinc-8.3.10-cp311-cp311-win_amd64.whl", hash = "sha256:b6d64e390a1996d489872b9d99a584142542aba59ebdc60f941f473732582f6f", size = 1791864, upload-time = "2025-11-17T17:20:59.817Z" }, + { url = "https://files.pythonhosted.org/packages/4a/b3/68038d88d45d83a501c3f19bd654d275b7ac730c807f52bbb46f35f591bc/thinc-8.3.10-cp311-cp311-win_arm64.whl", hash = "sha256:3991b6ad72e611dfbfb58235de5b67bcc9f61426127cc023607f97e8c5f43e0e", size = 1717563, upload-time = "2025-11-17T17:21:01.634Z" }, + { url = "https://files.pythonhosted.org/packages/d3/34/ba3b386d92edf50784b60ee34318d47c7f49c198268746ef7851c5bbe8cf/thinc-8.3.10-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51bc6ef735bdbcab75ab2916731b8f61f94c66add6f9db213d900d3c6a244f95", size = 794509, upload-time = "2025-11-17T17:21:03.21Z" }, + { url = "https://files.pythonhosted.org/packages/07/f3/9f52d18115cd9d8d7b2590d226cb2752d2a5ffec61576b19462b48410184/thinc-8.3.10-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4f48b4d346915f98e9722c0c50ef911cc16c6790a2b7afebc6e1a2c96a6ce6c6", size = 741084, upload-time = "2025-11-17T17:21:04.568Z" }, + { url = "https://files.pythonhosted.org/packages/ad/9c/129c2b740c4e3d3624b6fb3dec1577ef27cb804bc1647f9bc3e1801ea20c/thinc-8.3.10-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5003f4db2db22cc8d686db8db83509acc3c50f4c55ebdcb2bbfcc1095096f7d2", size = 3846337, upload-time = "2025-11-17T17:21:06.079Z" }, + { url = "https://files.pythonhosted.org/packages/22/d2/738cf188dea8240c2be081c83ea47270fea585eba446171757d2cdb9b675/thinc-8.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b12484c3ed0632331fada2c334680dd6bc35972d0717343432dfc701f04a9b4c", size = 3901216, upload-time = "2025-11-17T17:21:07.842Z" }, + { url = "https://files.pythonhosted.org/packages/22/92/32f66eb9b1a29b797bf378a0874615d810d79eefca1d6c736c5ca3f8b918/thinc-8.3.10-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8677c446d3f9b97a465472c58683b785b25dfcf26c683e3f4e8f8c7c188e4362", size = 4827286, upload-time = "2025-11-17T17:21:09.62Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5f/7ceae1e1f2029efd67ed88e23cd6dc13a5ee647cdc2b35113101b2a62c10/thinc-8.3.10-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:759c385ac08dcf950238b60b96a28f9c04618861141766928dff4a51b1679b25", size = 5024421, upload-time = "2025-11-17T17:21:11.199Z" }, + { url = "https://files.pythonhosted.org/packages/0b/66/30f9d8d41049b78bc614213d492792fbcfeb1b28642adf661c42110a7ebd/thinc-8.3.10-cp312-cp312-win_amd64.whl", hash = "sha256:bf3f188c3fa1fdcefd547d1f90a1245c29025d6d0e3f71d7fdf21dad210b990c", size = 1718631, upload-time = "2025-11-17T17:21:12.965Z" }, + { url = "https://files.pythonhosted.org/packages/f8/44/32e2a5018a1165a304d25eb9b1c74e5310da19a533a35331e8d824dc6a88/thinc-8.3.10-cp312-cp312-win_arm64.whl", hash = "sha256:234b7e57a6ef4e0260d99f4e8fdc328ed12d0ba9bbd98fdaa567294a17700d1c", size = 1642224, upload-time = "2025-11-17T17:21:14.371Z" }, + { url = "https://files.pythonhosted.org/packages/53/fc/17a2818d1f460b8c4f33b8bd3f21b19d263a647bfd23b572768d175e6b64/thinc-8.3.10-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c7c3a50ddd423d1c49419899acef4ac80d800af3b423593acb9e40578384b543", size = 789771, upload-time = "2025-11-17T17:21:15.784Z" }, + { url = "https://files.pythonhosted.org/packages/8d/24/649f54774b1fbe791a1c2efd7d7f0a95cfd9244902553ca7dcf19daab1dd/thinc-8.3.10-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a1cb110398f51fc2b9a07a2a4daec6f91e166533a9c9f1c565225330f46569a", size = 737051, upload-time = "2025-11-17T17:21:17.933Z" }, + { url = "https://files.pythonhosted.org/packages/b2/8c/5840c6c504c1fa9718e1c74d6e04d77a474f594888867dbba53f9317285f/thinc-8.3.10-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:42318746a67403d04be57d862fe0c0015b58b6fb9bbbf7b6db01f3f103b73a99", size = 3839221, upload-time = "2025-11-17T17:21:20.003Z" }, + { url = "https://files.pythonhosted.org/packages/45/ef/e7fca88074cb0aa1c1a23195470b4549492c2797fe7dc9ff79a85500153a/thinc-8.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6b0e41e79973f8828adead770f885db8d0f199bfbaa9591d1d896c385842e993", size = 3885024, upload-time = "2025-11-17T17:21:21.735Z" }, + { url = "https://files.pythonhosted.org/packages/9a/eb/805e277aa019896009028d727460f071c6cf83843d70f6a69e58994d2203/thinc-8.3.10-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9ed982daa1eddbad813bfd079546483b849a68b98c01ad4a7e4efd125ddc5d7b", size = 4815939, upload-time = "2025-11-17T17:21:23.942Z" }, + { url = "https://files.pythonhosted.org/packages/4f/f5/6425f12a60e3782091c9ec16394b9239f0c18c52c70218f3c8c047ff985c/thinc-8.3.10-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d22bd381410749dec5f629b3162b7d1f1e2d9b7364fd49a7ea555b61c93772b9", size = 5020260, upload-time = "2025-11-17T17:21:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/85/a2/ae98feffe0b161400e87b7bfc8859e6fa1e6023fa7bcfa0a8cacd83b39a1/thinc-8.3.10-cp313-cp313-win_amd64.whl", hash = "sha256:9c32830446a57da13b6856cacb0225bc2f2104f279d9928d40500081c13aa9ec", size = 1717562, upload-time = "2025-11-17T17:21:27.468Z" }, + { url = "https://files.pythonhosted.org/packages/b8/e0/faa1d04a6890ea33b9541727d2a3ca88bad794a89f73b9111af6f9aefe10/thinc-8.3.10-cp313-cp313-win_arm64.whl", hash = "sha256:aa43f9af76781d32f5f9fe29299204c8841d71e64cbb56e0e4f3d1e0387c2783", size = 1641536, upload-time = "2025-11-17T17:21:30.129Z" }, ] [[package]] name = "threadpoolctl" version = "3.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload_time = "2025-03-13T13:49:23.031Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload_time = "2025-03-13T13:49:21.846Z" }, + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, ] [[package]] @@ -4494,43 +4544,43 @@ dependencies = [ { name = "regex" }, { name = "requests" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806, upload_time = "2025-10-06T20:22:45.419Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/89/b3/2cb7c17b6c4cf8ca983204255d3f1d95eda7213e247e6947a0ee2c747a2c/tiktoken-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3de02f5a491cfd179aec916eddb70331814bd6bf764075d39e21d5862e533970", size = 1051991, upload_time = "2025-10-06T20:21:34.098Z" }, - { url = "https://files.pythonhosted.org/packages/27/0f/df139f1df5f6167194ee5ab24634582ba9a1b62c6b996472b0277ec80f66/tiktoken-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6cfb6d9b7b54d20af21a912bfe63a2727d9cfa8fbda642fd8322c70340aad16", size = 995798, upload_time = "2025-10-06T20:21:35.579Z" }, - { url = "https://files.pythonhosted.org/packages/ef/5d/26a691f28ab220d5edc09b9b787399b130f24327ef824de15e5d85ef21aa/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:cde24cdb1b8a08368f709124f15b36ab5524aac5fa830cc3fdce9c03d4fb8030", size = 1129865, upload_time = "2025-10-06T20:21:36.675Z" }, - { url = "https://files.pythonhosted.org/packages/b2/94/443fab3d4e5ebecac895712abd3849b8da93b7b7dec61c7db5c9c7ebe40c/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6de0da39f605992649b9cfa6f84071e3f9ef2cec458d08c5feb1b6f0ff62e134", size = 1152856, upload_time = "2025-10-06T20:21:37.873Z" }, - { url = "https://files.pythonhosted.org/packages/54/35/388f941251b2521c70dd4c5958e598ea6d2c88e28445d2fb8189eecc1dfc/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6faa0534e0eefbcafaccb75927a4a380463a2eaa7e26000f0173b920e98b720a", size = 1195308, upload_time = "2025-10-06T20:21:39.577Z" }, - { url = "https://files.pythonhosted.org/packages/f8/00/c6681c7f833dd410576183715a530437a9873fa910265817081f65f9105f/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:82991e04fc860afb933efb63957affc7ad54f83e2216fe7d319007dab1ba5892", size = 1255697, upload_time = "2025-10-06T20:21:41.154Z" }, - { url = "https://files.pythonhosted.org/packages/5f/d2/82e795a6a9bafa034bf26a58e68fe9a89eeaaa610d51dbeb22106ba04f0a/tiktoken-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:6fb2995b487c2e31acf0a9e17647e3b242235a20832642bb7a9d1a181c0c1bb1", size = 879375, upload_time = "2025-10-06T20:21:43.201Z" }, - { url = "https://files.pythonhosted.org/packages/de/46/21ea696b21f1d6d1efec8639c204bdf20fde8bafb351e1355c72c5d7de52/tiktoken-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e227c7f96925003487c33b1b32265fad2fbcec2b7cf4817afb76d416f40f6bb", size = 1051565, upload_time = "2025-10-06T20:21:44.566Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d9/35c5d2d9e22bb2a5f74ba48266fb56c63d76ae6f66e02feb628671c0283e/tiktoken-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c06cf0fcc24c2cb2adb5e185c7082a82cba29c17575e828518c2f11a01f445aa", size = 995284, upload_time = "2025-10-06T20:21:45.622Z" }, - { url = "https://files.pythonhosted.org/packages/01/84/961106c37b8e49b9fdcf33fe007bb3a8fdcc380c528b20cc7fbba80578b8/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f18f249b041851954217e9fd8e5c00b024ab2315ffda5ed77665a05fa91f42dc", size = 1129201, upload_time = "2025-10-06T20:21:47.074Z" }, - { url = "https://files.pythonhosted.org/packages/6a/d0/3d9275198e067f8b65076a68894bb52fd253875f3644f0a321a720277b8a/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47a5bc270b8c3db00bb46ece01ef34ad050e364b51d406b6f9730b64ac28eded", size = 1152444, upload_time = "2025-10-06T20:21:48.139Z" }, - { url = "https://files.pythonhosted.org/packages/78/db/a58e09687c1698a7c592e1038e01c206569b86a0377828d51635561f8ebf/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:508fa71810c0efdcd1b898fda574889ee62852989f7c1667414736bcb2b9a4bd", size = 1195080, upload_time = "2025-10-06T20:21:49.246Z" }, - { url = "https://files.pythonhosted.org/packages/9e/1b/a9e4d2bf91d515c0f74afc526fd773a812232dd6cda33ebea7f531202325/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1af81a6c44f008cba48494089dd98cccb8b313f55e961a52f5b222d1e507967", size = 1255240, upload_time = "2025-10-06T20:21:50.274Z" }, - { url = "https://files.pythonhosted.org/packages/9d/15/963819345f1b1fb0809070a79e9dd96938d4ca41297367d471733e79c76c/tiktoken-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e68e3e593637b53e56f7237be560f7a394451cb8c11079755e80ae64b9e6def", size = 879422, upload_time = "2025-10-06T20:21:51.734Z" }, - { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728, upload_time = "2025-10-06T20:21:52.756Z" }, - { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049, upload_time = "2025-10-06T20:21:53.782Z" }, - { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008, upload_time = "2025-10-06T20:21:54.832Z" }, - { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665, upload_time = "2025-10-06T20:21:56.129Z" }, - { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230, upload_time = "2025-10-06T20:21:57.546Z" }, - { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688, upload_time = "2025-10-06T20:21:58.619Z" }, - { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694, upload_time = "2025-10-06T20:21:59.876Z" }, - { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802, upload_time = "2025-10-06T20:22:00.96Z" }, - { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995, upload_time = "2025-10-06T20:22:02.788Z" }, - { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948, upload_time = "2025-10-06T20:22:03.814Z" }, - { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986, upload_time = "2025-10-06T20:22:05.173Z" }, - { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222, upload_time = "2025-10-06T20:22:06.265Z" }, - { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097, upload_time = "2025-10-06T20:22:07.403Z" }, - { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117, upload_time = "2025-10-06T20:22:08.418Z" }, - { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309, upload_time = "2025-10-06T20:22:10.939Z" }, - { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712, upload_time = "2025-10-06T20:22:12.115Z" }, - { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725, upload_time = "2025-10-06T20:22:13.541Z" }, - { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875, upload_time = "2025-10-06T20:22:14.559Z" }, - { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451, upload_time = "2025-10-06T20:22:15.545Z" }, - { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794, upload_time = "2025-10-06T20:22:16.624Z" }, - { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777, upload_time = "2025-10-06T20:22:18.036Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/7d/ab/4d017d0f76ec3171d469d80fc03dfbb4e48a4bcaddaa831b31d526f05edc/tiktoken-0.12.0.tar.gz", hash = "sha256:b18ba7ee2b093863978fcb14f74b3707cdc8d4d4d3836853ce7ec60772139931", size = 37806, upload-time = "2025-10-06T20:22:45.419Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/b3/2cb7c17b6c4cf8ca983204255d3f1d95eda7213e247e6947a0ee2c747a2c/tiktoken-0.12.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3de02f5a491cfd179aec916eddb70331814bd6bf764075d39e21d5862e533970", size = 1051991, upload-time = "2025-10-06T20:21:34.098Z" }, + { url = "https://files.pythonhosted.org/packages/27/0f/df139f1df5f6167194ee5ab24634582ba9a1b62c6b996472b0277ec80f66/tiktoken-0.12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6cfb6d9b7b54d20af21a912bfe63a2727d9cfa8fbda642fd8322c70340aad16", size = 995798, upload-time = "2025-10-06T20:21:35.579Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5d/26a691f28ab220d5edc09b9b787399b130f24327ef824de15e5d85ef21aa/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:cde24cdb1b8a08368f709124f15b36ab5524aac5fa830cc3fdce9c03d4fb8030", size = 1129865, upload-time = "2025-10-06T20:21:36.675Z" }, + { url = "https://files.pythonhosted.org/packages/b2/94/443fab3d4e5ebecac895712abd3849b8da93b7b7dec61c7db5c9c7ebe40c/tiktoken-0.12.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:6de0da39f605992649b9cfa6f84071e3f9ef2cec458d08c5feb1b6f0ff62e134", size = 1152856, upload-time = "2025-10-06T20:21:37.873Z" }, + { url = "https://files.pythonhosted.org/packages/54/35/388f941251b2521c70dd4c5958e598ea6d2c88e28445d2fb8189eecc1dfc/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6faa0534e0eefbcafaccb75927a4a380463a2eaa7e26000f0173b920e98b720a", size = 1195308, upload-time = "2025-10-06T20:21:39.577Z" }, + { url = "https://files.pythonhosted.org/packages/f8/00/c6681c7f833dd410576183715a530437a9873fa910265817081f65f9105f/tiktoken-0.12.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:82991e04fc860afb933efb63957affc7ad54f83e2216fe7d319007dab1ba5892", size = 1255697, upload-time = "2025-10-06T20:21:41.154Z" }, + { url = "https://files.pythonhosted.org/packages/5f/d2/82e795a6a9bafa034bf26a58e68fe9a89eeaaa610d51dbeb22106ba04f0a/tiktoken-0.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:6fb2995b487c2e31acf0a9e17647e3b242235a20832642bb7a9d1a181c0c1bb1", size = 879375, upload-time = "2025-10-06T20:21:43.201Z" }, + { url = "https://files.pythonhosted.org/packages/de/46/21ea696b21f1d6d1efec8639c204bdf20fde8bafb351e1355c72c5d7de52/tiktoken-0.12.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6e227c7f96925003487c33b1b32265fad2fbcec2b7cf4817afb76d416f40f6bb", size = 1051565, upload-time = "2025-10-06T20:21:44.566Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d9/35c5d2d9e22bb2a5f74ba48266fb56c63d76ae6f66e02feb628671c0283e/tiktoken-0.12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c06cf0fcc24c2cb2adb5e185c7082a82cba29c17575e828518c2f11a01f445aa", size = 995284, upload-time = "2025-10-06T20:21:45.622Z" }, + { url = "https://files.pythonhosted.org/packages/01/84/961106c37b8e49b9fdcf33fe007bb3a8fdcc380c528b20cc7fbba80578b8/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:f18f249b041851954217e9fd8e5c00b024ab2315ffda5ed77665a05fa91f42dc", size = 1129201, upload-time = "2025-10-06T20:21:47.074Z" }, + { url = "https://files.pythonhosted.org/packages/6a/d0/3d9275198e067f8b65076a68894bb52fd253875f3644f0a321a720277b8a/tiktoken-0.12.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:47a5bc270b8c3db00bb46ece01ef34ad050e364b51d406b6f9730b64ac28eded", size = 1152444, upload-time = "2025-10-06T20:21:48.139Z" }, + { url = "https://files.pythonhosted.org/packages/78/db/a58e09687c1698a7c592e1038e01c206569b86a0377828d51635561f8ebf/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:508fa71810c0efdcd1b898fda574889ee62852989f7c1667414736bcb2b9a4bd", size = 1195080, upload-time = "2025-10-06T20:21:49.246Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/a9e4d2bf91d515c0f74afc526fd773a812232dd6cda33ebea7f531202325/tiktoken-0.12.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a1af81a6c44f008cba48494089dd98cccb8b313f55e961a52f5b222d1e507967", size = 1255240, upload-time = "2025-10-06T20:21:50.274Z" }, + { url = "https://files.pythonhosted.org/packages/9d/15/963819345f1b1fb0809070a79e9dd96938d4ca41297367d471733e79c76c/tiktoken-0.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e68e3e593637b53e56f7237be560f7a394451cb8c11079755e80ae64b9e6def", size = 879422, upload-time = "2025-10-06T20:21:51.734Z" }, + { url = "https://files.pythonhosted.org/packages/a4/85/be65d39d6b647c79800fd9d29241d081d4eeb06271f383bb87200d74cf76/tiktoken-0.12.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b97f74aca0d78a1ff21b8cd9e9925714c15a9236d6ceacf5c7327c117e6e21e8", size = 1050728, upload-time = "2025-10-06T20:21:52.756Z" }, + { url = "https://files.pythonhosted.org/packages/4a/42/6573e9129bc55c9bf7300b3a35bef2c6b9117018acca0dc760ac2d93dffe/tiktoken-0.12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2b90f5ad190a4bb7c3eb30c5fa32e1e182ca1ca79f05e49b448438c3e225a49b", size = 994049, upload-time = "2025-10-06T20:21:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/66/c5/ed88504d2f4a5fd6856990b230b56d85a777feab84e6129af0822f5d0f70/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:65b26c7a780e2139e73acc193e5c63ac754021f160df919add909c1492c0fb37", size = 1129008, upload-time = "2025-10-06T20:21:54.832Z" }, + { url = "https://files.pythonhosted.org/packages/f4/90/3dae6cc5436137ebd38944d396b5849e167896fc2073da643a49f372dc4f/tiktoken-0.12.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:edde1ec917dfd21c1f2f8046b86348b0f54a2c0547f68149d8600859598769ad", size = 1152665, upload-time = "2025-10-06T20:21:56.129Z" }, + { url = "https://files.pythonhosted.org/packages/a3/fe/26df24ce53ffde419a42f5f53d755b995c9318908288c17ec3f3448313a3/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:35a2f8ddd3824608b3d650a000c1ef71f730d0c56486845705a8248da00f9fe5", size = 1194230, upload-time = "2025-10-06T20:21:57.546Z" }, + { url = "https://files.pythonhosted.org/packages/20/cc/b064cae1a0e9fac84b0d2c46b89f4e57051a5f41324e385d10225a984c24/tiktoken-0.12.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:83d16643edb7fa2c99eff2ab7733508aae1eebb03d5dfc46f5565862810f24e3", size = 1254688, upload-time = "2025-10-06T20:21:58.619Z" }, + { url = "https://files.pythonhosted.org/packages/81/10/b8523105c590c5b8349f2587e2fdfe51a69544bd5a76295fc20f2374f470/tiktoken-0.12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffc5288f34a8bc02e1ea7047b8d041104791d2ddbf42d1e5fa07822cbffe16bd", size = 878694, upload-time = "2025-10-06T20:21:59.876Z" }, + { url = "https://files.pythonhosted.org/packages/00/61/441588ee21e6b5cdf59d6870f86beb9789e532ee9718c251b391b70c68d6/tiktoken-0.12.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:775c2c55de2310cc1bc9a3ad8826761cbdc87770e586fd7b6da7d4589e13dab3", size = 1050802, upload-time = "2025-10-06T20:22:00.96Z" }, + { url = "https://files.pythonhosted.org/packages/1f/05/dcf94486d5c5c8d34496abe271ac76c5b785507c8eae71b3708f1ad9b45a/tiktoken-0.12.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a01b12f69052fbe4b080a2cfb867c4de12c704b56178edf1d1d7b273561db160", size = 993995, upload-time = "2025-10-06T20:22:02.788Z" }, + { url = "https://files.pythonhosted.org/packages/a0/70/5163fe5359b943f8db9946b62f19be2305de8c3d78a16f629d4165e2f40e/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:01d99484dc93b129cd0964f9d34eee953f2737301f18b3c7257bf368d7615baa", size = 1128948, upload-time = "2025-10-06T20:22:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/0c/da/c028aa0babf77315e1cef357d4d768800c5f8a6de04d0eac0f377cb619fa/tiktoken-0.12.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:4a1a4fcd021f022bfc81904a911d3df0f6543b9e7627b51411da75ff2fe7a1be", size = 1151986, upload-time = "2025-10-06T20:22:05.173Z" }, + { url = "https://files.pythonhosted.org/packages/a0/5a/886b108b766aa53e295f7216b509be95eb7d60b166049ce2c58416b25f2a/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:981a81e39812d57031efdc9ec59fa32b2a5a5524d20d4776574c4b4bd2e9014a", size = 1194222, upload-time = "2025-10-06T20:22:06.265Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/4db272048397636ac7a078d22773dd2795b1becee7bc4922fe6207288d57/tiktoken-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9baf52f84a3f42eef3ff4e754a0db79a13a27921b457ca9832cf944c6be4f8f3", size = 1255097, upload-time = "2025-10-06T20:22:07.403Z" }, + { url = "https://files.pythonhosted.org/packages/8e/32/45d02e2e0ea2be3a9ed22afc47d93741247e75018aac967b713b2941f8ea/tiktoken-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:b8a0cd0c789a61f31bf44851defbd609e8dd1e2c8589c614cc1060940ef1f697", size = 879117, upload-time = "2025-10-06T20:22:08.418Z" }, + { url = "https://files.pythonhosted.org/packages/ce/76/994fc868f88e016e6d05b0da5ac24582a14c47893f4474c3e9744283f1d5/tiktoken-0.12.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d5f89ea5680066b68bcb797ae85219c72916c922ef0fcdd3480c7d2315ffff16", size = 1050309, upload-time = "2025-10-06T20:22:10.939Z" }, + { url = "https://files.pythonhosted.org/packages/f6/b8/57ef1456504c43a849821920d582a738a461b76a047f352f18c0b26c6516/tiktoken-0.12.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:b4e7ed1c6a7a8a60a3230965bdedba8cc58f68926b835e519341413370e0399a", size = 993712, upload-time = "2025-10-06T20:22:12.115Z" }, + { url = "https://files.pythonhosted.org/packages/72/90/13da56f664286ffbae9dbcfadcc625439142675845baa62715e49b87b68b/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:fc530a28591a2d74bce821d10b418b26a094bf33839e69042a6e86ddb7a7fb27", size = 1128725, upload-time = "2025-10-06T20:22:13.541Z" }, + { url = "https://files.pythonhosted.org/packages/05/df/4f80030d44682235bdaecd7346c90f67ae87ec8f3df4a3442cb53834f7e4/tiktoken-0.12.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:06a9f4f49884139013b138920a4c393aa6556b2f8f536345f11819389c703ebb", size = 1151875, upload-time = "2025-10-06T20:22:14.559Z" }, + { url = "https://files.pythonhosted.org/packages/22/1f/ae535223a8c4ef4c0c1192e3f9b82da660be9eb66b9279e95c99288e9dab/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:04f0e6a985d95913cabc96a741c5ffec525a2c72e9df086ff17ebe35985c800e", size = 1194451, upload-time = "2025-10-06T20:22:15.545Z" }, + { url = "https://files.pythonhosted.org/packages/78/a7/f8ead382fce0243cb625c4f266e66c27f65ae65ee9e77f59ea1653b6d730/tiktoken-0.12.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ee8f9ae00c41770b5f9b0bb1235474768884ae157de3beb5439ca0fd70f3e25", size = 1253794, upload-time = "2025-10-06T20:22:16.624Z" }, + { url = "https://files.pythonhosted.org/packages/93/e0/6cc82a562bc6365785a3ff0af27a2a092d57c47d7a81d9e2295d8c36f011/tiktoken-0.12.0-cp313-cp313t-win_amd64.whl", hash = "sha256:dc2dd125a62cb2b3d858484d6c614d136b5b848976794edfb63688d539b8b93f", size = 878777, upload-time = "2025-10-06T20:22:18.036Z" }, ] [[package]] @@ -4543,9 +4593,9 @@ dependencies = [ { name = "requests" }, { name = "requests-file" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/65/7b/644fbbb49564a6cb124a8582013315a41148dba2f72209bba14a84242bf0/tldextract-5.3.1.tar.gz", hash = "sha256:a72756ca170b2510315076383ea2993478f7da6f897eef1f4a5400735d5057fb", size = 126105, upload_time = "2025-12-28T23:58:05.532Z" } +sdist = { url = "https://files.pythonhosted.org/packages/65/7b/644fbbb49564a6cb124a8582013315a41148dba2f72209bba14a84242bf0/tldextract-5.3.1.tar.gz", hash = "sha256:a72756ca170b2510315076383ea2993478f7da6f897eef1f4a5400735d5057fb", size = 126105, upload-time = "2025-12-28T23:58:05.532Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6d/42/0e49d6d0aac449ca71952ec5bae764af009754fcb2e76a5cc097543747b3/tldextract-5.3.1-py3-none-any.whl", hash = "sha256:6bfe36d518de569c572062b788e16a659ccaceffc486d243af0484e8ecf432d9", size = 105886, upload_time = "2025-12-28T23:58:04.071Z" }, + { url = "https://files.pythonhosted.org/packages/6d/42/0e49d6d0aac449ca71952ec5bae764af009754fcb2e76a5cc097543747b3/tldextract-5.3.1-py3-none-any.whl", hash = "sha256:6bfe36d518de569c572062b788e16a659ccaceffc486d243af0484e8ecf432d9", size = 105886, upload-time = "2025-12-28T23:58:04.071Z" }, ] [[package]] @@ -4555,72 +4605,72 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "huggingface-hub" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload_time = "2026-01-05T10:45:15.988Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275, upload_time = "2026-01-05T10:41:02.158Z" }, - { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload_time = "2026-01-05T10:41:00.276Z" }, - { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload_time = "2026-01-05T10:40:32.165Z" }, - { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835, upload_time = "2026-01-05T10:40:38.847Z" }, - { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673, upload_time = "2026-01-05T10:40:56.614Z" }, - { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818, upload_time = "2026-01-05T10:40:44.507Z" }, - { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195, upload_time = "2026-01-05T10:40:51.139Z" }, - { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload_time = "2026-01-05T10:40:58.331Z" }, - { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload_time = "2026-01-05T10:41:04.053Z" }, - { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069, upload_time = "2026-01-05T10:45:10.673Z" }, - { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263, upload_time = "2026-01-05T10:45:12.559Z" }, - { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload_time = "2026-01-05T10:45:14.333Z" }, - { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363, upload_time = "2026-01-05T10:45:20.593Z" }, - { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786, upload_time = "2026-01-05T10:45:18.411Z" }, - { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133, upload_time = "2026-01-05T10:45:17.232Z" }, - { url = "https://files.pythonhosted.org/packages/84/04/655b79dbcc9b3ac5f1479f18e931a344af67e5b7d3b251d2dcdcd7558592/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4", size = 3282301, upload_time = "2026-01-05T10:40:34.858Z" }, - { url = "https://files.pythonhosted.org/packages/46/cd/e4851401f3d8f6f45d8480262ab6a5c8cb9c4302a790a35aa14eeed6d2fd/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c", size = 3161308, upload_time = "2026-01-05T10:40:40.737Z" }, - { url = "https://files.pythonhosted.org/packages/6f/6e/55553992a89982cd12d4a66dddb5e02126c58677ea3931efcbe601d419db/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195", size = 3718964, upload_time = "2026-01-05T10:40:46.56Z" }, - { url = "https://files.pythonhosted.org/packages/59/8c/b1c87148aa15e099243ec9f0cf9d0e970cc2234c3257d558c25a2c5304e6/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5", size = 3373542, upload_time = "2026-01-05T10:40:52.803Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/73/6f/f80cfef4a312e1fb34baf7d85c72d4411afde10978d4657f8cdd811d3ccc/tokenizers-0.22.2.tar.gz", hash = "sha256:473b83b915e547aa366d1eee11806deaf419e17be16310ac0a14077f1e28f917", size = 372115, upload-time = "2026-01-05T10:45:15.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/92/97/5dbfabf04c7e348e655e907ed27913e03db0923abb5dfdd120d7b25630e1/tokenizers-0.22.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:544dd704ae7238755d790de45ba8da072e9af3eea688f698b137915ae959281c", size = 3100275, upload-time = "2026-01-05T10:41:02.158Z" }, + { url = "https://files.pythonhosted.org/packages/2e/47/174dca0502ef88b28f1c9e06b73ce33500eedfac7a7692108aec220464e7/tokenizers-0.22.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1e418a55456beedca4621dbab65a318981467a2b188e982a23e117f115ce5001", size = 2981472, upload-time = "2026-01-05T10:41:00.276Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/7990e799f1309a8b87af6b948f31edaa12a3ed22d11b352eaf4f4b2e5753/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2249487018adec45d6e3554c71d46eb39fa8ea67156c640f7513eb26f318cec7", size = 3290736, upload-time = "2026-01-05T10:40:32.165Z" }, + { url = "https://files.pythonhosted.org/packages/78/59/09d0d9ba94dcd5f4f1368d4858d24546b4bdc0231c2354aa31d6199f0399/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25b85325d0815e86e0bac263506dd114578953b7b53d7de09a6485e4a160a7dd", size = 3168835, upload-time = "2026-01-05T10:40:38.847Z" }, + { url = "https://files.pythonhosted.org/packages/47/50/b3ebb4243e7160bda8d34b731e54dd8ab8b133e50775872e7a434e524c28/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfb88f22a209ff7b40a576d5324bf8286b519d7358663db21d6246fb17eea2d5", size = 3521673, upload-time = "2026-01-05T10:40:56.614Z" }, + { url = "https://files.pythonhosted.org/packages/e0/fa/89f4cb9e08df770b57adb96f8cbb7e22695a4cb6c2bd5f0c4f0ebcf33b66/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c774b1276f71e1ef716e5486f21e76333464f47bece56bbd554485982a9e03e", size = 3724818, upload-time = "2026-01-05T10:40:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/64/04/ca2363f0bfbe3b3d36e95bf67e56a4c88c8e3362b658e616d1ac185d47f2/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df6c4265b289083bf710dff49bc51ef252f9d5be33a45ee2bed151114a56207b", size = 3379195, upload-time = "2026-01-05T10:40:51.139Z" }, + { url = "https://files.pythonhosted.org/packages/2e/76/932be4b50ef6ccedf9d3c6639b056a967a86258c6d9200643f01269211ca/tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:369cc9fc8cc10cb24143873a0d95438bb8ee257bb80c71989e3ee290e8d72c67", size = 3274982, upload-time = "2026-01-05T10:40:58.331Z" }, + { url = "https://files.pythonhosted.org/packages/1d/28/5f9f5a4cc211b69e89420980e483831bcc29dade307955cc9dc858a40f01/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:29c30b83d8dcd061078b05ae0cb94d3c710555fbb44861139f9f83dcca3dc3e4", size = 9478245, upload-time = "2026-01-05T10:41:04.053Z" }, + { url = "https://files.pythonhosted.org/packages/6c/fb/66e2da4704d6aadebf8cb39f1d6d1957df667ab24cff2326b77cda0dcb85/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:37ae80a28c1d3265bb1f22464c856bd23c02a05bb211e56d0c5301a435be6c1a", size = 9560069, upload-time = "2026-01-05T10:45:10.673Z" }, + { url = "https://files.pythonhosted.org/packages/16/04/fed398b05caa87ce9b1a1bb5166645e38196081b225059a6edaff6440fac/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:791135ee325f2336f498590eb2f11dc5c295232f288e75c99a36c5dbce63088a", size = 9899263, upload-time = "2026-01-05T10:45:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/05/a1/d62dfe7376beaaf1394917e0f8e93ee5f67fea8fcf4107501db35996586b/tokenizers-0.22.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38337540fbbddff8e999d59970f3c6f35a82de10053206a7562f1ea02d046fa5", size = 10033429, upload-time = "2026-01-05T10:45:14.333Z" }, + { url = "https://files.pythonhosted.org/packages/fd/18/a545c4ea42af3df6effd7d13d250ba77a0a86fb20393143bbb9a92e434d4/tokenizers-0.22.2-cp39-abi3-win32.whl", hash = "sha256:a6bf3f88c554a2b653af81f3204491c818ae2ac6fbc09e76ef4773351292bc92", size = 2502363, upload-time = "2026-01-05T10:45:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/65/71/0670843133a43d43070abeb1949abfdef12a86d490bea9cd9e18e37c5ff7/tokenizers-0.22.2-cp39-abi3-win_amd64.whl", hash = "sha256:c9ea31edff2968b44a88f97d784c2f16dc0729b8b143ed004699ebca91f05c48", size = 2747786, upload-time = "2026-01-05T10:45:18.411Z" }, + { url = "https://files.pythonhosted.org/packages/72/f4/0de46cfa12cdcbcd464cc59fde36912af405696f687e53a091fb432f694c/tokenizers-0.22.2-cp39-abi3-win_arm64.whl", hash = "sha256:9ce725d22864a1e965217204946f830c37876eee3b2ba6fc6255e8e903d5fcbc", size = 2612133, upload-time = "2026-01-05T10:45:17.232Z" }, + { url = "https://files.pythonhosted.org/packages/84/04/655b79dbcc9b3ac5f1479f18e931a344af67e5b7d3b251d2dcdcd7558592/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:753d47ebd4542742ef9261d9da92cd545b2cacbb48349a1225466745bb866ec4", size = 3282301, upload-time = "2026-01-05T10:40:34.858Z" }, + { url = "https://files.pythonhosted.org/packages/46/cd/e4851401f3d8f6f45d8480262ab6a5c8cb9c4302a790a35aa14eeed6d2fd/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e10bf9113d209be7cd046d40fbabbaf3278ff6d18eb4da4c500443185dc1896c", size = 3161308, upload-time = "2026-01-05T10:40:40.737Z" }, + { url = "https://files.pythonhosted.org/packages/6f/6e/55553992a89982cd12d4a66dddb5e02126c58677ea3931efcbe601d419db/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:64d94e84f6660764e64e7e0b22baa72f6cd942279fdbb21d46abd70d179f0195", size = 3718964, upload-time = "2026-01-05T10:40:46.56Z" }, + { url = "https://files.pythonhosted.org/packages/59/8c/b1c87148aa15e099243ec9f0cf9d0e970cc2234c3257d558c25a2c5304e6/tokenizers-0.22.2-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f01a9c019878532f98927d2bacb79bbb404b43d3437455522a00a30718cdedb5", size = 3373542, upload-time = "2026-01-05T10:40:52.803Z" }, ] [[package]] name = "tomli" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload_time = "2026-01-11T11:22:38.165Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload_time = "2026-01-11T11:21:45.27Z" }, - { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload_time = "2026-01-11T11:21:46.873Z" }, - { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload_time = "2026-01-11T11:21:48.503Z" }, - { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload_time = "2026-01-11T11:21:49.456Z" }, - { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload_time = "2026-01-11T11:21:50.755Z" }, - { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload_time = "2026-01-11T11:21:51.81Z" }, - { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload_time = "2026-01-11T11:21:52.647Z" }, - { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload_time = "2026-01-11T11:21:53.459Z" }, - { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload_time = "2026-01-11T11:21:54.831Z" }, - { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload_time = "2026-01-11T11:21:56.07Z" }, - { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload_time = "2026-01-11T11:21:57.467Z" }, - { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload_time = "2026-01-11T11:21:58.661Z" }, - { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload_time = "2026-01-11T11:22:00.178Z" }, - { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload_time = "2026-01-11T11:22:01.238Z" }, - { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload_time = "2026-01-11T11:22:02.727Z" }, - { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload_time = "2026-01-11T11:22:03.777Z" }, - { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload_time = "2026-01-11T11:22:04.86Z" }, - { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload_time = "2026-01-11T11:22:05.854Z" }, - { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload_time = "2026-01-11T11:22:06.703Z" }, - { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload_time = "2026-01-11T11:22:07.56Z" }, - { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload_time = "2026-01-11T11:22:08.344Z" }, - { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload_time = "2026-01-11T11:22:09.951Z" }, - { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload_time = "2026-01-11T11:22:11.27Z" }, - { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload_time = "2026-01-11T11:22:12.325Z" }, - { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload_time = "2026-01-11T11:22:13.865Z" }, - { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload_time = "2026-01-11T11:22:15.224Z" }, - { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload_time = "2026-01-11T11:22:16.009Z" }, - { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload_time = "2026-01-11T11:22:37.446Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, ] [[package]] name = "tomlkit" version = "0.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/51/db/03eaf4331631ef6b27d6e3c9b68c54dc6f0d63d87201fed600cc409307fd/tomlkit-0.15.0.tar.gz", hash = "sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3", size = 161875, upload_time = "2026-05-10T07:38:22.245Z" } +sdist = { url = "https://files.pythonhosted.org/packages/51/db/03eaf4331631ef6b27d6e3c9b68c54dc6f0d63d87201fed600cc409307fd/tomlkit-0.15.0.tar.gz", hash = "sha256:7d1a9ecba3086638211b13814ea79c90dd54dd11993564376f3aa92271f5c7a3", size = 161875, upload-time = "2026-05-10T07:38:22.245Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl", hash = "sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738", size = 41328, upload_time = "2026-05-10T07:38:23.517Z" }, + { url = "https://files.pythonhosted.org/packages/6a/43/8bd850ee71a191bf072e31302c73a66be413fecdd98fdcd111ecbcce13ca/tomlkit-0.15.0-py3-none-any.whl", hash = "sha256:4dbc8f0fc024412b57ced8757ac7461305126a648ff8c2c807fcb8e133a78738", size = 41328, upload-time = "2026-05-10T07:38:23.517Z" }, ] [[package]] @@ -4643,11 +4693,11 @@ dependencies = [ { name = "typing-extensions", marker = "sys_platform == 'darwin'" }, ] wheels = [ - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91209c7d8a2460b76e8ff5b28b7623da4ab1d27474b79e1de83e954871985afe", upload_time = "2026-03-23T15:16:50Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d75eadcd97fe0dc7cd0eedc4d72152484c19cb2cfe46ce55766c8e129116425f", upload_time = "2026-03-23T15:16:54Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:43b35116802c85fb88d99f4a396b8bd4472bfca1dd82e69499e5a4f9b8b4e252", upload_time = "2026-03-23T15:16:58Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442ec9dc78592564fdad69cf0beaa9da2f82ab810ccb4f13903869a90bf3f15d", upload_time = "2026-03-23T15:17:02Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cc3a195701bba2239c313ee311487f80f8aaebe9e89b9073dddbcf2f93b5a0ba", upload_time = "2026-03-23T15:17:06Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:91209c7d8a2460b76e8ff5b28b7623da4ab1d27474b79e1de83e954871985afe", upload-time = "2026-03-23T15:16:50Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d75eadcd97fe0dc7cd0eedc4d72152484c19cb2cfe46ce55766c8e129116425f", upload-time = "2026-03-23T15:16:54Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:43b35116802c85fb88d99f4a396b8bd4472bfca1dd82e69499e5a4f9b8b4e252", upload-time = "2026-03-23T15:16:58Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:442ec9dc78592564fdad69cf0beaa9da2f82ab810ccb4f13903869a90bf3f15d", upload-time = "2026-03-23T15:17:02Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cc3a195701bba2239c313ee311487f80f8aaebe9e89b9073dddbcf2f93b5a0ba", upload-time = "2026-03-23T15:17:06Z" }, ] [[package]] @@ -4674,26 +4724,26 @@ dependencies = [ { name = "typing-extensions", marker = "sys_platform != 'darwin'" }, ] wheels = [ - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-linux_s390x.whl", hash = "sha256:3d8a7789e61dbf11f8922672c43354614b9b0debd40899c0a94f1ad9e0bd6bd9", upload_time = "2026-04-27T21:55:13Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c7dbae3a5cd0a4a3eab760742b9be3bd79282259488cf83176197cef31ce1610", upload_time = "2026-04-27T21:55:20Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:f378df648bf7fb94bbc820dfec37d3d346bd1703c692a2215edebf6edcef8b75", upload_time = "2026-04-27T21:55:27Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:fe708aa0c1df5cce9962df806065534ae9af5eb29ee6145a705176266427c931", upload_time = "2026-04-27T21:55:35Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-linux_s390x.whl", hash = "sha256:5214b203ee187f8746c66f1378b72611b7c1e15c5cb325037541899e705ea24e", upload_time = "2026-04-27T21:55:40Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:46fbb0aa257bb781efbfad648f5b045c0e232573b661f1461593db61342e9096", upload_time = "2026-04-28T00:05:38Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8a56a8c95531ef0e454510ba8bbd9d11dc7a9000337265210b10f6bfeacdd485", upload_time = "2026-04-28T00:05:47Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:51a221769d4a316f4b47a786c12e67c3f4807db8ed13c7b8817ebe73786acbbc", upload_time = "2026-04-28T00:06:00Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-linux_s390x.whl", hash = "sha256:2db3ae5404e32cb42b5fcbd94f13607761eaec0cf1687fde95095289d1e26cfb", upload_time = "2026-04-28T00:06:06Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:70ecb2659af6373b7c5336e692e665605b0201ea21ff51aaea47e1d75ea6b5aa", upload_time = "2026-04-28T00:06:14Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f82e2ae20c1545bb03997d1cc3143d94e14b800038669ee1aca45808a9acc338", upload_time = "2026-04-28T00:06:24Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:1abeaa46fa7532ed35ed79146f4de5d7a9d4b30462c98052ea4ddfe781ea3eca", upload_time = "2026-04-28T00:06:34Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-linux_s390x.whl", hash = "sha256:d1eff25ccc454faf21c9666c81bfab8e405e87c12d300708d4559620bc191a36", upload_time = "2026-04-28T00:06:42Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:48b3e21a311445acdd0b27f13830e21d93adef70d4721e051e9f059baeb9b8f9", upload_time = "2026-04-28T00:06:51Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:45025d7752dbc6b4c784c03afaee9c5f19730ce084b2e43fc9a2fe1677d9ff86", upload_time = "2026-04-28T00:07:02Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:ed70d4a4fc9f8b826c02fa1a9800a83820fb2fa6ae607680b53390f9ef394d85", upload_time = "2026-04-28T00:07:12Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-linux_s390x.whl", hash = "sha256:65d427a196ab0abe359b93c5bffedd76ded02df2b1b1d2d9f11a2609b69f426a", upload_time = "2026-04-28T00:07:19Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8f13dc7075ae04ca5f876a9f40b4e47522a04c23e30824b4409f42a3f3e57aa4", upload_time = "2026-04-28T00:07:27Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8713bb8679376ea0ec25742100b6cfb8447e0904c48bddefb9eb0ac1abbfa60a", upload_time = "2026-04-28T00:07:37Z" }, - { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:62ec1f1694c185f601eab74eb7fc0e8e10c64c06ae82f13c3592774c231c4877", upload_time = "2026-04-28T00:07:47Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-linux_s390x.whl", hash = "sha256:3d8a7789e61dbf11f8922672c43354614b9b0debd40899c0a94f1ad9e0bd6bd9", upload-time = "2026-04-27T21:55:13Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:c7dbae3a5cd0a4a3eab760742b9be3bd79282259488cf83176197cef31ce1610", upload-time = "2026-04-27T21:55:20Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:f378df648bf7fb94bbc820dfec37d3d346bd1703c692a2215edebf6edcef8b75", upload-time = "2026-04-27T21:55:27Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp310-cp310-win_amd64.whl", hash = "sha256:fe708aa0c1df5cce9962df806065534ae9af5eb29ee6145a705176266427c931", upload-time = "2026-04-27T21:55:35Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-linux_s390x.whl", hash = "sha256:5214b203ee187f8746c66f1378b72611b7c1e15c5cb325037541899e705ea24e", upload-time = "2026-04-27T21:55:40Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:46fbb0aa257bb781efbfad648f5b045c0e232573b661f1461593db61342e9096", upload-time = "2026-04-28T00:05:38Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8a56a8c95531ef0e454510ba8bbd9d11dc7a9000337265210b10f6bfeacdd485", upload-time = "2026-04-28T00:05:47Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp311-cp311-win_amd64.whl", hash = "sha256:51a221769d4a316f4b47a786c12e67c3f4807db8ed13c7b8817ebe73786acbbc", upload-time = "2026-04-28T00:06:00Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-linux_s390x.whl", hash = "sha256:2db3ae5404e32cb42b5fcbd94f13607761eaec0cf1687fde95095289d1e26cfb", upload-time = "2026-04-28T00:06:06Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:70ecb2659af6373b7c5336e692e665605b0201ea21ff51aaea47e1d75ea6b5aa", upload-time = "2026-04-28T00:06:14Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:f82e2ae20c1545bb03997d1cc3143d94e14b800038669ee1aca45808a9acc338", upload-time = "2026-04-28T00:06:24Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp312-cp312-win_amd64.whl", hash = "sha256:1abeaa46fa7532ed35ed79146f4de5d7a9d4b30462c98052ea4ddfe781ea3eca", upload-time = "2026-04-28T00:06:34Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-linux_s390x.whl", hash = "sha256:d1eff25ccc454faf21c9666c81bfab8e405e87c12d300708d4559620bc191a36", upload-time = "2026-04-28T00:06:42Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:48b3e21a311445acdd0b27f13830e21d93adef70d4721e051e9f059baeb9b8f9", upload-time = "2026-04-28T00:06:51Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:45025d7752dbc6b4c784c03afaee9c5f19730ce084b2e43fc9a2fe1677d9ff86", upload-time = "2026-04-28T00:07:02Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313-win_amd64.whl", hash = "sha256:ed70d4a4fc9f8b826c02fa1a9800a83820fb2fa6ae607680b53390f9ef394d85", upload-time = "2026-04-28T00:07:12Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-linux_s390x.whl", hash = "sha256:65d427a196ab0abe359b93c5bffedd76ded02df2b1b1d2d9f11a2609b69f426a", upload-time = "2026-04-28T00:07:19Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_aarch64.whl", hash = "sha256:8f13dc7075ae04ca5f876a9f40b4e47522a04c23e30824b4409f42a3f3e57aa4", upload-time = "2026-04-28T00:07:27Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:8713bb8679376ea0ec25742100b6cfb8447e0904c48bddefb9eb0ac1abbfa60a", upload-time = "2026-04-28T00:07:37Z" }, + { url = "https://download-r2.pytorch.org/whl/cpu/torch-2.11.0%2Bcpu-cp313-cp313t-win_amd64.whl", hash = "sha256:62ec1f1694c185f601eab74eb7fc0e8e10c64c06ae82f13c3592774c231c4877", upload-time = "2026-04-28T00:07:47Z" }, ] [[package]] @@ -4703,9 +4753,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload_time = "2026-02-03T17:35:53.048Z" } +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload_time = "2026-02-03T17:35:50.982Z" }, + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, ] [[package]] @@ -4724,9 +4774,9 @@ dependencies = [ { name = "tqdm" }, { name = "typer" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/f2/36/390075693b76d4fb4a2bea360fb6080347763bd1f1147c49ed0ed938778c/transformers-5.8.0.tar.gz", hash = "sha256:6cc9a1f0291d16b1c1b735bad775e78ebefff7722701d4e28f98aaaa2bd6fb91", size = 8528141, upload_time = "2026-05-05T16:50:04.778Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f2/36/390075693b76d4fb4a2bea360fb6080347763bd1f1147c49ed0ed938778c/transformers-5.8.0.tar.gz", hash = "sha256:6cc9a1f0291d16b1c1b735bad775e78ebefff7722701d4e28f98aaaa2bd6fb91", size = 8528141, upload-time = "2026-05-05T16:50:04.778Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/97/7b/5621d08b34ac35deb9fa14b58d27d124d21ef125ee1c64bc724ca47dfb63/transformers-5.8.0-py3-none-any.whl", hash = "sha256:e9d2cae6d195a7e1e05164c5ebf26142a7044e4dc4267274f4809204f92827e4", size = 10630279, upload_time = "2026-05-05T16:50:01.026Z" }, + { url = "https://files.pythonhosted.org/packages/97/7b/5621d08b34ac35deb9fa14b58d27d124d21ef125ee1c64bc724ca47dfb63/transformers-5.8.0-py3-none-any.whl", hash = "sha256:e9d2cae6d195a7e1e05164c5ebf26142a7044e4dc4267274f4809204f92827e4", size = 10630279, upload-time = "2026-05-05T16:50:01.026Z" }, ] [[package]] @@ -4739,9 +4789,9 @@ dependencies = [ { name = "shellingham" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/21/ca/950278884e2ca20547ff3eb109478c6baf6b8cf219318e6bc4f666fad8e8/typer-0.19.2.tar.gz", hash = "sha256:9ad824308ded0ad06cc716434705f691d4ee0bfd0fb081839d2e426860e7fdca", size = 104755, upload_time = "2025-09-23T09:47:48.256Z" } +sdist = { url = "https://files.pythonhosted.org/packages/21/ca/950278884e2ca20547ff3eb109478c6baf6b8cf219318e6bc4f666fad8e8/typer-0.19.2.tar.gz", hash = "sha256:9ad824308ded0ad06cc716434705f691d4ee0bfd0fb081839d2e426860e7fdca", size = 104755, upload-time = "2025-09-23T09:47:48.256Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/00/22/35617eee79080a5d071d0f14ad698d325ee6b3bf824fc0467c03b30e7fa8/typer-0.19.2-py3-none-any.whl", hash = "sha256:755e7e19670ffad8283db353267cb81ef252f595aa6834a0d1ca9312d9326cb9", size = 46748, upload_time = "2025-09-23T09:47:46.777Z" }, + { url = "https://files.pythonhosted.org/packages/00/22/35617eee79080a5d071d0f14ad698d325ee6b3bf824fc0467c03b30e7fa8/typer-0.19.2-py3-none-any.whl", hash = "sha256:755e7e19670ffad8283db353267cb81ef252f595aa6834a0d1ca9312d9326cb9", size = 46748, upload-time = "2025-09-23T09:47:46.777Z" }, ] [[package]] @@ -4752,27 +4802,27 @@ dependencies = [ { name = "annotated-doc" }, { name = "click" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a5/ca/0d9d822fd8a4c7e830cba36a2557b070d4b4a9558a0460377a61f8fb315d/typer_slim-0.21.2.tar.gz", hash = "sha256:78f20d793036a62aaf9c3798306142b08261d4b2a941c6e463081239f062a2f9", size = 120497, upload_time = "2026-02-10T19:33:45.836Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ca/0d9d822fd8a4c7e830cba36a2557b070d4b4a9558a0460377a61f8fb315d/typer_slim-0.21.2.tar.gz", hash = "sha256:78f20d793036a62aaf9c3798306142b08261d4b2a941c6e463081239f062a2f9", size = 120497, upload-time = "2026-02-10T19:33:45.836Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/03/e09325cfc40a33a82b31ba1a3f1d97e85246736856a45a43b19fcb48b1c2/typer_slim-0.21.2-py3-none-any.whl", hash = "sha256:4705082bb6c66c090f60e47c8be09a93158c139ce0aa98df7c6c47e723395e5f", size = 56790, upload_time = "2026-02-10T19:33:47.221Z" }, + { url = "https://files.pythonhosted.org/packages/54/03/e09325cfc40a33a82b31ba1a3f1d97e85246736856a45a43b19fcb48b1c2/typer_slim-0.21.2-py3-none-any.whl", hash = "sha256:4705082bb6c66c090f60e47c8be09a93158c139ce0aa98df7c6c47e723395e5f", size = 56790, upload-time = "2026-02-10T19:33:47.221Z" }, ] [[package]] name = "types-passlib" version = "1.7.7.20260211" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/718ff8cbef9366e597aefd58929321702d3e183998cea89949ab5423281f/types_passlib-1.7.7.20260211.tar.gz", hash = "sha256:af73afffe1ce94c95c7f6072bd261572c29845de74fdffa3a265fc7634bca056", size = 25666, upload_time = "2026-02-10T15:11:59.517Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b5/f4/718ff8cbef9366e597aefd58929321702d3e183998cea89949ab5423281f/types_passlib-1.7.7.20260211.tar.gz", hash = "sha256:af73afffe1ce94c95c7f6072bd261572c29845de74fdffa3a265fc7634bca056", size = 25666, upload-time = "2026-02-10T15:11:59.517Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/14/6a/e9fc6a5b8f9a380a4a56b9f1e4dba5c6899561868017b17f6de382808b6f/types_passlib-1.7.7.20260211-py3-none-any.whl", hash = "sha256:c0f1ad440c513a6c07f333b28249530686056fd54a7b3ac6128ae31fd46305d3", size = 40457, upload_time = "2026-02-10T15:11:58.647Z" }, + { url = "https://files.pythonhosted.org/packages/14/6a/e9fc6a5b8f9a380a4a56b9f1e4dba5c6899561868017b17f6de382808b6f/types_passlib-1.7.7.20260211-py3-none-any.whl", hash = "sha256:c0f1ad440c513a6c07f333b28249530686056fd54a7b3ac6128ae31fd46305d3", size = 40457, upload-time = "2026-02-10T15:11:58.647Z" }, ] [[package]] name = "typing-extensions" version = "4.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload_time = "2025-08-25T13:49:26.313Z" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload_time = "2025-08-25T13:49:24.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, ] [[package]] @@ -4782,65 +4832,65 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload_time = "2025-10-01T02:14:41.687Z" } +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload_time = "2025-10-01T02:14:40.154Z" }, + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] [[package]] name = "tzdata" version = "2025.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload_time = "2025-12-13T17:45:35.667Z" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload_time = "2025-12-13T17:45:33.889Z" }, + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, ] [[package]] name = "uri-template" version = "1.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload_time = "2023-06-21T01:49:05.374Z" } +sdist = { url = "https://files.pythonhosted.org/packages/31/c7/0336f2bd0bcbada6ccef7aaa25e443c118a704f828a0620c6fa0207c1b64/uri-template-1.3.0.tar.gz", hash = "sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7", size = 21678, upload-time = "2023-06-21T01:49:05.374Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload_time = "2023-06-21T01:49:03.467Z" }, + { url = "https://files.pythonhosted.org/packages/e7/00/3fca040d7cf8a32776d3d81a00c8ee7457e00f80c649f1e4a863c8321ae9/uri_template-1.3.0-py3-none-any.whl", hash = "sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363", size = 11140, upload-time = "2023-06-21T01:49:03.467Z" }, ] [[package]] name = "urllib3" version = "2.6.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload_time = "2026-01-07T16:24:43.925Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload_time = "2026-01-07T16:24:42.685Z" }, + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, ] [[package]] name = "uuid-utils" version = "0.14.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/7c/3a926e847516e67bc6838634f2e54e24381105b4e80f9338dc35cca0086b/uuid_utils-0.14.0.tar.gz", hash = "sha256:fc5bac21e9933ea6c590433c11aa54aaca599f690c08069e364eb13a12f670b4", size = 22072, upload_time = "2026-01-20T20:37:15.729Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/42/42d003f4a99ddc901eef2fd41acb3694163835e037fb6dde79ad68a72342/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:f6695c0bed8b18a904321e115afe73b34444bc8451d0ce3244a1ec3b84deb0e5", size = 601786, upload_time = "2026-01-20T20:37:09.843Z" }, - { url = "https://files.pythonhosted.org/packages/96/e6/775dfb91f74b18f7207e3201eb31ee666d286579990dc69dd50db2d92813/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:4f0a730bbf2d8bb2c11b93e1005e91769f2f533fa1125ed1f00fd15b6fcc732b", size = 303943, upload_time = "2026-01-20T20:37:18.767Z" }, - { url = "https://files.pythonhosted.org/packages/17/82/ea5f5e85560b08a1f30cdc65f75e76494dc7aba9773f679e7eaa27370229/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40ce3fd1a4fdedae618fc3edc8faf91897012469169d600133470f49fd699ed3", size = 340467, upload_time = "2026-01-20T20:37:11.794Z" }, - { url = "https://files.pythonhosted.org/packages/ca/33/54b06415767f4569882e99b6470c6c8eeb97422686a6d432464f9967fd91/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ae4a98416a440e78f7d9543d11b11cae4bab538b7ed94ec5da5221481748f2", size = 346333, upload_time = "2026-01-20T20:37:12.818Z" }, - { url = "https://files.pythonhosted.org/packages/cb/10/a6bce636b8f95e65dc84bf4a58ce8205b8e0a2a300a38cdbc83a3f763d27/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:971e8c26b90d8ae727e7f2ac3ee23e265971d448b3672882f2eb44828b2b8c3e", size = 470859, upload_time = "2026-01-20T20:37:01.512Z" }, - { url = "https://files.pythonhosted.org/packages/8a/27/84121c51ea72f013f0e03d0886bcdfa96b31c9b83c98300a7bd5cc4fa191/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5cde1fa82804a8f9d2907b7aec2009d440062c63f04abbdb825fce717a5e860", size = 341988, upload_time = "2026-01-20T20:37:22.881Z" }, - { url = "https://files.pythonhosted.org/packages/90/a4/01c1c7af5e6a44f20b40183e8dac37d6ed83e7dc9e8df85370a15959b804/uuid_utils-0.14.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c7343862a2359e0bd48a7f3dfb5105877a1728677818bb694d9f40703264a2db", size = 365784, upload_time = "2026-01-20T20:37:10.808Z" }, - { url = "https://files.pythonhosted.org/packages/04/f0/65ee43ec617b8b6b1bf2a5aecd56a069a08cca3d9340c1de86024331bde3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c51e4818fdb08ccec12dc7083a01f49507b4608770a0ab22368001685d59381b", size = 523750, upload_time = "2026-01-20T20:37:06.152Z" }, - { url = "https://files.pythonhosted.org/packages/95/d3/6bf503e3f135a5dfe705a65e6f89f19bccd55ac3fb16cb5d3ec5ba5388b8/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:181bbcccb6f93d80a8504b5bd47b311a1c31395139596edbc47b154b0685b533", size = 615818, upload_time = "2026-01-20T20:37:21.816Z" }, - { url = "https://files.pythonhosted.org/packages/df/6c/99937dd78d07f73bba831c8dc9469dfe4696539eba2fc269ae1b92752f9e/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:5c8ae96101c3524ba8dbf762b6f05e9e9d896544786c503a727c5bf5cb9af1a7", size = 580831, upload_time = "2026-01-20T20:37:19.691Z" }, - { url = "https://files.pythonhosted.org/packages/44/fa/bbc9e2c25abd09a293b9b097a0d8fc16acd6a92854f0ec080f1ea7ad8bb3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:00ac3c6edfdaff7e1eed041f4800ae09a3361287be780d7610a90fdcde9befdc", size = 546333, upload_time = "2026-01-20T20:37:03.117Z" }, - { url = "https://files.pythonhosted.org/packages/e7/9b/e5e99b324b1b5f0c62882230455786df0bc66f67eff3b452447e703f45d2/uuid_utils-0.14.0-cp39-abi3-win32.whl", hash = "sha256:ec2fd80adf8e0e6589d40699e6f6df94c93edcc16dd999be0438dd007c77b151", size = 177319, upload_time = "2026-01-20T20:37:04.208Z" }, - { url = "https://files.pythonhosted.org/packages/d3/28/2c7d417ea483b6ff7820c948678fdf2ac98899dc7e43bb15852faa95acaf/uuid_utils-0.14.0-cp39-abi3-win_amd64.whl", hash = "sha256:efe881eb43a5504fad922644cb93d725fd8a6a6d949bd5a4b4b7d1a1587c7fd1", size = 182566, upload_time = "2026-01-20T20:37:16.868Z" }, - { url = "https://files.pythonhosted.org/packages/b8/86/49e4bdda28e962fbd7266684171ee29b3d92019116971d58783e51770745/uuid_utils-0.14.0-cp39-abi3-win_arm64.whl", hash = "sha256:32b372b8fd4ebd44d3a219e093fe981af4afdeda2994ee7db208ab065cfcd080", size = 182809, upload_time = "2026-01-20T20:37:05.139Z" }, - { url = "https://files.pythonhosted.org/packages/f1/03/1f1146e32e94d1f260dfabc81e1649102083303fb4ad549775c943425d9a/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:762e8d67992ac4d2454e24a141a1c82142b5bde10409818c62adbe9924ebc86d", size = 587430, upload_time = "2026-01-20T20:37:24.998Z" }, - { url = "https://files.pythonhosted.org/packages/87/ba/d5a7469362594d885fd9219fe9e851efbe65101d3ef1ef25ea321d7ce841/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:40be5bf0b13aa849d9062abc86c198be6a25ff35316ce0b89fc25f3bac6d525e", size = 298106, upload_time = "2026-01-20T20:37:23.896Z" }, - { url = "https://files.pythonhosted.org/packages/8a/11/3dafb2a5502586f59fd49e93f5802cd5face82921b3a0f3abb5f357cb879/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:191a90a6f3940d1b7322b6e6cceff4dd533c943659e0a15f788674407856a515", size = 333423, upload_time = "2026-01-20T20:37:17.828Z" }, - { url = "https://files.pythonhosted.org/packages/7c/f2/c8987663f0cdcf4d717a36d85b5db2a5589df0a4e129aa10f16f4380ef48/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4aa4525f4ad82f9d9c842f9a3703f1539c1808affbaec07bb1b842f6b8b96aa5", size = 338659, upload_time = "2026-01-20T20:37:14.286Z" }, - { url = "https://files.pythonhosted.org/packages/d1/c8/929d81665d83f0b2ffaecb8e66c3091a50f62c7cb5b65e678bd75a96684e/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdbd82ff20147461caefc375551595ecf77ebb384e46267f128aca45a0f2cdfc", size = 467029, upload_time = "2026-01-20T20:37:08.277Z" }, - { url = "https://files.pythonhosted.org/packages/8e/a0/27d7daa1bfed7163f4ccaf52d7d2f4ad7bb1002a85b45077938b91ee584f/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff57e8a5d540006ce73cf0841a643d445afe78ba12e75ac53a95ca2924a56be", size = 333298, upload_time = "2026-01-20T20:37:07.271Z" }, - { url = "https://files.pythonhosted.org/packages/63/d4/acad86ce012b42ce18a12f31ee2aa3cbeeb98664f865f05f68c882945913/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fd9112ca96978361201e669729784f26c71fecc9c13a7f8a07162c31bd4d1e2", size = 359217, upload_time = "2026-01-20T20:36:59.687Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/57/7c/3a926e847516e67bc6838634f2e54e24381105b4e80f9338dc35cca0086b/uuid_utils-0.14.0.tar.gz", hash = "sha256:fc5bac21e9933ea6c590433c11aa54aaca599f690c08069e364eb13a12f670b4", size = 22072, upload-time = "2026-01-20T20:37:15.729Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/42/42d003f4a99ddc901eef2fd41acb3694163835e037fb6dde79ad68a72342/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:f6695c0bed8b18a904321e115afe73b34444bc8451d0ce3244a1ec3b84deb0e5", size = 601786, upload-time = "2026-01-20T20:37:09.843Z" }, + { url = "https://files.pythonhosted.org/packages/96/e6/775dfb91f74b18f7207e3201eb31ee666d286579990dc69dd50db2d92813/uuid_utils-0.14.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:4f0a730bbf2d8bb2c11b93e1005e91769f2f533fa1125ed1f00fd15b6fcc732b", size = 303943, upload-time = "2026-01-20T20:37:18.767Z" }, + { url = "https://files.pythonhosted.org/packages/17/82/ea5f5e85560b08a1f30cdc65f75e76494dc7aba9773f679e7eaa27370229/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40ce3fd1a4fdedae618fc3edc8faf91897012469169d600133470f49fd699ed3", size = 340467, upload-time = "2026-01-20T20:37:11.794Z" }, + { url = "https://files.pythonhosted.org/packages/ca/33/54b06415767f4569882e99b6470c6c8eeb97422686a6d432464f9967fd91/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ae4a98416a440e78f7d9543d11b11cae4bab538b7ed94ec5da5221481748f2", size = 346333, upload-time = "2026-01-20T20:37:12.818Z" }, + { url = "https://files.pythonhosted.org/packages/cb/10/a6bce636b8f95e65dc84bf4a58ce8205b8e0a2a300a38cdbc83a3f763d27/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:971e8c26b90d8ae727e7f2ac3ee23e265971d448b3672882f2eb44828b2b8c3e", size = 470859, upload-time = "2026-01-20T20:37:01.512Z" }, + { url = "https://files.pythonhosted.org/packages/8a/27/84121c51ea72f013f0e03d0886bcdfa96b31c9b83c98300a7bd5cc4fa191/uuid_utils-0.14.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5cde1fa82804a8f9d2907b7aec2009d440062c63f04abbdb825fce717a5e860", size = 341988, upload-time = "2026-01-20T20:37:22.881Z" }, + { url = "https://files.pythonhosted.org/packages/90/a4/01c1c7af5e6a44f20b40183e8dac37d6ed83e7dc9e8df85370a15959b804/uuid_utils-0.14.0-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c7343862a2359e0bd48a7f3dfb5105877a1728677818bb694d9f40703264a2db", size = 365784, upload-time = "2026-01-20T20:37:10.808Z" }, + { url = "https://files.pythonhosted.org/packages/04/f0/65ee43ec617b8b6b1bf2a5aecd56a069a08cca3d9340c1de86024331bde3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:c51e4818fdb08ccec12dc7083a01f49507b4608770a0ab22368001685d59381b", size = 523750, upload-time = "2026-01-20T20:37:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/95/d3/6bf503e3f135a5dfe705a65e6f89f19bccd55ac3fb16cb5d3ec5ba5388b8/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:181bbcccb6f93d80a8504b5bd47b311a1c31395139596edbc47b154b0685b533", size = 615818, upload-time = "2026-01-20T20:37:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/df/6c/99937dd78d07f73bba831c8dc9469dfe4696539eba2fc269ae1b92752f9e/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:5c8ae96101c3524ba8dbf762b6f05e9e9d896544786c503a727c5bf5cb9af1a7", size = 580831, upload-time = "2026-01-20T20:37:19.691Z" }, + { url = "https://files.pythonhosted.org/packages/44/fa/bbc9e2c25abd09a293b9b097a0d8fc16acd6a92854f0ec080f1ea7ad8bb3/uuid_utils-0.14.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:00ac3c6edfdaff7e1eed041f4800ae09a3361287be780d7610a90fdcde9befdc", size = 546333, upload-time = "2026-01-20T20:37:03.117Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9b/e5e99b324b1b5f0c62882230455786df0bc66f67eff3b452447e703f45d2/uuid_utils-0.14.0-cp39-abi3-win32.whl", hash = "sha256:ec2fd80adf8e0e6589d40699e6f6df94c93edcc16dd999be0438dd007c77b151", size = 177319, upload-time = "2026-01-20T20:37:04.208Z" }, + { url = "https://files.pythonhosted.org/packages/d3/28/2c7d417ea483b6ff7820c948678fdf2ac98899dc7e43bb15852faa95acaf/uuid_utils-0.14.0-cp39-abi3-win_amd64.whl", hash = "sha256:efe881eb43a5504fad922644cb93d725fd8a6a6d949bd5a4b4b7d1a1587c7fd1", size = 182566, upload-time = "2026-01-20T20:37:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/b8/86/49e4bdda28e962fbd7266684171ee29b3d92019116971d58783e51770745/uuid_utils-0.14.0-cp39-abi3-win_arm64.whl", hash = "sha256:32b372b8fd4ebd44d3a219e093fe981af4afdeda2994ee7db208ab065cfcd080", size = 182809, upload-time = "2026-01-20T20:37:05.139Z" }, + { url = "https://files.pythonhosted.org/packages/f1/03/1f1146e32e94d1f260dfabc81e1649102083303fb4ad549775c943425d9a/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:762e8d67992ac4d2454e24a141a1c82142b5bde10409818c62adbe9924ebc86d", size = 587430, upload-time = "2026-01-20T20:37:24.998Z" }, + { url = "https://files.pythonhosted.org/packages/87/ba/d5a7469362594d885fd9219fe9e851efbe65101d3ef1ef25ea321d7ce841/uuid_utils-0.14.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:40be5bf0b13aa849d9062abc86c198be6a25ff35316ce0b89fc25f3bac6d525e", size = 298106, upload-time = "2026-01-20T20:37:23.896Z" }, + { url = "https://files.pythonhosted.org/packages/8a/11/3dafb2a5502586f59fd49e93f5802cd5face82921b3a0f3abb5f357cb879/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:191a90a6f3940d1b7322b6e6cceff4dd533c943659e0a15f788674407856a515", size = 333423, upload-time = "2026-01-20T20:37:17.828Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f2/c8987663f0cdcf4d717a36d85b5db2a5589df0a4e129aa10f16f4380ef48/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4aa4525f4ad82f9d9c842f9a3703f1539c1808affbaec07bb1b842f6b8b96aa5", size = 338659, upload-time = "2026-01-20T20:37:14.286Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c8/929d81665d83f0b2ffaecb8e66c3091a50f62c7cb5b65e678bd75a96684e/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cdbd82ff20147461caefc375551595ecf77ebb384e46267f128aca45a0f2cdfc", size = 467029, upload-time = "2026-01-20T20:37:08.277Z" }, + { url = "https://files.pythonhosted.org/packages/8e/a0/27d7daa1bfed7163f4ccaf52d7d2f4ad7bb1002a85b45077938b91ee584f/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eff57e8a5d540006ce73cf0841a643d445afe78ba12e75ac53a95ca2924a56be", size = 333298, upload-time = "2026-01-20T20:37:07.271Z" }, + { url = "https://files.pythonhosted.org/packages/63/d4/acad86ce012b42ce18a12f31ee2aa3cbeeb98664f865f05f68c882945913/uuid_utils-0.14.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fd9112ca96978361201e669729784f26c71fecc9c13a7f8a07162c31bd4d1e2", size = 359217, upload-time = "2026-01-20T20:36:59.687Z" }, ] [[package]] @@ -4852,9 +4902,9 @@ dependencies = [ { name = "h11" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/32/ce/eeb58ae4ac36fe09e3842eb02e0eb676bf2c53ae062b98f1b2531673efdd/uvicorn-0.41.0.tar.gz", hash = "sha256:09d11cf7008da33113824ee5a1c6422d89fbc2ff476540d69a34c87fab8b571a", size = 82633, upload_time = "2026-02-16T23:07:24.1Z" } +sdist = { url = "https://files.pythonhosted.org/packages/32/ce/eeb58ae4ac36fe09e3842eb02e0eb676bf2c53ae062b98f1b2531673efdd/uvicorn-0.41.0.tar.gz", hash = "sha256:09d11cf7008da33113824ee5a1c6422d89fbc2ff476540d69a34c87fab8b571a", size = 82633, upload-time = "2026-02-16T23:07:24.1Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/83/e4/d04a086285c20886c0daad0e026f250869201013d18f81d9ff5eada73a88/uvicorn-0.41.0-py3-none-any.whl", hash = "sha256:29e35b1d2c36a04b9e180d4007ede3bcb32a85fbdfd6c6aeb3f26839de088187", size = 68783, upload_time = "2026-02-16T23:07:22.357Z" }, + { url = "https://files.pythonhosted.org/packages/83/e4/d04a086285c20886c0daad0e026f250869201013d18f81d9ff5eada73a88/uvicorn-0.41.0-py3-none-any.whl", hash = "sha256:29e35b1d2c36a04b9e180d4007ede3bcb32a85fbdfd6c6aeb3f26839de088187", size = 68783, upload-time = "2026-02-16T23:07:22.357Z" }, ] [package.optional-dependencies] @@ -4872,32 +4922,32 @@ standard = [ name = "uvloop" version = "0.22.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload_time = "2025-10-16T22:17:19.342Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c", size = 1343335, upload_time = "2025-10-16T22:16:11.43Z" }, - { url = "https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792", size = 742903, upload_time = "2025-10-16T22:16:12.979Z" }, - { url = "https://files.pythonhosted.org/packages/09/bd/3667151ad0702282a1f4d5d29288fce8a13c8b6858bf0978c219cd52b231/uvloop-0.22.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86", size = 3648499, upload_time = "2025-10-16T22:16:14.451Z" }, - { url = "https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd", size = 3700133, upload_time = "2025-10-16T22:16:16.272Z" }, - { url = "https://files.pythonhosted.org/packages/09/e0/604f61d004ded805f24974c87ddd8374ef675644f476f01f1df90e4cdf72/uvloop-0.22.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2", size = 3512681, upload_time = "2025-10-16T22:16:18.07Z" }, - { url = "https://files.pythonhosted.org/packages/bb/ce/8491fd370b0230deb5eac69c7aae35b3be527e25a911c0acdffb922dc1cd/uvloop-0.22.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec", size = 3615261, upload_time = "2025-10-16T22:16:19.596Z" }, - { url = "https://files.pythonhosted.org/packages/c7/d5/69900f7883235562f1f50d8184bb7dd84a2fb61e9ec63f3782546fdbd057/uvloop-0.22.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9", size = 1352420, upload_time = "2025-10-16T22:16:21.187Z" }, - { url = "https://files.pythonhosted.org/packages/a8/73/c4e271b3bce59724e291465cc936c37758886a4868787da0278b3b56b905/uvloop-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77", size = 748677, upload_time = "2025-10-16T22:16:22.558Z" }, - { url = "https://files.pythonhosted.org/packages/86/94/9fb7fad2f824d25f8ecac0d70b94d0d48107ad5ece03769a9c543444f78a/uvloop-0.22.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21", size = 3753819, upload_time = "2025-10-16T22:16:23.903Z" }, - { url = "https://files.pythonhosted.org/packages/74/4f/256aca690709e9b008b7108bc85fba619a2bc37c6d80743d18abad16ee09/uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702", size = 3804529, upload_time = "2025-10-16T22:16:25.246Z" }, - { url = "https://files.pythonhosted.org/packages/7f/74/03c05ae4737e871923d21a76fe28b6aad57f5c03b6e6bfcfa5ad616013e4/uvloop-0.22.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733", size = 3621267, upload_time = "2025-10-16T22:16:26.819Z" }, - { url = "https://files.pythonhosted.org/packages/75/be/f8e590fe61d18b4a92070905497aec4c0e64ae1761498cad09023f3f4b3e/uvloop-0.22.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473", size = 3723105, upload_time = "2025-10-16T22:16:28.252Z" }, - { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload_time = "2025-10-16T22:16:29.436Z" }, - { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload_time = "2025-10-16T22:16:30.493Z" }, - { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload_time = "2025-10-16T22:16:31.644Z" }, - { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload_time = "2025-10-16T22:16:32.917Z" }, - { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload_time = "2025-10-16T22:16:34.015Z" }, - { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload_time = "2025-10-16T22:16:35.149Z" }, - { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload_time = "2025-10-16T22:16:36.833Z" }, - { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload_time = "2025-10-16T22:16:38.275Z" }, - { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload_time = "2025-10-16T22:16:39.375Z" }, - { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload_time = "2025-10-16T22:16:40.547Z" }, - { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload_time = "2025-10-16T22:16:41.694Z" }, - { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload_time = "2025-10-16T22:16:43.224Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/06/f0/18d39dbd1971d6d62c4629cc7fa67f74821b0dc1f5a77af43719de7936a7/uvloop-0.22.1.tar.gz", hash = "sha256:6c84bae345b9147082b17371e3dd5d42775bddce91f885499017f4607fdaf39f", size = 2443250, upload-time = "2025-10-16T22:17:19.342Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/14/ecceb239b65adaaf7fde510aa8bd534075695d1e5f8dadfa32b5723d9cfb/uvloop-0.22.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ef6f0d4cc8a9fa1f6a910230cd53545d9a14479311e87e3cb225495952eb672c", size = 1343335, upload-time = "2025-10-16T22:16:11.43Z" }, + { url = "https://files.pythonhosted.org/packages/ba/ae/6f6f9af7f590b319c94532b9567409ba11f4fa71af1148cab1bf48a07048/uvloop-0.22.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7cd375a12b71d33d46af85a3343b35d98e8116134ba404bd657b3b1d15988792", size = 742903, upload-time = "2025-10-16T22:16:12.979Z" }, + { url = "https://files.pythonhosted.org/packages/09/bd/3667151ad0702282a1f4d5d29288fce8a13c8b6858bf0978c219cd52b231/uvloop-0.22.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ac33ed96229b7790eb729702751c0e93ac5bc3bcf52ae9eccbff30da09194b86", size = 3648499, upload-time = "2025-10-16T22:16:14.451Z" }, + { url = "https://files.pythonhosted.org/packages/b3/f6/21657bb3beb5f8c57ce8be3b83f653dd7933c2fd00545ed1b092d464799a/uvloop-0.22.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:481c990a7abe2c6f4fc3d98781cc9426ebd7f03a9aaa7eb03d3bfc68ac2a46bd", size = 3700133, upload-time = "2025-10-16T22:16:16.272Z" }, + { url = "https://files.pythonhosted.org/packages/09/e0/604f61d004ded805f24974c87ddd8374ef675644f476f01f1df90e4cdf72/uvloop-0.22.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a592b043a47ad17911add5fbd087c76716d7c9ccc1d64ec9249ceafd735f03c2", size = 3512681, upload-time = "2025-10-16T22:16:18.07Z" }, + { url = "https://files.pythonhosted.org/packages/bb/ce/8491fd370b0230deb5eac69c7aae35b3be527e25a911c0acdffb922dc1cd/uvloop-0.22.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1489cf791aa7b6e8c8be1c5a080bae3a672791fcb4e9e12249b05862a2ca9cec", size = 3615261, upload-time = "2025-10-16T22:16:19.596Z" }, + { url = "https://files.pythonhosted.org/packages/c7/d5/69900f7883235562f1f50d8184bb7dd84a2fb61e9ec63f3782546fdbd057/uvloop-0.22.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c60ebcd36f7b240b30788554b6f0782454826a0ed765d8430652621b5de674b9", size = 1352420, upload-time = "2025-10-16T22:16:21.187Z" }, + { url = "https://files.pythonhosted.org/packages/a8/73/c4e271b3bce59724e291465cc936c37758886a4868787da0278b3b56b905/uvloop-0.22.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b7f102bf3cb1995cfeaee9321105e8f5da76fdb104cdad8986f85461a1b7b77", size = 748677, upload-time = "2025-10-16T22:16:22.558Z" }, + { url = "https://files.pythonhosted.org/packages/86/94/9fb7fad2f824d25f8ecac0d70b94d0d48107ad5ece03769a9c543444f78a/uvloop-0.22.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53c85520781d84a4b8b230e24a5af5b0778efdb39142b424990ff1ef7c48ba21", size = 3753819, upload-time = "2025-10-16T22:16:23.903Z" }, + { url = "https://files.pythonhosted.org/packages/74/4f/256aca690709e9b008b7108bc85fba619a2bc37c6d80743d18abad16ee09/uvloop-0.22.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56a2d1fae65fd82197cb8c53c367310b3eabe1bbb9fb5a04d28e3e3520e4f702", size = 3804529, upload-time = "2025-10-16T22:16:25.246Z" }, + { url = "https://files.pythonhosted.org/packages/7f/74/03c05ae4737e871923d21a76fe28b6aad57f5c03b6e6bfcfa5ad616013e4/uvloop-0.22.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40631b049d5972c6755b06d0bfe8233b1bd9a8a6392d9d1c45c10b6f9e9b2733", size = 3621267, upload-time = "2025-10-16T22:16:26.819Z" }, + { url = "https://files.pythonhosted.org/packages/75/be/f8e590fe61d18b4a92070905497aec4c0e64ae1761498cad09023f3f4b3e/uvloop-0.22.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:535cc37b3a04f6cd2c1ef65fa1d370c9a35b6695df735fcff5427323f2cd5473", size = 3723105, upload-time = "2025-10-16T22:16:28.252Z" }, + { url = "https://files.pythonhosted.org/packages/3d/ff/7f72e8170be527b4977b033239a83a68d5c881cc4775fca255c677f7ac5d/uvloop-0.22.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:fe94b4564e865d968414598eea1a6de60adba0c040ba4ed05ac1300de402cd42", size = 1359936, upload-time = "2025-10-16T22:16:29.436Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c6/e5d433f88fd54d81ef4be58b2b7b0cea13c442454a1db703a1eea0db1a59/uvloop-0.22.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:51eb9bd88391483410daad430813d982010f9c9c89512321f5b60e2cddbdddd6", size = 752769, upload-time = "2025-10-16T22:16:30.493Z" }, + { url = "https://files.pythonhosted.org/packages/24/68/a6ac446820273e71aa762fa21cdcc09861edd3536ff47c5cd3b7afb10eeb/uvloop-0.22.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:700e674a166ca5778255e0e1dc4e9d79ab2acc57b9171b79e65feba7184b3370", size = 4317413, upload-time = "2025-10-16T22:16:31.644Z" }, + { url = "https://files.pythonhosted.org/packages/5f/6f/e62b4dfc7ad6518e7eff2516f680d02a0f6eb62c0c212e152ca708a0085e/uvloop-0.22.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b5b1ac819a3f946d3b2ee07f09149578ae76066d70b44df3fa990add49a82e4", size = 4426307, upload-time = "2025-10-16T22:16:32.917Z" }, + { url = "https://files.pythonhosted.org/packages/90/60/97362554ac21e20e81bcef1150cb2a7e4ffdaf8ea1e5b2e8bf7a053caa18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e047cc068570bac9866237739607d1313b9253c3051ad84738cbb095be0537b2", size = 4131970, upload-time = "2025-10-16T22:16:34.015Z" }, + { url = "https://files.pythonhosted.org/packages/99/39/6b3f7d234ba3964c428a6e40006340f53ba37993f46ed6e111c6e9141d18/uvloop-0.22.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:512fec6815e2dd45161054592441ef76c830eddaad55c8aa30952e6fe1ed07c0", size = 4296343, upload-time = "2025-10-16T22:16:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/89/8c/182a2a593195bfd39842ea68ebc084e20c850806117213f5a299dfc513d9/uvloop-0.22.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:561577354eb94200d75aca23fbde86ee11be36b00e52a4eaf8f50fb0c86b7705", size = 1358611, upload-time = "2025-10-16T22:16:36.833Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/e301ee96a6dc95224b6f1162cd3312f6d1217be3907b79173b06785f2fe7/uvloop-0.22.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1cdf5192ab3e674ca26da2eada35b288d2fa49fdd0f357a19f0e7c4e7d5077c8", size = 751811, upload-time = "2025-10-16T22:16:38.275Z" }, + { url = "https://files.pythonhosted.org/packages/b7/02/654426ce265ac19e2980bfd9ea6590ca96a56f10c76e63801a2df01c0486/uvloop-0.22.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6e2ea3d6190a2968f4a14a23019d3b16870dd2190cd69c8180f7c632d21de68d", size = 4288562, upload-time = "2025-10-16T22:16:39.375Z" }, + { url = "https://files.pythonhosted.org/packages/15/c0/0be24758891ef825f2065cd5db8741aaddabe3e248ee6acc5e8a80f04005/uvloop-0.22.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0530a5fbad9c9e4ee3f2b33b148c6a64d47bbad8000ea63704fa8260f4cf728e", size = 4366890, upload-time = "2025-10-16T22:16:40.547Z" }, + { url = "https://files.pythonhosted.org/packages/d2/53/8369e5219a5855869bcee5f4d317f6da0e2c669aecf0ef7d371e3d084449/uvloop-0.22.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc5ef13bbc10b5335792360623cc378d52d7e62c2de64660616478c32cd0598e", size = 4119472, upload-time = "2025-10-16T22:16:41.694Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ba/d69adbe699b768f6b29a5eec7b47dd610bd17a69de51b251126a801369ea/uvloop-0.22.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1f38ec5e3f18c8a10ded09742f7fb8de0108796eb673f30ce7762ce1b8550cad", size = 4239051, upload-time = "2025-10-16T22:16:43.224Z" }, ] [[package]] @@ -4911,9 +4961,9 @@ dependencies = [ { name = "python-discovery" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ec/0d/915c02c94d207b85580eb09bffab54438a709e7288524094fe781da526c2/virtualenv-21.3.1.tar.gz", hash = "sha256:c2305bc1fddeec40699b8370d13f8d431b0701f00ce895061ce493aeded4426b", size = 7613791, upload_time = "2026-05-05T01:34:31.402Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/0d/915c02c94d207b85580eb09bffab54438a709e7288524094fe781da526c2/virtualenv-21.3.1.tar.gz", hash = "sha256:c2305bc1fddeec40699b8370d13f8d431b0701f00ce895061ce493aeded4426b", size = 7613791, upload-time = "2026-05-05T01:34:31.402Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b1/4f/f71e641e504111a5a74e3a20bc52d01bd86788b22699dd3fee1c63253cf6/virtualenv-21.3.1-py3-none-any.whl", hash = "sha256:d1a71cf58f2f9228fff23a1f6ec15d39785c6b32e03658d104974247145edd35", size = 7594539, upload_time = "2026-05-05T01:34:28.98Z" }, + { url = "https://files.pythonhosted.org/packages/b1/4f/f71e641e504111a5a74e3a20bc52d01bd86788b22699dd3fee1c63253cf6/virtualenv-21.3.1-py3-none-any.whl", hash = "sha256:d1a71cf58f2f9228fff23a1f6ec15d39785c6b32e03658d104974247145edd35", size = 7594539, upload-time = "2026-05-05T01:34:28.98Z" }, ] [[package]] @@ -4923,9 +4973,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload_time = "2024-05-31T16:56:18.99Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ac/f9/054e6e2f1071e963b5e746b48d1e3727470b2a490834d18ad92364929db3/wasabi-1.1.3.tar.gz", hash = "sha256:4bb3008f003809db0c3e28b4daf20906ea871a2bb43f9914197d540f4f2e0878", size = 30391, upload-time = "2024-05-31T16:56:18.99Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload_time = "2024-05-31T16:56:16.699Z" }, + { url = "https://files.pythonhosted.org/packages/06/7c/34330a89da55610daa5f245ddce5aab81244321101614751e7537f125133/wasabi-1.1.3-py3-none-any.whl", hash = "sha256:f76e16e8f7e79f8c4c8be49b4024ac725713ab10cd7f19350ad18a8e3f71728c", size = 27880, upload-time = "2024-05-31T16:56:16.699Z" }, ] [[package]] @@ -4935,86 +4985,86 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload_time = "2025-10-14T15:06:21.08Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c", size = 407318, upload_time = "2025-10-14T15:04:18.753Z" }, - { url = "https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43", size = 394478, upload_time = "2025-10-14T15:04:20.297Z" }, - { url = "https://files.pythonhosted.org/packages/b1/04/9cc0ba88697b34b755371f5ace8d3a4d9a15719c07bdc7bd13d7d8c6a341/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31", size = 449894, upload_time = "2025-10-14T15:04:21.527Z" }, - { url = "https://files.pythonhosted.org/packages/d2/9c/eda4615863cd8621e89aed4df680d8c3ec3da6a4cf1da113c17decd87c7f/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac", size = 459065, upload_time = "2025-10-14T15:04:22.795Z" }, - { url = "https://files.pythonhosted.org/packages/84/13/f28b3f340157d03cbc8197629bc109d1098764abe1e60874622a0be5c112/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d", size = 488377, upload_time = "2025-10-14T15:04:24.138Z" }, - { url = "https://files.pythonhosted.org/packages/86/93/cfa597fa9389e122488f7ffdbd6db505b3b915ca7435ecd7542e855898c2/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d", size = 595837, upload_time = "2025-10-14T15:04:25.057Z" }, - { url = "https://files.pythonhosted.org/packages/57/1e/68c1ed5652b48d89fc24d6af905d88ee4f82fa8bc491e2666004e307ded1/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863", size = 473456, upload_time = "2025-10-14T15:04:26.497Z" }, - { url = "https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab", size = 455614, upload_time = "2025-10-14T15:04:27.539Z" }, - { url = "https://files.pythonhosted.org/packages/61/a5/3d782a666512e01eaa6541a72ebac1d3aae191ff4a31274a66b8dd85760c/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82", size = 630690, upload_time = "2025-10-14T15:04:28.495Z" }, - { url = "https://files.pythonhosted.org/packages/9b/73/bb5f38590e34687b2a9c47a244aa4dd50c56a825969c92c9c5fc7387cea1/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4", size = 622459, upload_time = "2025-10-14T15:04:29.491Z" }, - { url = "https://files.pythonhosted.org/packages/f1/ac/c9bb0ec696e07a20bd58af5399aeadaef195fb2c73d26baf55180fe4a942/watchfiles-1.1.1-cp310-cp310-win32.whl", hash = "sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844", size = 272663, upload_time = "2025-10-14T15:04:30.435Z" }, - { url = "https://files.pythonhosted.org/packages/11/a0/a60c5a7c2ec59fa062d9a9c61d02e3b6abd94d32aac2d8344c4bdd033326/watchfiles-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e", size = 287453, upload_time = "2025-10-14T15:04:31.53Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f8/2c5f479fb531ce2f0564eda479faecf253d886b1ab3630a39b7bf7362d46/watchfiles-1.1.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5", size = 406529, upload_time = "2025-10-14T15:04:32.899Z" }, - { url = "https://files.pythonhosted.org/packages/fe/cd/f515660b1f32f65df671ddf6f85bfaca621aee177712874dc30a97397977/watchfiles-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741", size = 394384, upload_time = "2025-10-14T15:04:33.761Z" }, - { url = "https://files.pythonhosted.org/packages/7b/c3/28b7dc99733eab43fca2d10f55c86e03bd6ab11ca31b802abac26b23d161/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6", size = 448789, upload_time = "2025-10-14T15:04:34.679Z" }, - { url = "https://files.pythonhosted.org/packages/4a/24/33e71113b320030011c8e4316ccca04194bf0cbbaeee207f00cbc7d6b9f5/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b", size = 460521, upload_time = "2025-10-14T15:04:35.963Z" }, - { url = "https://files.pythonhosted.org/packages/f4/c3/3c9a55f255aa57b91579ae9e98c88704955fa9dac3e5614fb378291155df/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14", size = 488722, upload_time = "2025-10-14T15:04:37.091Z" }, - { url = "https://files.pythonhosted.org/packages/49/36/506447b73eb46c120169dc1717fe2eff07c234bb3232a7200b5f5bd816e9/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d", size = 596088, upload_time = "2025-10-14T15:04:38.39Z" }, - { url = "https://files.pythonhosted.org/packages/82/ab/5f39e752a9838ec4d52e9b87c1e80f1ee3ccdbe92e183c15b6577ab9de16/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff", size = 472923, upload_time = "2025-10-14T15:04:39.666Z" }, - { url = "https://files.pythonhosted.org/packages/af/b9/a419292f05e302dea372fa7e6fda5178a92998411f8581b9830d28fb9edb/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606", size = 456080, upload_time = "2025-10-14T15:04:40.643Z" }, - { url = "https://files.pythonhosted.org/packages/b0/c3/d5932fd62bde1a30c36e10c409dc5d54506726f08cb3e1d8d0ba5e2bc8db/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701", size = 629432, upload_time = "2025-10-14T15:04:41.789Z" }, - { url = "https://files.pythonhosted.org/packages/f7/77/16bddd9779fafb795f1a94319dc965209c5641db5bf1edbbccace6d1b3c0/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10", size = 623046, upload_time = "2025-10-14T15:04:42.718Z" }, - { url = "https://files.pythonhosted.org/packages/46/ef/f2ecb9a0f342b4bfad13a2787155c6ee7ce792140eac63a34676a2feeef2/watchfiles-1.1.1-cp311-cp311-win32.whl", hash = "sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849", size = 271473, upload_time = "2025-10-14T15:04:43.624Z" }, - { url = "https://files.pythonhosted.org/packages/94/bc/f42d71125f19731ea435c3948cad148d31a64fccde3867e5ba4edee901f9/watchfiles-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4", size = 287598, upload_time = "2025-10-14T15:04:44.516Z" }, - { url = "https://files.pythonhosted.org/packages/57/c9/a30f897351f95bbbfb6abcadafbaca711ce1162f4db95fc908c98a9165f3/watchfiles-1.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e", size = 277210, upload_time = "2025-10-14T15:04:45.883Z" }, - { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload_time = "2025-10-14T15:04:46.731Z" }, - { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload_time = "2025-10-14T15:04:48.003Z" }, - { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload_time = "2025-10-14T15:04:49.179Z" }, - { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload_time = "2025-10-14T15:04:50.155Z" }, - { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload_time = "2025-10-14T15:04:51.059Z" }, - { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload_time = "2025-10-14T15:04:52.031Z" }, - { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload_time = "2025-10-14T15:04:53.064Z" }, - { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload_time = "2025-10-14T15:04:55.174Z" }, - { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload_time = "2025-10-14T15:04:56.22Z" }, - { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload_time = "2025-10-14T15:04:57.521Z" }, - { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload_time = "2025-10-14T15:04:59.046Z" }, - { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload_time = "2025-10-14T15:05:00.081Z" }, - { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload_time = "2025-10-14T15:05:01.168Z" }, - { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload_time = "2025-10-14T15:05:02.063Z" }, - { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload_time = "2025-10-14T15:05:03.052Z" }, - { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload_time = "2025-10-14T15:05:04.004Z" }, - { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload_time = "2025-10-14T15:05:04.942Z" }, - { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload_time = "2025-10-14T15:05:05.905Z" }, - { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload_time = "2025-10-14T15:05:06.906Z" }, - { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload_time = "2025-10-14T15:05:07.906Z" }, - { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload_time = "2025-10-14T15:05:09.138Z" }, - { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload_time = "2025-10-14T15:05:10.117Z" }, - { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload_time = "2025-10-14T15:05:11.146Z" }, - { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload_time = "2025-10-14T15:05:12.156Z" }, - { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload_time = "2025-10-14T15:05:13.208Z" }, - { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload_time = "2025-10-14T15:05:14.49Z" }, - { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload_time = "2025-10-14T15:05:15.777Z" }, - { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload_time = "2025-10-14T15:05:16.85Z" }, - { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload_time = "2025-10-14T15:05:17.876Z" }, - { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload_time = "2025-10-14T15:05:18.962Z" }, - { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload_time = "2025-10-14T15:05:20.094Z" }, - { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload_time = "2025-10-14T15:05:21.134Z" }, - { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload_time = "2025-10-14T15:05:22.306Z" }, - { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload_time = "2025-10-14T15:05:23.348Z" }, - { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload_time = "2025-10-14T15:05:24.398Z" }, - { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload_time = "2025-10-14T15:05:25.45Z" }, - { url = "https://files.pythonhosted.org/packages/ba/4c/a888c91e2e326872fa4705095d64acd8aa2fb9c1f7b9bd0588f33850516c/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3", size = 409611, upload_time = "2025-10-14T15:06:05.809Z" }, - { url = "https://files.pythonhosted.org/packages/1e/c7/5420d1943c8e3ce1a21c0a9330bcf7edafb6aa65d26b21dbb3267c9e8112/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2", size = 396889, upload_time = "2025-10-14T15:06:07.035Z" }, - { url = "https://files.pythonhosted.org/packages/0c/e5/0072cef3804ce8d3aaddbfe7788aadff6b3d3f98a286fdbee9fd74ca59a7/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d", size = 451616, upload_time = "2025-10-14T15:06:08.072Z" }, - { url = "https://files.pythonhosted.org/packages/83/4e/b87b71cbdfad81ad7e83358b3e447fedd281b880a03d64a760fe0a11fc2e/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b", size = 458413, upload_time = "2025-10-14T15:06:09.209Z" }, - { url = "https://files.pythonhosted.org/packages/d3/8e/e500f8b0b77be4ff753ac94dc06b33d8f0d839377fee1b78e8c8d8f031bf/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88", size = 408250, upload_time = "2025-10-14T15:06:10.264Z" }, - { url = "https://files.pythonhosted.org/packages/bd/95/615e72cd27b85b61eec764a5ca51bd94d40b5adea5ff47567d9ebc4d275a/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336", size = 396117, upload_time = "2025-10-14T15:06:11.28Z" }, - { url = "https://files.pythonhosted.org/packages/c9/81/e7fe958ce8a7fb5c73cc9fb07f5aeaf755e6aa72498c57d760af760c91f8/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24", size = 450493, upload_time = "2025-10-14T15:06:12.321Z" }, - { url = "https://files.pythonhosted.org/packages/6e/d4/ed38dd3b1767193de971e694aa544356e63353c33a85d948166b5ff58b9e/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49", size = 457546, upload_time = "2025-10-14T15:06:13.372Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/c2/c9/8869df9b2a2d6c59d79220a4db37679e74f807c559ffe5265e08b227a210/watchfiles-1.1.1.tar.gz", hash = "sha256:a173cb5c16c4f40ab19cecf48a534c409f7ea983ab8fed0741304a1c0a31b3f2", size = 94440, upload-time = "2025-10-14T15:06:21.08Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/1a/206e8cf2dd86fddf939165a57b4df61607a1e0add2785f170a3f616b7d9f/watchfiles-1.1.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:eef58232d32daf2ac67f42dea51a2c80f0d03379075d44a587051e63cc2e368c", size = 407318, upload-time = "2025-10-14T15:04:18.753Z" }, + { url = "https://files.pythonhosted.org/packages/b3/0f/abaf5262b9c496b5dad4ed3c0e799cbecb1f8ea512ecb6ddd46646a9fca3/watchfiles-1.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:03fa0f5237118a0c5e496185cafa92878568b652a2e9a9382a5151b1a0380a43", size = 394478, upload-time = "2025-10-14T15:04:20.297Z" }, + { url = "https://files.pythonhosted.org/packages/b1/04/9cc0ba88697b34b755371f5ace8d3a4d9a15719c07bdc7bd13d7d8c6a341/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca65483439f9c791897f7db49202301deb6e15fe9f8fe2fed555bf986d10c31", size = 449894, upload-time = "2025-10-14T15:04:21.527Z" }, + { url = "https://files.pythonhosted.org/packages/d2/9c/eda4615863cd8621e89aed4df680d8c3ec3da6a4cf1da113c17decd87c7f/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f0ab1c1af0cb38e3f598244c17919fb1a84d1629cc08355b0074b6d7f53138ac", size = 459065, upload-time = "2025-10-14T15:04:22.795Z" }, + { url = "https://files.pythonhosted.org/packages/84/13/f28b3f340157d03cbc8197629bc109d1098764abe1e60874622a0be5c112/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bc570d6c01c206c46deb6e935a260be44f186a2f05179f52f7fcd2be086a94d", size = 488377, upload-time = "2025-10-14T15:04:24.138Z" }, + { url = "https://files.pythonhosted.org/packages/86/93/cfa597fa9389e122488f7ffdbd6db505b3b915ca7435ecd7542e855898c2/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e84087b432b6ac94778de547e08611266f1f8ffad28c0ee4c82e028b0fc5966d", size = 595837, upload-time = "2025-10-14T15:04:25.057Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/68c1ed5652b48d89fc24d6af905d88ee4f82fa8bc491e2666004e307ded1/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:620bae625f4cb18427b1bb1a2d9426dc0dd5a5ba74c7c2cdb9de405f7b129863", size = 473456, upload-time = "2025-10-14T15:04:26.497Z" }, + { url = "https://files.pythonhosted.org/packages/d5/dc/1a680b7458ffa3b14bb64878112aefc8f2e4f73c5af763cbf0bd43100658/watchfiles-1.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:544364b2b51a9b0c7000a4b4b02f90e9423d97fbbf7e06689236443ebcad81ab", size = 455614, upload-time = "2025-10-14T15:04:27.539Z" }, + { url = "https://files.pythonhosted.org/packages/61/a5/3d782a666512e01eaa6541a72ebac1d3aae191ff4a31274a66b8dd85760c/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bbe1ef33d45bc71cf21364df962af171f96ecaeca06bd9e3d0b583efb12aec82", size = 630690, upload-time = "2025-10-14T15:04:28.495Z" }, + { url = "https://files.pythonhosted.org/packages/9b/73/bb5f38590e34687b2a9c47a244aa4dd50c56a825969c92c9c5fc7387cea1/watchfiles-1.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a0bb430adb19ef49389e1ad368450193a90038b5b752f4ac089ec6942c4dff4", size = 622459, upload-time = "2025-10-14T15:04:29.491Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ac/c9bb0ec696e07a20bd58af5399aeadaef195fb2c73d26baf55180fe4a942/watchfiles-1.1.1-cp310-cp310-win32.whl", hash = "sha256:3f6d37644155fb5beca5378feb8c1708d5783145f2a0f1c4d5a061a210254844", size = 272663, upload-time = "2025-10-14T15:04:30.435Z" }, + { url = "https://files.pythonhosted.org/packages/11/a0/a60c5a7c2ec59fa062d9a9c61d02e3b6abd94d32aac2d8344c4bdd033326/watchfiles-1.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:a36d8efe0f290835fd0f33da35042a1bb5dc0e83cbc092dcf69bce442579e88e", size = 287453, upload-time = "2025-10-14T15:04:31.53Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/2c5f479fb531ce2f0564eda479faecf253d886b1ab3630a39b7bf7362d46/watchfiles-1.1.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:f57b396167a2565a4e8b5e56a5a1c537571733992b226f4f1197d79e94cf0ae5", size = 406529, upload-time = "2025-10-14T15:04:32.899Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cd/f515660b1f32f65df671ddf6f85bfaca621aee177712874dc30a97397977/watchfiles-1.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:421e29339983e1bebc281fab40d812742268ad057db4aee8c4d2bce0af43b741", size = 394384, upload-time = "2025-10-14T15:04:33.761Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c3/28b7dc99733eab43fca2d10f55c86e03bd6ab11ca31b802abac26b23d161/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e43d39a741e972bab5d8100b5cdacf69db64e34eb19b6e9af162bccf63c5cc6", size = 448789, upload-time = "2025-10-14T15:04:34.679Z" }, + { url = "https://files.pythonhosted.org/packages/4a/24/33e71113b320030011c8e4316ccca04194bf0cbbaeee207f00cbc7d6b9f5/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f537afb3276d12814082a2e9b242bdcf416c2e8fd9f799a737990a1dbe906e5b", size = 460521, upload-time = "2025-10-14T15:04:35.963Z" }, + { url = "https://files.pythonhosted.org/packages/f4/c3/3c9a55f255aa57b91579ae9e98c88704955fa9dac3e5614fb378291155df/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b2cd9e04277e756a2e2d2543d65d1e2166d6fd4c9b183f8808634fda23f17b14", size = 488722, upload-time = "2025-10-14T15:04:37.091Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/506447b73eb46c120169dc1717fe2eff07c234bb3232a7200b5f5bd816e9/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5f3f58818dc0b07f7d9aa7fe9eb1037aecb9700e63e1f6acfed13e9fef648f5d", size = 596088, upload-time = "2025-10-14T15:04:38.39Z" }, + { url = "https://files.pythonhosted.org/packages/82/ab/5f39e752a9838ec4d52e9b87c1e80f1ee3ccdbe92e183c15b6577ab9de16/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9bb9f66367023ae783551042d31b1d7fd422e8289eedd91f26754a66f44d5cff", size = 472923, upload-time = "2025-10-14T15:04:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/af/b9/a419292f05e302dea372fa7e6fda5178a92998411f8581b9830d28fb9edb/watchfiles-1.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aebfd0861a83e6c3d1110b78ad54704486555246e542be3e2bb94195eabb2606", size = 456080, upload-time = "2025-10-14T15:04:40.643Z" }, + { url = "https://files.pythonhosted.org/packages/b0/c3/d5932fd62bde1a30c36e10c409dc5d54506726f08cb3e1d8d0ba5e2bc8db/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:5fac835b4ab3c6487b5dbad78c4b3724e26bcc468e886f8ba8cc4306f68f6701", size = 629432, upload-time = "2025-10-14T15:04:41.789Z" }, + { url = "https://files.pythonhosted.org/packages/f7/77/16bddd9779fafb795f1a94319dc965209c5641db5bf1edbbccace6d1b3c0/watchfiles-1.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:399600947b170270e80134ac854e21b3ccdefa11a9529a3decc1327088180f10", size = 623046, upload-time = "2025-10-14T15:04:42.718Z" }, + { url = "https://files.pythonhosted.org/packages/46/ef/f2ecb9a0f342b4bfad13a2787155c6ee7ce792140eac63a34676a2feeef2/watchfiles-1.1.1-cp311-cp311-win32.whl", hash = "sha256:de6da501c883f58ad50db3a32ad397b09ad29865b5f26f64c24d3e3281685849", size = 271473, upload-time = "2025-10-14T15:04:43.624Z" }, + { url = "https://files.pythonhosted.org/packages/94/bc/f42d71125f19731ea435c3948cad148d31a64fccde3867e5ba4edee901f9/watchfiles-1.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:35c53bd62a0b885bf653ebf6b700d1bf05debb78ad9292cf2a942b23513dc4c4", size = 287598, upload-time = "2025-10-14T15:04:44.516Z" }, + { url = "https://files.pythonhosted.org/packages/57/c9/a30f897351f95bbbfb6abcadafbaca711ce1162f4db95fc908c98a9165f3/watchfiles-1.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:57ca5281a8b5e27593cb7d82c2ac927ad88a96ed406aa446f6344e4328208e9e", size = 277210, upload-time = "2025-10-14T15:04:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/74/d5/f039e7e3c639d9b1d09b07ea412a6806d38123f0508e5f9b48a87b0a76cc/watchfiles-1.1.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8c89f9f2f740a6b7dcc753140dd5e1ab9215966f7a3530d0c0705c83b401bd7d", size = 404745, upload-time = "2025-10-14T15:04:46.731Z" }, + { url = "https://files.pythonhosted.org/packages/a5/96/a881a13aa1349827490dab2d363c8039527060cfcc2c92cc6d13d1b1049e/watchfiles-1.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd404be08018c37350f0d6e34676bd1e2889990117a2b90070b3007f172d0610", size = 391769, upload-time = "2025-10-14T15:04:48.003Z" }, + { url = "https://files.pythonhosted.org/packages/4b/5b/d3b460364aeb8da471c1989238ea0e56bec24b6042a68046adf3d9ddb01c/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8526e8f916bb5b9a0a777c8317c23ce65de259422bba5b31325a6fa6029d33af", size = 449374, upload-time = "2025-10-14T15:04:49.179Z" }, + { url = "https://files.pythonhosted.org/packages/b9/44/5769cb62d4ed055cb17417c0a109a92f007114a4e07f30812a73a4efdb11/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2edc3553362b1c38d9f06242416a5d8e9fe235c204a4072e988ce2e5bb1f69f6", size = 459485, upload-time = "2025-10-14T15:04:50.155Z" }, + { url = "https://files.pythonhosted.org/packages/19/0c/286b6301ded2eccd4ffd0041a1b726afda999926cf720aab63adb68a1e36/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30f7da3fb3f2844259cba4720c3fc7138eb0f7b659c38f3bfa65084c7fc7abce", size = 488813, upload-time = "2025-10-14T15:04:51.059Z" }, + { url = "https://files.pythonhosted.org/packages/c7/2b/8530ed41112dd4a22f4dcfdb5ccf6a1baad1ff6eed8dc5a5f09e7e8c41c7/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8979280bdafff686ba5e4d8f97840f929a87ed9cdf133cbbd42f7766774d2aa", size = 594816, upload-time = "2025-10-14T15:04:52.031Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d2/f5f9fb49489f184f18470d4f99f4e862a4b3e9ac2865688eb2099e3d837a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dcc5c24523771db3a294c77d94771abcfcb82a0e0ee8efd910c37c59ec1b31bb", size = 475186, upload-time = "2025-10-14T15:04:53.064Z" }, + { url = "https://files.pythonhosted.org/packages/cf/68/5707da262a119fb06fbe214d82dd1fe4a6f4af32d2d14de368d0349eb52a/watchfiles-1.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db5d7ae38ff20153d542460752ff397fcf5c96090c1230803713cf3147a6803", size = 456812, upload-time = "2025-10-14T15:04:55.174Z" }, + { url = "https://files.pythonhosted.org/packages/66/ab/3cbb8756323e8f9b6f9acb9ef4ec26d42b2109bce830cc1f3468df20511d/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:28475ddbde92df1874b6c5c8aaeb24ad5be47a11f87cde5a28ef3835932e3e94", size = 630196, upload-time = "2025-10-14T15:04:56.22Z" }, + { url = "https://files.pythonhosted.org/packages/78/46/7152ec29b8335f80167928944a94955015a345440f524d2dfe63fc2f437b/watchfiles-1.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:36193ed342f5b9842edd3532729a2ad55c4160ffcfa3700e0d54be496b70dd43", size = 622657, upload-time = "2025-10-14T15:04:57.521Z" }, + { url = "https://files.pythonhosted.org/packages/0a/bf/95895e78dd75efe9a7f31733607f384b42eb5feb54bd2eb6ed57cc2e94f4/watchfiles-1.1.1-cp312-cp312-win32.whl", hash = "sha256:859e43a1951717cc8de7f4c77674a6d389b106361585951d9e69572823f311d9", size = 272042, upload-time = "2025-10-14T15:04:59.046Z" }, + { url = "https://files.pythonhosted.org/packages/87/0a/90eb755f568de2688cb220171c4191df932232c20946966c27a59c400850/watchfiles-1.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:91d4c9a823a8c987cce8fa2690923b069966dabb196dd8d137ea2cede885fde9", size = 288410, upload-time = "2025-10-14T15:05:00.081Z" }, + { url = "https://files.pythonhosted.org/packages/36/76/f322701530586922fbd6723c4f91ace21364924822a8772c549483abed13/watchfiles-1.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:a625815d4a2bdca61953dbba5a39d60164451ef34c88d751f6c368c3ea73d404", size = 278209, upload-time = "2025-10-14T15:05:01.168Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/f750b29225fe77139f7ae5de89d4949f5a99f934c65a1f1c0b248f26f747/watchfiles-1.1.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:130e4876309e8686a5e37dba7d5e9bc77e6ed908266996ca26572437a5271e18", size = 404321, upload-time = "2025-10-14T15:05:02.063Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f9/f07a295cde762644aa4c4bb0f88921d2d141af45e735b965fb2e87858328/watchfiles-1.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5f3bde70f157f84ece3765b42b4a52c6ac1a50334903c6eaf765362f6ccca88a", size = 391783, upload-time = "2025-10-14T15:05:03.052Z" }, + { url = "https://files.pythonhosted.org/packages/bc/11/fc2502457e0bea39a5c958d86d2cb69e407a4d00b85735ca724bfa6e0d1a/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14e0b1fe858430fc0251737ef3824c54027bedb8c37c38114488b8e131cf8219", size = 449279, upload-time = "2025-10-14T15:05:04.004Z" }, + { url = "https://files.pythonhosted.org/packages/e3/1f/d66bc15ea0b728df3ed96a539c777acfcad0eb78555ad9efcaa1274688f0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f27db948078f3823a6bb3b465180db8ebecf26dd5dae6f6180bd87383b6b4428", size = 459405, upload-time = "2025-10-14T15:05:04.942Z" }, + { url = "https://files.pythonhosted.org/packages/be/90/9f4a65c0aec3ccf032703e6db02d89a157462fbb2cf20dd415128251cac0/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:059098c3a429f62fc98e8ec62b982230ef2c8df68c79e826e37b895bc359a9c0", size = 488976, upload-time = "2025-10-14T15:05:05.905Z" }, + { url = "https://files.pythonhosted.org/packages/37/57/ee347af605d867f712be7029bb94c8c071732a4b44792e3176fa3c612d39/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bfb5862016acc9b869bb57284e6cb35fdf8e22fe59f7548858e2f971d045f150", size = 595506, upload-time = "2025-10-14T15:05:06.906Z" }, + { url = "https://files.pythonhosted.org/packages/a8/78/cc5ab0b86c122047f75e8fc471c67a04dee395daf847d3e59381996c8707/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:319b27255aacd9923b8a276bb14d21a5f7ff82564c744235fc5eae58d95422ae", size = 474936, upload-time = "2025-10-14T15:05:07.906Z" }, + { url = "https://files.pythonhosted.org/packages/62/da/def65b170a3815af7bd40a3e7010bf6ab53089ef1b75d05dd5385b87cf08/watchfiles-1.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c755367e51db90e75b19454b680903631d41f9e3607fbd941d296a020c2d752d", size = 456147, upload-time = "2025-10-14T15:05:09.138Z" }, + { url = "https://files.pythonhosted.org/packages/57/99/da6573ba71166e82d288d4df0839128004c67d2778d3b566c138695f5c0b/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c22c776292a23bfc7237a98f791b9ad3144b02116ff10d820829ce62dff46d0b", size = 630007, upload-time = "2025-10-14T15:05:10.117Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/7439c4dd39511368849eb1e53279cd3454b4a4dbace80bab88feeb83c6b5/watchfiles-1.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:3a476189be23c3686bc2f4321dd501cb329c0a0469e77b7b534ee10129ae6374", size = 622280, upload-time = "2025-10-14T15:05:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/95/9c/8ed97d4bba5db6fdcdb2b298d3898f2dd5c20f6b73aee04eabe56c59677e/watchfiles-1.1.1-cp313-cp313-win32.whl", hash = "sha256:bf0a91bfb5574a2f7fc223cf95eeea79abfefa404bf1ea5e339c0c1560ae99a0", size = 272056, upload-time = "2025-10-14T15:05:12.156Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/c14e28429f744a260d8ceae18bf58c1d5fa56b50d006a7a9f80e1882cb0d/watchfiles-1.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:52e06553899e11e8074503c8e716d574adeeb7e68913115c4b3653c53f9bae42", size = 288162, upload-time = "2025-10-14T15:05:13.208Z" }, + { url = "https://files.pythonhosted.org/packages/dc/61/fe0e56c40d5cd29523e398d31153218718c5786b5e636d9ae8ae79453d27/watchfiles-1.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:ac3cc5759570cd02662b15fbcd9d917f7ecd47efe0d6b40474eafd246f91ea18", size = 277909, upload-time = "2025-10-14T15:05:14.49Z" }, + { url = "https://files.pythonhosted.org/packages/79/42/e0a7d749626f1e28c7108a99fb9bf524b501bbbeb9b261ceecde644d5a07/watchfiles-1.1.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:563b116874a9a7ce6f96f87cd0b94f7faf92d08d0021e837796f0a14318ef8da", size = 403389, upload-time = "2025-10-14T15:05:15.777Z" }, + { url = "https://files.pythonhosted.org/packages/15/49/08732f90ce0fbbc13913f9f215c689cfc9ced345fb1bcd8829a50007cc8d/watchfiles-1.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3ad9fe1dae4ab4212d8c91e80b832425e24f421703b5a42ef2e4a1e215aff051", size = 389964, upload-time = "2025-10-14T15:05:16.85Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/7c315d4bd5f2538910491a0393c56bf70d333d51bc5b34bee8e68e8cea19/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce70f96a46b894b36eba678f153f052967a0d06d5b5a19b336ab0dbbd029f73e", size = 448114, upload-time = "2025-10-14T15:05:17.876Z" }, + { url = "https://files.pythonhosted.org/packages/c3/24/9e096de47a4d11bc4df41e9d1e61776393eac4cb6eb11b3e23315b78b2cc/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:cb467c999c2eff23a6417e58d75e5828716f42ed8289fe6b77a7e5a91036ca70", size = 460264, upload-time = "2025-10-14T15:05:18.962Z" }, + { url = "https://files.pythonhosted.org/packages/cc/0f/e8dea6375f1d3ba5fcb0b3583e2b493e77379834c74fd5a22d66d85d6540/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:836398932192dae4146c8f6f737d74baeac8b70ce14831a239bdb1ca882fc261", size = 487877, upload-time = "2025-10-14T15:05:20.094Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/df24cfc6424a12deb41503b64d42fbea6b8cb357ec62ca84a5a3476f654a/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:743185e7372b7bc7c389e1badcc606931a827112fbbd37f14c537320fca08620", size = 595176, upload-time = "2025-10-14T15:05:21.134Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b5/853b6757f7347de4e9b37e8cc3289283fb983cba1ab4d2d7144694871d9c/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:afaeff7696e0ad9f02cbb8f56365ff4686ab205fcf9c4c5b6fdfaaa16549dd04", size = 473577, upload-time = "2025-10-14T15:05:22.306Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f7/0a4467be0a56e80447c8529c9fce5b38eab4f513cb3d9bf82e7392a5696b/watchfiles-1.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f7eb7da0eb23aa2ba036d4f616d46906013a68caf61b7fdbe42fc8b25132e77", size = 455425, upload-time = "2025-10-14T15:05:23.348Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/82583485ea00137ddf69bc84a2db88bd92ab4a6e3c405e5fb878ead8d0e7/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:831a62658609f0e5c64178211c942ace999517f5770fe9436be4c2faeba0c0ef", size = 628826, upload-time = "2025-10-14T15:05:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/28/9a/a785356fccf9fae84c0cc90570f11702ae9571036fb25932f1242c82191c/watchfiles-1.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f9a2ae5c91cecc9edd47e041a930490c31c3afb1f5e6d71de3dc671bfaca02bf", size = 622208, upload-time = "2025-10-14T15:05:25.45Z" }, + { url = "https://files.pythonhosted.org/packages/ba/4c/a888c91e2e326872fa4705095d64acd8aa2fb9c1f7b9bd0588f33850516c/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:17ef139237dfced9da49fb7f2232c86ca9421f666d78c264c7ffca6601d154c3", size = 409611, upload-time = "2025-10-14T15:06:05.809Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c7/5420d1943c8e3ce1a21c0a9330bcf7edafb6aa65d26b21dbb3267c9e8112/watchfiles-1.1.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:672b8adf25b1a0d35c96b5888b7b18699d27d4194bac8beeae75be4b7a3fc9b2", size = 396889, upload-time = "2025-10-14T15:06:07.035Z" }, + { url = "https://files.pythonhosted.org/packages/0c/e5/0072cef3804ce8d3aaddbfe7788aadff6b3d3f98a286fdbee9fd74ca59a7/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77a13aea58bc2b90173bc69f2a90de8e282648939a00a602e1dc4ee23e26b66d", size = 451616, upload-time = "2025-10-14T15:06:08.072Z" }, + { url = "https://files.pythonhosted.org/packages/83/4e/b87b71cbdfad81ad7e83358b3e447fedd281b880a03d64a760fe0a11fc2e/watchfiles-1.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b495de0bb386df6a12b18335a0285dda90260f51bdb505503c02bcd1ce27a8b", size = 458413, upload-time = "2025-10-14T15:06:09.209Z" }, + { url = "https://files.pythonhosted.org/packages/d3/8e/e500f8b0b77be4ff753ac94dc06b33d8f0d839377fee1b78e8c8d8f031bf/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db476ab59b6765134de1d4fe96a1a9c96ddf091683599be0f26147ea1b2e4b88", size = 408250, upload-time = "2025-10-14T15:06:10.264Z" }, + { url = "https://files.pythonhosted.org/packages/bd/95/615e72cd27b85b61eec764a5ca51bd94d40b5adea5ff47567d9ebc4d275a/watchfiles-1.1.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89eef07eee5e9d1fda06e38822ad167a044153457e6fd997f8a858ab7564a336", size = 396117, upload-time = "2025-10-14T15:06:11.28Z" }, + { url = "https://files.pythonhosted.org/packages/c9/81/e7fe958ce8a7fb5c73cc9fb07f5aeaf755e6aa72498c57d760af760c91f8/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce19e06cbda693e9e7686358af9cd6f5d61312ab8b00488bc36f5aabbaf77e24", size = 450493, upload-time = "2025-10-14T15:06:12.321Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d4/ed38dd3b1767193de971e694aa544356e63353c33a85d948166b5ff58b9e/watchfiles-1.1.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e6f39af2eab0118338902798b5aa6664f46ff66bc0280de76fca67a7f262a49", size = 457546, upload-time = "2025-10-14T15:06:13.372Z" }, ] [[package]] name = "wcwidth" version = "0.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload_time = "2026-02-06T19:19:40.919Z" } +sdist = { url = "https://files.pythonhosted.org/packages/35/a2/8e3becb46433538a38726c948d3399905a4c7cabd0df578ede5dc51f0ec2/wcwidth-0.6.0.tar.gz", hash = "sha256:cdc4e4262d6ef9a1a57e018384cbeb1208d8abbc64176027e2c2455c81313159", size = 159684, upload-time = "2026-02-06T19:19:40.919Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload_time = "2026-02-06T19:19:39.646Z" }, + { url = "https://files.pythonhosted.org/packages/68/5a/199c59e0a824a3db2b89c5d2dade7ab5f9624dbf6448dc291b46d5ec94d3/wcwidth-0.6.0-py3-none-any.whl", hash = "sha256:1a3a1e510b553315f8e146c54764f4fb6264ffad731b3d78088cdb1478ffbdad", size = 94189, upload-time = "2026-02-06T19:19:39.646Z" }, ] [[package]] @@ -5032,210 +5082,210 @@ dependencies = [ { name = "typer-slim" }, { name = "wasabi" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/09/d7/edd9c24e60cf8e5de130aa2e8af3b01521f4d0216c371d01212f580d0d8e/weasel-0.4.3.tar.gz", hash = "sha256:f293d6174398e8f478c78481e00c503ee4b82ea7a3e6d0d6a01e46a6b1396845", size = 38733, upload_time = "2025-11-13T23:52:28.193Z" } +sdist = { url = "https://files.pythonhosted.org/packages/09/d7/edd9c24e60cf8e5de130aa2e8af3b01521f4d0216c371d01212f580d0d8e/weasel-0.4.3.tar.gz", hash = "sha256:f293d6174398e8f478c78481e00c503ee4b82ea7a3e6d0d6a01e46a6b1396845", size = 38733, upload-time = "2025-11-13T23:52:28.193Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a4/74/a148b41572656904a39dfcfed3f84dd1066014eed94e209223ae8e9d088d/weasel-0.4.3-py3-none-any.whl", hash = "sha256:08f65b5d0dbded4879e08a64882de9b9514753d9eaa4c4e2a576e33666ac12cf", size = 50757, upload_time = "2025-11-13T23:52:26.982Z" }, + { url = "https://files.pythonhosted.org/packages/a4/74/a148b41572656904a39dfcfed3f84dd1066014eed94e209223ae8e9d088d/weasel-0.4.3-py3-none-any.whl", hash = "sha256:08f65b5d0dbded4879e08a64882de9b9514753d9eaa4c4e2a576e33666ac12cf", size = 50757, upload-time = "2025-11-13T23:52:26.982Z" }, ] [[package]] name = "webcolors" version = "25.10.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload_time = "2025-10-31T07:51:03.977Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/7a/eb316761ec35664ea5174709a68bbd3389de60d4a1ebab8808bfc264ed67/webcolors-25.10.0.tar.gz", hash = "sha256:62abae86504f66d0f6364c2a8520de4a0c47b80c03fc3a5f1815fedbef7c19bf", size = 53491, upload-time = "2025-10-31T07:51:03.977Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload_time = "2025-10-31T07:51:01.778Z" }, + { url = "https://files.pythonhosted.org/packages/e2/cc/e097523dd85c9cf5d354f78310927f1656c422bd7b2613b2db3e3f9a0f2c/webcolors-25.10.0-py3-none-any.whl", hash = "sha256:032c727334856fc0b968f63daa252a1ac93d33db2f5267756623c210e57a4f1d", size = 14905, upload-time = "2025-10-31T07:51:01.778Z" }, ] [[package]] name = "websockets" version = "16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload_time = "2026-01-10T09:23:47.181Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343, upload_time = "2026-01-10T09:22:21.28Z" }, - { url = "https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0", size = 175021, upload_time = "2026-01-10T09:22:22.696Z" }, - { url = "https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957", size = 175320, upload_time = "2026-01-10T09:22:23.94Z" }, - { url = "https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72", size = 183815, upload_time = "2026-01-10T09:22:25.469Z" }, - { url = "https://files.pythonhosted.org/packages/86/26/d40eaa2a46d4302becec8d15b0fc5e45bdde05191e7628405a19cf491ccd/websockets-16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde", size = 185054, upload_time = "2026-01-10T09:22:27.101Z" }, - { url = "https://files.pythonhosted.org/packages/b0/ba/6500a0efc94f7373ee8fefa8c271acdfd4dca8bd49a90d4be7ccabfc397e/websockets-16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3", size = 184565, upload_time = "2026-01-10T09:22:28.293Z" }, - { url = "https://files.pythonhosted.org/packages/04/b4/96bf2cee7c8d8102389374a2616200574f5f01128d1082f44102140344cc/websockets-16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3", size = 183848, upload_time = "2026-01-10T09:22:30.394Z" }, - { url = "https://files.pythonhosted.org/packages/02/8e/81f40fb00fd125357814e8c3025738fc4ffc3da4b6b4a4472a82ba304b41/websockets-16.0-cp310-cp310-win32.whl", hash = "sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9", size = 178249, upload_time = "2026-01-10T09:22:32.083Z" }, - { url = "https://files.pythonhosted.org/packages/b4/5f/7e40efe8df57db9b91c88a43690ac66f7b7aa73a11aa6a66b927e44f26fa/websockets-16.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35", size = 178685, upload_time = "2026-01-10T09:22:33.345Z" }, - { url = "https://files.pythonhosted.org/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340, upload_time = "2026-01-10T09:22:34.539Z" }, - { url = "https://files.pythonhosted.org/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022, upload_time = "2026-01-10T09:22:36.332Z" }, - { url = "https://files.pythonhosted.org/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319, upload_time = "2026-01-10T09:22:37.602Z" }, - { url = "https://files.pythonhosted.org/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631, upload_time = "2026-01-10T09:22:38.789Z" }, - { url = "https://files.pythonhosted.org/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870, upload_time = "2026-01-10T09:22:39.893Z" }, - { url = "https://files.pythonhosted.org/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361, upload_time = "2026-01-10T09:22:41.016Z" }, - { url = "https://files.pythonhosted.org/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615, upload_time = "2026-01-10T09:22:42.442Z" }, - { url = "https://files.pythonhosted.org/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246, upload_time = "2026-01-10T09:22:43.654Z" }, - { url = "https://files.pythonhosted.org/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684, upload_time = "2026-01-10T09:22:44.941Z" }, - { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload_time = "2026-01-10T09:22:46.787Z" }, - { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload_time = "2026-01-10T09:22:47.999Z" }, - { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload_time = "2026-01-10T09:22:49.809Z" }, - { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload_time = "2026-01-10T09:22:51.071Z" }, - { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload_time = "2026-01-10T09:22:52.224Z" }, - { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload_time = "2026-01-10T09:22:53.443Z" }, - { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload_time = "2026-01-10T09:22:55.033Z" }, - { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload_time = "2026-01-10T09:22:56.251Z" }, - { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload_time = "2026-01-10T09:22:57.478Z" }, - { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload_time = "2026-01-10T09:22:59.333Z" }, - { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload_time = "2026-01-10T09:23:01.171Z" }, - { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload_time = "2026-01-10T09:23:02.341Z" }, - { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload_time = "2026-01-10T09:23:03.756Z" }, - { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload_time = "2026-01-10T09:23:05.01Z" }, - { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload_time = "2026-01-10T09:23:06.301Z" }, - { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload_time = "2026-01-10T09:23:07.492Z" }, - { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload_time = "2026-01-10T09:23:09.245Z" }, - { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload_time = "2026-01-10T09:23:10.483Z" }, - { url = "https://files.pythonhosted.org/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947, upload_time = "2026-01-10T09:23:36.166Z" }, - { url = "https://files.pythonhosted.org/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260, upload_time = "2026-01-10T09:23:37.409Z" }, - { url = "https://files.pythonhosted.org/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071, upload_time = "2026-01-10T09:23:39.158Z" }, - { url = "https://files.pythonhosted.org/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968, upload_time = "2026-01-10T09:23:41.031Z" }, - { url = "https://files.pythonhosted.org/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735, upload_time = "2026-01-10T09:23:42.259Z" }, - { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload_time = "2026-01-10T09:23:45.395Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343, upload-time = "2026-01-10T09:22:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0", size = 175021, upload-time = "2026-01-10T09:22:22.696Z" }, + { url = "https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957", size = 175320, upload-time = "2026-01-10T09:22:23.94Z" }, + { url = "https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72", size = 183815, upload-time = "2026-01-10T09:22:25.469Z" }, + { url = "https://files.pythonhosted.org/packages/86/26/d40eaa2a46d4302becec8d15b0fc5e45bdde05191e7628405a19cf491ccd/websockets-16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde", size = 185054, upload-time = "2026-01-10T09:22:27.101Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ba/6500a0efc94f7373ee8fefa8c271acdfd4dca8bd49a90d4be7ccabfc397e/websockets-16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3", size = 184565, upload-time = "2026-01-10T09:22:28.293Z" }, + { url = "https://files.pythonhosted.org/packages/04/b4/96bf2cee7c8d8102389374a2616200574f5f01128d1082f44102140344cc/websockets-16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3", size = 183848, upload-time = "2026-01-10T09:22:30.394Z" }, + { url = "https://files.pythonhosted.org/packages/02/8e/81f40fb00fd125357814e8c3025738fc4ffc3da4b6b4a4472a82ba304b41/websockets-16.0-cp310-cp310-win32.whl", hash = "sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9", size = 178249, upload-time = "2026-01-10T09:22:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/b4/5f/7e40efe8df57db9b91c88a43690ac66f7b7aa73a11aa6a66b927e44f26fa/websockets-16.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35", size = 178685, upload-time = "2026-01-10T09:22:33.345Z" }, + { url = "https://files.pythonhosted.org/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340, upload-time = "2026-01-10T09:22:34.539Z" }, + { url = "https://files.pythonhosted.org/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022, upload-time = "2026-01-10T09:22:36.332Z" }, + { url = "https://files.pythonhosted.org/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319, upload-time = "2026-01-10T09:22:37.602Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631, upload-time = "2026-01-10T09:22:38.789Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870, upload-time = "2026-01-10T09:22:39.893Z" }, + { url = "https://files.pythonhosted.org/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361, upload-time = "2026-01-10T09:22:41.016Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615, upload-time = "2026-01-10T09:22:42.442Z" }, + { url = "https://files.pythonhosted.org/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246, upload-time = "2026-01-10T09:22:43.654Z" }, + { url = "https://files.pythonhosted.org/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684, upload-time = "2026-01-10T09:22:44.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload-time = "2026-01-10T09:22:46.787Z" }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload-time = "2026-01-10T09:22:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload-time = "2026-01-10T09:22:49.809Z" }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload-time = "2026-01-10T09:22:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload-time = "2026-01-10T09:22:52.224Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload-time = "2026-01-10T09:22:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload-time = "2026-01-10T09:22:55.033Z" }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload-time = "2026-01-10T09:22:56.251Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload-time = "2026-01-10T09:22:57.478Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload-time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload-time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload-time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload-time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload-time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload-time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload-time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload-time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload-time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947, upload-time = "2026-01-10T09:23:36.166Z" }, + { url = "https://files.pythonhosted.org/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260, upload-time = "2026-01-10T09:23:37.409Z" }, + { url = "https://files.pythonhosted.org/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071, upload-time = "2026-01-10T09:23:39.158Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968, upload-time = "2026-01-10T09:23:41.031Z" }, + { url = "https://files.pythonhosted.org/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735, upload-time = "2026-01-10T09:23:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, ] [[package]] name = "wrapt" version = "2.1.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f7/37/ae31f40bec90de2f88d9597d0b5281e23ffe85b893a47ca5d9c05c63a4f6/wrapt-2.1.1.tar.gz", hash = "sha256:5fdcb09bf6db023d88f312bd0767594b414655d58090fc1c46b3414415f67fac", size = 81329, upload_time = "2026-02-03T02:12:13.786Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/21/293b657a27accfbbbb6007ebd78af0efa2083dac83e8f523272ea09b4638/wrapt-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e927375e43fd5a985b27a8992327c22541b6dede1362fc79df337d26e23604f", size = 60554, upload_time = "2026-02-03T02:11:17.362Z" }, - { url = "https://files.pythonhosted.org/packages/25/e9/96dd77728b54a899d4ce2798d7b1296989ce687ed3c0cb917d6b3154bf5d/wrapt-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c99544b6a7d40ca22195563b6d8bc3986ee8bb82f272f31f0670fe9440c869", size = 61496, upload_time = "2026-02-03T02:12:54.732Z" }, - { url = "https://files.pythonhosted.org/packages/44/79/4c755b45df6ef30c0dd628ecfaa0c808854be147ca438429da70a162833c/wrapt-2.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b2be3fa5f4efaf16ee7c77d0556abca35f5a18ad4ac06f0ef3904c3399010ce9", size = 113528, upload_time = "2026-02-03T02:12:26.405Z" }, - { url = "https://files.pythonhosted.org/packages/9f/63/23ce28f7b841217d9a6337a340fbb8d4a7fbd67a89d47f377c8550fa34aa/wrapt-2.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67c90c1ae6489a6cb1a82058902caa8006706f7b4e8ff766f943e9d2c8e608d0", size = 115536, upload_time = "2026-02-03T02:11:54.397Z" }, - { url = "https://files.pythonhosted.org/packages/23/7b/5ca8d3b12768670d16c8329e29960eedd56212770365a02a8de8bf73dc01/wrapt-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05c0db35ccffd7480143e62df1e829d101c7b86944ae3be7e4869a7efa621f53", size = 114716, upload_time = "2026-02-03T02:12:20.771Z" }, - { url = "https://files.pythonhosted.org/packages/c7/3a/9789ccb14a096d30bb847bf3ee137bf682cc9750c2ce155f4c5ae1962abf/wrapt-2.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0c2ec9f616755b2e1e0bf4d0961f59bb5c2e7a77407e7e2c38ef4f7d2fdde12c", size = 113200, upload_time = "2026-02-03T02:12:07.688Z" }, - { url = "https://files.pythonhosted.org/packages/cf/e5/4ec3526ce6ce920b267c8d35d2c2f0874d3fad2744c8b7259353f1132baa/wrapt-2.1.1-cp310-cp310-win32.whl", hash = "sha256:203ba6b3f89e410e27dbd30ff7dccaf54dcf30fda0b22aa1b82d560c7f9fe9a1", size = 57876, upload_time = "2026-02-03T02:11:42.61Z" }, - { url = "https://files.pythonhosted.org/packages/d1/4e/661c7c76ecd85375b2bc03488941a3a1078642af481db24949e2b9de01f4/wrapt-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:6f9426d9cfc2f8732922fc96198052e55c09bb9db3ddaa4323a18e055807410e", size = 60224, upload_time = "2026-02-03T02:11:19.096Z" }, - { url = "https://files.pythonhosted.org/packages/5f/b7/53c7252d371efada4cb119e72e774fa2c6b3011fc33e3e552cdf48fb9488/wrapt-2.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:69c26f51b67076b40714cff81bdd5826c0b10c077fb6b0678393a6a2f952a5fc", size = 58645, upload_time = "2026-02-03T02:12:10.396Z" }, - { url = "https://files.pythonhosted.org/packages/b8/a8/9254e4da74b30a105935197015b18b31b7a298bf046e67d8952ef74967bd/wrapt-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c366434a7fb914c7a5de508ed735ef9c133367114e1a7cb91dfb5cd806a1549", size = 60554, upload_time = "2026-02-03T02:11:13.038Z" }, - { url = "https://files.pythonhosted.org/packages/9e/a1/378579880cc7af226354054a2c255f69615b379d8adad482bfe2f22a0dc2/wrapt-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d6a2068bd2e1e19e5a317c8c0b288267eec4e7347c36bc68a6e378a39f19ee7", size = 61491, upload_time = "2026-02-03T02:12:56.077Z" }, - { url = "https://files.pythonhosted.org/packages/dc/72/957b51c56acca35701665878ad31626182199fc4afecfe67dea072210f95/wrapt-2.1.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:891ab4713419217b2aed7dd106c9200f64e6a82226775a0d2ebd6bef2ebd1747", size = 113949, upload_time = "2026-02-03T02:11:04.516Z" }, - { url = "https://files.pythonhosted.org/packages/cd/74/36bbebb4a3d2ae9c3e6929639721f8606cd0710a82a777c371aa69e36504/wrapt-2.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8ef36a0df38d2dc9d907f6617f89e113c5892e0a35f58f45f75901af0ce7d81", size = 115989, upload_time = "2026-02-03T02:12:19.398Z" }, - { url = "https://files.pythonhosted.org/packages/ae/0d/f1177245a083c7be284bc90bddfe5aece32cdd5b858049cb69ce001a0e8d/wrapt-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76e9af3ebd86f19973143d4d592cbf3e970cf3f66ddee30b16278c26ae34b8ab", size = 115242, upload_time = "2026-02-03T02:11:08.111Z" }, - { url = "https://files.pythonhosted.org/packages/62/3e/3b7cf5da27e59df61b1eae2d07dd03ff5d6f75b5408d694873cca7a8e33c/wrapt-2.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ff562067485ebdeaef2fa3fe9b1876bc4e7b73762e0a01406ad81e2076edcebf", size = 113676, upload_time = "2026-02-03T02:12:41.026Z" }, - { url = "https://files.pythonhosted.org/packages/f7/65/8248d3912c705f2c66f81cb97c77436f37abcbedb16d633b5ab0d795d8cd/wrapt-2.1.1-cp311-cp311-win32.whl", hash = "sha256:9e60a30aa0909435ec4ea2a3c53e8e1b50ac9f640c0e9fe3f21fd248a22f06c5", size = 57863, upload_time = "2026-02-03T02:12:18.112Z" }, - { url = "https://files.pythonhosted.org/packages/6b/31/d29310ab335f71f00c50466153b3dc985aaf4a9fc03263e543e136859541/wrapt-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:7d79954f51fcf84e5ec4878ab4aea32610d70145c5bbc84b3370eabfb1e096c2", size = 60224, upload_time = "2026-02-03T02:12:29.289Z" }, - { url = "https://files.pythonhosted.org/packages/0c/90/a6ec319affa6e2894962a0cb9d73c67f88af1a726d15314bfb5c88b8a08d/wrapt-2.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:d3ffc6b0efe79e08fd947605fd598515aebefe45e50432dc3b5cd437df8b1ada", size = 58643, upload_time = "2026-02-03T02:12:43.022Z" }, - { url = "https://files.pythonhosted.org/packages/df/cb/4d5255d19bbd12be7f8ee2c1fb4269dddec9cef777ef17174d357468efaa/wrapt-2.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab8e3793b239db021a18782a5823fcdea63b9fe75d0e340957f5828ef55fcc02", size = 61143, upload_time = "2026-02-03T02:11:46.313Z" }, - { url = "https://files.pythonhosted.org/packages/6f/07/7ed02daa35542023464e3c8b7cb937fa61f6c61c0361ecf8f5fecf8ad8da/wrapt-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c0300007836373d1c2df105b40777986accb738053a92fe09b615a7a4547e9f", size = 61740, upload_time = "2026-02-03T02:12:51.966Z" }, - { url = "https://files.pythonhosted.org/packages/c4/60/a237a4e4a36f6d966061ccc9b017627d448161b19e0a3ab80a7c7c97f859/wrapt-2.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2b27c070fd1132ab23957bcd4ee3ba707a91e653a9268dc1afbd39b77b2799f7", size = 121327, upload_time = "2026-02-03T02:11:06.796Z" }, - { url = "https://files.pythonhosted.org/packages/ae/fe/9139058a3daa8818fc67e6460a2340e8bbcf3aef8b15d0301338bbe181ca/wrapt-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b0e36d845e8b6f50949b6b65fc6cd279f47a1944582ed4ec8258cd136d89a64", size = 122903, upload_time = "2026-02-03T02:12:48.657Z" }, - { url = "https://files.pythonhosted.org/packages/91/10/b8479202b4164649675846a531763531f0a6608339558b5a0a718fc49a8d/wrapt-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4aeea04a9889370fcfb1ef828c4cc583f36a875061505cd6cd9ba24d8b43cc36", size = 121333, upload_time = "2026-02-03T02:11:32.148Z" }, - { url = "https://files.pythonhosted.org/packages/5f/75/75fc793b791d79444aca2c03ccde64e8b99eda321b003f267d570b7b0985/wrapt-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d88b46bb0dce9f74b6817bc1758ff2125e1ca9e1377d62ea35b6896142ab6825", size = 120458, upload_time = "2026-02-03T02:11:16.039Z" }, - { url = "https://files.pythonhosted.org/packages/d7/8f/c3f30d511082ca6d947c405f9d8f6c8eaf83cfde527c439ec2c9a30eb5ea/wrapt-2.1.1-cp312-cp312-win32.whl", hash = "sha256:63decff76ca685b5c557082dfbea865f3f5f6d45766a89bff8dc61d336348833", size = 58086, upload_time = "2026-02-03T02:12:35.041Z" }, - { url = "https://files.pythonhosted.org/packages/0a/c8/37625b643eea2849f10c3b90f69c7462faa4134448d4443234adaf122ae5/wrapt-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:b828235d26c1e35aca4107039802ae4b1411be0fe0367dd5b7e4d90e562fcbcd", size = 60328, upload_time = "2026-02-03T02:12:45.808Z" }, - { url = "https://files.pythonhosted.org/packages/ce/79/56242f07572d5682ba8065a9d4d9c2218313f576e3c3471873c2a5355ffd/wrapt-2.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:75128507413a9f1bcbe2db88fd18fbdbf80f264b82fa33a6996cdeaf01c52352", size = 58722, upload_time = "2026-02-03T02:12:27.949Z" }, - { url = "https://files.pythonhosted.org/packages/f7/ca/3cf290212855b19af9fcc41b725b5620b32f470d6aad970c2593500817eb/wrapt-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce9646e17fa7c3e2e7a87e696c7de66512c2b4f789a8db95c613588985a2e139", size = 61150, upload_time = "2026-02-03T02:12:50.575Z" }, - { url = "https://files.pythonhosted.org/packages/9d/33/5b8f89a82a9859ce82da4870c799ad11ce15648b6e1c820fec3e23f4a19f/wrapt-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:428cfc801925454395aa468ba7ddb3ed63dc0d881df7b81626cdd433b4e2b11b", size = 61743, upload_time = "2026-02-03T02:11:55.733Z" }, - { url = "https://files.pythonhosted.org/packages/1e/2f/60c51304fbdf47ce992d9eefa61fbd2c0e64feee60aaa439baf42ea6f40b/wrapt-2.1.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5797f65e4d58065a49088c3b32af5410751cd485e83ba89e5a45e2aa8905af98", size = 121341, upload_time = "2026-02-03T02:11:20.461Z" }, - { url = "https://files.pythonhosted.org/packages/ad/03/ce5256e66dd94e521ad5e753c78185c01b6eddbed3147be541f4d38c0cb7/wrapt-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a2db44a71202c5ae4bb5f27c6d3afbc5b23053f2e7e78aa29704541b5dad789", size = 122947, upload_time = "2026-02-03T02:11:33.596Z" }, - { url = "https://files.pythonhosted.org/packages/eb/ae/50ca8854b81b946a11a36fcd6ead32336e6db2c14b6e4a8b092b80741178/wrapt-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8d5350c3590af09c1703dd60ec78a7370c0186e11eaafb9dda025a30eee6492d", size = 121370, upload_time = "2026-02-03T02:11:09.886Z" }, - { url = "https://files.pythonhosted.org/packages/fb/d9/d6a7c654e0043319b4cc137a4caaf7aa16b46b51ee8df98d1060254705b7/wrapt-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d9b076411bed964e752c01b49fd224cc385f3a96f520c797d38412d70d08359", size = 120465, upload_time = "2026-02-03T02:11:37.592Z" }, - { url = "https://files.pythonhosted.org/packages/55/90/65be41e40845d951f714b5a77e84f377a3787b1e8eee6555a680da6d0db5/wrapt-2.1.1-cp313-cp313-win32.whl", hash = "sha256:0bb7207130ce6486727baa85373503bf3334cc28016f6928a0fa7e19d7ecdc06", size = 58090, upload_time = "2026-02-03T02:12:53.342Z" }, - { url = "https://files.pythonhosted.org/packages/5f/66/6a09e0294c4fc8c26028a03a15191721c9271672467cc33e6617ee0d91d2/wrapt-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:cbfee35c711046b15147b0ae7db9b976f01c9520e6636d992cd9e69e5e2b03b1", size = 60341, upload_time = "2026-02-03T02:12:36.384Z" }, - { url = "https://files.pythonhosted.org/packages/7a/f0/20ceb8b701e9a71555c87a5ddecbed76ec16742cf1e4b87bbaf26735f998/wrapt-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:7d2756061022aebbf57ba14af9c16e8044e055c22d38de7bf40d92b565ecd2b0", size = 58731, upload_time = "2026-02-03T02:12:01.328Z" }, - { url = "https://files.pythonhosted.org/packages/80/b4/fe95beb8946700b3db371f6ce25115217e7075ca063663b8cca2888ba55c/wrapt-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4814a3e58bc6971e46baa910ecee69699110a2bf06c201e24277c65115a20c20", size = 62969, upload_time = "2026-02-03T02:11:51.245Z" }, - { url = "https://files.pythonhosted.org/packages/b8/89/477b0bdc784e3299edf69c279697372b8bd4c31d9c6966eae405442899df/wrapt-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:106c5123232ab9b9f4903692e1fa0bdc231510098f04c13c3081f8ad71c3d612", size = 63606, upload_time = "2026-02-03T02:12:02.64Z" }, - { url = "https://files.pythonhosted.org/packages/ed/55/9d0c1269ab76de87715b3b905df54dd25d55bbffd0b98696893eb613469f/wrapt-2.1.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1a40b83ff2535e6e56f190aff123821eea89a24c589f7af33413b9c19eb2c738", size = 152536, upload_time = "2026-02-03T02:11:24.492Z" }, - { url = "https://files.pythonhosted.org/packages/44/18/2004766030462f79ad86efaa62000b5e39b1ff001dcce86650e1625f40ae/wrapt-2.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:789cea26e740d71cf1882e3a42bb29052bc4ada15770c90072cb47bf73fb3dbf", size = 158697, upload_time = "2026-02-03T02:12:32.214Z" }, - { url = "https://files.pythonhosted.org/packages/e1/bb/0a880fa0f35e94ee843df4ee4dd52a699c9263f36881311cfb412c09c3e5/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ba49c14222d5e5c0ee394495a8655e991dc06cbca5398153aefa5ac08cd6ccd7", size = 155563, upload_time = "2026-02-03T02:11:49.737Z" }, - { url = "https://files.pythonhosted.org/packages/42/ff/cd1b7c4846c8678fac359a6eb975dc7ab5bd606030adb22acc8b4a9f53f1/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ac8cda531fe55be838a17c62c806824472bb962b3afa47ecbd59b27b78496f4e", size = 150161, upload_time = "2026-02-03T02:12:33.613Z" }, - { url = "https://files.pythonhosted.org/packages/38/ec/67c90a7082f452964b4621e4890e9a490f1add23cdeb7483cc1706743291/wrapt-2.1.1-cp313-cp313t-win32.whl", hash = "sha256:b8af75fe20d381dd5bcc9db2e86a86d7fcfbf615383a7147b85da97c1182225b", size = 59783, upload_time = "2026-02-03T02:11:39.863Z" }, - { url = "https://files.pythonhosted.org/packages/ec/08/466afe4855847d8febdfa2c57c87e991fc5820afbdef01a273683dfd15a0/wrapt-2.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:45c5631c9b6c792b78be2d7352129f776dd72c605be2c3a4e9be346be8376d83", size = 63082, upload_time = "2026-02-03T02:12:09.075Z" }, - { url = "https://files.pythonhosted.org/packages/9a/62/60b629463c28b15b1eeadb3a0691e17568622b12aa5bfa7ebe9b514bfbeb/wrapt-2.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:da815b9263947ac98d088b6414ac83507809a1d385e4632d9489867228d6d81c", size = 60251, upload_time = "2026-02-03T02:11:21.794Z" }, - { url = "https://files.pythonhosted.org/packages/c4/da/5a086bf4c22a41995312db104ec2ffeee2cf6accca9faaee5315c790377d/wrapt-2.1.1-py3-none-any.whl", hash = "sha256:3b0f4629eb954394a3d7c7a1c8cca25f0b07cefe6aa8545e862e9778152de5b7", size = 43886, upload_time = "2026-02-03T02:11:45.048Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/f7/37/ae31f40bec90de2f88d9597d0b5281e23ffe85b893a47ca5d9c05c63a4f6/wrapt-2.1.1.tar.gz", hash = "sha256:5fdcb09bf6db023d88f312bd0767594b414655d58090fc1c46b3414415f67fac", size = 81329, upload-time = "2026-02-03T02:12:13.786Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/21/293b657a27accfbbbb6007ebd78af0efa2083dac83e8f523272ea09b4638/wrapt-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7e927375e43fd5a985b27a8992327c22541b6dede1362fc79df337d26e23604f", size = 60554, upload-time = "2026-02-03T02:11:17.362Z" }, + { url = "https://files.pythonhosted.org/packages/25/e9/96dd77728b54a899d4ce2798d7b1296989ce687ed3c0cb917d6b3154bf5d/wrapt-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c99544b6a7d40ca22195563b6d8bc3986ee8bb82f272f31f0670fe9440c869", size = 61496, upload-time = "2026-02-03T02:12:54.732Z" }, + { url = "https://files.pythonhosted.org/packages/44/79/4c755b45df6ef30c0dd628ecfaa0c808854be147ca438429da70a162833c/wrapt-2.1.1-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b2be3fa5f4efaf16ee7c77d0556abca35f5a18ad4ac06f0ef3904c3399010ce9", size = 113528, upload-time = "2026-02-03T02:12:26.405Z" }, + { url = "https://files.pythonhosted.org/packages/9f/63/23ce28f7b841217d9a6337a340fbb8d4a7fbd67a89d47f377c8550fa34aa/wrapt-2.1.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67c90c1ae6489a6cb1a82058902caa8006706f7b4e8ff766f943e9d2c8e608d0", size = 115536, upload-time = "2026-02-03T02:11:54.397Z" }, + { url = "https://files.pythonhosted.org/packages/23/7b/5ca8d3b12768670d16c8329e29960eedd56212770365a02a8de8bf73dc01/wrapt-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05c0db35ccffd7480143e62df1e829d101c7b86944ae3be7e4869a7efa621f53", size = 114716, upload-time = "2026-02-03T02:12:20.771Z" }, + { url = "https://files.pythonhosted.org/packages/c7/3a/9789ccb14a096d30bb847bf3ee137bf682cc9750c2ce155f4c5ae1962abf/wrapt-2.1.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0c2ec9f616755b2e1e0bf4d0961f59bb5c2e7a77407e7e2c38ef4f7d2fdde12c", size = 113200, upload-time = "2026-02-03T02:12:07.688Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e5/4ec3526ce6ce920b267c8d35d2c2f0874d3fad2744c8b7259353f1132baa/wrapt-2.1.1-cp310-cp310-win32.whl", hash = "sha256:203ba6b3f89e410e27dbd30ff7dccaf54dcf30fda0b22aa1b82d560c7f9fe9a1", size = 57876, upload-time = "2026-02-03T02:11:42.61Z" }, + { url = "https://files.pythonhosted.org/packages/d1/4e/661c7c76ecd85375b2bc03488941a3a1078642af481db24949e2b9de01f4/wrapt-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:6f9426d9cfc2f8732922fc96198052e55c09bb9db3ddaa4323a18e055807410e", size = 60224, upload-time = "2026-02-03T02:11:19.096Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b7/53c7252d371efada4cb119e72e774fa2c6b3011fc33e3e552cdf48fb9488/wrapt-2.1.1-cp310-cp310-win_arm64.whl", hash = "sha256:69c26f51b67076b40714cff81bdd5826c0b10c077fb6b0678393a6a2f952a5fc", size = 58645, upload-time = "2026-02-03T02:12:10.396Z" }, + { url = "https://files.pythonhosted.org/packages/b8/a8/9254e4da74b30a105935197015b18b31b7a298bf046e67d8952ef74967bd/wrapt-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6c366434a7fb914c7a5de508ed735ef9c133367114e1a7cb91dfb5cd806a1549", size = 60554, upload-time = "2026-02-03T02:11:13.038Z" }, + { url = "https://files.pythonhosted.org/packages/9e/a1/378579880cc7af226354054a2c255f69615b379d8adad482bfe2f22a0dc2/wrapt-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5d6a2068bd2e1e19e5a317c8c0b288267eec4e7347c36bc68a6e378a39f19ee7", size = 61491, upload-time = "2026-02-03T02:12:56.077Z" }, + { url = "https://files.pythonhosted.org/packages/dc/72/957b51c56acca35701665878ad31626182199fc4afecfe67dea072210f95/wrapt-2.1.1-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:891ab4713419217b2aed7dd106c9200f64e6a82226775a0d2ebd6bef2ebd1747", size = 113949, upload-time = "2026-02-03T02:11:04.516Z" }, + { url = "https://files.pythonhosted.org/packages/cd/74/36bbebb4a3d2ae9c3e6929639721f8606cd0710a82a777c371aa69e36504/wrapt-2.1.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8ef36a0df38d2dc9d907f6617f89e113c5892e0a35f58f45f75901af0ce7d81", size = 115989, upload-time = "2026-02-03T02:12:19.398Z" }, + { url = "https://files.pythonhosted.org/packages/ae/0d/f1177245a083c7be284bc90bddfe5aece32cdd5b858049cb69ce001a0e8d/wrapt-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:76e9af3ebd86f19973143d4d592cbf3e970cf3f66ddee30b16278c26ae34b8ab", size = 115242, upload-time = "2026-02-03T02:11:08.111Z" }, + { url = "https://files.pythonhosted.org/packages/62/3e/3b7cf5da27e59df61b1eae2d07dd03ff5d6f75b5408d694873cca7a8e33c/wrapt-2.1.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ff562067485ebdeaef2fa3fe9b1876bc4e7b73762e0a01406ad81e2076edcebf", size = 113676, upload-time = "2026-02-03T02:12:41.026Z" }, + { url = "https://files.pythonhosted.org/packages/f7/65/8248d3912c705f2c66f81cb97c77436f37abcbedb16d633b5ab0d795d8cd/wrapt-2.1.1-cp311-cp311-win32.whl", hash = "sha256:9e60a30aa0909435ec4ea2a3c53e8e1b50ac9f640c0e9fe3f21fd248a22f06c5", size = 57863, upload-time = "2026-02-03T02:12:18.112Z" }, + { url = "https://files.pythonhosted.org/packages/6b/31/d29310ab335f71f00c50466153b3dc985aaf4a9fc03263e543e136859541/wrapt-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:7d79954f51fcf84e5ec4878ab4aea32610d70145c5bbc84b3370eabfb1e096c2", size = 60224, upload-time = "2026-02-03T02:12:29.289Z" }, + { url = "https://files.pythonhosted.org/packages/0c/90/a6ec319affa6e2894962a0cb9d73c67f88af1a726d15314bfb5c88b8a08d/wrapt-2.1.1-cp311-cp311-win_arm64.whl", hash = "sha256:d3ffc6b0efe79e08fd947605fd598515aebefe45e50432dc3b5cd437df8b1ada", size = 58643, upload-time = "2026-02-03T02:12:43.022Z" }, + { url = "https://files.pythonhosted.org/packages/df/cb/4d5255d19bbd12be7f8ee2c1fb4269dddec9cef777ef17174d357468efaa/wrapt-2.1.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ab8e3793b239db021a18782a5823fcdea63b9fe75d0e340957f5828ef55fcc02", size = 61143, upload-time = "2026-02-03T02:11:46.313Z" }, + { url = "https://files.pythonhosted.org/packages/6f/07/7ed02daa35542023464e3c8b7cb937fa61f6c61c0361ecf8f5fecf8ad8da/wrapt-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7c0300007836373d1c2df105b40777986accb738053a92fe09b615a7a4547e9f", size = 61740, upload-time = "2026-02-03T02:12:51.966Z" }, + { url = "https://files.pythonhosted.org/packages/c4/60/a237a4e4a36f6d966061ccc9b017627d448161b19e0a3ab80a7c7c97f859/wrapt-2.1.1-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2b27c070fd1132ab23957bcd4ee3ba707a91e653a9268dc1afbd39b77b2799f7", size = 121327, upload-time = "2026-02-03T02:11:06.796Z" }, + { url = "https://files.pythonhosted.org/packages/ae/fe/9139058a3daa8818fc67e6460a2340e8bbcf3aef8b15d0301338bbe181ca/wrapt-2.1.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b0e36d845e8b6f50949b6b65fc6cd279f47a1944582ed4ec8258cd136d89a64", size = 122903, upload-time = "2026-02-03T02:12:48.657Z" }, + { url = "https://files.pythonhosted.org/packages/91/10/b8479202b4164649675846a531763531f0a6608339558b5a0a718fc49a8d/wrapt-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4aeea04a9889370fcfb1ef828c4cc583f36a875061505cd6cd9ba24d8b43cc36", size = 121333, upload-time = "2026-02-03T02:11:32.148Z" }, + { url = "https://files.pythonhosted.org/packages/5f/75/75fc793b791d79444aca2c03ccde64e8b99eda321b003f267d570b7b0985/wrapt-2.1.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d88b46bb0dce9f74b6817bc1758ff2125e1ca9e1377d62ea35b6896142ab6825", size = 120458, upload-time = "2026-02-03T02:11:16.039Z" }, + { url = "https://files.pythonhosted.org/packages/d7/8f/c3f30d511082ca6d947c405f9d8f6c8eaf83cfde527c439ec2c9a30eb5ea/wrapt-2.1.1-cp312-cp312-win32.whl", hash = "sha256:63decff76ca685b5c557082dfbea865f3f5f6d45766a89bff8dc61d336348833", size = 58086, upload-time = "2026-02-03T02:12:35.041Z" }, + { url = "https://files.pythonhosted.org/packages/0a/c8/37625b643eea2849f10c3b90f69c7462faa4134448d4443234adaf122ae5/wrapt-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:b828235d26c1e35aca4107039802ae4b1411be0fe0367dd5b7e4d90e562fcbcd", size = 60328, upload-time = "2026-02-03T02:12:45.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/79/56242f07572d5682ba8065a9d4d9c2218313f576e3c3471873c2a5355ffd/wrapt-2.1.1-cp312-cp312-win_arm64.whl", hash = "sha256:75128507413a9f1bcbe2db88fd18fbdbf80f264b82fa33a6996cdeaf01c52352", size = 58722, upload-time = "2026-02-03T02:12:27.949Z" }, + { url = "https://files.pythonhosted.org/packages/f7/ca/3cf290212855b19af9fcc41b725b5620b32f470d6aad970c2593500817eb/wrapt-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ce9646e17fa7c3e2e7a87e696c7de66512c2b4f789a8db95c613588985a2e139", size = 61150, upload-time = "2026-02-03T02:12:50.575Z" }, + { url = "https://files.pythonhosted.org/packages/9d/33/5b8f89a82a9859ce82da4870c799ad11ce15648b6e1c820fec3e23f4a19f/wrapt-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:428cfc801925454395aa468ba7ddb3ed63dc0d881df7b81626cdd433b4e2b11b", size = 61743, upload-time = "2026-02-03T02:11:55.733Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2f/60c51304fbdf47ce992d9eefa61fbd2c0e64feee60aaa439baf42ea6f40b/wrapt-2.1.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5797f65e4d58065a49088c3b32af5410751cd485e83ba89e5a45e2aa8905af98", size = 121341, upload-time = "2026-02-03T02:11:20.461Z" }, + { url = "https://files.pythonhosted.org/packages/ad/03/ce5256e66dd94e521ad5e753c78185c01b6eddbed3147be541f4d38c0cb7/wrapt-2.1.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5a2db44a71202c5ae4bb5f27c6d3afbc5b23053f2e7e78aa29704541b5dad789", size = 122947, upload-time = "2026-02-03T02:11:33.596Z" }, + { url = "https://files.pythonhosted.org/packages/eb/ae/50ca8854b81b946a11a36fcd6ead32336e6db2c14b6e4a8b092b80741178/wrapt-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8d5350c3590af09c1703dd60ec78a7370c0186e11eaafb9dda025a30eee6492d", size = 121370, upload-time = "2026-02-03T02:11:09.886Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d9/d6a7c654e0043319b4cc137a4caaf7aa16b46b51ee8df98d1060254705b7/wrapt-2.1.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2d9b076411bed964e752c01b49fd224cc385f3a96f520c797d38412d70d08359", size = 120465, upload-time = "2026-02-03T02:11:37.592Z" }, + { url = "https://files.pythonhosted.org/packages/55/90/65be41e40845d951f714b5a77e84f377a3787b1e8eee6555a680da6d0db5/wrapt-2.1.1-cp313-cp313-win32.whl", hash = "sha256:0bb7207130ce6486727baa85373503bf3334cc28016f6928a0fa7e19d7ecdc06", size = 58090, upload-time = "2026-02-03T02:12:53.342Z" }, + { url = "https://files.pythonhosted.org/packages/5f/66/6a09e0294c4fc8c26028a03a15191721c9271672467cc33e6617ee0d91d2/wrapt-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:cbfee35c711046b15147b0ae7db9b976f01c9520e6636d992cd9e69e5e2b03b1", size = 60341, upload-time = "2026-02-03T02:12:36.384Z" }, + { url = "https://files.pythonhosted.org/packages/7a/f0/20ceb8b701e9a71555c87a5ddecbed76ec16742cf1e4b87bbaf26735f998/wrapt-2.1.1-cp313-cp313-win_arm64.whl", hash = "sha256:7d2756061022aebbf57ba14af9c16e8044e055c22d38de7bf40d92b565ecd2b0", size = 58731, upload-time = "2026-02-03T02:12:01.328Z" }, + { url = "https://files.pythonhosted.org/packages/80/b4/fe95beb8946700b3db371f6ce25115217e7075ca063663b8cca2888ba55c/wrapt-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:4814a3e58bc6971e46baa910ecee69699110a2bf06c201e24277c65115a20c20", size = 62969, upload-time = "2026-02-03T02:11:51.245Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/477b0bdc784e3299edf69c279697372b8bd4c31d9c6966eae405442899df/wrapt-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:106c5123232ab9b9f4903692e1fa0bdc231510098f04c13c3081f8ad71c3d612", size = 63606, upload-time = "2026-02-03T02:12:02.64Z" }, + { url = "https://files.pythonhosted.org/packages/ed/55/9d0c1269ab76de87715b3b905df54dd25d55bbffd0b98696893eb613469f/wrapt-2.1.1-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:1a40b83ff2535e6e56f190aff123821eea89a24c589f7af33413b9c19eb2c738", size = 152536, upload-time = "2026-02-03T02:11:24.492Z" }, + { url = "https://files.pythonhosted.org/packages/44/18/2004766030462f79ad86efaa62000b5e39b1ff001dcce86650e1625f40ae/wrapt-2.1.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:789cea26e740d71cf1882e3a42bb29052bc4ada15770c90072cb47bf73fb3dbf", size = 158697, upload-time = "2026-02-03T02:12:32.214Z" }, + { url = "https://files.pythonhosted.org/packages/e1/bb/0a880fa0f35e94ee843df4ee4dd52a699c9263f36881311cfb412c09c3e5/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ba49c14222d5e5c0ee394495a8655e991dc06cbca5398153aefa5ac08cd6ccd7", size = 155563, upload-time = "2026-02-03T02:11:49.737Z" }, + { url = "https://files.pythonhosted.org/packages/42/ff/cd1b7c4846c8678fac359a6eb975dc7ab5bd606030adb22acc8b4a9f53f1/wrapt-2.1.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ac8cda531fe55be838a17c62c806824472bb962b3afa47ecbd59b27b78496f4e", size = 150161, upload-time = "2026-02-03T02:12:33.613Z" }, + { url = "https://files.pythonhosted.org/packages/38/ec/67c90a7082f452964b4621e4890e9a490f1add23cdeb7483cc1706743291/wrapt-2.1.1-cp313-cp313t-win32.whl", hash = "sha256:b8af75fe20d381dd5bcc9db2e86a86d7fcfbf615383a7147b85da97c1182225b", size = 59783, upload-time = "2026-02-03T02:11:39.863Z" }, + { url = "https://files.pythonhosted.org/packages/ec/08/466afe4855847d8febdfa2c57c87e991fc5820afbdef01a273683dfd15a0/wrapt-2.1.1-cp313-cp313t-win_amd64.whl", hash = "sha256:45c5631c9b6c792b78be2d7352129f776dd72c605be2c3a4e9be346be8376d83", size = 63082, upload-time = "2026-02-03T02:12:09.075Z" }, + { url = "https://files.pythonhosted.org/packages/9a/62/60b629463c28b15b1eeadb3a0691e17568622b12aa5bfa7ebe9b514bfbeb/wrapt-2.1.1-cp313-cp313t-win_arm64.whl", hash = "sha256:da815b9263947ac98d088b6414ac83507809a1d385e4632d9489867228d6d81c", size = 60251, upload-time = "2026-02-03T02:11:21.794Z" }, + { url = "https://files.pythonhosted.org/packages/c4/da/5a086bf4c22a41995312db104ec2ffeee2cf6accca9faaee5315c790377d/wrapt-2.1.1-py3-none-any.whl", hash = "sha256:3b0f4629eb954394a3d7c7a1c8cca25f0b07cefe6aa8545e862e9778152de5b7", size = 43886, upload-time = "2026-02-03T02:11:45.048Z" }, ] [[package]] name = "xxhash" version = "3.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload_time = "2025-10-02T14:37:08.097Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/34/ee/f9f1d656ad168681bb0f6b092372c1e533c4416b8069b1896a175c46e484/xxhash-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87ff03d7e35c61435976554477a7f4cd1704c3596a89a8300d5ce7fc83874a71", size = 32845, upload_time = "2025-10-02T14:33:51.573Z" }, - { url = "https://files.pythonhosted.org/packages/a3/b1/93508d9460b292c74a09b83d16750c52a0ead89c51eea9951cb97a60d959/xxhash-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f572dfd3d0e2eb1a57511831cf6341242f5a9f8298a45862d085f5b93394a27d", size = 30807, upload_time = "2025-10-02T14:33:52.964Z" }, - { url = "https://files.pythonhosted.org/packages/07/55/28c93a3662f2d200c70704efe74aab9640e824f8ce330d8d3943bf7c9b3c/xxhash-3.6.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:89952ea539566b9fed2bbd94e589672794b4286f342254fad28b149f9615fef8", size = 193786, upload_time = "2025-10-02T14:33:54.272Z" }, - { url = "https://files.pythonhosted.org/packages/c1/96/fec0be9bb4b8f5d9c57d76380a366f31a1781fb802f76fc7cda6c84893c7/xxhash-3.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e6f2ffb07a50b52465a1032c3cf1f4a5683f944acaca8a134a2f23674c2058", size = 212830, upload_time = "2025-10-02T14:33:55.706Z" }, - { url = "https://files.pythonhosted.org/packages/c4/a0/c706845ba77b9611f81fd2e93fad9859346b026e8445e76f8c6fd057cc6d/xxhash-3.6.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b5b848ad6c16d308c3ac7ad4ba6bede80ed5df2ba8ed382f8932df63158dd4b2", size = 211606, upload_time = "2025-10-02T14:33:57.133Z" }, - { url = "https://files.pythonhosted.org/packages/67/1e/164126a2999e5045f04a69257eea946c0dc3e86541b400d4385d646b53d7/xxhash-3.6.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a034590a727b44dd8ac5914236a7b8504144447a9682586c3327e935f33ec8cc", size = 444872, upload_time = "2025-10-02T14:33:58.446Z" }, - { url = "https://files.pythonhosted.org/packages/2d/4b/55ab404c56cd70a2cf5ecfe484838865d0fea5627365c6c8ca156bd09c8f/xxhash-3.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a8f1972e75ebdd161d7896743122834fe87378160c20e97f8b09166213bf8cc", size = 193217, upload_time = "2025-10-02T14:33:59.724Z" }, - { url = "https://files.pythonhosted.org/packages/45/e6/52abf06bac316db33aa269091ae7311bd53cfc6f4b120ae77bac1b348091/xxhash-3.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ee34327b187f002a596d7b167ebc59a1b729e963ce645964bbc050d2f1b73d07", size = 210139, upload_time = "2025-10-02T14:34:02.041Z" }, - { url = "https://files.pythonhosted.org/packages/34/37/db94d490b8691236d356bc249c08819cbcef9273a1a30acf1254ff9ce157/xxhash-3.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:339f518c3c7a850dd033ab416ea25a692759dc7478a71131fe8869010d2b75e4", size = 197669, upload_time = "2025-10-02T14:34:03.664Z" }, - { url = "https://files.pythonhosted.org/packages/b7/36/c4f219ef4a17a4f7a64ed3569bc2b5a9c8311abdb22249ac96093625b1a4/xxhash-3.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:bf48889c9630542d4709192578aebbd836177c9f7a4a2778a7d6340107c65f06", size = 210018, upload_time = "2025-10-02T14:34:05.325Z" }, - { url = "https://files.pythonhosted.org/packages/fd/06/bfac889a374fc2fc439a69223d1750eed2e18a7db8514737ab630534fa08/xxhash-3.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5576b002a56207f640636056b4160a378fe36a58db73ae5c27a7ec8db35f71d4", size = 413058, upload_time = "2025-10-02T14:34:06.925Z" }, - { url = "https://files.pythonhosted.org/packages/c9/d1/555d8447e0dd32ad0930a249a522bb2e289f0d08b6b16204cfa42c1f5a0c/xxhash-3.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af1f3278bd02814d6dedc5dec397993b549d6f16c19379721e5a1d31e132c49b", size = 190628, upload_time = "2025-10-02T14:34:08.669Z" }, - { url = "https://files.pythonhosted.org/packages/d1/15/8751330b5186cedc4ed4b597989882ea05e0408b53fa47bcb46a6125bfc6/xxhash-3.6.0-cp310-cp310-win32.whl", hash = "sha256:aed058764db109dc9052720da65fafe84873b05eb8b07e5e653597951af57c3b", size = 30577, upload_time = "2025-10-02T14:34:10.234Z" }, - { url = "https://files.pythonhosted.org/packages/bb/cc/53f87e8b5871a6eb2ff7e89c48c66093bda2be52315a8161ddc54ea550c4/xxhash-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:e82da5670f2d0d98950317f82a0e4a0197150ff19a6df2ba40399c2a3b9ae5fb", size = 31487, upload_time = "2025-10-02T14:34:11.618Z" }, - { url = "https://files.pythonhosted.org/packages/9f/00/60f9ea3bb697667a14314d7269956f58bf56bb73864f8f8d52a3c2535e9a/xxhash-3.6.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a082ffff8c6ac07707fb6b671caf7c6e020c75226c561830b73d862060f281d", size = 27863, upload_time = "2025-10-02T14:34:12.619Z" }, - { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844, upload_time = "2025-10-02T14:34:14.037Z" }, - { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809, upload_time = "2025-10-02T14:34:15.484Z" }, - { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665, upload_time = "2025-10-02T14:34:16.541Z" }, - { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550, upload_time = "2025-10-02T14:34:17.878Z" }, - { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384, upload_time = "2025-10-02T14:34:19.182Z" }, - { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749, upload_time = "2025-10-02T14:34:20.659Z" }, - { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880, upload_time = "2025-10-02T14:34:22.431Z" }, - { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912, upload_time = "2025-10-02T14:34:23.937Z" }, - { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654, upload_time = "2025-10-02T14:34:25.644Z" }, - { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867, upload_time = "2025-10-02T14:34:27.203Z" }, - { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012, upload_time = "2025-10-02T14:34:28.409Z" }, - { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409, upload_time = "2025-10-02T14:34:29.696Z" }, - { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574, upload_time = "2025-10-02T14:34:31.028Z" }, - { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481, upload_time = "2025-10-02T14:34:32.062Z" }, - { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861, upload_time = "2025-10-02T14:34:33.555Z" }, - { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload_time = "2025-10-02T14:34:34.622Z" }, - { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload_time = "2025-10-02T14:34:36.043Z" }, - { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload_time = "2025-10-02T14:34:37.354Z" }, - { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload_time = "2025-10-02T14:34:38.6Z" }, - { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload_time = "2025-10-02T14:34:39.872Z" }, - { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload_time = "2025-10-02T14:34:41.569Z" }, - { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload_time = "2025-10-02T14:34:43.249Z" }, - { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload_time = "2025-10-02T14:34:45.042Z" }, - { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload_time = "2025-10-02T14:34:46.302Z" }, - { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload_time = "2025-10-02T14:34:47.571Z" }, - { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload_time = "2025-10-02T14:34:49.273Z" }, - { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload_time = "2025-10-02T14:34:50.798Z" }, - { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload_time = "2025-10-02T14:34:51.954Z" }, - { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload_time = "2025-10-02T14:34:53.276Z" }, - { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload_time = "2025-10-02T14:34:54.371Z" }, - { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload_time = "2025-10-02T14:34:55.839Z" }, - { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload_time = "2025-10-02T14:34:57.219Z" }, - { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload_time = "2025-10-02T14:34:59.21Z" }, - { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload_time = "2025-10-02T14:35:00.816Z" }, - { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload_time = "2025-10-02T14:35:02.207Z" }, - { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload_time = "2025-10-02T14:35:03.61Z" }, - { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload_time = "2025-10-02T14:35:05.013Z" }, - { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload_time = "2025-10-02T14:35:06.239Z" }, - { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload_time = "2025-10-02T14:35:07.735Z" }, - { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload_time = "2025-10-02T14:35:09.438Z" }, - { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload_time = "2025-10-02T14:35:11.162Z" }, - { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload_time = "2025-10-02T14:35:12.971Z" }, - { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload_time = "2025-10-02T14:35:14.129Z" }, - { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload_time = "2025-10-02T14:35:15.21Z" }, - { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload_time = "2025-10-02T14:35:16.315Z" }, - { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload_time = "2025-10-02T14:35:17.413Z" }, - { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload_time = "2025-10-02T14:35:18.844Z" }, - { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload_time = "2025-10-02T14:35:20.31Z" }, - { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload_time = "2025-10-02T14:35:21.616Z" }, - { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload_time = "2025-10-02T14:35:23.32Z" }, - { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload_time = "2025-10-02T14:35:25.111Z" }, - { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload_time = "2025-10-02T14:35:26.586Z" }, - { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload_time = "2025-10-02T14:35:28.087Z" }, - { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload_time = "2025-10-02T14:35:29.857Z" }, - { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload_time = "2025-10-02T14:35:31.222Z" }, - { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload_time = "2025-10-02T14:35:32.517Z" }, - { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload_time = "2025-10-02T14:35:33.827Z" }, - { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload_time = "2025-10-02T14:35:35.107Z" }, - { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload_time = "2025-10-02T14:35:36.165Z" }, - { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload_time = "2025-10-02T14:35:37.195Z" }, - { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662, upload_time = "2025-10-02T14:37:01.743Z" }, - { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056, upload_time = "2025-10-02T14:37:02.879Z" }, - { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251, upload_time = "2025-10-02T14:37:04.44Z" }, - { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481, upload_time = "2025-10-02T14:37:05.869Z" }, - { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565, upload_time = "2025-10-02T14:37:06.966Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/02/84/30869e01909fb37a6cc7e18688ee8bf1e42d57e7e0777636bd47524c43c7/xxhash-3.6.0.tar.gz", hash = "sha256:f0162a78b13a0d7617b2845b90c763339d1f1d82bb04a4b07f4ab535cc5e05d6", size = 85160, upload-time = "2025-10-02T14:37:08.097Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/34/ee/f9f1d656ad168681bb0f6b092372c1e533c4416b8069b1896a175c46e484/xxhash-3.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:87ff03d7e35c61435976554477a7f4cd1704c3596a89a8300d5ce7fc83874a71", size = 32845, upload-time = "2025-10-02T14:33:51.573Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b1/93508d9460b292c74a09b83d16750c52a0ead89c51eea9951cb97a60d959/xxhash-3.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f572dfd3d0e2eb1a57511831cf6341242f5a9f8298a45862d085f5b93394a27d", size = 30807, upload-time = "2025-10-02T14:33:52.964Z" }, + { url = "https://files.pythonhosted.org/packages/07/55/28c93a3662f2d200c70704efe74aab9640e824f8ce330d8d3943bf7c9b3c/xxhash-3.6.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:89952ea539566b9fed2bbd94e589672794b4286f342254fad28b149f9615fef8", size = 193786, upload-time = "2025-10-02T14:33:54.272Z" }, + { url = "https://files.pythonhosted.org/packages/c1/96/fec0be9bb4b8f5d9c57d76380a366f31a1781fb802f76fc7cda6c84893c7/xxhash-3.6.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48e6f2ffb07a50b52465a1032c3cf1f4a5683f944acaca8a134a2f23674c2058", size = 212830, upload-time = "2025-10-02T14:33:55.706Z" }, + { url = "https://files.pythonhosted.org/packages/c4/a0/c706845ba77b9611f81fd2e93fad9859346b026e8445e76f8c6fd057cc6d/xxhash-3.6.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b5b848ad6c16d308c3ac7ad4ba6bede80ed5df2ba8ed382f8932df63158dd4b2", size = 211606, upload-time = "2025-10-02T14:33:57.133Z" }, + { url = "https://files.pythonhosted.org/packages/67/1e/164126a2999e5045f04a69257eea946c0dc3e86541b400d4385d646b53d7/xxhash-3.6.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a034590a727b44dd8ac5914236a7b8504144447a9682586c3327e935f33ec8cc", size = 444872, upload-time = "2025-10-02T14:33:58.446Z" }, + { url = "https://files.pythonhosted.org/packages/2d/4b/55ab404c56cd70a2cf5ecfe484838865d0fea5627365c6c8ca156bd09c8f/xxhash-3.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8a8f1972e75ebdd161d7896743122834fe87378160c20e97f8b09166213bf8cc", size = 193217, upload-time = "2025-10-02T14:33:59.724Z" }, + { url = "https://files.pythonhosted.org/packages/45/e6/52abf06bac316db33aa269091ae7311bd53cfc6f4b120ae77bac1b348091/xxhash-3.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ee34327b187f002a596d7b167ebc59a1b729e963ce645964bbc050d2f1b73d07", size = 210139, upload-time = "2025-10-02T14:34:02.041Z" }, + { url = "https://files.pythonhosted.org/packages/34/37/db94d490b8691236d356bc249c08819cbcef9273a1a30acf1254ff9ce157/xxhash-3.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:339f518c3c7a850dd033ab416ea25a692759dc7478a71131fe8869010d2b75e4", size = 197669, upload-time = "2025-10-02T14:34:03.664Z" }, + { url = "https://files.pythonhosted.org/packages/b7/36/c4f219ef4a17a4f7a64ed3569bc2b5a9c8311abdb22249ac96093625b1a4/xxhash-3.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:bf48889c9630542d4709192578aebbd836177c9f7a4a2778a7d6340107c65f06", size = 210018, upload-time = "2025-10-02T14:34:05.325Z" }, + { url = "https://files.pythonhosted.org/packages/fd/06/bfac889a374fc2fc439a69223d1750eed2e18a7db8514737ab630534fa08/xxhash-3.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:5576b002a56207f640636056b4160a378fe36a58db73ae5c27a7ec8db35f71d4", size = 413058, upload-time = "2025-10-02T14:34:06.925Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d1/555d8447e0dd32ad0930a249a522bb2e289f0d08b6b16204cfa42c1f5a0c/xxhash-3.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:af1f3278bd02814d6dedc5dec397993b549d6f16c19379721e5a1d31e132c49b", size = 190628, upload-time = "2025-10-02T14:34:08.669Z" }, + { url = "https://files.pythonhosted.org/packages/d1/15/8751330b5186cedc4ed4b597989882ea05e0408b53fa47bcb46a6125bfc6/xxhash-3.6.0-cp310-cp310-win32.whl", hash = "sha256:aed058764db109dc9052720da65fafe84873b05eb8b07e5e653597951af57c3b", size = 30577, upload-time = "2025-10-02T14:34:10.234Z" }, + { url = "https://files.pythonhosted.org/packages/bb/cc/53f87e8b5871a6eb2ff7e89c48c66093bda2be52315a8161ddc54ea550c4/xxhash-3.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:e82da5670f2d0d98950317f82a0e4a0197150ff19a6df2ba40399c2a3b9ae5fb", size = 31487, upload-time = "2025-10-02T14:34:11.618Z" }, + { url = "https://files.pythonhosted.org/packages/9f/00/60f9ea3bb697667a14314d7269956f58bf56bb73864f8f8d52a3c2535e9a/xxhash-3.6.0-cp310-cp310-win_arm64.whl", hash = "sha256:4a082ffff8c6ac07707fb6b671caf7c6e020c75226c561830b73d862060f281d", size = 27863, upload-time = "2025-10-02T14:34:12.619Z" }, + { url = "https://files.pythonhosted.org/packages/17/d4/cc2f0400e9154df4b9964249da78ebd72f318e35ccc425e9f403c392f22a/xxhash-3.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b47bbd8cf2d72797f3c2772eaaac0ded3d3af26481a26d7d7d41dc2d3c46b04a", size = 32844, upload-time = "2025-10-02T14:34:14.037Z" }, + { url = "https://files.pythonhosted.org/packages/5e/ec/1cc11cd13e26ea8bc3cb4af4eaadd8d46d5014aebb67be3f71fb0b68802a/xxhash-3.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2b6821e94346f96db75abaa6e255706fb06ebd530899ed76d32cd99f20dc52fa", size = 30809, upload-time = "2025-10-02T14:34:15.484Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/19fe357ea348d98ca22f456f75a30ac0916b51c753e1f8b2e0e6fb884cce/xxhash-3.6.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d0a9751f71a1a65ce3584e9cae4467651c7e70c9d31017fa57574583a4540248", size = 194665, upload-time = "2025-10-02T14:34:16.541Z" }, + { url = "https://files.pythonhosted.org/packages/90/3b/d1f1a8f5442a5fd8beedae110c5af7604dc37349a8e16519c13c19a9a2de/xxhash-3.6.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8b29ee68625ab37b04c0b40c3fafdf24d2f75ccd778333cfb698f65f6c463f62", size = 213550, upload-time = "2025-10-02T14:34:17.878Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ef/3a9b05eb527457d5db13a135a2ae1a26c80fecd624d20f3e8dcc4cb170f3/xxhash-3.6.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6812c25fe0d6c36a46ccb002f40f27ac903bf18af9f6dd8f9669cb4d176ab18f", size = 212384, upload-time = "2025-10-02T14:34:19.182Z" }, + { url = "https://files.pythonhosted.org/packages/0f/18/ccc194ee698c6c623acbf0f8c2969811a8a4b6185af5e824cd27b9e4fd3e/xxhash-3.6.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4ccbff013972390b51a18ef1255ef5ac125c92dc9143b2d1909f59abc765540e", size = 445749, upload-time = "2025-10-02T14:34:20.659Z" }, + { url = "https://files.pythonhosted.org/packages/a5/86/cf2c0321dc3940a7aa73076f4fd677a0fb3e405cb297ead7d864fd90847e/xxhash-3.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:297b7fbf86c82c550e12e8fb71968b3f033d27b874276ba3624ea868c11165a8", size = 193880, upload-time = "2025-10-02T14:34:22.431Z" }, + { url = "https://files.pythonhosted.org/packages/82/fb/96213c8560e6f948a1ecc9a7613f8032b19ee45f747f4fca4eb31bb6d6ed/xxhash-3.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dea26ae1eb293db089798d3973a5fc928a18fdd97cc8801226fae705b02b14b0", size = 210912, upload-time = "2025-10-02T14:34:23.937Z" }, + { url = "https://files.pythonhosted.org/packages/40/aa/4395e669b0606a096d6788f40dbdf2b819d6773aa290c19e6e83cbfc312f/xxhash-3.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7a0b169aafb98f4284f73635a8e93f0735f9cbde17bd5ec332480484241aaa77", size = 198654, upload-time = "2025-10-02T14:34:25.644Z" }, + { url = "https://files.pythonhosted.org/packages/67/74/b044fcd6b3d89e9b1b665924d85d3f400636c23590226feb1eb09e1176ce/xxhash-3.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:08d45aef063a4531b785cd72de4887766d01dc8f362a515693df349fdb825e0c", size = 210867, upload-time = "2025-10-02T14:34:27.203Z" }, + { url = "https://files.pythonhosted.org/packages/bc/fd/3ce73bf753b08cb19daee1eb14aa0d7fe331f8da9c02dd95316ddfe5275e/xxhash-3.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:929142361a48ee07f09121fe9e96a84950e8d4df3bb298ca5d88061969f34d7b", size = 414012, upload-time = "2025-10-02T14:34:28.409Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b3/5a4241309217c5c876f156b10778f3ab3af7ba7e3259e6d5f5c7d0129eb2/xxhash-3.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:51312c768403d8540487dbbfb557454cfc55589bbde6424456951f7fcd4facb3", size = 191409, upload-time = "2025-10-02T14:34:29.696Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/99bfbc15fb9abb9a72b088c1d95219fc4782b7d01fc835bd5744d66dd0b8/xxhash-3.6.0-cp311-cp311-win32.whl", hash = "sha256:d1927a69feddc24c987b337ce81ac15c4720955b667fe9b588e02254b80446fd", size = 30574, upload-time = "2025-10-02T14:34:31.028Z" }, + { url = "https://files.pythonhosted.org/packages/65/79/9d24d7f53819fe301b231044ea362ce64e86c74f6e8c8e51320de248b3e5/xxhash-3.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:26734cdc2d4ffe449b41d186bbeac416f704a482ed835d375a5c0cb02bc63fef", size = 31481, upload-time = "2025-10-02T14:34:32.062Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/15cd0e3e8772071344eab2961ce83f6e485111fed8beb491a3f1ce100270/xxhash-3.6.0-cp311-cp311-win_arm64.whl", hash = "sha256:d72f67ef8bf36e05f5b6c65e8524f265bd61071471cd4cf1d36743ebeeeb06b7", size = 27861, upload-time = "2025-10-02T14:34:33.555Z" }, + { url = "https://files.pythonhosted.org/packages/9a/07/d9412f3d7d462347e4511181dea65e47e0d0e16e26fbee2ea86a2aefb657/xxhash-3.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:01362c4331775398e7bb34e3ab403bc9ee9f7c497bc7dee6272114055277dd3c", size = 32744, upload-time = "2025-10-02T14:34:34.622Z" }, + { url = "https://files.pythonhosted.org/packages/79/35/0429ee11d035fc33abe32dca1b2b69e8c18d236547b9a9b72c1929189b9a/xxhash-3.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b7b2df81a23f8cb99656378e72501b2cb41b1827c0f5a86f87d6b06b69f9f204", size = 30816, upload-time = "2025-10-02T14:34:36.043Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f2/57eb99aa0f7d98624c0932c5b9a170e1806406cdbcdb510546634a1359e0/xxhash-3.6.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:dc94790144e66b14f67b10ac8ed75b39ca47536bf8800eb7c24b50271ea0c490", size = 194035, upload-time = "2025-10-02T14:34:37.354Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ed/6224ba353690d73af7a3f1c7cdb1fc1b002e38f783cb991ae338e1eb3d79/xxhash-3.6.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:93f107c673bccf0d592cdba077dedaf52fe7f42dcd7676eba1f6d6f0c3efffd2", size = 212914, upload-time = "2025-10-02T14:34:38.6Z" }, + { url = "https://files.pythonhosted.org/packages/38/86/fb6b6130d8dd6b8942cc17ab4d90e223653a89aa32ad2776f8af7064ed13/xxhash-3.6.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2aa5ee3444c25b69813663c9f8067dcfaa2e126dc55e8dddf40f4d1c25d7effa", size = 212163, upload-time = "2025-10-02T14:34:39.872Z" }, + { url = "https://files.pythonhosted.org/packages/ee/dc/e84875682b0593e884ad73b2d40767b5790d417bde603cceb6878901d647/xxhash-3.6.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7f99123f0e1194fa59cc69ad46dbae2e07becec5df50a0509a808f90a0f03f0", size = 445411, upload-time = "2025-10-02T14:34:41.569Z" }, + { url = "https://files.pythonhosted.org/packages/11/4f/426f91b96701ec2f37bb2b8cec664eff4f658a11f3fa9d94f0a887ea6d2b/xxhash-3.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49e03e6fe2cac4a1bc64952dd250cf0dbc5ef4ebb7b8d96bce82e2de163c82a2", size = 193883, upload-time = "2025-10-02T14:34:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/53/5a/ddbb83eee8e28b778eacfc5a85c969673e4023cdeedcfcef61f36731610b/xxhash-3.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bd17fede52a17a4f9a7bc4472a5867cb0b160deeb431795c0e4abe158bc784e9", size = 210392, upload-time = "2025-10-02T14:34:45.042Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c2/ff69efd07c8c074ccdf0a4f36fcdd3d27363665bcdf4ba399abebe643465/xxhash-3.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6fb5f5476bef678f69db04f2bd1efbed3030d2aba305b0fc1773645f187d6a4e", size = 197898, upload-time = "2025-10-02T14:34:46.302Z" }, + { url = "https://files.pythonhosted.org/packages/58/ca/faa05ac19b3b622c7c9317ac3e23954187516298a091eb02c976d0d3dd45/xxhash-3.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:843b52f6d88071f87eba1631b684fcb4b2068cd2180a0224122fe4ef011a9374", size = 210655, upload-time = "2025-10-02T14:34:47.571Z" }, + { url = "https://files.pythonhosted.org/packages/d4/7a/06aa7482345480cc0cb597f5c875b11a82c3953f534394f620b0be2f700c/xxhash-3.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7d14a6cfaf03b1b6f5f9790f76880601ccc7896aff7ab9cd8978a939c1eb7e0d", size = 414001, upload-time = "2025-10-02T14:34:49.273Z" }, + { url = "https://files.pythonhosted.org/packages/23/07/63ffb386cd47029aa2916b3d2f454e6cc5b9f5c5ada3790377d5430084e7/xxhash-3.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:418daf3db71e1413cfe211c2f9a528456936645c17f46b5204705581a45390ae", size = 191431, upload-time = "2025-10-02T14:34:50.798Z" }, + { url = "https://files.pythonhosted.org/packages/0f/93/14fde614cadb4ddf5e7cebf8918b7e8fac5ae7861c1875964f17e678205c/xxhash-3.6.0-cp312-cp312-win32.whl", hash = "sha256:50fc255f39428a27299c20e280d6193d8b63b8ef8028995323bf834a026b4fbb", size = 30617, upload-time = "2025-10-02T14:34:51.954Z" }, + { url = "https://files.pythonhosted.org/packages/13/5d/0d125536cbe7565a83d06e43783389ecae0c0f2ed037b48ede185de477c0/xxhash-3.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:c0f2ab8c715630565ab8991b536ecded9416d615538be8ecddce43ccf26cbc7c", size = 31534, upload-time = "2025-10-02T14:34:53.276Z" }, + { url = "https://files.pythonhosted.org/packages/54/85/6ec269b0952ec7e36ba019125982cf11d91256a778c7c3f98a4c5043d283/xxhash-3.6.0-cp312-cp312-win_arm64.whl", hash = "sha256:eae5c13f3bc455a3bbb68bdc513912dc7356de7e2280363ea235f71f54064829", size = 27876, upload-time = "2025-10-02T14:34:54.371Z" }, + { url = "https://files.pythonhosted.org/packages/33/76/35d05267ac82f53ae9b0e554da7c5e281ee61f3cad44c743f0fcd354f211/xxhash-3.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:599e64ba7f67472481ceb6ee80fa3bd828fd61ba59fb11475572cc5ee52b89ec", size = 32738, upload-time = "2025-10-02T14:34:55.839Z" }, + { url = "https://files.pythonhosted.org/packages/31/a8/3fbce1cd96534a95e35d5120637bf29b0d7f5d8fa2f6374e31b4156dd419/xxhash-3.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d8b8aaa30fca4f16f0c84a5c8d7ddee0e25250ec2796c973775373257dde8f1", size = 30821, upload-time = "2025-10-02T14:34:57.219Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ea/d387530ca7ecfa183cb358027f1833297c6ac6098223fd14f9782cd0015c/xxhash-3.6.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:d597acf8506d6e7101a4a44a5e428977a51c0fadbbfd3c39650cca9253f6e5a6", size = 194127, upload-time = "2025-10-02T14:34:59.21Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/71435dcb99874b09a43b8d7c54071e600a7481e42b3e3ce1eb5226a5711a/xxhash-3.6.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:858dc935963a33bc33490128edc1c12b0c14d9c7ebaa4e387a7869ecc4f3e263", size = 212975, upload-time = "2025-10-02T14:35:00.816Z" }, + { url = "https://files.pythonhosted.org/packages/84/7a/c2b3d071e4bb4a90b7057228a99b10d51744878f4a8a6dd643c8bd897620/xxhash-3.6.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba284920194615cb8edf73bf52236ce2e1664ccd4a38fdb543506413529cc546", size = 212241, upload-time = "2025-10-02T14:35:02.207Z" }, + { url = "https://files.pythonhosted.org/packages/81/5f/640b6eac0128e215f177df99eadcd0f1b7c42c274ab6a394a05059694c5a/xxhash-3.6.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4b54219177f6c6674d5378bd862c6aedf64725f70dd29c472eaae154df1a2e89", size = 445471, upload-time = "2025-10-02T14:35:03.61Z" }, + { url = "https://files.pythonhosted.org/packages/5e/1e/3c3d3ef071b051cc3abbe3721ffb8365033a172613c04af2da89d5548a87/xxhash-3.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42c36dd7dbad2f5238950c377fcbf6811b1cdb1c444fab447960030cea60504d", size = 193936, upload-time = "2025-10-02T14:35:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/2c/bd/4a5f68381939219abfe1c22a9e3a5854a4f6f6f3c4983a87d255f21f2e5d/xxhash-3.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f22927652cba98c44639ffdc7aaf35828dccf679b10b31c4ad72a5b530a18eb7", size = 210440, upload-time = "2025-10-02T14:35:06.239Z" }, + { url = "https://files.pythonhosted.org/packages/eb/37/b80fe3d5cfb9faff01a02121a0f4d565eb7237e9e5fc66e73017e74dcd36/xxhash-3.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:b45fad44d9c5c119e9c6fbf2e1c656a46dc68e280275007bbfd3d572b21426db", size = 197990, upload-time = "2025-10-02T14:35:07.735Z" }, + { url = "https://files.pythonhosted.org/packages/d7/fd/2c0a00c97b9e18f72e1f240ad4e8f8a90fd9d408289ba9c7c495ed7dc05c/xxhash-3.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:6f2580ffab1a8b68ef2b901cde7e55fa8da5e4be0977c68f78fc80f3c143de42", size = 210689, upload-time = "2025-10-02T14:35:09.438Z" }, + { url = "https://files.pythonhosted.org/packages/93/86/5dd8076a926b9a95db3206aba20d89a7fc14dd5aac16e5c4de4b56033140/xxhash-3.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40c391dd3cd041ebc3ffe6f2c862f402e306eb571422e0aa918d8070ba31da11", size = 414068, upload-time = "2025-10-02T14:35:11.162Z" }, + { url = "https://files.pythonhosted.org/packages/af/3c/0bb129170ee8f3650f08e993baee550a09593462a5cddd8e44d0011102b1/xxhash-3.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f205badabde7aafd1a31e8ca2a3e5a763107a71c397c4481d6a804eb5063d8bd", size = 191495, upload-time = "2025-10-02T14:35:12.971Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3a/6797e0114c21d1725e2577508e24006fd7ff1d8c0c502d3b52e45c1771d8/xxhash-3.6.0-cp313-cp313-win32.whl", hash = "sha256:2577b276e060b73b73a53042ea5bd5203d3e6347ce0d09f98500f418a9fcf799", size = 30620, upload-time = "2025-10-02T14:35:14.129Z" }, + { url = "https://files.pythonhosted.org/packages/86/15/9bc32671e9a38b413a76d24722a2bf8784a132c043063a8f5152d390b0f9/xxhash-3.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:757320d45d2fbcce8f30c42a6b2f47862967aea7bf458b9625b4bbe7ee390392", size = 31542, upload-time = "2025-10-02T14:35:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/39/c5/cc01e4f6188656e56112d6a8e0dfe298a16934b8c47a247236549a3f7695/xxhash-3.6.0-cp313-cp313-win_arm64.whl", hash = "sha256:457b8f85dec5825eed7b69c11ae86834a018b8e3df5e77783c999663da2f96d6", size = 27880, upload-time = "2025-10-02T14:35:16.315Z" }, + { url = "https://files.pythonhosted.org/packages/f3/30/25e5321c8732759e930c555176d37e24ab84365482d257c3b16362235212/xxhash-3.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:a42e633d75cdad6d625434e3468126c73f13f7584545a9cf34e883aa1710e702", size = 32956, upload-time = "2025-10-02T14:35:17.413Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3c/0573299560d7d9f8ab1838f1efc021a280b5ae5ae2e849034ef3dee18810/xxhash-3.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:568a6d743219e717b07b4e03b0a828ce593833e498c3b64752e0f5df6bfe84db", size = 31072, upload-time = "2025-10-02T14:35:18.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1c/52d83a06e417cd9d4137722693424885cc9878249beb3a7c829e74bf7ce9/xxhash-3.6.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bec91b562d8012dae276af8025a55811b875baace6af510412a5e58e3121bc54", size = 196409, upload-time = "2025-10-02T14:35:20.31Z" }, + { url = "https://files.pythonhosted.org/packages/e3/8e/c6d158d12a79bbd0b878f8355432075fc82759e356ab5a111463422a239b/xxhash-3.6.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78e7f2f4c521c30ad5e786fdd6bae89d47a32672a80195467b5de0480aa97b1f", size = 215736, upload-time = "2025-10-02T14:35:21.616Z" }, + { url = "https://files.pythonhosted.org/packages/bc/68/c4c80614716345d55071a396cf03d06e34b5f4917a467faf43083c995155/xxhash-3.6.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:3ed0df1b11a79856df5ffcab572cbd6b9627034c1c748c5566fa79df9048a7c5", size = 214833, upload-time = "2025-10-02T14:35:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e9/ae27c8ffec8b953efa84c7c4a6c6802c263d587b9fc0d6e7cea64e08c3af/xxhash-3.6.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0e4edbfc7d420925b0dd5e792478ed393d6e75ff8fc219a6546fb446b6a417b1", size = 448348, upload-time = "2025-10-02T14:35:25.111Z" }, + { url = "https://files.pythonhosted.org/packages/d7/6b/33e21afb1b5b3f46b74b6bd1913639066af218d704cc0941404ca717fc57/xxhash-3.6.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fba27a198363a7ef87f8c0f6b171ec36b674fe9053742c58dd7e3201c1ab30ee", size = 196070, upload-time = "2025-10-02T14:35:26.586Z" }, + { url = "https://files.pythonhosted.org/packages/96/b6/fcabd337bc5fa624e7203aa0fa7d0c49eed22f72e93229431752bddc83d9/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:794fe9145fe60191c6532fa95063765529770edcdd67b3d537793e8004cabbfd", size = 212907, upload-time = "2025-10-02T14:35:28.087Z" }, + { url = "https://files.pythonhosted.org/packages/4b/d3/9ee6160e644d660fcf176c5825e61411c7f62648728f69c79ba237250143/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:6105ef7e62b5ac73a837778efc331a591d8442f8ef5c7e102376506cb4ae2729", size = 200839, upload-time = "2025-10-02T14:35:29.857Z" }, + { url = "https://files.pythonhosted.org/packages/0d/98/e8de5baa5109394baf5118f5e72ab21a86387c4f89b0e77ef3e2f6b0327b/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f01375c0e55395b814a679b3eea205db7919ac2af213f4a6682e01220e5fe292", size = 213304, upload-time = "2025-10-02T14:35:31.222Z" }, + { url = "https://files.pythonhosted.org/packages/7b/1d/71056535dec5c3177eeb53e38e3d367dd1d16e024e63b1cee208d572a033/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:d706dca2d24d834a4661619dcacf51a75c16d65985718d6a7d73c1eeeb903ddf", size = 416930, upload-time = "2025-10-02T14:35:32.517Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6c/5cbde9de2cd967c322e651c65c543700b19e7ae3e0aae8ece3469bf9683d/xxhash-3.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f059d9faeacd49c0215d66f4056e1326c80503f51a1532ca336a385edadd033", size = 193787, upload-time = "2025-10-02T14:35:33.827Z" }, + { url = "https://files.pythonhosted.org/packages/19/fa/0172e350361d61febcea941b0cc541d6e6c8d65d153e85f850a7b256ff8a/xxhash-3.6.0-cp313-cp313t-win32.whl", hash = "sha256:1244460adc3a9be84731d72b8e80625788e5815b68da3da8b83f78115a40a7ec", size = 30916, upload-time = "2025-10-02T14:35:35.107Z" }, + { url = "https://files.pythonhosted.org/packages/ad/e6/e8cf858a2b19d6d45820f072eff1bea413910592ff17157cabc5f1227a16/xxhash-3.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:b1e420ef35c503869c4064f4a2f2b08ad6431ab7b229a05cce39d74268bca6b8", size = 31799, upload-time = "2025-10-02T14:35:36.165Z" }, + { url = "https://files.pythonhosted.org/packages/56/15/064b197e855bfb7b343210e82490ae672f8bc7cdf3ddb02e92f64304ee8a/xxhash-3.6.0-cp313-cp313t-win_arm64.whl", hash = "sha256:ec44b73a4220623235f67a996c862049f375df3b1052d9899f40a6382c32d746", size = 28044, upload-time = "2025-10-02T14:35:37.195Z" }, + { url = "https://files.pythonhosted.org/packages/93/1e/8aec23647a34a249f62e2398c42955acd9b4c6ed5cf08cbea94dc46f78d2/xxhash-3.6.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0f7b7e2ec26c1666ad5fc9dbfa426a6a3367ceaf79db5dd76264659d509d73b0", size = 30662, upload-time = "2025-10-02T14:37:01.743Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0b/b14510b38ba91caf43006209db846a696ceea6a847a0c9ba0a5b1adc53d6/xxhash-3.6.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:5dc1e14d14fa0f5789ec29a7062004b5933964bb9b02aae6622b8f530dc40296", size = 41056, upload-time = "2025-10-02T14:37:02.879Z" }, + { url = "https://files.pythonhosted.org/packages/50/55/15a7b8a56590e66ccd374bbfa3f9ffc45b810886c8c3b614e3f90bd2367c/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:881b47fc47e051b37d94d13e7455131054b56749b91b508b0907eb07900d1c13", size = 36251, upload-time = "2025-10-02T14:37:04.44Z" }, + { url = "https://files.pythonhosted.org/packages/62/b2/5ac99a041a29e58e95f907876b04f7067a0242cb85b5f39e726153981503/xxhash-3.6.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6dc31591899f5e5666f04cc2e529e69b4072827085c1ef15294d91a004bc1bd", size = 32481, upload-time = "2025-10-02T14:37:05.869Z" }, + { url = "https://files.pythonhosted.org/packages/7b/d9/8d95e906764a386a3d3b596f3c68bb63687dfca806373509f51ce8eea81f/xxhash-3.6.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:15e0dac10eb9309508bfc41f7f9deaa7755c69e35af835db9cb10751adebc35d", size = 31565, upload-time = "2025-10-02T14:37:06.966Z" }, ] [[package]] @@ -5247,171 +5297,171 @@ dependencies = [ { name = "multidict" }, { name = "propcache" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload_time = "2025-10-06T14:12:55.963Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/43/a2204825342f37c337f5edb6637040fa14e365b2fcc2346960201d457579/yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e", size = 140517, upload_time = "2025-10-06T14:08:42.494Z" }, - { url = "https://files.pythonhosted.org/packages/44/6f/674f3e6f02266428c56f704cd2501c22f78e8b2eeb23f153117cc86fb28a/yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f", size = 93495, upload_time = "2025-10-06T14:08:46.2Z" }, - { url = "https://files.pythonhosted.org/packages/b8/12/5b274d8a0f30c07b91b2f02cba69152600b47830fcfb465c108880fcee9c/yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf", size = 94400, upload_time = "2025-10-06T14:08:47.855Z" }, - { url = "https://files.pythonhosted.org/packages/e2/7f/df1b6949b1fa1aa9ff6de6e2631876ad4b73c4437822026e85d8acb56bb1/yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a", size = 347545, upload_time = "2025-10-06T14:08:49.683Z" }, - { url = "https://files.pythonhosted.org/packages/84/09/f92ed93bd6cd77872ab6c3462df45ca45cd058d8f1d0c9b4f54c1704429f/yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c", size = 319598, upload_time = "2025-10-06T14:08:51.215Z" }, - { url = "https://files.pythonhosted.org/packages/c3/97/ac3f3feae7d522cf7ccec3d340bb0b2b61c56cb9767923df62a135092c6b/yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147", size = 363893, upload_time = "2025-10-06T14:08:53.144Z" }, - { url = "https://files.pythonhosted.org/packages/06/49/f3219097403b9c84a4d079b1d7bda62dd9b86d0d6e4428c02d46ab2c77fc/yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb", size = 371240, upload_time = "2025-10-06T14:08:55.036Z" }, - { url = "https://files.pythonhosted.org/packages/35/9f/06b765d45c0e44e8ecf0fe15c9eacbbde342bb5b7561c46944f107bfb6c3/yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6", size = 346965, upload_time = "2025-10-06T14:08:56.722Z" }, - { url = "https://files.pythonhosted.org/packages/c5/69/599e7cea8d0fcb1694323b0db0dda317fa3162f7b90166faddecf532166f/yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0", size = 342026, upload_time = "2025-10-06T14:08:58.563Z" }, - { url = "https://files.pythonhosted.org/packages/95/6f/9dfd12c8bc90fea9eab39832ee32ea48f8e53d1256252a77b710c065c89f/yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda", size = 335637, upload_time = "2025-10-06T14:09:00.506Z" }, - { url = "https://files.pythonhosted.org/packages/57/2e/34c5b4eb9b07e16e873db5b182c71e5f06f9b5af388cdaa97736d79dd9a6/yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc", size = 359082, upload_time = "2025-10-06T14:09:01.936Z" }, - { url = "https://files.pythonhosted.org/packages/31/71/fa7e10fb772d273aa1f096ecb8ab8594117822f683bab7d2c5a89914c92a/yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737", size = 357811, upload_time = "2025-10-06T14:09:03.445Z" }, - { url = "https://files.pythonhosted.org/packages/26/da/11374c04e8e1184a6a03cf9c8f5688d3e5cec83ed6f31ad3481b3207f709/yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467", size = 351223, upload_time = "2025-10-06T14:09:05.401Z" }, - { url = "https://files.pythonhosted.org/packages/82/8f/e2d01f161b0c034a30410e375e191a5d27608c1f8693bab1a08b089ca096/yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea", size = 82118, upload_time = "2025-10-06T14:09:11.148Z" }, - { url = "https://files.pythonhosted.org/packages/62/46/94c76196642dbeae634c7a61ba3da88cd77bed875bf6e4a8bed037505aa6/yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca", size = 86852, upload_time = "2025-10-06T14:09:12.958Z" }, - { url = "https://files.pythonhosted.org/packages/af/af/7df4f179d3b1a6dcb9a4bd2ffbc67642746fcafdb62580e66876ce83fff4/yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b", size = 82012, upload_time = "2025-10-06T14:09:14.664Z" }, - { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload_time = "2025-10-06T14:09:16.298Z" }, - { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload_time = "2025-10-06T14:09:17.786Z" }, - { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload_time = "2025-10-06T14:09:19.662Z" }, - { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload_time = "2025-10-06T14:09:21.402Z" }, - { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload_time = "2025-10-06T14:09:22.98Z" }, - { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload_time = "2025-10-06T14:09:24.655Z" }, - { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload_time = "2025-10-06T14:09:26.617Z" }, - { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload_time = "2025-10-06T14:09:28.544Z" }, - { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload_time = "2025-10-06T14:09:30.568Z" }, - { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload_time = "2025-10-06T14:09:32.528Z" }, - { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload_time = "2025-10-06T14:09:34.634Z" }, - { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload_time = "2025-10-06T14:09:36.268Z" }, - { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload_time = "2025-10-06T14:09:37.872Z" }, - { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload_time = "2025-10-06T14:09:39.359Z" }, - { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload_time = "2025-10-06T14:09:41.068Z" }, - { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload_time = "2025-10-06T14:09:42.712Z" }, - { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload_time = "2025-10-06T14:09:44.631Z" }, - { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload_time = "2025-10-06T14:09:46.372Z" }, - { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload_time = "2025-10-06T14:09:48.648Z" }, - { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload_time = "2025-10-06T14:09:50.089Z" }, - { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload_time = "2025-10-06T14:09:52.142Z" }, - { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload_time = "2025-10-06T14:09:54.128Z" }, - { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload_time = "2025-10-06T14:09:55.762Z" }, - { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload_time = "2025-10-06T14:09:57.958Z" }, - { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload_time = "2025-10-06T14:09:59.527Z" }, - { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload_time = "2025-10-06T14:10:01.139Z" }, - { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload_time = "2025-10-06T14:10:02.756Z" }, - { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload_time = "2025-10-06T14:10:04.552Z" }, - { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload_time = "2025-10-06T14:10:06.489Z" }, - { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload_time = "2025-10-06T14:10:09.254Z" }, - { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload_time = "2025-10-06T14:10:11.369Z" }, - { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload_time = "2025-10-06T14:10:13.112Z" }, - { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload_time = "2025-10-06T14:10:14.601Z" }, - { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload_time = "2025-10-06T14:10:16.115Z" }, - { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload_time = "2025-10-06T14:10:17.993Z" }, - { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload_time = "2025-10-06T14:10:19.44Z" }, - { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload_time = "2025-10-06T14:10:21.124Z" }, - { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload_time = "2025-10-06T14:10:22.902Z" }, - { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload_time = "2025-10-06T14:10:24.523Z" }, - { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload_time = "2025-10-06T14:10:26.406Z" }, - { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload_time = "2025-10-06T14:10:28.461Z" }, - { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload_time = "2025-10-06T14:10:30.541Z" }, - { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload_time = "2025-10-06T14:10:33.352Z" }, - { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload_time = "2025-10-06T14:10:35.034Z" }, - { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload_time = "2025-10-06T14:10:37.76Z" }, - { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload_time = "2025-10-06T14:10:39.649Z" }, - { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload_time = "2025-10-06T14:10:41.313Z" }, - { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload_time = "2025-10-06T14:10:43.167Z" }, - { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload_time = "2025-10-06T14:10:44.643Z" }, - { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload_time = "2025-10-06T14:10:46.554Z" }, - { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload_time = "2025-10-06T14:10:48.007Z" }, - { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload_time = "2025-10-06T14:10:49.997Z" }, - { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload_time = "2025-10-06T14:10:52.004Z" }, - { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload_time = "2025-10-06T14:10:54.078Z" }, - { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload_time = "2025-10-06T14:10:55.767Z" }, - { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload_time = "2025-10-06T14:10:57.985Z" }, - { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload_time = "2025-10-06T14:10:59.633Z" }, - { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload_time = "2025-10-06T14:11:01.454Z" }, - { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload_time = "2025-10-06T14:11:03.452Z" }, - { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload_time = "2025-10-06T14:11:05.115Z" }, - { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload_time = "2025-10-06T14:11:08.137Z" }, - { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload_time = "2025-10-06T14:11:10.284Z" }, - { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload_time = "2025-10-06T14:11:11.739Z" }, - { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload_time = "2025-10-06T14:11:13.586Z" }, - { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload_time = "2025-10-06T14:12:53.872Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/57/63/0c6ebca57330cd313f6102b16dd57ffaf3ec4c83403dcb45dbd15c6f3ea1/yarl-1.22.0.tar.gz", hash = "sha256:bebf8557577d4401ba8bd9ff33906f1376c877aa78d1fe216ad01b4d6745af71", size = 187169, upload-time = "2025-10-06T14:12:55.963Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/43/a2204825342f37c337f5edb6637040fa14e365b2fcc2346960201d457579/yarl-1.22.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:c7bd6683587567e5a49ee6e336e0612bec8329be1b7d4c8af5687dcdeb67ee1e", size = 140517, upload-time = "2025-10-06T14:08:42.494Z" }, + { url = "https://files.pythonhosted.org/packages/44/6f/674f3e6f02266428c56f704cd2501c22f78e8b2eeb23f153117cc86fb28a/yarl-1.22.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5cdac20da754f3a723cceea5b3448e1a2074866406adeb4ef35b469d089adb8f", size = 93495, upload-time = "2025-10-06T14:08:46.2Z" }, + { url = "https://files.pythonhosted.org/packages/b8/12/5b274d8a0f30c07b91b2f02cba69152600b47830fcfb465c108880fcee9c/yarl-1.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:07a524d84df0c10f41e3ee918846e1974aba4ec017f990dc735aad487a0bdfdf", size = 94400, upload-time = "2025-10-06T14:08:47.855Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7f/df1b6949b1fa1aa9ff6de6e2631876ad4b73c4437822026e85d8acb56bb1/yarl-1.22.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1b329cb8146d7b736677a2440e422eadd775d1806a81db2d4cded80a48efc1a", size = 347545, upload-time = "2025-10-06T14:08:49.683Z" }, + { url = "https://files.pythonhosted.org/packages/84/09/f92ed93bd6cd77872ab6c3462df45ca45cd058d8f1d0c9b4f54c1704429f/yarl-1.22.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:75976c6945d85dbb9ee6308cd7ff7b1fb9409380c82d6119bd778d8fcfe2931c", size = 319598, upload-time = "2025-10-06T14:08:51.215Z" }, + { url = "https://files.pythonhosted.org/packages/c3/97/ac3f3feae7d522cf7ccec3d340bb0b2b61c56cb9767923df62a135092c6b/yarl-1.22.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:80ddf7a5f8c86cb3eb4bc9028b07bbbf1f08a96c5c0bc1244be5e8fefcb94147", size = 363893, upload-time = "2025-10-06T14:08:53.144Z" }, + { url = "https://files.pythonhosted.org/packages/06/49/f3219097403b9c84a4d079b1d7bda62dd9b86d0d6e4428c02d46ab2c77fc/yarl-1.22.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d332fc2e3c94dad927f2112395772a4e4fedbcf8f80efc21ed7cdfae4d574fdb", size = 371240, upload-time = "2025-10-06T14:08:55.036Z" }, + { url = "https://files.pythonhosted.org/packages/35/9f/06b765d45c0e44e8ecf0fe15c9eacbbde342bb5b7561c46944f107bfb6c3/yarl-1.22.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0cf71bf877efeac18b38d3930594c0948c82b64547c1cf420ba48722fe5509f6", size = 346965, upload-time = "2025-10-06T14:08:56.722Z" }, + { url = "https://files.pythonhosted.org/packages/c5/69/599e7cea8d0fcb1694323b0db0dda317fa3162f7b90166faddecf532166f/yarl-1.22.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:663e1cadaddae26be034a6ab6072449a8426ddb03d500f43daf952b74553bba0", size = 342026, upload-time = "2025-10-06T14:08:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/95/6f/9dfd12c8bc90fea9eab39832ee32ea48f8e53d1256252a77b710c065c89f/yarl-1.22.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:6dcbb0829c671f305be48a7227918cfcd11276c2d637a8033a99a02b67bf9eda", size = 335637, upload-time = "2025-10-06T14:09:00.506Z" }, + { url = "https://files.pythonhosted.org/packages/57/2e/34c5b4eb9b07e16e873db5b182c71e5f06f9b5af388cdaa97736d79dd9a6/yarl-1.22.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:f0d97c18dfd9a9af4490631905a3f131a8e4c9e80a39353919e2cfed8f00aedc", size = 359082, upload-time = "2025-10-06T14:09:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/31/71/fa7e10fb772d273aa1f096ecb8ab8594117822f683bab7d2c5a89914c92a/yarl-1.22.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:437840083abe022c978470b942ff832c3940b2ad3734d424b7eaffcd07f76737", size = 357811, upload-time = "2025-10-06T14:09:03.445Z" }, + { url = "https://files.pythonhosted.org/packages/26/da/11374c04e8e1184a6a03cf9c8f5688d3e5cec83ed6f31ad3481b3207f709/yarl-1.22.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a899cbd98dce6f5d8de1aad31cb712ec0a530abc0a86bd6edaa47c1090138467", size = 351223, upload-time = "2025-10-06T14:09:05.401Z" }, + { url = "https://files.pythonhosted.org/packages/82/8f/e2d01f161b0c034a30410e375e191a5d27608c1f8693bab1a08b089ca096/yarl-1.22.0-cp310-cp310-win32.whl", hash = "sha256:595697f68bd1f0c1c159fcb97b661fc9c3f5db46498043555d04805430e79bea", size = 82118, upload-time = "2025-10-06T14:09:11.148Z" }, + { url = "https://files.pythonhosted.org/packages/62/46/94c76196642dbeae634c7a61ba3da88cd77bed875bf6e4a8bed037505aa6/yarl-1.22.0-cp310-cp310-win_amd64.whl", hash = "sha256:cb95a9b1adaa48e41815a55ae740cfda005758104049a640a398120bf02515ca", size = 86852, upload-time = "2025-10-06T14:09:12.958Z" }, + { url = "https://files.pythonhosted.org/packages/af/af/7df4f179d3b1a6dcb9a4bd2ffbc67642746fcafdb62580e66876ce83fff4/yarl-1.22.0-cp310-cp310-win_arm64.whl", hash = "sha256:b85b982afde6df99ecc996990d4ad7ccbdbb70e2a4ba4de0aecde5922ba98a0b", size = 82012, upload-time = "2025-10-06T14:09:14.664Z" }, + { url = "https://files.pythonhosted.org/packages/4d/27/5ab13fc84c76a0250afd3d26d5936349a35be56ce5785447d6c423b26d92/yarl-1.22.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1ab72135b1f2db3fed3997d7e7dc1b80573c67138023852b6efb336a5eae6511", size = 141607, upload-time = "2025-10-06T14:09:16.298Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a1/d065d51d02dc02ce81501d476b9ed2229d9a990818332242a882d5d60340/yarl-1.22.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:669930400e375570189492dc8d8341301578e8493aec04aebc20d4717f899dd6", size = 94027, upload-time = "2025-10-06T14:09:17.786Z" }, + { url = "https://files.pythonhosted.org/packages/c1/da/8da9f6a53f67b5106ffe902c6fa0164e10398d4e150d85838b82f424072a/yarl-1.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:792a2af6d58177ef7c19cbf0097aba92ca1b9cb3ffdd9c7470e156c8f9b5e028", size = 94963, upload-time = "2025-10-06T14:09:19.662Z" }, + { url = "https://files.pythonhosted.org/packages/68/fe/2c1f674960c376e29cb0bec1249b117d11738db92a6ccc4a530b972648db/yarl-1.22.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3ea66b1c11c9150f1372f69afb6b8116f2dd7286f38e14ea71a44eee9ec51b9d", size = 368406, upload-time = "2025-10-06T14:09:21.402Z" }, + { url = "https://files.pythonhosted.org/packages/95/26/812a540e1c3c6418fec60e9bbd38e871eaba9545e94fa5eff8f4a8e28e1e/yarl-1.22.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3e2daa88dc91870215961e96a039ec73e4937da13cf77ce17f9cad0c18df3503", size = 336581, upload-time = "2025-10-06T14:09:22.98Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f5/5777b19e26fdf98563985e481f8be3d8a39f8734147a6ebf459d0dab5a6b/yarl-1.22.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ba440ae430c00eee41509353628600212112cd5018d5def7e9b05ea7ac34eb65", size = 388924, upload-time = "2025-10-06T14:09:24.655Z" }, + { url = "https://files.pythonhosted.org/packages/86/08/24bd2477bd59c0bbd994fe1d93b126e0472e4e3df5a96a277b0a55309e89/yarl-1.22.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e6438cc8f23a9c1478633d216b16104a586b9761db62bfacb6425bac0a36679e", size = 392890, upload-time = "2025-10-06T14:09:26.617Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/71b90ed48e895667ecfb1eaab27c1523ee2fa217433ed77a73b13205ca4b/yarl-1.22.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c52a6e78aef5cf47a98ef8e934755abf53953379b7d53e68b15ff4420e6683d", size = 365819, upload-time = "2025-10-06T14:09:28.544Z" }, + { url = "https://files.pythonhosted.org/packages/30/2d/f715501cae832651d3282387c6a9236cd26bd00d0ff1e404b3dc52447884/yarl-1.22.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3b06bcadaac49c70f4c88af4ffcfbe3dc155aab3163e75777818092478bcbbe7", size = 363601, upload-time = "2025-10-06T14:09:30.568Z" }, + { url = "https://files.pythonhosted.org/packages/f8/f9/a678c992d78e394e7126ee0b0e4e71bd2775e4334d00a9278c06a6cce96a/yarl-1.22.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:6944b2dc72c4d7f7052683487e3677456050ff77fcf5e6204e98caf785ad1967", size = 358072, upload-time = "2025-10-06T14:09:32.528Z" }, + { url = "https://files.pythonhosted.org/packages/2c/d1/b49454411a60edb6fefdcad4f8e6dbba7d8019e3a508a1c5836cba6d0781/yarl-1.22.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d5372ca1df0f91a86b047d1277c2aaf1edb32d78bbcefffc81b40ffd18f027ed", size = 385311, upload-time = "2025-10-06T14:09:34.634Z" }, + { url = "https://files.pythonhosted.org/packages/87/e5/40d7a94debb8448c7771a916d1861d6609dddf7958dc381117e7ba36d9e8/yarl-1.22.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:51af598701f5299012b8416486b40fceef8c26fc87dc6d7d1f6fc30609ea0aa6", size = 381094, upload-time = "2025-10-06T14:09:36.268Z" }, + { url = "https://files.pythonhosted.org/packages/35/d8/611cc282502381ad855448643e1ad0538957fc82ae83dfe7762c14069e14/yarl-1.22.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b266bd01fedeffeeac01a79ae181719ff848a5a13ce10075adbefc8f1daee70e", size = 370944, upload-time = "2025-10-06T14:09:37.872Z" }, + { url = "https://files.pythonhosted.org/packages/2d/df/fadd00fb1c90e1a5a8bd731fa3d3de2e165e5a3666a095b04e31b04d9cb6/yarl-1.22.0-cp311-cp311-win32.whl", hash = "sha256:a9b1ba5610a4e20f655258d5a1fdc7ebe3d837bb0e45b581398b99eb98b1f5ca", size = 81804, upload-time = "2025-10-06T14:09:39.359Z" }, + { url = "https://files.pythonhosted.org/packages/b5/f7/149bb6f45f267cb5c074ac40c01c6b3ea6d8a620d34b337f6321928a1b4d/yarl-1.22.0-cp311-cp311-win_amd64.whl", hash = "sha256:078278b9b0b11568937d9509b589ee83ef98ed6d561dfe2020e24a9fd08eaa2b", size = 86858, upload-time = "2025-10-06T14:09:41.068Z" }, + { url = "https://files.pythonhosted.org/packages/2b/13/88b78b93ad3f2f0b78e13bfaaa24d11cbc746e93fe76d8c06bf139615646/yarl-1.22.0-cp311-cp311-win_arm64.whl", hash = "sha256:b6a6f620cfe13ccec221fa312139135166e47ae169f8253f72a0abc0dae94376", size = 81637, upload-time = "2025-10-06T14:09:42.712Z" }, + { url = "https://files.pythonhosted.org/packages/75/ff/46736024fee3429b80a165a732e38e5d5a238721e634ab41b040d49f8738/yarl-1.22.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e340382d1afa5d32b892b3ff062436d592ec3d692aeea3bef3a5cfe11bbf8c6f", size = 142000, upload-time = "2025-10-06T14:09:44.631Z" }, + { url = "https://files.pythonhosted.org/packages/5a/9a/b312ed670df903145598914770eb12de1bac44599549b3360acc96878df8/yarl-1.22.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f1e09112a2c31ffe8d80be1b0988fa6a18c5d5cad92a9ffbb1c04c91bfe52ad2", size = 94338, upload-time = "2025-10-06T14:09:46.372Z" }, + { url = "https://files.pythonhosted.org/packages/ba/f5/0601483296f09c3c65e303d60c070a5c19fcdbc72daa061e96170785bc7d/yarl-1.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:939fe60db294c786f6b7c2d2e121576628468f65453d86b0fe36cb52f987bd74", size = 94909, upload-time = "2025-10-06T14:09:48.648Z" }, + { url = "https://files.pythonhosted.org/packages/60/41/9a1fe0b73dbcefce72e46cf149b0e0a67612d60bfc90fb59c2b2efdfbd86/yarl-1.22.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e1651bf8e0398574646744c1885a41198eba53dc8a9312b954073f845c90a8df", size = 372940, upload-time = "2025-10-06T14:09:50.089Z" }, + { url = "https://files.pythonhosted.org/packages/17/7a/795cb6dfee561961c30b800f0ed616b923a2ec6258b5def2a00bf8231334/yarl-1.22.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b8a0588521a26bf92a57a1705b77b8b59044cdceccac7151bd8d229e66b8dedb", size = 345825, upload-time = "2025-10-06T14:09:52.142Z" }, + { url = "https://files.pythonhosted.org/packages/d7/93/a58f4d596d2be2ae7bab1a5846c4d270b894958845753b2c606d666744d3/yarl-1.22.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:42188e6a615c1a75bcaa6e150c3fe8f3e8680471a6b10150c5f7e83f47cc34d2", size = 386705, upload-time = "2025-10-06T14:09:54.128Z" }, + { url = "https://files.pythonhosted.org/packages/61/92/682279d0e099d0e14d7fd2e176bd04f48de1484f56546a3e1313cd6c8e7c/yarl-1.22.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f6d2cb59377d99718913ad9a151030d6f83ef420a2b8f521d94609ecc106ee82", size = 396518, upload-time = "2025-10-06T14:09:55.762Z" }, + { url = "https://files.pythonhosted.org/packages/db/0f/0d52c98b8a885aeda831224b78f3be7ec2e1aa4a62091f9f9188c3c65b56/yarl-1.22.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50678a3b71c751d58d7908edc96d332af328839eea883bb554a43f539101277a", size = 377267, upload-time = "2025-10-06T14:09:57.958Z" }, + { url = "https://files.pythonhosted.org/packages/22/42/d2685e35908cbeaa6532c1fc73e89e7f2efb5d8a7df3959ea8e37177c5a3/yarl-1.22.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1e8fbaa7cec507aa24ea27a01456e8dd4b6fab829059b69844bd348f2d467124", size = 365797, upload-time = "2025-10-06T14:09:59.527Z" }, + { url = "https://files.pythonhosted.org/packages/a2/83/cf8c7bcc6355631762f7d8bdab920ad09b82efa6b722999dfb05afa6cfac/yarl-1.22.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:433885ab5431bc3d3d4f2f9bd15bfa1614c522b0f1405d62c4f926ccd69d04fa", size = 365535, upload-time = "2025-10-06T14:10:01.139Z" }, + { url = "https://files.pythonhosted.org/packages/25/e1/5302ff9b28f0c59cac913b91fe3f16c59a033887e57ce9ca5d41a3a94737/yarl-1.22.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b790b39c7e9a4192dc2e201a282109ed2985a1ddbd5ac08dc56d0e121400a8f7", size = 382324, upload-time = "2025-10-06T14:10:02.756Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cd/4617eb60f032f19ae3a688dc990d8f0d89ee0ea378b61cac81ede3e52fae/yarl-1.22.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31f0b53913220599446872d757257be5898019c85e7971599065bc55065dc99d", size = 383803, upload-time = "2025-10-06T14:10:04.552Z" }, + { url = "https://files.pythonhosted.org/packages/59/65/afc6e62bb506a319ea67b694551dab4a7e6fb7bf604e9bd9f3e11d575fec/yarl-1.22.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a49370e8f711daec68d09b821a34e1167792ee2d24d405cbc2387be4f158b520", size = 374220, upload-time = "2025-10-06T14:10:06.489Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3d/68bf18d50dc674b942daec86a9ba922d3113d8399b0e52b9897530442da2/yarl-1.22.0-cp312-cp312-win32.whl", hash = "sha256:70dfd4f241c04bd9239d53b17f11e6ab672b9f1420364af63e8531198e3f5fe8", size = 81589, upload-time = "2025-10-06T14:10:09.254Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9a/6ad1a9b37c2f72874f93e691b2e7ecb6137fb2b899983125db4204e47575/yarl-1.22.0-cp312-cp312-win_amd64.whl", hash = "sha256:8884d8b332a5e9b88e23f60bb166890009429391864c685e17bd73a9eda9105c", size = 87213, upload-time = "2025-10-06T14:10:11.369Z" }, + { url = "https://files.pythonhosted.org/packages/44/c5/c21b562d1680a77634d748e30c653c3ca918beb35555cff24986fff54598/yarl-1.22.0-cp312-cp312-win_arm64.whl", hash = "sha256:ea70f61a47f3cc93bdf8b2f368ed359ef02a01ca6393916bc8ff877427181e74", size = 81330, upload-time = "2025-10-06T14:10:13.112Z" }, + { url = "https://files.pythonhosted.org/packages/ea/f3/d67de7260456ee105dc1d162d43a019ecad6b91e2f51809d6cddaa56690e/yarl-1.22.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8dee9c25c74997f6a750cd317b8ca63545169c098faee42c84aa5e506c819b53", size = 139980, upload-time = "2025-10-06T14:10:14.601Z" }, + { url = "https://files.pythonhosted.org/packages/01/88/04d98af0b47e0ef42597b9b28863b9060bb515524da0a65d5f4db160b2d5/yarl-1.22.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01e73b85a5434f89fc4fe27dcda2aff08ddf35e4d47bbbea3bdcd25321af538a", size = 93424, upload-time = "2025-10-06T14:10:16.115Z" }, + { url = "https://files.pythonhosted.org/packages/18/91/3274b215fd8442a03975ce6bee5fe6aa57a8326b29b9d3d56234a1dca244/yarl-1.22.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:22965c2af250d20c873cdbee8ff958fb809940aeb2e74ba5f20aaf6b7ac8c70c", size = 93821, upload-time = "2025-10-06T14:10:17.993Z" }, + { url = "https://files.pythonhosted.org/packages/61/3a/caf4e25036db0f2da4ca22a353dfeb3c9d3c95d2761ebe9b14df8fc16eb0/yarl-1.22.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b4f15793aa49793ec8d1c708ab7f9eded1aa72edc5174cae703651555ed1b601", size = 373243, upload-time = "2025-10-06T14:10:19.44Z" }, + { url = "https://files.pythonhosted.org/packages/6e/9e/51a77ac7516e8e7803b06e01f74e78649c24ee1021eca3d6a739cb6ea49c/yarl-1.22.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5542339dcf2747135c5c85f68680353d5cb9ffd741c0f2e8d832d054d41f35a", size = 342361, upload-time = "2025-10-06T14:10:21.124Z" }, + { url = "https://files.pythonhosted.org/packages/d4/f8/33b92454789dde8407f156c00303e9a891f1f51a0330b0fad7c909f87692/yarl-1.22.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5c401e05ad47a75869c3ab3e35137f8468b846770587e70d71e11de797d113df", size = 387036, upload-time = "2025-10-06T14:10:22.902Z" }, + { url = "https://files.pythonhosted.org/packages/d9/9a/c5db84ea024f76838220280f732970aa4ee154015d7f5c1bfb60a267af6f/yarl-1.22.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:243dda95d901c733f5b59214d28b0120893d91777cb8aa043e6ef059d3cddfe2", size = 397671, upload-time = "2025-10-06T14:10:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/11/c9/cd8538dc2e7727095e0c1d867bad1e40c98f37763e6d995c1939f5fdc7b1/yarl-1.22.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bec03d0d388060058f5d291a813f21c011041938a441c593374da6077fe21b1b", size = 377059, upload-time = "2025-10-06T14:10:26.406Z" }, + { url = "https://files.pythonhosted.org/packages/a1/b9/ab437b261702ced75122ed78a876a6dec0a1b0f5e17a4ac7a9a2482d8abe/yarl-1.22.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0748275abb8c1e1e09301ee3cf90c8a99678a4e92e4373705f2a2570d581273", size = 365356, upload-time = "2025-10-06T14:10:28.461Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9d/8e1ae6d1d008a9567877b08f0ce4077a29974c04c062dabdb923ed98e6fe/yarl-1.22.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:47fdb18187e2a4e18fda2c25c05d8251a9e4a521edaed757fef033e7d8498d9a", size = 361331, upload-time = "2025-10-06T14:10:30.541Z" }, + { url = "https://files.pythonhosted.org/packages/ca/5a/09b7be3905962f145b73beb468cdd53db8aa171cf18c80400a54c5b82846/yarl-1.22.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c7044802eec4524fde550afc28edda0dd5784c4c45f0be151a2d3ba017daca7d", size = 382590, upload-time = "2025-10-06T14:10:33.352Z" }, + { url = "https://files.pythonhosted.org/packages/aa/7f/59ec509abf90eda5048b0bc3e2d7b5099dffdb3e6b127019895ab9d5ef44/yarl-1.22.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:139718f35149ff544caba20fce6e8a2f71f1e39b92c700d8438a0b1d2a631a02", size = 385316, upload-time = "2025-10-06T14:10:35.034Z" }, + { url = "https://files.pythonhosted.org/packages/e5/84/891158426bc8036bfdfd862fabd0e0fa25df4176ec793e447f4b85cf1be4/yarl-1.22.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e1b51bebd221006d3d2f95fbe124b22b247136647ae5dcc8c7acafba66e5ee67", size = 374431, upload-time = "2025-10-06T14:10:37.76Z" }, + { url = "https://files.pythonhosted.org/packages/bb/49/03da1580665baa8bef5e8ed34c6df2c2aca0a2f28bf397ed238cc1bbc6f2/yarl-1.22.0-cp313-cp313-win32.whl", hash = "sha256:d3e32536234a95f513bd374e93d717cf6b2231a791758de6c509e3653f234c95", size = 81555, upload-time = "2025-10-06T14:10:39.649Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ee/450914ae11b419eadd067c6183ae08381cfdfcb9798b90b2b713bbebddda/yarl-1.22.0-cp313-cp313-win_amd64.whl", hash = "sha256:47743b82b76d89a1d20b83e60d5c20314cbd5ba2befc9cda8f28300c4a08ed4d", size = 86965, upload-time = "2025-10-06T14:10:41.313Z" }, + { url = "https://files.pythonhosted.org/packages/98/4d/264a01eae03b6cf629ad69bae94e3b0e5344741e929073678e84bf7a3e3b/yarl-1.22.0-cp313-cp313-win_arm64.whl", hash = "sha256:5d0fcda9608875f7d052eff120c7a5da474a6796fe4d83e152e0e4d42f6d1a9b", size = 81205, upload-time = "2025-10-06T14:10:43.167Z" }, + { url = "https://files.pythonhosted.org/packages/88/fc/6908f062a2f77b5f9f6d69cecb1747260831ff206adcbc5b510aff88df91/yarl-1.22.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:719ae08b6972befcba4310e49edb1161a88cdd331e3a694b84466bd938a6ab10", size = 146209, upload-time = "2025-10-06T14:10:44.643Z" }, + { url = "https://files.pythonhosted.org/packages/65/47/76594ae8eab26210b4867be6f49129861ad33da1f1ebdf7051e98492bf62/yarl-1.22.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:47d8a5c446df1c4db9d21b49619ffdba90e77c89ec6e283f453856c74b50b9e3", size = 95966, upload-time = "2025-10-06T14:10:46.554Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ce/05e9828a49271ba6b5b038b15b3934e996980dd78abdfeb52a04cfb9467e/yarl-1.22.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:cfebc0ac8333520d2d0423cbbe43ae43c8838862ddb898f5ca68565e395516e9", size = 97312, upload-time = "2025-10-06T14:10:48.007Z" }, + { url = "https://files.pythonhosted.org/packages/d1/c5/7dffad5e4f2265b29c9d7ec869c369e4223166e4f9206fc2243ee9eea727/yarl-1.22.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4398557cbf484207df000309235979c79c4356518fd5c99158c7d38203c4da4f", size = 361967, upload-time = "2025-10-06T14:10:49.997Z" }, + { url = "https://files.pythonhosted.org/packages/50/b2/375b933c93a54bff7fc041e1a6ad2c0f6f733ffb0c6e642ce56ee3b39970/yarl-1.22.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2ca6fd72a8cd803be290d42f2dec5cdcd5299eeb93c2d929bf060ad9efaf5de0", size = 323949, upload-time = "2025-10-06T14:10:52.004Z" }, + { url = "https://files.pythonhosted.org/packages/66/50/bfc2a29a1d78644c5a7220ce2f304f38248dc94124a326794e677634b6cf/yarl-1.22.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca1f59c4e1ab6e72f0a23c13fca5430f889634166be85dbf1013683e49e3278e", size = 361818, upload-time = "2025-10-06T14:10:54.078Z" }, + { url = "https://files.pythonhosted.org/packages/46/96/f3941a46af7d5d0f0498f86d71275696800ddcdd20426298e572b19b91ff/yarl-1.22.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c5010a52015e7c70f86eb967db0f37f3c8bd503a695a49f8d45700144667708", size = 372626, upload-time = "2025-10-06T14:10:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/c1/42/8b27c83bb875cd89448e42cd627e0fb971fa1675c9ec546393d18826cb50/yarl-1.22.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d7672ecf7557476642c88497c2f8d8542f8e36596e928e9bcba0e42e1e7d71f", size = 341129, upload-time = "2025-10-06T14:10:57.985Z" }, + { url = "https://files.pythonhosted.org/packages/49/36/99ca3122201b382a3cf7cc937b95235b0ac944f7e9f2d5331d50821ed352/yarl-1.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:3b7c88eeef021579d600e50363e0b6ee4f7f6f728cd3486b9d0f3ee7b946398d", size = 346776, upload-time = "2025-10-06T14:10:59.633Z" }, + { url = "https://files.pythonhosted.org/packages/85/b4/47328bf996acd01a4c16ef9dcd2f59c969f495073616586f78cd5f2efb99/yarl-1.22.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f4afb5c34f2c6fecdcc182dfcfc6af6cccf1aa923eed4d6a12e9d96904e1a0d8", size = 334879, upload-time = "2025-10-06T14:11:01.454Z" }, + { url = "https://files.pythonhosted.org/packages/c2/ad/b77d7b3f14a4283bffb8e92c6026496f6de49751c2f97d4352242bba3990/yarl-1.22.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:59c189e3e99a59cf8d83cbb31d4db02d66cda5a1a4374e8a012b51255341abf5", size = 350996, upload-time = "2025-10-06T14:11:03.452Z" }, + { url = "https://files.pythonhosted.org/packages/81/c8/06e1d69295792ba54d556f06686cbd6a7ce39c22307100e3fb4a2c0b0a1d/yarl-1.22.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:5a3bf7f62a289fa90f1990422dc8dff5a458469ea71d1624585ec3a4c8d6960f", size = 356047, upload-time = "2025-10-06T14:11:05.115Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b8/4c0e9e9f597074b208d18cef227d83aac36184bfbc6eab204ea55783dbc5/yarl-1.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:de6b9a04c606978fdfe72666fa216ffcf2d1a9f6a381058d4378f8d7b1e5de62", size = 342947, upload-time = "2025-10-06T14:11:08.137Z" }, + { url = "https://files.pythonhosted.org/packages/e0/e5/11f140a58bf4c6ad7aca69a892bff0ee638c31bea4206748fc0df4ebcb3a/yarl-1.22.0-cp313-cp313t-win32.whl", hash = "sha256:1834bb90991cc2999f10f97f5f01317f99b143284766d197e43cd5b45eb18d03", size = 86943, upload-time = "2025-10-06T14:11:10.284Z" }, + { url = "https://files.pythonhosted.org/packages/31/74/8b74bae38ed7fe6793d0c15a0c8207bbb819cf287788459e5ed230996cdd/yarl-1.22.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ff86011bd159a9d2dfc89c34cfd8aff12875980e3bd6a39ff097887520e60249", size = 93715, upload-time = "2025-10-06T14:11:11.739Z" }, + { url = "https://files.pythonhosted.org/packages/69/66/991858aa4b5892d57aef7ee1ba6b4d01ec3b7eb3060795d34090a3ca3278/yarl-1.22.0-cp313-cp313t-win_arm64.whl", hash = "sha256:7861058d0582b847bc4e3a4a4c46828a410bca738673f35a29ba3ca5db0b473b", size = 83857, upload-time = "2025-10-06T14:11:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/73/ae/b48f95715333080afb75a4504487cbe142cae1268afc482d06692d605ae6/yarl-1.22.0-py3-none-any.whl", hash = "sha256:1380560bdba02b6b6c90de54133c81c9f2a453dee9912fe58c1dcced1edb7cff", size = 46814, upload-time = "2025-10-06T14:12:53.872Z" }, ] [[package]] name = "zipp" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload_time = "2025-06-08T17:06:39.4Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload_time = "2025-06-08T17:06:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" }, ] [[package]] name = "zstandard" version = "0.25.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload_time = "2025-09-14T22:15:54.002Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/56/7a/28efd1d371f1acd037ac64ed1c5e2b41514a6cc937dd6ab6a13ab9f0702f/zstandard-0.25.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e59fdc271772f6686e01e1b3b74537259800f57e24280be3f29c8a0deb1904dd", size = 795256, upload_time = "2025-09-14T22:15:56.415Z" }, - { url = "https://files.pythonhosted.org/packages/96/34/ef34ef77f1ee38fc8e4f9775217a613b452916e633c4f1d98f31db52c4a5/zstandard-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4d441506e9b372386a5271c64125f72d5df6d2a8e8a2a45a0ae09b03cb781ef7", size = 640565, upload_time = "2025-09-14T22:15:58.177Z" }, - { url = "https://files.pythonhosted.org/packages/9d/1b/4fdb2c12eb58f31f28c4d28e8dc36611dd7205df8452e63f52fb6261d13e/zstandard-0.25.0-cp310-cp310-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:ab85470ab54c2cb96e176f40342d9ed41e58ca5733be6a893b730e7af9c40550", size = 5345306, upload_time = "2025-09-14T22:16:00.165Z" }, - { url = "https://files.pythonhosted.org/packages/73/28/a44bdece01bca027b079f0e00be3b6bd89a4df180071da59a3dd7381665b/zstandard-0.25.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e05ab82ea7753354bb054b92e2f288afb750e6b439ff6ca78af52939ebbc476d", size = 5055561, upload_time = "2025-09-14T22:16:02.22Z" }, - { url = "https://files.pythonhosted.org/packages/e9/74/68341185a4f32b274e0fc3410d5ad0750497e1acc20bd0f5b5f64ce17785/zstandard-0.25.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:78228d8a6a1c177a96b94f7e2e8d012c55f9c760761980da16ae7546a15a8e9b", size = 5402214, upload_time = "2025-09-14T22:16:04.109Z" }, - { url = "https://files.pythonhosted.org/packages/8b/67/f92e64e748fd6aaffe01e2b75a083c0c4fd27abe1c8747fee4555fcee7dd/zstandard-0.25.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b6bd67528ee8b5c5f10255735abc21aa106931f0dbaf297c7be0c886353c3d0", size = 5449703, upload_time = "2025-09-14T22:16:06.312Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e5/6d36f92a197c3c17729a2125e29c169f460538a7d939a27eaaa6dcfcba8e/zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b6d83057e713ff235a12e73916b6d356e3084fd3d14ced499d84240f3eecee0", size = 5556583, upload_time = "2025-09-14T22:16:08.457Z" }, - { url = "https://files.pythonhosted.org/packages/d7/83/41939e60d8d7ebfe2b747be022d0806953799140a702b90ffe214d557638/zstandard-0.25.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9174f4ed06f790a6869b41cba05b43eeb9a35f8993c4422ab853b705e8112bbd", size = 5045332, upload_time = "2025-09-14T22:16:10.444Z" }, - { url = "https://files.pythonhosted.org/packages/b3/87/d3ee185e3d1aa0133399893697ae91f221fda79deb61adbe998a7235c43f/zstandard-0.25.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:25f8f3cd45087d089aef5ba3848cd9efe3ad41163d3400862fb42f81a3a46701", size = 5572283, upload_time = "2025-09-14T22:16:12.128Z" }, - { url = "https://files.pythonhosted.org/packages/0a/1d/58635ae6104df96671076ac7d4ae7816838ce7debd94aecf83e30b7121b0/zstandard-0.25.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3756b3e9da9b83da1796f8809dd57cb024f838b9eeafde28f3cb472012797ac1", size = 4959754, upload_time = "2025-09-14T22:16:14.225Z" }, - { url = "https://files.pythonhosted.org/packages/75/d6/57e9cb0a9983e9a229dd8fd2e6e96593ef2aa82a3907188436f22b111ccd/zstandard-0.25.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:81dad8d145d8fd981b2962b686b2241d3a1ea07733e76a2f15435dfb7fb60150", size = 5266477, upload_time = "2025-09-14T22:16:16.343Z" }, - { url = "https://files.pythonhosted.org/packages/d1/a9/ee891e5edf33a6ebce0a028726f0bbd8567effe20fe3d5808c42323e8542/zstandard-0.25.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a5a419712cf88862a45a23def0ae063686db3d324cec7edbe40509d1a79a0aab", size = 5440914, upload_time = "2025-09-14T22:16:18.453Z" }, - { url = "https://files.pythonhosted.org/packages/58/08/a8522c28c08031a9521f27abc6f78dbdee7312a7463dd2cfc658b813323b/zstandard-0.25.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e7360eae90809efd19b886e59a09dad07da4ca9ba096752e61a2e03c8aca188e", size = 5819847, upload_time = "2025-09-14T22:16:20.559Z" }, - { url = "https://files.pythonhosted.org/packages/6f/11/4c91411805c3f7b6f31c60e78ce347ca48f6f16d552fc659af6ec3b73202/zstandard-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75ffc32a569fb049499e63ce68c743155477610532da1eb38e7f24bf7cd29e74", size = 5363131, upload_time = "2025-09-14T22:16:22.206Z" }, - { url = "https://files.pythonhosted.org/packages/ef/d6/8c4bd38a3b24c4c7676a7a3d8de85d6ee7a983602a734b9f9cdefb04a5d6/zstandard-0.25.0-cp310-cp310-win32.whl", hash = "sha256:106281ae350e494f4ac8a80470e66d1fe27e497052c8d9c3b95dc4cf1ade81aa", size = 436469, upload_time = "2025-09-14T22:16:25.002Z" }, - { url = "https://files.pythonhosted.org/packages/93/90/96d50ad417a8ace5f841b3228e93d1bb13e6ad356737f42e2dde30d8bd68/zstandard-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea9d54cc3d8064260114a0bbf3479fc4a98b21dffc89b3459edd506b69262f6e", size = 506100, upload_time = "2025-09-14T22:16:23.569Z" }, - { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload_time = "2025-09-14T22:16:26.137Z" }, - { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload_time = "2025-09-14T22:16:27.973Z" }, - { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload_time = "2025-09-14T22:16:29.523Z" }, - { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload_time = "2025-09-14T22:16:31.811Z" }, - { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload_time = "2025-09-14T22:16:33.486Z" }, - { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload_time = "2025-09-14T22:16:35.277Z" }, - { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload_time = "2025-09-14T22:16:37.141Z" }, - { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload_time = "2025-09-14T22:16:38.807Z" }, - { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload_time = "2025-09-14T22:16:40.523Z" }, - { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload_time = "2025-09-14T22:16:43.3Z" }, - { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload_time = "2025-09-14T22:16:45.292Z" }, - { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload_time = "2025-09-14T22:16:47.076Z" }, - { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload_time = "2025-09-14T22:16:49.316Z" }, - { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload_time = "2025-09-14T22:16:51.328Z" }, - { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload_time = "2025-09-14T22:16:55.005Z" }, - { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload_time = "2025-09-14T22:16:52.753Z" }, - { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload_time = "2025-09-14T22:16:53.878Z" }, - { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738, upload_time = "2025-09-14T22:16:56.237Z" }, - { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436, upload_time = "2025-09-14T22:16:57.774Z" }, - { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019, upload_time = "2025-09-14T22:16:59.302Z" }, - { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012, upload_time = "2025-09-14T22:17:01.156Z" }, - { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148, upload_time = "2025-09-14T22:17:03.091Z" }, - { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652, upload_time = "2025-09-14T22:17:04.979Z" }, - { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993, upload_time = "2025-09-14T22:17:06.781Z" }, - { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806, upload_time = "2025-09-14T22:17:08.415Z" }, - { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659, upload_time = "2025-09-14T22:17:10.164Z" }, - { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933, upload_time = "2025-09-14T22:17:11.857Z" }, - { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008, upload_time = "2025-09-14T22:17:13.627Z" }, - { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517, upload_time = "2025-09-14T22:17:16.103Z" }, - { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292, upload_time = "2025-09-14T22:17:17.827Z" }, - { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237, upload_time = "2025-09-14T22:17:19.954Z" }, - { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922, upload_time = "2025-09-14T22:17:24.398Z" }, - { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276, upload_time = "2025-09-14T22:17:21.429Z" }, - { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679, upload_time = "2025-09-14T22:17:23.147Z" }, - { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735, upload_time = "2025-09-14T22:17:26.042Z" }, - { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440, upload_time = "2025-09-14T22:17:27.366Z" }, - { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070, upload_time = "2025-09-14T22:17:28.896Z" }, - { url = "https://files.pythonhosted.org/packages/6d/db/ddb11011826ed7db9d0e485d13df79b58586bfdec56e5c84a928a9a78c1c/zstandard-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea", size = 5063001, upload_time = "2025-09-14T22:17:31.044Z" }, - { url = "https://files.pythonhosted.org/packages/db/00/87466ea3f99599d02a5238498b87bf84a6348290c19571051839ca943777/zstandard-0.25.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e", size = 5394120, upload_time = "2025-09-14T22:17:32.711Z" }, - { url = "https://files.pythonhosted.org/packages/2b/95/fc5531d9c618a679a20ff6c29e2b3ef1d1f4ad66c5e161ae6ff847d102a9/zstandard-0.25.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551", size = 5451230, upload_time = "2025-09-14T22:17:34.41Z" }, - { url = "https://files.pythonhosted.org/packages/63/4b/e3678b4e776db00f9f7b2fe58e547e8928ef32727d7a1ff01dea010f3f13/zstandard-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a", size = 5547173, upload_time = "2025-09-14T22:17:36.084Z" }, - { url = "https://files.pythonhosted.org/packages/4e/d5/ba05ed95c6b8ec30bd468dfeab20589f2cf709b5c940483e31d991f2ca58/zstandard-0.25.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611", size = 5046736, upload_time = "2025-09-14T22:17:37.891Z" }, - { url = "https://files.pythonhosted.org/packages/50/d5/870aa06b3a76c73eced65c044b92286a3c4e00554005ff51962deef28e28/zstandard-0.25.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3", size = 5576368, upload_time = "2025-09-14T22:17:40.206Z" }, - { url = "https://files.pythonhosted.org/packages/5d/35/398dc2ffc89d304d59bc12f0fdd931b4ce455bddf7038a0a67733a25f550/zstandard-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b", size = 4954022, upload_time = "2025-09-14T22:17:41.879Z" }, - { url = "https://files.pythonhosted.org/packages/9a/5c/36ba1e5507d56d2213202ec2b05e8541734af5f2ce378c5d1ceaf4d88dc4/zstandard-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851", size = 5267889, upload_time = "2025-09-14T22:17:43.577Z" }, - { url = "https://files.pythonhosted.org/packages/70/e8/2ec6b6fb7358b2ec0113ae202647ca7c0e9d15b61c005ae5225ad0995df5/zstandard-0.25.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250", size = 5433952, upload_time = "2025-09-14T22:17:45.271Z" }, - { url = "https://files.pythonhosted.org/packages/7b/01/b5f4d4dbc59ef193e870495c6f1275f5b2928e01ff5a81fecb22a06e22fb/zstandard-0.25.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98", size = 5814054, upload_time = "2025-09-14T22:17:47.08Z" }, - { url = "https://files.pythonhosted.org/packages/b2/e5/fbd822d5c6f427cf158316d012c5a12f233473c2f9c5fe5ab1ae5d21f3d8/zstandard-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf", size = 5360113, upload_time = "2025-09-14T22:17:48.893Z" }, - { url = "https://files.pythonhosted.org/packages/8e/e0/69a553d2047f9a2c7347caa225bb3a63b6d7704ad74610cb7823baa08ed7/zstandard-0.25.0-cp313-cp313-win32.whl", hash = "sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09", size = 436936, upload_time = "2025-09-14T22:17:52.658Z" }, - { url = "https://files.pythonhosted.org/packages/d9/82/b9c06c870f3bd8767c201f1edbdf9e8dc34be5b0fbc5682c4f80fe948475/zstandard-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5", size = 506232, upload_time = "2025-09-14T22:17:50.402Z" }, - { url = "https://files.pythonhosted.org/packages/d4/57/60c3c01243bb81d381c9916e2a6d9e149ab8627c0c7d7abb2d73384b3c0c/zstandard-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049", size = 462671, upload_time = "2025-09-14T22:17:51.533Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/fd/aa/3e0508d5a5dd96529cdc5a97011299056e14c6505b678fd58938792794b1/zstandard-0.25.0.tar.gz", hash = "sha256:7713e1179d162cf5c7906da876ec2ccb9c3a9dcbdffef0cc7f70c3667a205f0b", size = 711513, upload-time = "2025-09-14T22:15:54.002Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/7a/28efd1d371f1acd037ac64ed1c5e2b41514a6cc937dd6ab6a13ab9f0702f/zstandard-0.25.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e59fdc271772f6686e01e1b3b74537259800f57e24280be3f29c8a0deb1904dd", size = 795256, upload-time = "2025-09-14T22:15:56.415Z" }, + { url = "https://files.pythonhosted.org/packages/96/34/ef34ef77f1ee38fc8e4f9775217a613b452916e633c4f1d98f31db52c4a5/zstandard-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4d441506e9b372386a5271c64125f72d5df6d2a8e8a2a45a0ae09b03cb781ef7", size = 640565, upload-time = "2025-09-14T22:15:58.177Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1b/4fdb2c12eb58f31f28c4d28e8dc36611dd7205df8452e63f52fb6261d13e/zstandard-0.25.0-cp310-cp310-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:ab85470ab54c2cb96e176f40342d9ed41e58ca5733be6a893b730e7af9c40550", size = 5345306, upload-time = "2025-09-14T22:16:00.165Z" }, + { url = "https://files.pythonhosted.org/packages/73/28/a44bdece01bca027b079f0e00be3b6bd89a4df180071da59a3dd7381665b/zstandard-0.25.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e05ab82ea7753354bb054b92e2f288afb750e6b439ff6ca78af52939ebbc476d", size = 5055561, upload-time = "2025-09-14T22:16:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/e9/74/68341185a4f32b274e0fc3410d5ad0750497e1acc20bd0f5b5f64ce17785/zstandard-0.25.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:78228d8a6a1c177a96b94f7e2e8d012c55f9c760761980da16ae7546a15a8e9b", size = 5402214, upload-time = "2025-09-14T22:16:04.109Z" }, + { url = "https://files.pythonhosted.org/packages/8b/67/f92e64e748fd6aaffe01e2b75a083c0c4fd27abe1c8747fee4555fcee7dd/zstandard-0.25.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b6bd67528ee8b5c5f10255735abc21aa106931f0dbaf297c7be0c886353c3d0", size = 5449703, upload-time = "2025-09-14T22:16:06.312Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e5/6d36f92a197c3c17729a2125e29c169f460538a7d939a27eaaa6dcfcba8e/zstandard-0.25.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4b6d83057e713ff235a12e73916b6d356e3084fd3d14ced499d84240f3eecee0", size = 5556583, upload-time = "2025-09-14T22:16:08.457Z" }, + { url = "https://files.pythonhosted.org/packages/d7/83/41939e60d8d7ebfe2b747be022d0806953799140a702b90ffe214d557638/zstandard-0.25.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9174f4ed06f790a6869b41cba05b43eeb9a35f8993c4422ab853b705e8112bbd", size = 5045332, upload-time = "2025-09-14T22:16:10.444Z" }, + { url = "https://files.pythonhosted.org/packages/b3/87/d3ee185e3d1aa0133399893697ae91f221fda79deb61adbe998a7235c43f/zstandard-0.25.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:25f8f3cd45087d089aef5ba3848cd9efe3ad41163d3400862fb42f81a3a46701", size = 5572283, upload-time = "2025-09-14T22:16:12.128Z" }, + { url = "https://files.pythonhosted.org/packages/0a/1d/58635ae6104df96671076ac7d4ae7816838ce7debd94aecf83e30b7121b0/zstandard-0.25.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3756b3e9da9b83da1796f8809dd57cb024f838b9eeafde28f3cb472012797ac1", size = 4959754, upload-time = "2025-09-14T22:16:14.225Z" }, + { url = "https://files.pythonhosted.org/packages/75/d6/57e9cb0a9983e9a229dd8fd2e6e96593ef2aa82a3907188436f22b111ccd/zstandard-0.25.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:81dad8d145d8fd981b2962b686b2241d3a1ea07733e76a2f15435dfb7fb60150", size = 5266477, upload-time = "2025-09-14T22:16:16.343Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a9/ee891e5edf33a6ebce0a028726f0bbd8567effe20fe3d5808c42323e8542/zstandard-0.25.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a5a419712cf88862a45a23def0ae063686db3d324cec7edbe40509d1a79a0aab", size = 5440914, upload-time = "2025-09-14T22:16:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/58/08/a8522c28c08031a9521f27abc6f78dbdee7312a7463dd2cfc658b813323b/zstandard-0.25.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e7360eae90809efd19b886e59a09dad07da4ca9ba096752e61a2e03c8aca188e", size = 5819847, upload-time = "2025-09-14T22:16:20.559Z" }, + { url = "https://files.pythonhosted.org/packages/6f/11/4c91411805c3f7b6f31c60e78ce347ca48f6f16d552fc659af6ec3b73202/zstandard-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:75ffc32a569fb049499e63ce68c743155477610532da1eb38e7f24bf7cd29e74", size = 5363131, upload-time = "2025-09-14T22:16:22.206Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d6/8c4bd38a3b24c4c7676a7a3d8de85d6ee7a983602a734b9f9cdefb04a5d6/zstandard-0.25.0-cp310-cp310-win32.whl", hash = "sha256:106281ae350e494f4ac8a80470e66d1fe27e497052c8d9c3b95dc4cf1ade81aa", size = 436469, upload-time = "2025-09-14T22:16:25.002Z" }, + { url = "https://files.pythonhosted.org/packages/93/90/96d50ad417a8ace5f841b3228e93d1bb13e6ad356737f42e2dde30d8bd68/zstandard-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:ea9d54cc3d8064260114a0bbf3479fc4a98b21dffc89b3459edd506b69262f6e", size = 506100, upload-time = "2025-09-14T22:16:23.569Z" }, + { url = "https://files.pythonhosted.org/packages/2a/83/c3ca27c363d104980f1c9cee1101cc8ba724ac8c28a033ede6aab89585b1/zstandard-0.25.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:933b65d7680ea337180733cf9e87293cc5500cc0eb3fc8769f4d3c88d724ec5c", size = 795254, upload-time = "2025-09-14T22:16:26.137Z" }, + { url = "https://files.pythonhosted.org/packages/ac/4d/e66465c5411a7cf4866aeadc7d108081d8ceba9bc7abe6b14aa21c671ec3/zstandard-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3f79487c687b1fc69f19e487cd949bf3aae653d181dfb5fde3bf6d18894706f", size = 640559, upload-time = "2025-09-14T22:16:27.973Z" }, + { url = "https://files.pythonhosted.org/packages/12/56/354fe655905f290d3b147b33fe946b0f27e791e4b50a5f004c802cb3eb7b/zstandard-0.25.0-cp311-cp311-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:0bbc9a0c65ce0eea3c34a691e3c4b6889f5f3909ba4822ab385fab9057099431", size = 5348020, upload-time = "2025-09-14T22:16:29.523Z" }, + { url = "https://files.pythonhosted.org/packages/3b/13/2b7ed68bd85e69a2069bcc72141d378f22cae5a0f3b353a2c8f50ef30c1b/zstandard-0.25.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:01582723b3ccd6939ab7b3a78622c573799d5d8737b534b86d0e06ac18dbde4a", size = 5058126, upload-time = "2025-09-14T22:16:31.811Z" }, + { url = "https://files.pythonhosted.org/packages/c9/dd/fdaf0674f4b10d92cb120ccff58bbb6626bf8368f00ebfd2a41ba4a0dc99/zstandard-0.25.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:5f1ad7bf88535edcf30038f6919abe087f606f62c00a87d7e33e7fc57cb69fcc", size = 5405390, upload-time = "2025-09-14T22:16:33.486Z" }, + { url = "https://files.pythonhosted.org/packages/0f/67/354d1555575bc2490435f90d67ca4dd65238ff2f119f30f72d5cde09c2ad/zstandard-0.25.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:06acb75eebeedb77b69048031282737717a63e71e4ae3f77cc0c3b9508320df6", size = 5452914, upload-time = "2025-09-14T22:16:35.277Z" }, + { url = "https://files.pythonhosted.org/packages/bb/1f/e9cfd801a3f9190bf3e759c422bbfd2247db9d7f3d54a56ecde70137791a/zstandard-0.25.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9300d02ea7c6506f00e627e287e0492a5eb0371ec1670ae852fefffa6164b072", size = 5559635, upload-time = "2025-09-14T22:16:37.141Z" }, + { url = "https://files.pythonhosted.org/packages/21/88/5ba550f797ca953a52d708c8e4f380959e7e3280af029e38fbf47b55916e/zstandard-0.25.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bfd06b1c5584b657a2892a6014c2f4c20e0db0208c159148fa78c65f7e0b0277", size = 5048277, upload-time = "2025-09-14T22:16:38.807Z" }, + { url = "https://files.pythonhosted.org/packages/46/c0/ca3e533b4fa03112facbe7fbe7779cb1ebec215688e5df576fe5429172e0/zstandard-0.25.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f373da2c1757bb7f1acaf09369cdc1d51d84131e50d5fa9863982fd626466313", size = 5574377, upload-time = "2025-09-14T22:16:40.523Z" }, + { url = "https://files.pythonhosted.org/packages/12/9b/3fb626390113f272abd0799fd677ea33d5fc3ec185e62e6be534493c4b60/zstandard-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6c0e5a65158a7946e7a7affa6418878ef97ab66636f13353b8502d7ea03c8097", size = 4961493, upload-time = "2025-09-14T22:16:43.3Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d3/23094a6b6a4b1343b27ae68249daa17ae0651fcfec9ed4de09d14b940285/zstandard-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c8e167d5adf59476fa3e37bee730890e389410c354771a62e3c076c86f9f7778", size = 5269018, upload-time = "2025-09-14T22:16:45.292Z" }, + { url = "https://files.pythonhosted.org/packages/8c/a7/bb5a0c1c0f3f4b5e9d5b55198e39de91e04ba7c205cc46fcb0f95f0383c1/zstandard-0.25.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:98750a309eb2f020da61e727de7d7ba3c57c97cf6213f6f6277bb7fb42a8e065", size = 5443672, upload-time = "2025-09-14T22:16:47.076Z" }, + { url = "https://files.pythonhosted.org/packages/27/22/503347aa08d073993f25109c36c8d9f029c7d5949198050962cb568dfa5e/zstandard-0.25.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:22a086cff1b6ceca18a8dd6096ec631e430e93a8e70a9ca5efa7561a00f826fa", size = 5822753, upload-time = "2025-09-14T22:16:49.316Z" }, + { url = "https://files.pythonhosted.org/packages/e2/be/94267dc6ee64f0f8ba2b2ae7c7a2df934a816baaa7291db9e1aa77394c3c/zstandard-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:72d35d7aa0bba323965da807a462b0966c91608ef3a48ba761678cb20ce5d8b7", size = 5366047, upload-time = "2025-09-14T22:16:51.328Z" }, + { url = "https://files.pythonhosted.org/packages/7b/a3/732893eab0a3a7aecff8b99052fecf9f605cf0fb5fb6d0290e36beee47a4/zstandard-0.25.0-cp311-cp311-win32.whl", hash = "sha256:f5aeea11ded7320a84dcdd62a3d95b5186834224a9e55b92ccae35d21a8b63d4", size = 436484, upload-time = "2025-09-14T22:16:55.005Z" }, + { url = "https://files.pythonhosted.org/packages/43/a3/c6155f5c1cce691cb80dfd38627046e50af3ee9ddc5d0b45b9b063bfb8c9/zstandard-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:daab68faadb847063d0c56f361a289c4f268706b598afbf9ad113cbe5c38b6b2", size = 506183, upload-time = "2025-09-14T22:16:52.753Z" }, + { url = "https://files.pythonhosted.org/packages/8c/3e/8945ab86a0820cc0e0cdbf38086a92868a9172020fdab8a03ac19662b0e5/zstandard-0.25.0-cp311-cp311-win_arm64.whl", hash = "sha256:22a06c5df3751bb7dc67406f5374734ccee8ed37fc5981bf1ad7041831fa1137", size = 462533, upload-time = "2025-09-14T22:16:53.878Z" }, + { url = "https://files.pythonhosted.org/packages/82/fc/f26eb6ef91ae723a03e16eddb198abcfce2bc5a42e224d44cc8b6765e57e/zstandard-0.25.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7b3c3a3ab9daa3eed242d6ecceead93aebbb8f5f84318d82cee643e019c4b73b", size = 795738, upload-time = "2025-09-14T22:16:56.237Z" }, + { url = "https://files.pythonhosted.org/packages/aa/1c/d920d64b22f8dd028a8b90e2d756e431a5d86194caa78e3819c7bf53b4b3/zstandard-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:913cbd31a400febff93b564a23e17c3ed2d56c064006f54efec210d586171c00", size = 640436, upload-time = "2025-09-14T22:16:57.774Z" }, + { url = "https://files.pythonhosted.org/packages/53/6c/288c3f0bd9fcfe9ca41e2c2fbfd17b2097f6af57b62a81161941f09afa76/zstandard-0.25.0-cp312-cp312-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:011d388c76b11a0c165374ce660ce2c8efa8e5d87f34996aa80f9c0816698b64", size = 5343019, upload-time = "2025-09-14T22:16:59.302Z" }, + { url = "https://files.pythonhosted.org/packages/1e/15/efef5a2f204a64bdb5571e6161d49f7ef0fffdbca953a615efbec045f60f/zstandard-0.25.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6dffecc361d079bb48d7caef5d673c88c8988d3d33fb74ab95b7ee6da42652ea", size = 5063012, upload-time = "2025-09-14T22:17:01.156Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/a6ce629ffdb43959e92e87ebdaeebb5ac81c944b6a75c9c47e300f85abdf/zstandard-0.25.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7149623bba7fdf7e7f24312953bcf73cae103db8cae49f8154dd1eadc8a29ecb", size = 5394148, upload-time = "2025-09-14T22:17:03.091Z" }, + { url = "https://files.pythonhosted.org/packages/e3/79/2bf870b3abeb5c070fe2d670a5a8d1057a8270f125ef7676d29ea900f496/zstandard-0.25.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6a573a35693e03cf1d67799fd01b50ff578515a8aeadd4595d2a7fa9f3ec002a", size = 5451652, upload-time = "2025-09-14T22:17:04.979Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/7be26e610767316c028a2cbedb9a3beabdbe33e2182c373f71a1c0b88f36/zstandard-0.25.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5a56ba0db2d244117ed744dfa8f6f5b366e14148e00de44723413b2f3938a902", size = 5546993, upload-time = "2025-09-14T22:17:06.781Z" }, + { url = "https://files.pythonhosted.org/packages/85/c7/3483ad9ff0662623f3648479b0380d2de5510abf00990468c286c6b04017/zstandard-0.25.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:10ef2a79ab8e2974e2075fb984e5b9806c64134810fac21576f0668e7ea19f8f", size = 5046806, upload-time = "2025-09-14T22:17:08.415Z" }, + { url = "https://files.pythonhosted.org/packages/08/b3/206883dd25b8d1591a1caa44b54c2aad84badccf2f1de9e2d60a446f9a25/zstandard-0.25.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:aaf21ba8fb76d102b696781bddaa0954b782536446083ae3fdaa6f16b25a1c4b", size = 5576659, upload-time = "2025-09-14T22:17:10.164Z" }, + { url = "https://files.pythonhosted.org/packages/9d/31/76c0779101453e6c117b0ff22565865c54f48f8bd807df2b00c2c404b8e0/zstandard-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1869da9571d5e94a85a5e8d57e4e8807b175c9e4a6294e3b66fa4efb074d90f6", size = 4953933, upload-time = "2025-09-14T22:17:11.857Z" }, + { url = "https://files.pythonhosted.org/packages/18/e1/97680c664a1bf9a247a280a053d98e251424af51f1b196c6d52f117c9720/zstandard-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:809c5bcb2c67cd0ed81e9229d227d4ca28f82d0f778fc5fea624a9def3963f91", size = 5268008, upload-time = "2025-09-14T22:17:13.627Z" }, + { url = "https://files.pythonhosted.org/packages/1e/73/316e4010de585ac798e154e88fd81bb16afc5c5cb1a72eeb16dd37e8024a/zstandard-0.25.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:f27662e4f7dbf9f9c12391cb37b4c4c3cb90ffbd3b1fb9284dadbbb8935fa708", size = 5433517, upload-time = "2025-09-14T22:17:16.103Z" }, + { url = "https://files.pythonhosted.org/packages/5b/60/dd0f8cfa8129c5a0ce3ea6b7f70be5b33d2618013a161e1ff26c2b39787c/zstandard-0.25.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:99c0c846e6e61718715a3c9437ccc625de26593fea60189567f0118dc9db7512", size = 5814292, upload-time = "2025-09-14T22:17:17.827Z" }, + { url = "https://files.pythonhosted.org/packages/fc/5f/75aafd4b9d11b5407b641b8e41a57864097663699f23e9ad4dbb91dc6bfe/zstandard-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:474d2596a2dbc241a556e965fb76002c1ce655445e4e3bf38e5477d413165ffa", size = 5360237, upload-time = "2025-09-14T22:17:19.954Z" }, + { url = "https://files.pythonhosted.org/packages/ff/8d/0309daffea4fcac7981021dbf21cdb2e3427a9e76bafbcdbdf5392ff99a4/zstandard-0.25.0-cp312-cp312-win32.whl", hash = "sha256:23ebc8f17a03133b4426bcc04aabd68f8236eb78c3760f12783385171b0fd8bd", size = 436922, upload-time = "2025-09-14T22:17:24.398Z" }, + { url = "https://files.pythonhosted.org/packages/79/3b/fa54d9015f945330510cb5d0b0501e8253c127cca7ebe8ba46a965df18c5/zstandard-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:ffef5a74088f1e09947aecf91011136665152e0b4b359c42be3373897fb39b01", size = 506276, upload-time = "2025-09-14T22:17:21.429Z" }, + { url = "https://files.pythonhosted.org/packages/ea/6b/8b51697e5319b1f9ac71087b0af9a40d8a6288ff8025c36486e0c12abcc4/zstandard-0.25.0-cp312-cp312-win_arm64.whl", hash = "sha256:181eb40e0b6a29b3cd2849f825e0fa34397f649170673d385f3598ae17cca2e9", size = 462679, upload-time = "2025-09-14T22:17:23.147Z" }, + { url = "https://files.pythonhosted.org/packages/35/0b/8df9c4ad06af91d39e94fa96cc010a24ac4ef1378d3efab9223cc8593d40/zstandard-0.25.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ec996f12524f88e151c339688c3897194821d7f03081ab35d31d1e12ec975e94", size = 795735, upload-time = "2025-09-14T22:17:26.042Z" }, + { url = "https://files.pythonhosted.org/packages/3f/06/9ae96a3e5dcfd119377ba33d4c42a7d89da1efabd5cb3e366b156c45ff4d/zstandard-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a1a4ae2dec3993a32247995bdfe367fc3266da832d82f8438c8570f989753de1", size = 640440, upload-time = "2025-09-14T22:17:27.366Z" }, + { url = "https://files.pythonhosted.org/packages/d9/14/933d27204c2bd404229c69f445862454dcc101cd69ef8c6068f15aaec12c/zstandard-0.25.0-cp313-cp313-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl", hash = "sha256:e96594a5537722fdfb79951672a2a63aec5ebfb823e7560586f7484819f2a08f", size = 5343070, upload-time = "2025-09-14T22:17:28.896Z" }, + { url = "https://files.pythonhosted.org/packages/6d/db/ddb11011826ed7db9d0e485d13df79b58586bfdec56e5c84a928a9a78c1c/zstandard-0.25.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bfc4e20784722098822e3eee42b8e576b379ed72cca4a7cb856ae733e62192ea", size = 5063001, upload-time = "2025-09-14T22:17:31.044Z" }, + { url = "https://files.pythonhosted.org/packages/db/00/87466ea3f99599d02a5238498b87bf84a6348290c19571051839ca943777/zstandard-0.25.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:457ed498fc58cdc12fc48f7950e02740d4f7ae9493dd4ab2168a47c93c31298e", size = 5394120, upload-time = "2025-09-14T22:17:32.711Z" }, + { url = "https://files.pythonhosted.org/packages/2b/95/fc5531d9c618a679a20ff6c29e2b3ef1d1f4ad66c5e161ae6ff847d102a9/zstandard-0.25.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:fd7a5004eb1980d3cefe26b2685bcb0b17989901a70a1040d1ac86f1d898c551", size = 5451230, upload-time = "2025-09-14T22:17:34.41Z" }, + { url = "https://files.pythonhosted.org/packages/63/4b/e3678b4e776db00f9f7b2fe58e547e8928ef32727d7a1ff01dea010f3f13/zstandard-0.25.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8e735494da3db08694d26480f1493ad2cf86e99bdd53e8e9771b2752a5c0246a", size = 5547173, upload-time = "2025-09-14T22:17:36.084Z" }, + { url = "https://files.pythonhosted.org/packages/4e/d5/ba05ed95c6b8ec30bd468dfeab20589f2cf709b5c940483e31d991f2ca58/zstandard-0.25.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3a39c94ad7866160a4a46d772e43311a743c316942037671beb264e395bdd611", size = 5046736, upload-time = "2025-09-14T22:17:37.891Z" }, + { url = "https://files.pythonhosted.org/packages/50/d5/870aa06b3a76c73eced65c044b92286a3c4e00554005ff51962deef28e28/zstandard-0.25.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:172de1f06947577d3a3005416977cce6168f2261284c02080e7ad0185faeced3", size = 5576368, upload-time = "2025-09-14T22:17:40.206Z" }, + { url = "https://files.pythonhosted.org/packages/5d/35/398dc2ffc89d304d59bc12f0fdd931b4ce455bddf7038a0a67733a25f550/zstandard-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3c83b0188c852a47cd13ef3bf9209fb0a77fa5374958b8c53aaa699398c6bd7b", size = 4954022, upload-time = "2025-09-14T22:17:41.879Z" }, + { url = "https://files.pythonhosted.org/packages/9a/5c/36ba1e5507d56d2213202ec2b05e8541734af5f2ce378c5d1ceaf4d88dc4/zstandard-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1673b7199bbe763365b81a4f3252b8e80f44c9e323fc42940dc8843bfeaf9851", size = 5267889, upload-time = "2025-09-14T22:17:43.577Z" }, + { url = "https://files.pythonhosted.org/packages/70/e8/2ec6b6fb7358b2ec0113ae202647ca7c0e9d15b61c005ae5225ad0995df5/zstandard-0.25.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0be7622c37c183406f3dbf0cba104118eb16a4ea7359eeb5752f0794882fc250", size = 5433952, upload-time = "2025-09-14T22:17:45.271Z" }, + { url = "https://files.pythonhosted.org/packages/7b/01/b5f4d4dbc59ef193e870495c6f1275f5b2928e01ff5a81fecb22a06e22fb/zstandard-0.25.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:5f5e4c2a23ca271c218ac025bd7d635597048b366d6f31f420aaeb715239fc98", size = 5814054, upload-time = "2025-09-14T22:17:47.08Z" }, + { url = "https://files.pythonhosted.org/packages/b2/e5/fbd822d5c6f427cf158316d012c5a12f233473c2f9c5fe5ab1ae5d21f3d8/zstandard-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4f187a0bb61b35119d1926aee039524d1f93aaf38a9916b8c4b78ac8514a0aaf", size = 5360113, upload-time = "2025-09-14T22:17:48.893Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e0/69a553d2047f9a2c7347caa225bb3a63b6d7704ad74610cb7823baa08ed7/zstandard-0.25.0-cp313-cp313-win32.whl", hash = "sha256:7030defa83eef3e51ff26f0b7bfb229f0204b66fe18e04359ce3474ac33cbc09", size = 436936, upload-time = "2025-09-14T22:17:52.658Z" }, + { url = "https://files.pythonhosted.org/packages/d9/82/b9c06c870f3bd8767c201f1edbdf9e8dc34be5b0fbc5682c4f80fe948475/zstandard-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:1f830a0dac88719af0ae43b8b2d6aef487d437036468ef3c2ea59c51f9d55fd5", size = 506232, upload-time = "2025-09-14T22:17:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/60c3c01243bb81d381c9916e2a6d9e149ab8627c0c7d7abb2d73384b3c0c/zstandard-0.25.0-cp313-cp313-win_arm64.whl", hash = "sha256:85304a43f4d513f5464ceb938aa02c1e78c2943b29f44a750b48b25ac999a049", size = 462671, upload-time = "2025-09-14T22:17:51.533Z" }, ] diff --git a/deployment.md b/deployment.md index 1d432584..1d4fb075 100644 --- a/deployment.md +++ b/deployment.md @@ -6,7 +6,9 @@ 2. Set `ENVIRONMENT=production`. 3. Set `POSTGRES_*` for your production database. 4. Set `AUTH_TOKEN` as a SHA-256 hex digest (64 lowercase chars) of your bearer token. -5. Optionally set `GUARDRAILS_HUB_API_KEY` and `SENTRY_DSN`. +5. Set `ALLOWED_IPS` to kaapi-backend's source IP(s), comma-separated. Required in production — the + service will not start without it. +6. Optionally set `GUARDRAILS_HUB_API_KEY` and `SENTRY_DSN`. Generate AUTH token hash: @@ -14,6 +16,19 @@ Generate AUTH token hash: echo -n "your-plain-text-token" | shasum -a 256 ``` +## Caller access + +Only kaapi-backend may call this service. Requests must carry `Authorization: Bearer ` plus +`X-ORGANIZATION-ID` / `X-PROJECT-ID`, and must originate from an IP in `ALLOWED_IPS`. + +Confirm `ALLOWED_IPS` matches the IP guardrails actually sees. If NAT or a different network +interface is in play, the observed source will differ from what you expect and every request will be +rejected with `403`. Only the health check is exempt. + +Note: the check reads the real connection source and ignores `X-Forwarded-For`. If a reverse proxy +or load balancer is ever placed in front of this service, all traffic will appear to come from the +proxy and this must be revisited. + ## Deploy the FastAPI Project Build and start backend: diff --git a/docs/DEVELOPER_GUIDE.md b/docs/DEVELOPER_GUIDE.md index bd9818d6..f3f4bd2e 100644 --- a/docs/DEVELOPER_GUIDE.md +++ b/docs/DEVELOPER_GUIDE.md @@ -1972,7 +1972,7 @@ Client ▼ FastAPI Application (port 8001) │ - ├─ Authentication middleware (Bearer token / X-API-KEY) + ├─ Authentication dependency (source IP + Bearer token -> tenant) │ ├─ Config Resolution │ ├─ Fetch ban list words from DB (if ban_list_id provided) @@ -2081,7 +2081,7 @@ else: **Bearer token** (main guardrail endpoints): `Authorization: Bearer `. Validated against SHA-256 hash of the plaintext `AUTH_TOKEN` env var. -**X-API-KEY** (ban list, topic relevance, validator config endpoints): Multi-tenant auth validated against `KAAPI_AUTH_URL`. Scopes access to specific `organization_id` + `project_id`. +**Source IP + tenant headers** (all endpoints except health check): the caller must appear in `ALLOWED_IPS`, and sends `X-ORGANIZATION-ID` / `X-PROJECT-ID` resolved by the Kaapi backend. These scope every read and write; tenant is never taken from the query string or body. ### Key Environment Variables @@ -2091,7 +2091,7 @@ else: | `OPENAI_API_KEY` | For LLM validators | Used by `topic_relevance`, `llm_critic`, `answer_relevance_custom_llm` | | `GUARDRAILS_HUB_API_KEY` | For hub validators | Required for `ban_list`, `llamaguard_7b`, `nsfw_text`, `profanity_free` | | `POSTGRES_*` | Yes | Database connection settings | -| `KAAPI_AUTH_URL` | For config endpoints | Multi-tenant auth service URL | +| `ALLOWED_IPS` | Yes in production | Comma-separated source IPs allowed to call this service | ### Tech Stack diff --git a/docs/architecture/ARCHITECTURE.md b/docs/architecture/ARCHITECTURE.md index dea78fb3..b0a728e3 100644 --- a/docs/architecture/ARCHITECTURE.md +++ b/docs/architecture/ARCHITECTURE.md @@ -17,7 +17,7 @@ Caller │ { request_id, organization_id, project_id, input, validators: [...] } ▼ FastAPI route ────────────────────────────────────────────── - │ 1. Auth check (static bearer token or multitenant X-API-KEY) + │ 1. Auth check (source IP + static bearer token -> tenant) │ 2. Write RequestLog (status=PROCESSING) │ 3. Resolve config-backed validators │ ├── BanList → fetch banned_words from DB @@ -191,16 +191,15 @@ Error messages are sanitised before persistence: the input string is redacted fr ## Authentication -Kaapi Guardrails is a **standalone microservice that does not authorize requests on its own** — it delegates tenant authorization to the Kaapi backend. A caller therefore presents **two keys**: +Kaapi Guardrails is an **internal microservice with a single caller: the Kaapi backend**. The Kaapi backend authenticates the end user and resolves the tenant before calling; guardrails does not handle end-user API keys and does not call back to the auth service. -1. **Guardrail key** — the service's own static bearer token, proving the caller is allowed to reach the guardrails microservice. -2. **Kaapi backend `X-API-KEY`** — forwarded to the Kaapi backend, which performs the actual authorization and identifies the tenant. +A single dependency in `app/api/deps.py` (`verify_caller`, exposed as `AuthDep`) enforces all of it and returns the tenant: -These map to the two auth modes that coexist in `app/api/deps.py`: +1. **Source IP** — must appear in `ALLOWED_IPS`. Read from the real connection peer, ignoring `X-Forwarded-For`. Checked first, so an unexpected origin gets `403` without learning whether the token was valid. +2. **Static bearer token** — a SHA-256 hex digest configured in `AUTH_TOKEN`, compared with `secrets.compare_digest` to prevent timing attacks. +3. **Tenant headers** — `X-ORGANIZATION-ID` and `X-PROJECT-ID`, trusted because only a caller passing the first two controls can set them. -**Static bearer token** (`AuthDep`): the guardrail key — a SHA-256 hex digest configured in `AUTH_TOKEN`. Used by the core guardrails route and config management routes. Compared with `secrets.compare_digest` to prevent timing attacks. - -**Multitenant X-API-KEY** (`MultitenantAuthDep`): the Kaapi backend key, resolved against the external Kaapi auth service (`KAAPI_AUTH_URL`) by calling `GET /apikeys/verify`. The microservice does not validate this key itself — the Kaapi backend authorizes it and returns `organization_id` + `project_id`, enabling per-tenant data isolation. Accepts the key as the `X-API-KEY` header, `Authorization: Bearer`, or `access_token` cookie. +Tenant scope is never read from the query string or request body, so the dependency that authenticates a route is also the one that supplies its tenant — a route cannot be written without one. Only `GET /utils/health-check/` is exempt. --- diff --git a/docs/auth-authz-spec.md b/docs/auth-authz-spec.md new file mode 100644 index 00000000..6f1f4f7e --- /dev/null +++ b/docs/auth-authz-spec.md @@ -0,0 +1,156 @@ +# Auth for kaapi-guardrails — design proposal + +## Problem + +Two endpoints (`guardrails`, `validator_configs`) check a shared bearer token, then read +`organization_id` / `project_id` from the query string or request body. The token proves the caller +is allowed in; nothing proves which tenant it is allowed to touch. Anyone with the token can read or +change any tenant's data by editing a query parameter. + +Two other endpoints (`ban_lists`, `llm_prompt_configs`) instead resolve an `X-API-KEY` by calling +back to kaapi-backend on every request. Correct, but it leaves us with a second auth contract and a +runtime dependency on the auth service. + +## Proposal + +Treat kaapi-guardrails as an internal service with one caller: kaapi-backend. kaapi-backend +authenticates the end user and resolves the tenant before calling. Guardrails would no longer handle +`X-API-KEY` and would no longer call back. + +Each request would carry: + +- `Authorization: Bearer ` — shared secret +- `X-ORGANIZATION-ID` / `X-PROJECT-ID` — tenant, resolved upstream +- and must arrive from an IP listed in `ALLOWED_IPS` + +Token and IP together mean a leaked token alone is not enough to reach the service. Since only a +caller passing both can set the tenant headers, the tenant becomes something established by +authentication rather than claimed by the caller. + +The property worth having: the same dependency that authenticates a route also supplies its tenant, +so a route cannot be written without one. + +### Alternative considered + +Keeping the tenant in the request body. Rejected because 9 of the 15 endpoints are GET or DELETE and +cannot carry a body — we would end up with body for writes and query params for reads, and the +tenant would stay a per-route parameter each handler has to remember to forward. + +## Contract + +All routes except health-check would require the three headers. Health-check stays open for the +Docker healthcheck. + +- Source IP not whitelisted → 403, checked first so a bad IP never learns whether the token was valid +- Missing or wrong token → 401 +- Missing or non-integer tenant headers → 422 + +## Request flow + +A guardrail run end to end. The tenant is resolved once, upstream, and everything downstream is +scoped by it. + +```mermaid +sequenceDiagram + actor User as End user + participant KB as kaapi-backend + participant Dep as verify_caller + participant Route as run_guardrails + participant CRUD as tenant-scoped CRUD + participant DB as Postgres + + User->>KB: request + X-API-KEY + KB->>KB: verify key, resolve org + project + + KB->>Dep: POST /api/v1/guardrails/
Bearer token
X-ORGANIZATION-ID, X-PROJECT-ID + Note over Dep: from an IP in ALLOWED_IPS + + Dep->>Dep: 1. source IP in ALLOWED_IPS? + Dep->>Dep: 2. token digest matches AUTH_TOKEN? + Dep-->>Route: TenantContext(org, project) + + Route->>CRUD: create request log (tenant) + CRUD->>DB: insert + + Route->>CRUD: resolve ban list / prompt config by id (tenant) + CRUD->>DB: select scoped to tenant + DB-->>CRUD: config or 404 + + Route->>Route: build guard, validate input + Route->>CRUD: write validator logs (tenant) + CRUD->>DB: insert + + Route-->>KB: GuardrailResponse + KB-->>User: response +``` + +The lookups in the middle are the part the current design gets wrong: `ban_list_id` and +`topic_relevance_config_id` are resolved against the tenant, and today that tenant comes from the +request body — so a caller can point them at another tenant's records. + +Rejections, in order: + +```mermaid +flowchart TD + A[Request arrives] --> B{Source IP in ALLOWED_IPS?} + B -- no --> B1[403 Forbidden] + B -- yes --> C{Bearer token present and valid?} + C -- no --> C1[401 Unauthorized] + C -- yes --> D{Tenant headers present and integers?} + D -- no --> D1[422 Unprocessable Entity] + D -- yes --> E[TenantContext, handler runs] +``` + +The IP check comes first on purpose: a caller from an unexpected origin gets `403` whether or not +its token was valid, so the response never confirms a working token to the wrong network. + +`GET /utils/health-check/` has no dependency and skips all three. + +## Changes required + +- `config.py` — add `ALLOWED_IPS` (comma-separated; required in production, empty disables the check + locally). Drop `KAAPI_AUTH_URL`, `KAAPI_AUTH_TIMEOUT`. +- `deps.py` — replace both existing dependencies with one, `verify_caller`, returning the tenant. + Delete the `X-API-KEY` callback. +- Routes — all move to the same `AuthDep`; `validator_configs` drops its tenant query parameters. +- `GuardrailRequest` — remove `organization_id` / `project_id`, so sending them fails loudly rather + than being silently honoured. +- Pass the tenant from the auth context into the request log, validator logs, and the ban-list and + prompt-config lookups in the guardrails path. These are tenant-scoped reads a caller can currently + redirect. + +## Testing + +New tests for the IP check, token check, the ordering between them, and header validation. Existing +tests move from API keys and query params to tenant headers. The cross-tenant 404 tests already in +the suite serve as the regression net. + +Running the full suite locally needs the Guardrails hub validators installed and a Postgres +instance. + +## Rollout + +``` +AUTH_TOKEN="" +ALLOWED_IPS="10.0.3.14" # kaapi-backend's source IP +``` + +This is a breaking change; the two services need to be released together: + +1. Set `ALLOWED_IPS` and confirm it matches kaapi-backend's actual egress IP. If NAT or a different + interface is in play, every request will 403 — the most likely deploy failure. +2. Update kaapi-backend to send the tenant headers and stop sending `X-API-KEY` and body/query + tenant fields. +3. Deploy guardrails. + +If kaapi-backend later moves to a new IP, `ALLOWED_IPS` has to be updated or traffic stops. That is +the ongoing cost of this approach. + +## Limits + +- The IP check would read the real connection source and ignore `X-Forwarded-For`, which callers can + forge. Fine today since nothing proxies this service, but it would need revisiting if a load + balancer is added, as every request would then arrive from the balancer's IP. +- Rotating the token needs a coordinated change on both sides; there is no overlap window. +- Out of scope: per-route permissions (one caller, one trust level), CIDR ranges (worth adding if the + backend autoscales), mTLS (stronger and immune to IP churn, but needs certificate infrastructure). diff --git a/docs/deep-dives/architecture.md b/docs/deep-dives/architecture.md index f3101997..3575f19c 100644 --- a/docs/deep-dives/architecture.md +++ b/docs/deep-dives/architecture.md @@ -13,7 +13,7 @@ Client ▼ FastAPI Application (port 8001) │ - ├─ Authentication middleware (Bearer token / X-API-KEY) + ├─ Authentication dependency (source IP + Bearer token -> tenant) │ ├─ Config Resolution │ ├─ Fetch ban list words from DB (if ban_list_id provided) @@ -227,9 +227,13 @@ Two auth schemes are used: - Send as `Authorization: Bearer ` - Validated against SHA-256 hash of the plaintext token -**X-API-KEY** (ban list, topic relevance, validator config endpoints): -- Multi-tenant auth validated against `KAAPI_AUTH_URL` -- Scopes access to specific `organization_id` + `project_id` +**Source IP allowlist** (all endpoints except health check): +- Caller must appear in `ALLOWED_IPS`; checked before the token +- Reads the real connection source, not `X-Forwarded-For` + +**Tenant headers** (all endpoints except health check): +- `X-ORGANIZATION-ID` + `X-PROJECT-ID`, resolved by the Kaapi backend +- Scope every read and write; never taken from the query string or body --- @@ -241,7 +245,7 @@ Two auth schemes are used: | `OPENAI_API_KEY` | For LLM validators | Used by `topic_relevance` and `llm_critic` | | `GUARDRAILS_HUB_API_KEY` | For hub validators | Required for `ban_list`, `llamaguard_7b`, `nsfw_text`, `profanity_free` | | `POSTGRES_*` | Yes | Database connection settings | -| `KAAPI_AUTH_URL` | For config endpoints | Multi-tenant auth service URL | +| `ALLOWED_IPS` | Yes in production | Comma-separated source IPs allowed to call this service | --- diff --git a/docs/tech-readiness-topic-relevance-llm.md b/docs/tech-readiness-topic-relevance-llm.md new file mode 100644 index 00000000..4539b765 --- /dev/null +++ b/docs/tech-readiness-topic-relevance-llm.md @@ -0,0 +1,216 @@ +# Tech Readiness — API surface + +Review of `backend/app/api/*` and its direct dependencies. Each finding has a +location, what's wrong, and the fix. Ordered by severity so you can take them one +by one. Auth model is assumed to stay as-is (X-API-KEY for the config endpoints, +static token for guardrails and validator configs). + +--- + +## Blockers + +### 1. Static token can reach any tenant + +`routes/guardrails.py:49-80` and `routes/validator_configs.py:22-112` use `AuthDep` — +one server-wide token (`deps.py:40-58`) — but read `organization_id` / `project_id` +from the query or body. Anyone with the token can read or change any tenant's data. + +Fix: move both routers to `MultitenantAuthDep` and drop the caller-supplied tenant +fields. Until then, treat it as an accepted risk with an owner and a date. + +### 2. `bool` passes as a tenant id + +`deps.py:100` checks `isinstance(x, int)`. In Python `bool` is an `int`, so if the +auth backend returns `"organization_id": true`, it resolves to tenant 1. + +Fix: also reject `bool`. +```python +if not isinstance(x, int) or isinstance(x, bool): + raise _unauthorized("Invalid credentials") +``` + +### 3. `topic_relevance_llm` missing from the LLM validator enum + +`LLMValidatorName` (`core/enum.py:4-6`) has only `topic_relevance` and +`answer_relevance_custom_llm`. The create schema (`schemas/llm_prompt_config.py:47`) +and the list filter (`routes/llm_prompt_configs.py:49`) are typed to this enum, so +`topic_relevance_llm` is rejected with "validator not supported". + +Fix: add the value. The router and CRUD are already validator-agnostic, so this alone +enables create, list, get, patch, and delete. +```python +class LLMValidatorName(str, Enum): + TopicRelevance = "topic_relevance" + TopicRelevanceLLM = "topic_relevance_llm" # new + AnswerRelevanceCustomLLM = "answer_relevance_custom_llm" +``` + +### 4. Runtime binds the wrong config type + +`routes/guardrails.py:148` accepts a `topic_relevance` config for both topic +validators. After fix 3, a `topic_relevance_llm` validator could pull a +`topic_relevance` config, or the reverse. + +Fix: bind each validator to its own config name. +```python +expected = ( + LLMValidatorName.TopicRelevanceLLM + if isinstance(validator, TopicRelevanceLLMSafetyValidatorConfig) + else LLMValidatorName.TopicRelevance +) +if config.validator_name != expected: + raise HTTPException(400, f"Config '{config.id}' is for '{config.validator_name}', not '{expected.value}'") +``` + +### 5. `ValidatorUpdate` can corrupt a stored config + +`schemas/validator_config.py:24-31` lets a PATCH change `type`, but +`crud/validator_config.py:97-120` merges the old config JSON on top of the new type. +A `pii_remover` PATCHed to `ban_list` keeps stale PII keys. + +Fix: forbid changing `type` in PATCH, or clear `config` when `type` changes. + +--- + +## Should fix + +### 6. Whole chain runs against output data + +`routes/guardrails.py:68-72`: if any validator is `answer_relevance_custom_llm`, the +entire chain runs against `payload.output`. A mixed chain (input validator + output +validator) runs the input validators against the wrong data. + +Fix: split validators by stage and run each against its own data. + +### 7. Request log orphaned when resolution or create fails + +`routes/guardrails.py:63-67` creates the request log before `_resolve_validator_configs`. +Any error during resolution (or a DB error other than `ValueError` in `create`) leaves an +unfinished row. Fix 4 adds another raise here. + +Fix: wrap resolution and create so failures finalize the log with an error status. + +### 8. `prompt_schema_version` dropped for the LLM topic validator + +`TopicRelevanceLLMSafetyValidatorConfig` has a `prompt_schema_version` field +(`core/validators/config/topic_relevance_llm_safety_validator_config.py:15`), but +`routes/guardrails.py:155-157` only copies it onto the non-LLM variant. A stored version +on a `topic_relevance_llm` config is ignored. + +Fix: set it for the LLM variant too and fix the stale comment. If versioning isn't meant +to apply here, say so instead of dropping it silently. + +### 9. Blocking, uncached auth call per request + +`deps.py:76-85`: every multitenant request makes a blocking `httpx.get` to +`KAAPI_AUTH_URL`, using a threadpool worker each time. + +Fix: add an in-process TTL cache keyed on the credential hash; make the dep async. + +### 10. Only the first validator's metadata is returned + +`routes/guardrails.py:244-247` returns `next(...)`, so later validators' metadata is +dropped in a chain. + +Fix: aggregate metadata into a per-validator map. + +### 11. Auth call has no retry and one shared timeout + +`deps.py:79`: a single `timeout` covers all phases, and there's no retry. + +Fix: split connect and read timeouts; add one bounded retry on network error. + +### 12. PATCH can't change type-specific fields + +`ValidatorBase` allows extra fields, `ValidatorUpdate` forbids them +(`schemas/validator_config.py:11,25`). So PATCH can't update any type-specific field. + +Fix: allow extras on update, or expose a dedicated config dict. + +### 13. Docs don't cover errors or versioning + +`API_USAGE.md` documents the response shape but not the error messages, per-endpoint +status codes, or what counts as a breaking change. Consumers have to read the source. + +Fix: add an error list and a versioning note. + +### 14. No request id or tenant in logs + +`core/middleware.py:20-22` logs only method, path, status, and latency. + +Fix: accept `X-Request-ID` (generate if missing) and add it plus the tenant to log lines. + +--- + +## Minor + +### 15. Docs list only two LLM validators + +`API_USAGE.md:9, 349, 354-356, 398`, `docs/llm_prompt_configs/create_config.md`, and +`docs/llm_prompt_configs/list_configs.md` list only `topic_relevance` and +`answer_relevance_custom_llm`. Add `topic_relevance_llm` (plain-text scope prompt, same +as `topic_relevance`, no placeholder rules). + +### 16. `validator_configs.list` has no pagination + +`routes/validator_configs.py:45-57` has filters but no offset/limit, unlike the ban-list +and prompt-config lists. + +### 17. `health_check` returns a raw bool + +`routes/utils.py:11` returns `True`, breaking the "all endpoints return `APIResponse`" +statement in `API_USAGE.md:35-46`. Wrap it or document the exception. + +### 18. `type=` shadows the builtin + +`routes/validator_configs.py:52`: rename the query param to `validator_type`. + +### 19. Duplicate error extraction + +`routes/guardrails.py:267-271` and `277-280` both call `_extract_error_from_guard`. +Consolidate inside `_finalize`. + +### 20. `suppress_pass_logs` has two different defaults + +Route defaults `True` (`guardrails.py:53`), helper defaults `False` (`guardrails.py:187`). +Make them agree. + +### 21. Docstring says it returns a value but returns None + +`routes/guardrails.py:113-122`: `_resolve_validator_configs` returns `None`. + +### 22. `_redact_input` is fragile + +`routes/guardrails.py:314-316` splits on `":\n\n"` then does a plain `str.replace`. Works +today, breaks if the input contains those characters structurally. + +### 23. POSTs return 200 not 201 + +All POST routes. Cosmetic. + +### 24. `response_model_exclude_none` set on one route only + +`routes/guardrails.py:47`. Standardize across endpoints. + +### 25. Delete does get-then-delete + +`routes/llm_prompt_configs.py:109-121`: two round-trips. Only matters if hot. + +### 26. `response_id` is a server UUID, not a provider id + +`routes/guardrails.py:196`. If a provider response id is added later, keep them as +separate columns. + +### 27. Commented-out import + +`api/main.py:18-19`: delete the commented `private.router` import. + +### 28. Document that the auth token must be random + +`_hash_token` (`deps.py:29-30`) is unsalted SHA-256 — fine only because `AUTH_TOKEN` is a +high-entropy secret. Note that requirement so no one sets a memorable string. + +### 29. 404 masks "wrong tenant" vs "missing" + +`crud/validator_config.py:79-95` (and `crud/llm_prompt_config.py:44-59`) return the same +404 for both. Correct for isolation — add a comment so a refactor doesn't split them. diff --git a/docs/validators/answer-relevance.md b/docs/validators/answer-relevance.md index f4f18664..400da71c 100644 --- a/docs/validators/answer-relevance.md +++ b/docs/validators/answer-relevance.md @@ -85,7 +85,9 @@ The default prompt works well for general use, but you may want domain-specific ```bash # Create a custom prompt POST /api/v1/guardrails/answer_relevance_prompts/ -Authorization: X-API-KEY your-api-key +Authorization: Bearer +X-ORGANIZATION-ID: 1 +X-PROJECT-ID: 101 { "name": "Healthcare Relevance Check", diff --git a/docs/validators/ban-list.md b/docs/validators/ban-list.md index 09339b5c..6eb0a509 100644 --- a/docs/validators/ban-list.md +++ b/docs/validators/ban-list.md @@ -60,7 +60,9 @@ Stored ban lists are scoped per `organization_id` + `project_id`. Use the manage ```bash POST /api/v1/guardrails/ban_lists/ -Authorization: X-API-KEY your-api-key +Authorization: Bearer +X-ORGANIZATION-ID: 1 +X-PROJECT-ID: 101 { "name": "Competitor Terms", diff --git a/docs/validators/topic-relevance.md b/docs/validators/topic-relevance.md index e00e0f5f..a7523ea6 100644 --- a/docs/validators/topic-relevance.md +++ b/docs/validators/topic-relevance.md @@ -44,7 +44,9 @@ Topic relevance requires a stored configuration that defines the scope of your a ```bash POST /api/v1/guardrails/topic_relevance_configs/ -Authorization: X-API-KEY your-api-key +Authorization: Bearer +X-ORGANIZATION-ID: 1 +X-PROJECT-ID: 101 { "name": "Healthcare Assistant Scope",