documente_shared 0.1.163b2__tar.gz → 0.1.164b2__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.
Files changed (124) hide show
  1. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/PKG-INFO +1 -1
  2. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/query_params.py +0 -0
  3. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/workspace_document.py +4 -4
  4. documente_shared-0.1.164b2/documente_shared/domain/entities/workspace_filters.py +36 -0
  5. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/filters/workspace_document.py +2 -0
  6. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/pagination/entities.py +0 -3
  7. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_workspace_document.py +11 -4
  8. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/pyproject.toml +1 -1
  9. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/uv.lock +1 -1
  10. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/.github/workflows/publish.yml +0 -0
  11. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/.gitignore +0 -0
  12. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/.vscode/settings.json +0 -0
  13. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/Dockerfile +0 -0
  14. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/Makefile +0 -0
  15. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/README.md +0 -0
  16. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/__init__.py +0 -0
  17. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/cases.py +0 -0
  18. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/docker-compose.yml +0 -0
  19. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/__init__.py +0 -0
  20. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/__init__.py +0 -0
  21. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/dates.py +0 -0
  22. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/digest.py +0 -0
  23. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/exceptions.py +0 -0
  24. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/files.py +0 -0
  25. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/json.py +0 -0
  26. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/logging.py +0 -0
  27. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/numbers.py +0 -0
  28. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/payloads.py +0 -0
  29. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/retry_utils.py +0 -0
  30. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/time_utils.py +0 -0
  31. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/application/timezone.py +0 -0
  32. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/__init__.py +0 -0
  33. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/base_enum.py +0 -0
  34. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/constants.py +0 -0
  35. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/__init__.py +0 -0
  36. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/document.py +0 -0
  37. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/document_metadata.py +0 -0
  38. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/document_type.py +0 -0
  39. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/in_memory_document.py +0 -0
  40. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_case.py +0 -0
  41. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_case_filters.py +0 -0
  42. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_case_item.py +0 -0
  43. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_case_item_filters.py +0 -0
  44. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_documents.py +0 -0
  45. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_event.py +0 -0
  46. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/processing_record.py +0 -0
  47. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/scaling.py +0 -0
  48. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/workspace.py +0 -0
  49. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/entities/workspace_document_page.py +0 -0
  50. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/__init__.py +0 -0
  51. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/circular_oficio.py +0 -0
  52. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/common.py +0 -0
  53. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/document.py +0 -0
  54. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/document_type_record.py +0 -0
  55. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/processing_case.py +0 -0
  56. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/processing_case_validator.py +0 -0
  57. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/enums/workspace.py +0 -0
  58. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/exceptions.py +0 -0
  59. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/filters/__init__.py +0 -0
  60. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/filters/document_type.py +0 -0
  61. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/filters/workspace.py +0 -0
  62. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/filters/workspace_document_page.py +0 -0
  63. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/helpers/__init__.py +0 -0
  64. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/helpers/dicts.py +0 -0
  65. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/helpers/encoding.py +0 -0
  66. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/helpers/lists.py +0 -0
  67. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/helpers/values.py +0 -0
  68. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/interfaces/__init__.py +0 -0
  69. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/interfaces/queue.py +0 -0
  70. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/interfaces/scaling.py +0 -0
  71. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/pagination/__init__.py +0 -0
  72. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/pagination/response.py +0 -0
  73. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/__init__.py +0 -0
  74. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/document.py +0 -0
  75. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/document_type.py +0 -0
  76. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/processing_case.py +0 -0
  77. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/processing_case_item.py +0 -0
  78. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/processing_record.py +0 -0
  79. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/workspace.py +0 -0
  80. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/workspace_document.py +0 -0
  81. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/domain/repositories/workspace_document_page.py +0 -0
  82. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/__init__.py +0 -0
  83. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/batch_queue.py +0 -0
  84. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/documente_client.py +0 -0
  85. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/dynamo_table.py +0 -0
  86. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/lambdas.py +0 -0
  87. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/__init__.py +0 -0
  88. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/dynamo_document.py +0 -0
  89. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/dynamo_processing_case.py +0 -0
  90. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +0 -0
  91. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_document.py +0 -0
  92. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_processing_case.py +0 -0
  93. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_processing_case_item.py +0 -0
  94. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_processing_record.py +0 -0
  95. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_workspace.py +0 -0
  96. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/http_workspace_document_page.py +0 -0
  97. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/mem_document.py +0 -0
  98. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/mem_processing_case.py +0 -0
  99. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/mem_processing_case_item.py +0 -0
  100. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/repositories/mem_processing_record.py +0 -0
  101. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/s3_bucket.py +0 -0
  102. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/services/__init__.py +0 -0
  103. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/services/http_scaling.py +0 -0
  104. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/infrastructure/sqs_queue.py +0 -0
  105. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/presentation/__init__.py +0 -0
  106. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/documente_shared/presentation/presenters.py +0 -0
  107. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/publish.sh +0 -0
  108. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/__init__.py +0 -0
  109. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/__init__.py +0 -0
  110. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/application/__init__.py +0 -0
  111. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/application/test_files.py +0 -0
  112. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/application/test_payloads.py +0 -0
  113. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/conftest.py +0 -0
  114. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/__init__.py +0 -0
  115. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/entities/__init__.py +0 -0
  116. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/entities/test_in_memory_document.py +0 -0
  117. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/entities/test_processing_case.py +0 -0
  118. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/entities/test_processing_case_item.py +0 -0
  119. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/entities/test_processing_record.py +0 -0
  120. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/domain/enums/test_processing_case_validator.py +0 -0
  121. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/infrastructure/__init__.py +0 -0
  122. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/infrastructure/repositories/__init__.py +0 -0
  123. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documente_shared/infrastructure/repositories/test_http_processing_record.py +0 -0
  124. {documente_shared-0.1.163b2 → documente_shared-0.1.164b2}/tests/documents.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: documente_shared
