Excepciones¶
Jerarquía completa de excepciones del SDK. Toda excepción del cliente hereda de DatosMexicoError.
DatosMexicoError
├── ConfigurationError (parámetros inválidos al crear el cliente)
├── NetworkError (problemas de red genéricos)
│ └── TimeoutError (timeout HTTP)
├── ApiError (HTTP 4xx / 5xx clasificados)
│ ├── BadRequestError (HTTP 400)
│ ├── AuthenticationError (HTTP 401)
│ ├── AuthorizationError (HTTP 403)
│ ├── NotFoundError (HTTP 404)
│ ├── RateLimitError (HTTP 429)
│ └── ServerError (HTTP 5xx)
└── ValidationError (Pydantic validation o helper-side validation)
→ Para guía de uso, ver Quickstart §5.
Clases¶
Excepciones del cliente datos-mexico.
Jerarquía:
DatosMexicoError (base)
├── ConfigurationError (problema de setup del cliente)
├── NetworkError (problemas de red, DNS, SSL)
│ └── TimeoutError (timeout de request)
├── ApiError (HTTP error 4xx/5xx)
│ ├── BadRequestError (400)
│ ├── AuthenticationError (401)
│ ├── AuthorizationError (403)
│ ├── NotFoundError (404)
│ ├── RateLimitError (429, con retry_after)
│ └── ServerError (5xx)
└── ValidationError (response no matchea Pydantic schema)
DatosMexicoError ¶
Bases: Exception
Excepción base de la librería datos-mexico.
Todas las demás excepciones del módulo heredan de esta clase. Capturarla permite manejar cualquier error originado por el cliente sin tener que enumerar las subclases.
Examples:
ConfigurationError ¶
Bases: DatosMexicoError
Se lanza cuando hay un problema con la configuración del cliente.
Ejemplos típicos: base_url inválida, timeout negativo, max_retries < 0.
NetworkError ¶
Bases: DatosMexicoError
Se lanza cuando ocurre un problema de red al contactar la API.
Cubre fallos de DNS, errores de SSL, conexión rechazada y similares. No
cubre respuestas HTTP de la API (eso es ApiError).
TimeoutError ¶
Bases: NetworkError
Se lanza cuando una request excede el timeout configurado.
Subclase de NetworkError. Distinta de la TimeoutError built-in de
Python: para evitar ambigüedad importarla siempre desde
datos_mexico.exceptions o datos_mexico.
ApiError ¶
ApiError(
endpoint: str,
status_code: int,
method: str = "GET",
response_body: str | None = None,
message: str | None = None,
)
Bases: DatosMexicoError
Se lanza cuando la API responde con un código HTTP de error.
Cubre cualquier respuesta 4xx o 5xx que no tenga una subclase más específica. Los atributos de la instancia exponen los detalles necesarios para diagnosticar y reportar el error.
Attributes:
| Name | Type | Description |
|---|---|---|
endpoint |
Path relativo del endpoint que falló (ej. |
|
status_code |
Código HTTP devuelto por la API. |
|
method |
Método HTTP usado en la request ( |
|
response_body |
Cuerpo crudo de la respuesta cuando estaba disponible;
|
BadRequestError ¶
AuthenticationError ¶
AuthorizationError ¶
NotFoundError ¶
RateLimitError ¶
RateLimitError(
endpoint: str,
status_code: int = 429,
method: str = "GET",
response_body: str | None = None,
retry_after: int | None = None,
message: str | None = None,
)
Bases: ApiError
HTTP 429. El cliente ha excedido el rate limit del servidor.
Si la respuesta incluye un header Retry-After, su valor en segundos
queda disponible en retry_after. Cuando la cabecera no es parseable
como entero, retry_after queda en None.
Attributes:
| Name | Type | Description |
|---|---|---|
retry_after |
Segundos sugeridos para reintentar, o |
ServerError ¶
ValidationError ¶
Bases: DatosMexicoError
La respuesta de la API no coincide con el schema Pydantic esperado.
Indica que la API y el cliente están desincronizados: la API cambió un campo o tipo, o el cliente fue actualizado con un schema incorrecto.
Attributes:
| Name | Type | Description |
|---|---|---|
endpoint |
Path del endpoint cuya respuesta no validó. |
|
pydantic_errors |
Lista de errores devueltos por
|
|
raw_payload |
Payload crudo recibido (para debugging). |