documente_shared 0.1.176__tar.gz → 0.1.177__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.176 → documente_shared-0.1.177}/PKG-INFO +1 -1
  2. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/document_type.py +8 -1
  3. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/document_type.py +1 -1
  4. documente_shared-0.1.177/documente_shared/infrastructure/repositories/http_document_type.py +88 -0
  5. {documente_shared-0.1.176 → documente_shared-0.1.177}/pyproject.toml +1 -1
  6. {documente_shared-0.1.176 → documente_shared-0.1.177}/uv.lock +1 -1
  7. {documente_shared-0.1.176 → documente_shared-0.1.177}/.github/workflows/publish.yml +0 -0
  8. {documente_shared-0.1.176 → documente_shared-0.1.177}/.gitignore +0 -0
  9. {documente_shared-0.1.176 → documente_shared-0.1.177}/.vscode/settings.json +0 -0
  10. {documente_shared-0.1.176 → documente_shared-0.1.177}/Dockerfile +0 -0
  11. {documente_shared-0.1.176 → documente_shared-0.1.177}/Makefile +0 -0
  12. {documente_shared-0.1.176 → documente_shared-0.1.177}/README.md +0 -0
  13. {documente_shared-0.1.176 → documente_shared-0.1.177}/__init__.py +0 -0
  14. {documente_shared-0.1.176 → documente_shared-0.1.177}/cases.py +0 -0
  15. {documente_shared-0.1.176 → documente_shared-0.1.177}/docker-compose.yml +0 -0
  16. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/__init__.py +0 -0
  17. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/__init__.py +0 -0
  18. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/dates.py +0 -0
  19. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/digest.py +0 -0
  20. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/exceptions.py +0 -0
  21. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/files.py +0 -0
  22. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/json.py +0 -0
  23. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/logging.py +0 -0
  24. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/numbers.py +0 -0
  25. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/payloads.py +0 -0
  26. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/query_params.py +0 -0
  27. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/retry_utils.py +0 -0
  28. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/time_utils.py +0 -0
  29. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/application/timezone.py +0 -0
  30. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/__init__.py +0 -0
  31. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/base_enum.py +0 -0
  32. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/constants.py +0 -0
  33. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/__init__.py +0 -0
  34. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/document.py +0 -0
  35. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/document_metadata.py +0 -0
  36. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/in_memory_document.py +0 -0
  37. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_case.py +0 -0
  38. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_case_filters.py +0 -0
  39. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_case_item.py +0 -0
  40. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_case_item_filters.py +0 -0
  41. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_documents.py +0 -0
  42. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_event.py +0 -0
  43. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/processing_record.py +0 -0
  44. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/scaling.py +0 -0
  45. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/workspace.py +0 -0
  46. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/workspace_document.py +0 -0
  47. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/entities/workspace_document_page.py +0 -0
  48. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/__init__.py +0 -0
  49. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/circular_oficio.py +0 -0
  50. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/common.py +0 -0
  51. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/document.py +0 -0
  52. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/document_type_record.py +0 -0
  53. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/processing_case.py +0 -0
  54. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/processing_case_validator.py +0 -0
  55. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/enums/workspace.py +0 -0
  56. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/exceptions.py +0 -0
  57. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/filters/__init__.py +0 -0
  58. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/filters/document_type.py +0 -0
  59. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/filters/workspace.py +0 -0
  60. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/filters/workspace_document.py +0 -0
  61. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/filters/workspace_document_page.py +0 -0
  62. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/helpers/__init__.py +0 -0
  63. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/helpers/dicts.py +0 -0
  64. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/helpers/encoding.py +0 -0
  65. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/helpers/lists.py +0 -0
  66. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/helpers/values.py +0 -0
  67. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/interfaces/__init__.py +0 -0
  68. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/interfaces/queue.py +0 -0
  69. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/interfaces/scaling.py +0 -0
  70. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/pagination/__init__.py +0 -0
  71. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/pagination/entities.py +0 -0
  72. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/pagination/response.py +0 -0
  73. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/__init__.py +0 -0
  74. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/document.py +0 -0
  75. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/processing_case.py +0 -0
  76. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/processing_case_item.py +0 -0
  77. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/processing_record.py +0 -0
  78. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/workspace.py +0 -0
  79. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/workspace_document.py +0 -0
  80. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/domain/repositories/workspace_document_page.py +0 -0
  81. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/__init__.py +0 -0
  82. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/batch_queue.py +0 -0
  83. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/documente_client.py +0 -0
  84. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/dynamo_table.py +0 -0
  85. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/lambdas.py +0 -0
  86. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/__init__.py +0 -0
  87. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/dynamo_document.py +0 -0
  88. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/dynamo_processing_case.py +0 -0
  89. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +0 -0
  90. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_document.py +0 -0
  91. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_processing_case.py +0 -0
  92. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_processing_case_item.py +0 -0
  93. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_processing_record.py +0 -0
  94. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_workspace.py +0 -0
  95. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_workspace_document.py +0 -0
  96. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/http_workspace_document_page.py +0 -0
  97. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/mem_document.py +0 -0
  98. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/mem_processing_case.py +0 -0
  99. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/mem_processing_case_item.py +0 -0
  100. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/repositories/mem_processing_record.py +0 -0
  101. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/s3_bucket.py +0 -0
  102. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/services/__init__.py +0 -0
  103. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/services/http_scaling.py +0 -0
  104. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/infrastructure/sqs_queue.py +0 -0
  105. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/presentation/__init__.py +0 -0
  106. {documente_shared-0.1.176 → documente_shared-0.1.177}/documente_shared/presentation/presenters.py +0 -0
  107. {documente_shared-0.1.176 → documente_shared-0.1.177}/publish.sh +0 -0
  108. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/__init__.py +0 -0
  109. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/__init__.py +0 -0
  110. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/application/__init__.py +0 -0
  111. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/application/test_files.py +0 -0
  112. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/application/test_payloads.py +0 -0
  113. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/conftest.py +0 -0
  114. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/__init__.py +0 -0
  115. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/entities/__init__.py +0 -0
  116. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/entities/test_in_memory_document.py +0 -0
  117. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/entities/test_processing_case.py +0 -0
  118. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/entities/test_processing_case_item.py +0 -0
  119. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/entities/test_processing_record.py +0 -0
  120. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/domain/enums/test_processing_case_validator.py +0 -0
  121. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/infrastructure/__init__.py +0 -0
  122. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/infrastructure/repositories/__init__.py +0 -0
  123. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documente_shared/infrastructure/repositories/test_http_processing_record.py +0 -0
  124. {documente_shared-0.1.176 → documente_shared-0.1.177}/tests/documents.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: documente_shared