3
- Version: 0.1.163b2
3
+ Version: 0.1.164b2
4
4
  Summary: Shared utilities for LlamitAI projects
5
5
  Author-email: Tech <tech@llamitai.com>
6
6
  License: MIT
@@ -45,10 +45,10 @@ class WorkspaceDocument(BaseModel):
45
45
  "digest": self.digest,
46
46
  "status": str(self.status),
47
47
  "source": optional_str(self.source),
48
- "uploaded_at": self.uploaded_at,
49
- "started_at": self.started_at,
50
- "completed_at": self.completed_at,
51
- "failed_at": self.failed_at,
48
+ "uploaded_at": (self.uploaded_at.isoformat() if self.uploaded_at else None),
49
+ "started_at": (self.started_at.isoformat() if self.started_at else None),
50
+ "completed_at": (self.completed_at.isoformat() if self.completed_at else None),
51
+ "failed_at": (self.failed_at.isoformat() if self.failed_at else None),
52
52
  "processing_time": self.processing_time,
53
53
  "metadata": self.metadata or {},
54
54
  "extraction": self.extraction or {},
@@ -0,0 +1,36 @@
1
+ from dataclasses import dataclass
2
+ from typing import Optional
3
+
4
+ from documente_shared.application.query_params import QueryParams
5
+ from documente_shared.domain.helpers.dicts import filter_none_values
6
+
7
+
8
+ @dataclass
9
+ class WorkspaceFilters(object):
10
+ sort_order: Optional[str] = None
11
+ search: Optional[str] = None
12
+ include_archived: bool = False
13
+
14
+ def __post_init__(self):
15
+ self.sort_order = self.sort_order or "desc"
16
+
17
+ @property
18
+ def to_params(self) -> dict:
19
+ params = {
20
+ "sort": self.sort_order,
21
+ "search": self.search,
22
+ "include_archived": str(self.include_archived).lower(),
23
+ }
24
+ return filter_none_values(params)
25
+
26
+ @classmethod
27
+ def from_params(cls, params: QueryParams) -> "WorkspaceFilters":
28
+ search_term = params.get_str(key="search", default=None)
29
+ return cls(
30
+ sort_order=params.get(key="sort", default="desc"),
31
+ search=search_term.strip() if search_term else None,
32
+ include_archived=params.get_bool(
33
+ key="include_archived",
34
+ default=False,
35
+ ),
36
+ )
@@ -9,6 +9,7 @@ from documente_shared.domain.pagination.entities import ListFilters
9
9
 
