documente_shared 0.1.203__tar.gz → 0.1.204__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.
- {documente_shared-0.1.203 → documente_shared-0.1.204}/PKG-INFO +1 -1
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/document.py +22 -1
- {documente_shared-0.1.203 → documente_shared-0.1.204}/pyproject.toml +1 -1
- {documente_shared-0.1.203 → documente_shared-0.1.204}/uv.lock +26 -26
- documente_shared-0.1.203/PR_DESCRIPTION.md +0 -46
- {documente_shared-0.1.203 → documente_shared-0.1.204}/.claude/commands/commit.md +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/.github/workflows/publish.yml +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/.gitignore +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/.vscode/settings.json +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/Dockerfile +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/Makefile +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/README.md +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/cases.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/docker-compose.yml +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/dates.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/digest.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/exceptions.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/files.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/json.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/logging.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/numbers.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/payloads.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/query_params.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/retry_utils.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/time_utils.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/timezone.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/base_enum.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/constants.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/document_metadata.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/document_type.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/in_memory_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/layout.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_case_filters.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_case_item_filters.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_documents.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_event.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/scaling.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/uif_registry.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/workspace.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/workspace_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/workspace_document_page.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/circular_oficio.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/common.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/document_type_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/processing_case_validator.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/vnext.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/workspace.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/exceptions.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/document_type.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/workspace.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/workspace_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/workspace_document_page.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/dicts.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/encoding.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/lists.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/values.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/queue.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/scaling.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/entities.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/response.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/document_type.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/uif_registry.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/workspace.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/workspace_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/repositories/workspace_document_page.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/batch_queue.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/documente_client.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/dynamo_table.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/lambda_job_results.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/lambdas.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/dynamo_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/dynamo_processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_document_type.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_uif_registry.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_workspace.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_workspace_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/http_workspace_document_page.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/mem_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/mem_processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/mem_processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/repositories/mem_processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/s3_bucket.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/services/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/services/http_scaling.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/sqs_queue.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/presentation/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/presentation/presenters.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/publish.sh +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/application/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/application/test_files.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/application/test_payloads.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/conftest.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/entities/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/entities/test_in_memory_document.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/entities/test_processing_case.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/entities/test_processing_case_item.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/entities/test_processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/enums/test_processing_case_validator.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/infrastructure/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/infrastructure/repositories/__init__.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/infrastructure/repositories/test_http_processing_record.py +0 -0
- {documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documents.py +0 -0
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/document.py
RENAMED
|
@@ -69,6 +69,7 @@ class DocumentProcessingStatus(BaseEnum):
|
|
|
69
69
|
class DocumentProcessingCategory(BaseEnum):
|
|
70
70
|
CIRCULAR = "CIRCULAR"
|
|
71
71
|
CIRCULAR_PERU = "CIRCULAR_PERU"
|
|
72
|
+
CIRCULAR_APS = "CIRCULAR_APS"
|
|
72
73
|
DESGRAVAMEN = "DESGRAVAMEN"
|
|
73
74
|
|
|
74
75
|
@property
|
|
@@ -83,6 +84,10 @@ class DocumentProcessingCategory(BaseEnum):
|
|
|
83
84
|
def is_circular_peru(self):
|
|
84
85
|
return self == DocumentProcessingCategory.CIRCULAR_PERU
|
|
85
86
|
|
|
87
|
+
@property
|
|
88
|
+
def is_circular_aps(self):
|
|
89
|
+
return self == DocumentProcessingCategory.CIRCULAR_APS
|
|
90
|
+
|
|
86
91
|
|
|
87
92
|
class DocumentProcessingSource(BaseEnum):
|
|
88
93
|
AGENT_UI = "AGENT_UI"
|
|
@@ -130,6 +135,11 @@ class DocumentProcessingSubCategory(BaseEnum):
|
|
|
130
135
|
# Desgravamenes
|
|
131
136
|
DS_CREDISEGURO = "DS_CREDISEGURO"
|
|
132
137
|
|
|
138
|
+
# Circulares APS
|
|
139
|
+
CC_APS = "CC_APS"
|
|
140
|
+
CC_FISCALIA = "CC_FISCALIA"
|
|
141
|
+
CC_JUZGADO = "CC_JUZGADO"
|
|
142
|
+
|
|
133
143
|
@property
|
|
134
144
|
def is_cc_combinada(self):
|
|
135
145
|
return self == DocumentProcessingSubCategory.CC_COMBINADA
|
|
@@ -161,4 +171,15 @@ class DocumentProcessingSubCategory(BaseEnum):
|
|
|
161
171
|
@property
|
|
162
172
|
def is_ds_crediseguro(self):
|
|
163
173
|
return self == DocumentProcessingSubCategory.DS_CREDISEGURO
|
|
164
|
-
|
|
174
|
+
|
|
175
|
+
@property
|
|
176
|
+
def is_cc_aps(self):
|
|
177
|
+
return self == DocumentProcessingSubCategory.CC_APS
|
|
178
|
+
|
|
179
|
+
@property
|
|
180
|
+
def is_cc_fiscalia(self):
|
|
181
|
+
return self == DocumentProcessingSubCategory.CC_FISCALIA
|
|
182
|
+
|
|
183
|
+
@property
|
|
184
|
+
def is_cc_juzgado(self):
|
|
185
|
+
return self == DocumentProcessingSubCategory.CC_JUZGADO
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
version = 1
|
|
2
|
-
revision =
|
|
2
|
+
revision = 5
|
|
3
3
|
requires-python = ">=3.10, <=3.13"
|
|
4
4
|
resolution-markers = [
|
|
5
5
|
"python_full_version >= '3.11'",
|
|
@@ -154,7 +154,7 @@ wheels = [
|
|
|
154
154
|
|
|
155
155
|
[[package]]
|
|
156
156
|
name = "documente-shared"
|
|
157
|
-
version = "0.1.
|
|
157
|
+
version = "0.1.204"
|
|
158
158
|
source = { editable = "." }
|
|
159
159
|
dependencies = [
|
|
160
160
|
{ name = "boto3" },
|
|
@@ -200,7 +200,7 @@ name = "exceptiongroup"
|
|
|
200
200
|
version = "1.3.1"
|
|
201
201
|
source = { registry = "https://pypi.org/simple" }
|
|
202
202
|
dependencies = [
|
|
203
|
-
{ name = "typing-extensions"
|
|
203
|
+
{ name = "typing-extensions" },
|
|
204
204
|
]
|
|
205
205
|
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" }
|
|
206
206
|
wheels = [
|
|
@@ -263,17 +263,17 @@ resolution-markers = [
|
|
|
263
263
|
"python_full_version < '3.11'",
|
|
264
264
|
]
|
|
265
265
|
dependencies = [
|
|
266
|
-
{ name = "colorama", marker = "
|
|
267
|
-
{ name = "decorator"
|
|
268
|
-
{ name = "exceptiongroup"
|
|
269
|
-
{ name = "jedi"
|
|
270
|
-
{ name = "matplotlib-inline"
|
|
271
|
-
{ name = "pexpect", marker = "
|
|
272
|
-
{ name = "prompt-toolkit"
|
|
273
|
-
{ name = "pygments"
|
|
274
|
-
{ name = "stack-data"
|
|
275
|
-
{ name = "traitlets"
|
|
276
|
-
{ name = "typing-extensions"
|
|
266
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
267
|
+
{ name = "decorator" },
|
|
268
|
+
{ name = "exceptiongroup" },
|
|
269
|
+
{ name = "jedi" },
|
|
270
|
+
{ name = "matplotlib-inline" },
|
|
271
|
+
{ name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
|
|
272
|
+
{ name = "prompt-toolkit" },
|
|
273
|
+
{ name = "pygments" },
|
|
274
|
+
{ name = "stack-data" },
|
|
275
|
+
{ name = "traitlets" },
|
|
276
|
+
{ name = "typing-extensions" },
|
|
277
277
|
]
|
|
278
278
|
sdist = { url = "https://files.pythonhosted.org/packages/e5/61/1810830e8b93c72dcd3c0f150c80a00c3deb229562d9423807ec92c3a539/ipython-8.38.0.tar.gz", hash = "sha256:9cfea8c903ce0867cc2f23199ed8545eb741f3a69420bfcf3743ad1cec856d39", size = 5513996, upload-time = "2026-01-05T10:59:06.901Z" }
|
|
279
279
|
wheels = [
|
|
@@ -288,17 +288,17 @@ resolution-markers = [
|
|
|
288
288
|
"python_full_version >= '3.11'",
|
|
289
289
|
]
|
|
290
290
|
dependencies = [
|
|
291
|
-
{ name = "colorama", marker = "
|
|
292
|
-
{ name = "decorator"
|
|
293
|
-
{ name = "ipython-pygments-lexers"
|
|
294
|
-
{ name = "jedi"
|
|
295
|
-
{ name = "matplotlib-inline"
|
|
296
|
-
{ name = "pexpect", marker = "
|
|
297
|
-
{ name = "prompt-toolkit"
|
|
298
|
-
{ name = "pygments"
|
|
299
|
-
{ name = "stack-data"
|
|
300
|
-
{ name = "traitlets"
|
|
301
|
-
{ name = "typing-extensions", marker = "python_full_version
|
|
291
|
+
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
292
|
+
{ name = "decorator" },
|
|
293
|
+
{ name = "ipython-pygments-lexers" },
|
|
294
|
+
{ name = "jedi" },
|
|
295
|
+
{ name = "matplotlib-inline" },
|
|
296
|
+
{ name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
|
|
297
|
+
{ name = "prompt-toolkit" },
|
|
298
|
+
{ name = "pygments" },
|
|
299
|
+
{ name = "stack-data" },
|
|
300
|
+
{ name = "traitlets" },
|
|
301
|
+
{ name = "typing-extensions", marker = "python_full_version < '3.12'" },
|
|
302
302
|
]
|
|
303
303
|
sdist = { url = "https://files.pythonhosted.org/packages/a6/60/2111715ea11f39b1535bed6024b7dec7918b71e5e5d30855a5b503056b50/ipython-9.10.0.tar.gz", hash = "sha256:cd9e656be97618a0676d058134cd44e6dc7012c0e5cb36a9ce96a8c904adaf77", size = 4426526, upload-time = "2026-02-02T10:00:33.594Z" }
|
|
304
304
|
wheels = [
|
|
@@ -310,7 +310,7 @@ name = "ipython-pygments-lexers"
|
|
|
310
310
|
version = "1.1.1"
|
|
311
311
|
source = { registry = "https://pypi.org/simple" }
|
|
312
312
|
dependencies = [
|
|
313
|
-
{ name = "pygments"
|
|
313
|
+
{ name = "pygments" },
|
|
314
314
|
]
|
|
315
315
|
sdist = { url = "https://files.pythonhosted.org/packages/ef/4c/5dd1d8af08107f88c7f741ead7a40854b8ac24ddf9ae850afbcf698aa552/ipython_pygments_lexers-1.1.1.tar.gz", hash = "sha256:09c0138009e56b6854f9535736f4171d855c8c08a563a0dcd8022f78355c7e81", size = 8393, upload-time = "2025-01-17T11:24:34.505Z" }
|
|
316
316
|
wheels = [
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
## Summary
|
|
2
|
-
|
|
3
|
-
`invoke_lambda` construía un cliente boto3 nuevo en cada llamada, con 60s de `read_timeout` y los reintentos por defecto de botocore. Contra lambdas largas eso producía invocaciones duplicadas: la conexión moría en el VPC endpoint, el cliente esperaba de más y reintentaba, ejecutando la misma función hasta 5 veces. Este PR corrige la configuración del cliente y agrega las primitivas para recuperar el resultado desde S3 cuando la conexión se corta.
|
|
4
|
-
|
|
5
|
-
## What Changed
|
|
6
|
-
|
|
7
|
-
**`infrastructure/lambdas.py`**
|
|
8
|
-
- `read_timeout` por defecto de 60 → 350, alineado al idle timeout del VPC endpoint
|
|
9
|
-
- `retries` explícito: modo `standard` con 1 reintento, en vez del `legacy` con 5 que regía por omisión
|
|
10
|
-
- `connect_timeout` de 30 y `tcp_keepalive`
|
|
11
|
-
- El cliente se cachea por configuración (`functools.cache`) en vez de construirse en cada invocación
|
|
12
|
-
|
|
13
|
-
**`infrastructure/lambda_job_results.py`** (nuevo)
|
|
14
|
-
- `build_job_result_key(job_id, step_name)`: reconstruye el `jobs/{job_id}/{step_name}.json` que usan las lambdas, para no depender de que la respuesta traiga el `output_uri`
|
|
15
|
-
- `wait_for_job_result(...)`: espera ese archivo con timeout y backoff fijo
|
|
16
|
-
- `await_job_result(...)`: la operación completa que usan los consumidores — valida `job_id`, arma el key, loguea y espera
|
|
17
|
-
|
|
18
|
-
**`infrastructure/s3_bucket.py`**
|
|
19
|
-
- `get_json()`: lectura donde la ausencia del objeto devuelve `None` en vez de ser un error
|
|
20
|
-
|
|
21
|
-
**`domain/entities/layout.py`**
|
|
22
|
-
- `PageRange.label`: la property que las lambdas ya usan para nombrar su salida en S3
|
|
23
|
-
|
|
24
|
-
## Why
|
|
25
|
-
|
|
26
|
-
Las invocaciones salen por un Interface VPC Endpoint, que descarta los flujos TCP ociosos a los **350 segundos**. Una invocación sincrónica deja el flujo completamente ocioso mientras la lambda trabaja, así que cualquier función que pase de ese umbral pierde la conexión.
|
|
27
|
-
|
|
28
|
-
El corte es **silencioso**: el NLB no manda nada, y el RST aparece solo si alguien escribe sobre la conexión muerta — cosa que un cliente que solo espera la respuesta nunca hace. Así que boto3 no se entera hasta que vence su propio `read_timeout`, y ahí reintenta.
|
|
29
|
-
|
|
30
|
-
Sin bloque `retries` rige el modo `legacy`, que son **5 intentos**, y `ReadTimeoutError` es reintentable. El resultado era hasta 5 ejecuciones de la misma función no idempotente.
|
|
31
|
-
|
|
32
|
-
**Sobre los valores elegidos:**
|
|
33
|
-
|
|
34
|
-
- **`read_timeout=350`**: esperar más solo demora una falla que ya ocurrió, porque pasado ese punto el flujo está muerto y la respuesta no puede llegar.
|
|
35
|
-
- **`max_attempts=1`**: un read timeout ahora significa *la invocación sigue corriendo del otro lado*, así que reintentar la duplica. Se probó `0`, pero con ese valor la lambda no llegaba a ejecutarse en el entorno real.
|
|
36
|
-
- **Cliente cacheado**: construir un cliente carga los modelos del servicio y arma un connection pool nuevo, así que un cliente descartable pagaba un handshake TLS completo por invocación — justo el tramo de red que venía fallando.
|
|
37
|
-
|
|
38
|
-
**Sobre `get_json`:** `get_bytes` no sirve para preguntar si un objeto existe. Su decorador `retry_on_size_integrity` trata la ausencia como un error a reintentar: duerme y termina levantando `RuntimeError`. `get_json` deja la ausencia como respuesta válida, que es lo que necesita un poll.
|
|
39
|
-
|
|
40
|
-
**Sobre `PageRange.label`:** la copia de la entidad en vnext-tools ya tenía esta property y la usa para nombrar el archivo de salida. Agregarla acá hace que las dos copias vuelvan a coincidir, en vez de que cada consumidor replique la derivación.
|
|
41
|
-
|
|
42
|
-
## Notas para el reviewer
|
|
43
|
-
|
|
44
|
-
- **La versión quedó en `0.1.203`, no `0.1.203b`.** El pin actual de `documente-core` es `documente-shared==0.1.203b`, que no matchea una versión estable. Hay que alinear los dos antes de mergear.
|
|
45
|
-
- La versión `0.1.203b0` ya publicada **no** contiene estos cambios: se publicó desde un árbol anterior. Hace falta publicar de nuevo.
|
|
46
|
-
- El diagnóstico completo, con los valores medidos y las alternativas descartadas (entre ellas TCP keepalive por sysctl, que infraestructura probó y no resuelve el corte), está en `docs/lambda-extractores-timeout-350s.md` del PR de `documente-core`.
|
|
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
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/digest.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/logging.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/numbers.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/payloads.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/query_params.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/retry_utils.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/time_utils.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/application/timezone.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/document.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/layout.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
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/scaling.py
RENAMED
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/entities/workspace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/common.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/vnext.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/enums/workspace.py
RENAMED
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/filters/workspace.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/dicts.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/encoding.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/lists.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/helpers/values.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/queue.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/interfaces/scaling.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/entities.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/domain/pagination/response.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
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/batch_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/lambdas.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
|
|
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
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/s3_bucket.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/infrastructure/sqs_queue.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/presentation/__init__.py
RENAMED
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/documente_shared/presentation/presenters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/application/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{documente_shared-0.1.203 → documente_shared-0.1.204}/tests/documente_shared/domain/__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
|
|
File without changes
|
|
File without changes
|