3
- Version: 0.1.176
3
+ Version: 0.1.177
4
4
  Summary: Shared utilities for LlamitAI projects
5
5
  Author-email: Tech <tech@llamitai.com>
6
6
  License: MIT
@@ -13,6 +13,7 @@ class DocumentType(BaseModel):
13
13
  tenant_id: UUID | None = Field(default=None)
14
14
  is_shareable: bool = False
15
15
  processing_document_type: ProcessingDocumentType | None = Field(default=None)
16
+ description: str | None = Field(default=None)
16
17
  metadata: dict | None = Field(default=None)
17
18
  created_at: datetime | None = Field(default=None)
18
19
  updated_at: datetime | None = Field(default=None)
@@ -24,6 +25,7 @@ class DocumentType(BaseModel):
24
25
  "name": self.name,
25
26
  "is_shareable": self.is_shareable,
26
27
  "processing_document_type": optional_str(self.processing_document_type),
28
+ "description": self.description,
27
29
  "metadata": self.metadata or {},
28
30
  }
29
31
 
@@ -32,7 +34,11 @@ class DocumentType(BaseModel):
32
34
  return {
33
35
  "uuid": str(self.uuid),
34
36
  "name": self.name,
35
- "tenant_id": self
37
+ "tenant_id": str(self.tenant_id) if self.tenant_id else None,
38
+ "is_shareable": self.is_shareable,
39
+ "processing_document_type": optional_str(self.processing_document_type),
40
+ "description": self.description,
41
+ "metadata": self.metadata or {},
36
42
  }
37
43
 
38
44
  @classmethod
@@ -43,6 +49,7 @@ class DocumentType(BaseModel):
43
49
  tenant_id=data.get('tenant_id'),
44
50
  is_shareable=data.get('is_shareable', False),
45
51
  processing_document_type=ProcessingDocumentType.from_value(data.get('processing_document_type')),
52
+ description=data.get('description'),
46
53
  metadata=data.get('metadata', {}),
47
54
  created_at=data.get('created_at'),
48
55
  updated_at=data.get('updated_at'),