10
10
 
11
11
  class WorkspaceDocumentFilters(ListFilters):
12
+ workspace_id: UUID | None = Field(default=None)
12
13
  tenant_ids: list[UUID] | None = Field(default_factory=list)
13
14
  workspace_ids: list[UUID] | None = Field(default_factory=list)
14
15
  statuses: list[ProcessingStatus] | None = Field(default_factory=list)
@@ -32,6 +33,7 @@ class WorkspaceDocumentFilters(ListFilters):
32
33
  return cls(
33
34
  cursor=params.get("cursor", None),
34
35
  limit=params.get_int(key="limit", default=None),
36
+ workspace_id=params.get_uuid(key="workspace_id", default=None),
35
37
  tenant_ids=params.get_uuid_list(key="tenant_ids", default=None),
36
38
  workspace_ids=params.get_uuid_list(key="workspace_ids", default=None),
37
39
  search=search_term.strip() if search_term else None,
@@ -9,7 +9,6 @@ from documente_shared.domain.helpers.encoding import decode_base64, encode_base6
9
9
 
10
10
 
11
11
  class ListFilters(BaseModel):
12
- search: str | None = Field(default=None)
13
12
  cursor: str | None = Field(default=None)
14
13
  limit: int = Field(default=DEFAULT_PAGINATION_PAGE_SIZE)
15
14
 
@@ -25,7 +24,6 @@ class ListFilters(BaseModel):
25
24
  @classmethod
26
25
  def from_query_params(cls, params: dict) -> "ListFilters":
27
26
  return cls(
28
- search=params.get("search"),
29
27
  cursor=params.get("cursor"),
30
28
  limit=params.get("limit"),
31
29
  )
@@ -33,7 +31,6 @@ class ListFilters(BaseModel):
33
31
  @property
34
32
  def to_dict(self) -> dict:
35
33
  return {
36
- "search": self.search,
37
34
  "cursor": self.cursor,
38
35
  "limit": self.limit,
39
36
  }
@@ -58,10 +58,17 @@ class HttpWorkspaceDocumentRepository(
58
58
 
59
59
  def persist(self, instance: WorkspaceDocument) -> WorkspaceDocument:
60
60
  logger.info("[shared.workspace_document.persisting]", data=instance.to_persist_dict)
61
- response: Response = self.session.post(
62
- url=f"{self.api_url}/v1/workspaces/{instance.workspace_id}/documents/",
63
- json=instance.to_persist_dict,
64
- )
61
+ existing = self.find(instance.uuid)
62
+ if existing:
63
+ response: Response = self.session.put(
64
+ url=f"{self.api_url}/v1/workspace-documents/{instance.uuid}/",
65
+ json=instance.to_persist_dict,
66
+ )
67
+ else:
68
+ response: Response = self.session.post(
69
+ url=f"{self.api_url}/v1/workspaces/{instance.workspace_id}/documents/",
70
+ json=instance.to_persist_dict,
71
+ )
65
72
  if not self._is_success(response):
66
73
  logger.error("[shared.workspace_document.persist_error]", response=response.text)
67
74
  return instance
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "documente_shared"
3
- version = "0.1.163b2"
3
+ version = "0.1.164b2"
4
4
  description = "Shared utilities for LlamitAI projects"
5
5
  authors = [{ name = "Tech", email = "tech@llamitai.com" }]
6
6
  license = { text = "MIT" }
@@ -138,7 +138,7 @@ wheels = [
138
138
 
139
139
  [[package]]
140
140
  name = "documente-shared"
141
- version = "0.1.163b2"
141
+ version = "0.1.164b2"
142
142
  source = { editable = "." }
143
143
  dependencies = [
144
144
  { name = "boto3" },