documente_shared 0.1.160__tar.gz → 0.1.161b0__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 (103) hide show
  1. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/PKG-INFO +1 -1
  2. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/query_params.py +0 -0
  3. documente_shared-0.1.161b0/documente_shared/domain/entities/workspace_document.py +51 -0
  4. documente_shared-0.1.161b0/documente_shared/domain/entities/workspace_document_page.py +27 -0
  5. documente_shared-0.1.161b0/documente_shared/domain/enums/workspace.py +19 -0
  6. documente_shared-0.1.161b0/documente_shared/domain/repositories/workspace_document.py +42 -0
  7. documente_shared-0.1.161b0/documente_shared/domain/repositories/workspace_document_page.py +41 -0
  8. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/pyproject.toml +1 -1
  9. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/uv.lock +1 -1
  10. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/.github/workflows/publish.yml +0 -0
  11. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/.gitignore +0 -0
  12. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/Dockerfile +0 -0
  13. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/Makefile +0 -0
  14. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/README.md +0 -0
  15. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/__init__.py +0 -0
  16. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/cases.py +0 -0
  17. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/docker-compose.yml +0 -0
  18. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/__init__.py +0 -0
  19. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/__init__.py +0 -0
  20. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/dates.py +0 -0
  21. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/digest.py +0 -0
  22. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/exceptions.py +0 -0
  23. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/files.py +0 -0
  24. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/json.py +0 -0
  25. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/numbers.py +0 -0
  26. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/payloads.py +0 -0
  27. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/retry_utils.py +0 -0
  28. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/time_utils.py +0 -0
  29. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/application/timezone.py +0 -0
  30. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/__init__.py +0 -0
  31. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/base_enum.py +0 -0
  32. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/constants.py +0 -0
  33. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/__init__.py +0 -0
  34. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/document.py +0 -0
  35. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/document_metadata.py +0 -0
  36. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/in_memory_document.py +0 -0
  37. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_case.py +0 -0
  38. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_case_filters.py +0 -0
  39. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_case_item.py +0 -0
  40. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_case_item_filters.py +0 -0
  41. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_documents.py +0 -0
  42. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_event.py +0 -0
  43. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/processing_record.py +0 -0
  44. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/entities/scaling.py +0 -0
  45. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/__init__.py +0 -0
  46. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/circular_oficio.py +0 -0
  47. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/common.py +0 -0
  48. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/document.py +0 -0
  49. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/document_type_record.py +0 -0
  50. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/processing_case.py +0 -0
  51. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/enums/processing_case_validator.py +0 -0
  52. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/exceptions.py +0 -0
  53. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/helpers/__init__.py +0 -0
  54. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/helpers/values.py +0 -0
  55. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/interfaces/__init__.py +0 -0
  56. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/interfaces/queue.py +0 -0
  57. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/interfaces/scaling.py +0 -0
  58. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/repositories/__init__.py +0 -0
  59. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/repositories/document.py +0 -0
  60. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/repositories/processing_case.py +0 -0
  61. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/repositories/processing_case_item.py +0 -0
  62. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/domain/repositories/processing_record.py +0 -0
  63. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/__init__.py +0 -0
  64. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/batch_queue.py +0 -0
  65. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/documente_client.py +0 -0
  66. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/dynamo_table.py +0 -0
  67. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/lambdas.py +0 -0
  68. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/__init__.py +0 -0
  69. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/dynamo_document.py +0 -0
  70. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/dynamo_processing_case.py +0 -0
  71. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +0 -0
  72. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/http_document.py +0 -0
  73. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/http_processing_case.py +0 -0
  74. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/http_processing_case_item.py +0 -0
  75. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/http_processing_record.py +0 -0
  76. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/mem_document.py +0 -0
  77. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/mem_processing_case.py +0 -0
  78. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/mem_processing_case_item.py +0 -0
  79. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/repositories/mem_processing_record.py +0 -0
  80. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/s3_bucket.py +0 -0
  81. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/services/__init__.py +0 -0
  82. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/services/http_scaling.py +0 -0
  83. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/infrastructure/sqs_queue.py +0 -0
  84. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/presentation/__init__.py +0 -0
  85. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/documente_shared/presentation/presenters.py +0 -0
  86. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/publish.sh +0 -0
  87. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/__init__.py +0 -0
  88. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/__init__.py +0 -0
  89. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/application/__init__.py +0 -0
  90. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/application/test_files.py +0 -0
  91. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/application/test_payloads.py +0 -0
  92. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/conftest.py +0 -0
  93. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/__init__.py +0 -0
  94. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/entities/__init__.py +0 -0
  95. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/entities/test_in_memory_document.py +0 -0
  96. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/entities/test_processing_case.py +0 -0
  97. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/entities/test_processing_case_item.py +0 -0
  98. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/entities/test_processing_record.py +0 -0
  99. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/domain/enums/test_processing_case_validator.py +0 -0
  100. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/infrastructure/__init__.py +0 -0
  101. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/infrastructure/repositories/__init__.py +0 -0
  102. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documente_shared/infrastructure/repositories/test_http_processing_record.py +0 -0
  103. {documente_shared-0.1.160 → documente_shared-0.1.161b0}/tests/documents.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: documente_shared