@@ -24,7 +24,7 @@ class DocumentTypeRepository(ABC):
24
24
  @abstractmethod
25
25
  def filter(
26
26
  self,
27
- tenant_id: UUID,
27
+ filters: DocumentTypeFilters,
28
28
  ) -> list[DocumentType]:
29
29
  raise NotImplementedError
30
30
 
@@ -0,0 +1,88 @@
1
+ from dataclasses import dataclass
2
+ from uuid import UUID
3
+
4
+ import structlog
5
+
6
+ from documente_shared.domain.entities.document_type import DocumentType
7
+ from documente_shared.domain.filters.document_type import DocumentTypeFilters
8
+ from documente_shared.domain.pagination.entities import Page, PageCursor
9
+ from documente_shared.domain.repositories.document_type import DocumentTypeRepository
10
+ from documente_shared.infrastructure.documente_client import DocumenteClientMixin
11
+
12
+ logger = structlog.get_logger()
13
+
14
+
15
+ @dataclass
16
+ class HttpDocumentTypeRepository(
17
+ DocumenteClientMixin,
18
+ DocumentTypeRepository,
19
+ ):
20
+ def find(self, uuid: UUID) -> DocumentType | None:
21
+ response = self.session.get(
22
+ url=f"{self.api_url}/v1/document-types/{uuid}/",
23
+ )
24
+ if not self._is_success(response):
25
+ return None
26
+ return self._parse_instance(response, DocumentType.from_dict)
27
+
28
+ def find_with_tenant(self, tenant_id: UUID, instance_id: UUID) -> DocumentType | None:
29
+ response = self.session.get(
30
+ url=f"{self.api_url}/v1/document-types/{instance_id}/",
31
+ params={"tenant_id": str(tenant_id)},
32
+ )
33
+ if not self._is_success(response):
34
+ return None
35
+ return self._parse_instance(response, DocumentType.from_dict)
36
+
37
+ def find_by_tenant(self, tenant_id: UUID, shareable_only: bool = False) -> list[DocumentType]:
38
+ response = self.session.get(
39
+ url=f"{self.api_url}/v1/document-types/",
40
+ params={"tenant_ids": [str(tenant_id)], "shareable_only": shareable_only},
41
+ )
42
+ if not self._is_success(response):
43
+ return []
44
+ return self._parse_list(response, DocumentType.from_dict)
45
+
46
+ def filter(self, filters: DocumentTypeFilters) -> list[DocumentType]:
47
+ response = self.session.get(
48
+ url=f"{self.api_url}/v1/document-types/",
49
+ params=filters.to_params,
50
+ )
51
+ if not self._is_success(response):
52
+ return []
53
+ return self._parse_list(response, DocumentType.from_dict)
54
+
55
+ def filter_paginated(self, filters: DocumentTypeFilters) -> Page[DocumentType]:
56
+ response = self.session.get(
57
+ url=f"{self.api_url}/v1/document-types/",
58
+ params=filters.to_params,
59
+ )
60
+ if not self._is_success(response):
61
+ return Page.empty()
62
+ return Page(
63
+ limit=filters.limit,
64
+ next_cursor=PageCursor.initial(),
65
+ prev_cursor=PageCursor.initial(),
66
+ items=self._parse_list(response, DocumentType.from_dict),
67
+ )
68
+
69
+ def persist(self, instance: DocumentType) -> DocumentType:
70
+ logger.info("[shared.document_type.persisting]", data=instance.to_persist_dict)
71
+ existing = self.find(instance.uuid)
72
+ if existing:
73
+ response = self.session.put(
74
+ url=f"{self.api_url}/v1/document-types/{instance.uuid}/",
75
+ json=instance.to_persist_dict,
76
+ )
77
+ else:
78
+ response = self.session.post(
79
+ url=f"{self.api_url}/v1/document-types/",
80
+ json=instance.to_persist_dict,
81
+ )
82
+ if not self._is_success(response):
83
+ logger.error("[shared.document_type.persist_error]", response=response.text)
84
+ return instance
85
+ return self._parse_instance(response, DocumentType.from_dict)
86
+
87
+ def delete(self, uuid: UUID) -> None:
88
+ self.session.delete(f"{self.api_url}/v1/document-types/{uuid}/")
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "documente_shared"
3
- version = "0.1.176"
3
+ version = "0.1.177"
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.176"
141
+ version = "0.1.177"
142
142
  source = { editable = "." }
143
143
  dependencies = [
144
144
  { name = "boto3" },