libredte_lib_sdk.client module

Cliente HTTP delgado para la API de LibreDTE Lib (core.libredte.cl).

class libredte_lib_sdk.client.ApiClient(base_url: str | None = None, *, api_token: str | None = None, auth_scheme: str | None = None, timeout: float = 30.0, http_client: Client | None = None)

Bases: object

Despacha operaciones contra la API de LibreDTE Lib.

Traduce un operation_id con el formato paquete.componente.worker::operacion (el mismo que usa libredte-lib-core-dispatcher) a la ruta HTTP equivalente: POST /{paquete}/{componente}/{worker}/{operacion}.

No sabe nada de DTE ni de reglas de negocio: solo hace la llamada HTTP y normaliza la respuesta (el data del sobre JSON en éxito, los bytes crudos si la respuesta no es JSON, o una excepción tipada si la API respondió un error). La orquestación vive en billing/*/*.py.

Por defecto apunta a core.libredte.cl. Es configurable (base_url o la variable de entorno LIBREDTE_LIB_SDK_BASE_URL) para apuntar a pro.libredte.cl u otro ambiente.

property base_url: str

URL base configurada (core.libredte.cl, pro.libredte.cl).

call(operation_id: str, **parameters: Any) → Any

Ejecuta operation_id con parameters y devuelve su resultado.

parameters se manda tal cual como el objeto parameters del body JSON que espera la API (ej. bag=…, request=…).

call_response(operation_id: str, **parameters: Any) → ApiResponse

Igual que call(), pero entrega también la clase PHP del resultado.

Es lo que usan los servicios que construyen el DTO a partir de la clase que informa la API (ver response_registry).

close() → None

Cierra la conexión HTTP, si este cliente es dueño de ella.

class libredte_lib_sdk.client.ApiResponse(data_type: str | None, data: Any)

Bases: object

Respuesta exitosa de una operación.

data_type es la clase PHP del resultado, tal como la informa la API en meta.data_type (“array” para listas); None si no la informó o si la respuesta no es JSON. data es el data del sobre JSON, o los bytes crudos si la respuesta no es JSON.

data: Any
data_type: str | None