libredte-lib-sdk 0.5.1__tar.gz → 0.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/PKG-INFO +1 -1
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/models.py +8 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/pyproject.toml +1 -1
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/test_models.py +27 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/.claude/scheduled_tasks.lock +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/.github/workflows/ci.yml +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/.github/workflows/docs.yml +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/.gitignore +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/.readthedocs.yaml +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/CLAUDE.md +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/LICENSE +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/Makefile +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/README.rst +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/docs/Makefile +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/docs/conf.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/docs/index.rst +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/builder.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/validator.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/common.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/builder.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/dispatcher.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/examples.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/renderer.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/validator.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/enums.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/exchange/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/exchange/document_response.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/exchange/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/caf_faker.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/caf_loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/caf_validator.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_dte.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_rcv.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_rtc.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/ownership_transfer/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/ownership_transfer/aec.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/ownership_transfer/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/trading_parties/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/trading_parties/mandatario_manager.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/trading_parties/models.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/client.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/exceptions.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/integration/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/integration/previred_provider.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/payroll/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/payroll/calculator.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/payroll/renderer.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/py.typed +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/sdk.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/certificate/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/certificate/loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/repository/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/repository/catalog.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/conftest.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/__init__.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/conftest.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_book.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_caf.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_certificate_loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_document_loader.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_document_rendering.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_document_validation.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_examples.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_exchange.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_human_resources.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_operation_not_found.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_ownership_transfer.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_repository.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/test_client.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/test_exceptions.py +0 -0
- {libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/test_services.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: libredte-lib-sdk
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: SDK Python para la API de LibreDTE Lib (facturacion electronica de Chile).
|
|
5
5
|
Project-URL: Homepage, https://www.libredte.cl
|
|
6
6
|
Project-URL: Source, https://github.com/libredte/libredte-lib-sdk-python
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/models.py
RENAMED
|
@@ -47,6 +47,14 @@ class Caf(XmlPayloadMixin):
|
|
|
47
47
|
def from_api(cls, data: dict[str, Any]) -> Caf:
|
|
48
48
|
"""Construye un `Caf` desde el `data` que devuelve la API."""
|
|
49
49
|
ambiente = data.get('ambiente')
|
|
50
|
+
if isinstance(ambiente, dict):
|
|
51
|
+
# La API serializa el enum de PHP (`SiiEnvironment: int`,
|
|
52
|
+
# caso `STAGING = 1` allá) como `{"name": ..., "value":
|
|
53
|
+
# ...}` — el nombre no calza con el de acá (`CERTIFICATION`
|
|
54
|
+
# en vez de `STAGING`, mismo ambiente de certificación del
|
|
55
|
+
# SII), pero el `value` entero sí es el mismo en ambos
|
|
56
|
+
# lados, así que se arma el enum desde ahí.
|
|
57
|
+
ambiente = ambiente.get('value')
|
|
50
58
|
return cls(
|
|
51
59
|
id=data['id'],
|
|
52
60
|
emisor=data['emisor'],
|
|
@@ -282,6 +282,33 @@ def test_caf_from_api_ambiente_is_none_for_a_fake_caf():
|
|
|
282
282
|
assert caf.certificacion is None
|
|
283
283
|
|
|
284
284
|
|
|
285
|
+
def test_caf_from_api_ambiente_as_object_uses_its_value():
|
|
286
|
+
"""La API a veces serializa el enum de PHP como `{name, value}`."""
|
|
287
|
+
caf = Caf.from_api(
|
|
288
|
+
{
|
|
289
|
+
'id': 'CAF33D1H100',
|
|
290
|
+
'emisor': {'rut': '76192083-9', 'razon_social': 'SASCO SpA'},
|
|
291
|
+
'tipoDocumento': 33,
|
|
292
|
+
'folioDesde': 1,
|
|
293
|
+
'folioHasta': 100,
|
|
294
|
+
'cantidadFolios': 100,
|
|
295
|
+
'fechaAutorizacion': '2026-01-01',
|
|
296
|
+
'fechaVencimiento': '2026-06-30',
|
|
297
|
+
'mesesAutorizacion': 2.17,
|
|
298
|
+
'vigente': True,
|
|
299
|
+
'vence': True,
|
|
300
|
+
'idk': 100,
|
|
301
|
+
'ambiente': {'name': 'STAGING', 'value': 1},
|
|
302
|
+
'certificacion': 1,
|
|
303
|
+
'publicKey': '-----BEGIN PUBLIC KEY-----',
|
|
304
|
+
'privateKey': '-----BEGIN PRIVATE KEY-----',
|
|
305
|
+
'xml': base64.b64encode(b'<AUTORIZACION/>').decode(),
|
|
306
|
+
},
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
assert caf.ambiente is SiiEnvironment.CERTIFICATION
|
|
310
|
+
|
|
311
|
+
|
|
285
312
|
def test_send_result_reads_track_id():
|
|
286
313
|
assert SendXmlDocumentResponse.from_api({'track_id': 456}).track_id == 456
|
|
287
314
|
assert SendXmlDocumentResponse.from_api({}).track_id is None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/book/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/__init__.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/builder.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/dispatcher.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/examples.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/loader.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/models.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/renderer.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/document/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/exchange/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/exchange/models.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/__init__.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/caf_faker.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/identifier/caf_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/__init__.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/models.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_dte.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_rcv.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/integration/sii_rtc.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/ownership_transfer/aec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/billing/trading_parties/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/human_resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/certificate/__init__.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/certificate/loader.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/repository/__init__.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/libredte_lib_sdk/system/repository/catalog.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_certificate_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_document_rendering.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_document_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_operation_not_found.py
RENAMED
|
File without changes
|
{libredte_lib_sdk-0.5.1 → libredte_lib_sdk-0.5.2}/tests/integration/test_ownership_transfer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|