3
- Version: 0.1.160
3
+ Version: 0.1.161b0
4
4
  Summary: Shared utilities for Documente AI projects
5
5
  Author-email: Tech <tech@llamitai.com>
6
6
  License: MIT
@@ -0,0 +1,51 @@
1
+ from uuid import UUID
2
+ from datetime import datetime
3
+ from decimal import Decimal
4
+ from pydantic import BaseModel, Field
5
+
6
+ from documente_shared.domain.entities.in_memory_document import InMemoryDocument
7
+ from documente_shared.domain.enums.common import ProcessingStatus
8
+ from documente_shared.domain.enums.workspace import WorkspaceSource
9
+ from documente_shared.domain.helpers.values import optional_str
10
+
11
+
12
+ class WorkspaceDocument(BaseModel):
13
+ uuid: UUID
14
+ name: str
15
+ digest: str | None = Field(default=None)
16
+ status: ProcessingStatus
17
+ tenant_id: UUID
18
+ workspace_id: UUID
19
+ document_type_id: UUID | None = Field(default=None)
20
+ source: WorkspaceSource | None = Field(default=None)
21
+
22
+ document: InMemoryDocument | None = Field(default=None)
23
+ document_url: str | None = Field(default=None)
24
+ processing_time: Decimal | None = Field(default=None)
25
+ metadata: dict | None = Field(default=None)
26
+ extraction: dict | None = Field(default=None)
27
+ uploaded_at: datetime | None = Field(default=None)
28
+ created_at: datetime | None = Field(default=None)
29
+ updated_at: datetime | None = Field(default=None)
30
+ started_at: datetime | None = Field(default=None)
31
+ completed_at: datetime | None = Field(default=None)
32
+ failed_at: datetime | None = Field(default=None)
33
+
34
+ @property
35
+ def to_persist_dict(self) -> dict:
36
+ return {
37
+ "tenant_id": self.tenant_id,
38
+ "workspace_id": self.workspace_id,
39
+ "doctype_id": self.document_type_id,
40
+ "name": self.name,
41
+ "digest": self.digest,
42
+ "status": str(self.status),
43
+ "source": optional_str(self.source),
44
+ "uploaded_at": self.uploaded_at,
45
+ "started_at": self.started_at,
46
+ "completed_at": self.completed_at,
47
+ "failed_at": self.failed_at,
48
+ "processing_time": self.processing_time,
49
+ "metadata": self.metadata or {},
50
+ "extraction": self.extraction or {},
51
+ }
@@ -0,0 +1,27 @@
1
+ from datetime import datetime
2
+ from uuid import UUID
3
+
4
+ from documente_shared.domain.entities.in_memory_document import InMemoryDocument
5
+ from pydantic import BaseModel, Field
6
+
7
+
8
+ class WorkspaceDocumentPage(BaseModel):
9
+ uuid: UUID
10
+ tenant_id: UUID
11
+ workspace_id: UUID
12
+ workspace_document_id: UUID
13
+ page_number: int
14
+ page_file: InMemoryDocument | None = Field(default=None)
15
+ page_file_url: str | None = Field(default=None)
16
+ created_at: datetime | None = Field(default=None)
17
+ synced_at: datetime | None = Field(default=None)
18
+
19
+ @property
20
+ def to_persist_dict(self) -> dict:
21
+ return {
22
+ "tenant_id": self.tenant_id,
23
+ "workspace_id": self.workspace_id,
24
+ "workspace_document_id": self.workspace_document_id,
25
+ "page_number": self.page_number,
26
+ "synced_at": self.synced_at,
27
+ }
@@ -0,0 +1,19 @@
1
+ from documente_shared.domain.base_enum import BaseEnum
2
+
3
+
4
+ class WorkspaceSource(BaseEnum):
5
+ WEB = "WEB"
6
+ MOBILE = "MOBILE"
7
+ TOOLS = "TOOLS"
8
+
9
+ @property
10
+ def is_web(self):
11
+ return self == self.WEB
12
+
13
+ @property
14
+ def is_mobile(self):
15
+ return self == self.MOBILE
16
+
17
+ @property
18
+ def is_tools(self):
19
+ return self == self.TOOLS
@@ -0,0 +1,42 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Any, Optional
3
+ from uuid import UUID
4
+
5
+ from documente_shared.domain.entities.workspace_document import WorkspaceDocument
6
+ from documente_shared.domain.enums.common import ProcessingStatus
7
+
8
+
9
+ class WorkspaceDocumentRepository(ABC):
10
+ @abstractmethod
11
+ def find(self, uuid: UUID) -> Optional[WorkspaceDocument]:
12
+ raise NotImplementedError
13
+
14
+ @abstractmethod
15
+ def find_by_digest(self, workspace_id: UUID, digest: str) -> Optional[WorkspaceDocument]:
16
+ raise NotImplementedError
17
+
18
+ @abstractmethod
19
+ def filter_by_workspace(
20
+ self,
21
+ workspace_id: UUID,
22
+ status: Optional[ProcessingStatus] = None,
23
+ limit: Optional[int] = None,
24
+ offset: int = 0,
25
+ ) -> list[WorkspaceDocument]:
26
+ raise NotImplementedError
27
+
28
+ @abstractmethod
29
+ def filter(self, workspace_id: UUID) -> list[WorkspaceDocument]:
30
+ raise NotImplementedError
31
+
32
+ @abstractmethod
33
+ def filter_paginated(self, workspace_id: UUID, page_params: Any) -> Any:
34
+ raise NotImplementedError
35
+
36
+ @abstractmethod
37
+ def persist(self, instance: WorkspaceDocument) -> WorkspaceDocument:
38
+ raise NotImplementedError
39
+
40
+ @abstractmethod
41
+ def delete(self, uuid: UUID) -> None:
42
+ raise NotImplementedError
@@ -0,0 +1,41 @@
1
+ from abc import ABC, abstractmethod
2
+ from typing import Any, Optional
3
+ from uuid import UUID
4
+
5
+ from documente_shared.domain.entities.workspace_document_page import WorkspaceDocumentPage
6
+
7
+
8
+ class WorkspaceDocumentPageRepository(ABC):
9
+ @abstractmethod
10
+ def find(self, uuid: UUID) -> Optional[WorkspaceDocumentPage]:
11
+ raise NotImplementedError
12
+
13
+ @abstractmethod
14
+ def find_by_document(self, workspace_document_id: UUID) -> list[WorkspaceDocumentPage]:
15
+ raise NotImplementedError
16
+
17
+ @abstractmethod
18
+ def find_by_document_and_page_number(
19
+ self, workspace_document_id: UUID, page_number: int
20
+ ) -> Optional[WorkspaceDocumentPage]:
21
+ raise NotImplementedError
22
+
23
+ @abstractmethod
24
+ def filter(self, workspace_document_id: UUID) -> list[WorkspaceDocumentPage]:
25
+ raise NotImplementedError
26
+
27
+ @abstractmethod
28
+ def filter_paginated(self, workspace_document_id: UUID, page_params: Any) -> Any:
29
+ raise NotImplementedError
30
+
31
+ @abstractmethod
32
+ def persist(self, instance: WorkspaceDocumentPage) -> WorkspaceDocumentPage:
33
+ raise NotImplementedError
34
+
35
+ @abstractmethod
36
+ def delete(self, uuid: UUID) -> None:
37
+ raise NotImplementedError
38
+
39
+ @abstractmethod
40
+ def delete_by_document(self, workspace_document_id: UUID) -> None:
41
+ raise NotImplementedError
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "documente_shared"
3
- version = "0.1.160"
3
+ version = "0.1.161b"
4
4
  description = "Shared utilities for Documente AI projects"
5
5
  authors = [{ name = "Tech", email = "tech@llamitai.com" }]
6
6
  license = { text = "MIT" }
@@ -129,7 +129,7 @@ wheels = [
129
129
 
130
130
  [[package]]
131
131
  name = "documente-shared"
132
- version = "0.1.160"
132
+ version = "0.1.161b0"
133
133
  source = { editable = "." }
134
134
  dependencies = [
135
135
  { name = "boto3" },