documente_shared 0.1.81__tar.gz → 0.1.82__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.

Potentially problematic release.


This version of documente_shared might be problematic. Click here for more details.

Files changed (43) hide show
  1. {documente_shared-0.1.81 → documente_shared-0.1.82}/PKG-INFO +1 -1
  2. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/processing_case.py +1 -1
  3. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/processing_case_item.py +4 -1
  4. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/http_processing_case.py +13 -10
  5. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/http_processing_case_item.py +20 -12
  6. {documente_shared-0.1.81 → documente_shared-0.1.82}/pyproject.toml +1 -1
  7. {documente_shared-0.1.81 → documente_shared-0.1.82}/README.md +0 -0
  8. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/__init__.py +0 -0
  9. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/__init__.py +0 -0
  10. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/digest.py +0 -0
  11. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/exceptions.py +0 -0
  12. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/files.py +0 -0
  13. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/payloads.py +0 -0
  14. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/query_params.py +0 -0
  15. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/time_utils.py +0 -0
  16. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/application/timezone.py +0 -0
  17. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/__init__.py +0 -0
  18. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/base_enum.py +0 -0
  19. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/constants.py +0 -0
  20. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/__init__.py +0 -0
  21. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/document.py +0 -0
  22. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/document_metadata.py +0 -0
  23. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/in_memory_result.py +0 -0
  24. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/processing_case_filters.py +0 -0
  25. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/processing_case_item_filters.py +0 -0
  26. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/entities/processing_event.py +0 -0
  27. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/enums/__init__.py +0 -0
  28. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/enums/common.py +0 -0
  29. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/enums/document.py +0 -0
  30. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/enums/processing_case.py +0 -0
  31. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/repositories/__init__.py +0 -0
  32. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/repositories/document.py +0 -0
  33. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/repositories/processing_case.py +0 -0
  34. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/domain/repositories/processing_case_item.py +0 -0
  35. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/__init__.py +0 -0
  36. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/documente_client.py +0 -0
  37. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/dynamo_table.py +0 -0
  38. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/__init__.py +0 -0
  39. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/dynamo_document.py +0 -0
  40. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/dynamo_processing_case.py +0 -0
  41. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +0 -0
  42. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/s3_bucket.py +0 -0
  43. {documente_shared-0.1.81 → documente_shared-0.1.82}/documente_shared/infrastructure/sqs_queue.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: documente_shared
3
- Version: 0.1.81
3
+ Version: 0.1.82
4
4
  Summary: Shared utilities for Documente AI projects
5
5
  License: MIT
6
6
  Author: Tech
@@ -98,7 +98,7 @@ class ProcessingCase(object):
98
98
  def to_persist_dict(self) -> dict:
99
99
  persist_data = self.to_dict
100
100
  persist_data["items"] = [
101
- item.to_persist_dict for item in self.items
101
+ item.to_dict for item in self.items
102
102
  ]
103
103
  return persist_data
104
104
 
@@ -106,7 +106,10 @@ class ProcessingCaseItem(object):
106
106
  'case_id': self.case_id,
107
107
  'digest': self.digest,
108
108
  'status': str(self.status),
109
- 'document': self.document.to_dict,
109
+ 'document':(
110
+ self.document.to_dict
111
+ if self.document else None
112
+ ),
110
113
  'document_type': (
111
114
  str(self.document_type)
112
115
  if self.document_type else None
@@ -1,6 +1,8 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import List, Optional
3
3
 
4
+ from requests import Response
5
+
4
6
  from documente_shared.application.payloads import camel_to_snake
5
7
  from documente_shared.domain.entities.processing_case import ProcessingCase
6
8
  from documente_shared.domain.entities.processing_case_filters import ProcessingCaseFilters
@@ -16,9 +18,7 @@ class HttpProcessingCaseRepository(
16
18
  def find(self, uuid: str, include_items: bool = False) -> Optional[ProcessingCase]:
17
19
  response = self.session.get(f"{self.api_url}/v1/processing-cases/{uuid}/")
18
20
  if response.status_code == 200:
19
- response_json = response.json()
20
- instance_data = response_json.get('data', {})
21
- return ProcessingCase.from_persist_dict(camel_to_snake(instance_data))
21
+ return self._build_processing_case(response)
22
22
  return None
23
23
 
24
24
  def persist(self, instance: ProcessingCase) -> ProcessingCase:
@@ -29,9 +29,7 @@ class HttpProcessingCaseRepository(
29
29
  if response.status_code not in [200, 201]:
30
30
  raise Exception(f'Error persisting processing case: {response.text}')
31
31
 
32
- response_json = response.json()
33
- instance_data = response_json.get('data', {})
34
- return ProcessingCase.from_persist_dict(camel_to_snake(instance_data))
32
+ return self._build_processing_case(response)
35
33
 
36
34
  def remove(self, instance: ProcessingCase):
37
35
  self.session.delete(f"{self.api_url}/v1/processing-cases/{instance.uuid}/")
@@ -45,9 +43,14 @@ class HttpProcessingCaseRepository(
45
43
  )
46
44
  if response.status_code == 200:
47
45
  raw_response = response.json()
48
- instaces_data = raw_response.get('data', [])
49
46
  return [
50
- ProcessingCase.from_persist_dict(item_data)
51
- for item_data in camel_to_snake(instaces_data)
47
+ ProcessingCase.from_persist_dict(camel_to_snake(item_data))
48
+ for item_data in raw_response.get('data', [])
52
49
  ]
53
- return []
50
+ return []
51
+
52
+ @classmethod
53
+ def _build_processing_case(cls, response: Response) -> ProcessingCase:
54
+ response_json = response.json()
55
+ instance_data = response_json.get('data', {})
56
+ return ProcessingCase.from_persist_dict(camel_to_snake(instance_data))
@@ -1,6 +1,9 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import List, Optional
3
3
 
4
+ from requests import Response
5
+
6
+ from documente_shared.application.payloads import camel_to_snake
4
7
  from documente_shared.domain.entities.processing_case_item import ProcessingCaseItem
5
8
  from documente_shared.domain.entities.processing_case_item_filters import ProcessingCaseItemFilters
6
9
  from documente_shared.domain.repositories.processing_case_item import ProcessingCaseItemRepository
@@ -12,41 +15,46 @@ class HttpProcessingCaseItemRepository(
12
15
  DocumenteClientMixin,
13
16
  ProcessingCaseItemRepository,
14
17
  ):
15
-
16
18
  def find(self, uuid: str) -> Optional[ProcessingCaseItem]:
17
- response = self.session.get(f"{self.api_url}/processing-case-items/{uuid}/")
19
+ response = self.session.get(f"{self.api_url}/v1/processing-case-items/{uuid}/")
18
20
  if response.status_code == 200:
19
- return ProcessingCaseItem.from_persist_dict(response.json())
21
+ return self._build_processing_case_item(response)
20
22
  return None
21
23
 
22
24
  def find_by_digest(self, digest: str) -> Optional[ProcessingCaseItem]:
23
- response = self.session.get(f"{self.api_url}/processing-case-items/{digest}/")
25
+ response = self.session.get(f"{self.api_url}/v1/processing-case-items/{digest}/")
24
26
  if response.status_code == 200:
25
- return ProcessingCaseItem.from_persist_dict(response.json())
27
+ return self._build_processing_case_item(response)
26
28
  return None
27
29
 
28
30
  def persist(self, instance: ProcessingCaseItem) -> ProcessingCaseItem:
29
- response = self.session.put(
30
- url=f"{self.api_url}/processing-case-items/{instance.uuid}/",
31
+ response: Response = self.session.put(
32
+ url=f"{self.api_url}/v1/processing-case-items/{instance.uuid}/",
31
33
  json=instance.to_persist_dict,
32
34
  )
33
35
  if response.status_code in [200, 201]:
34
- return ProcessingCaseItem.from_dict(response.json())
36
+ return self._build_processing_case_item(response)
35
37
  return instance
36
38
 
37
39
  def remove(self, instance: ProcessingCaseItem):
38
- self.session.delete(f"{self.api_url}/processing-case-items/{instance.uuid}/")
40
+ self.session.delete(f"{self.api_url}/v1/processing-case-items/{instance.uuid}/")
39
41
 
40
42
  def filter(
41
43
  self,
42
44
  tenant_slug: str,
43
45
  filters: ProcessingCaseItemFilters,
44
46
  ) -> List[ProcessingCaseItem]:
45
- response = self.session.get(f"{self.api_url}/processing-case-items/")
47
+ response = self.session.get(f"{self.api_url}/v1/processing-case-items/")
46
48
  if response.status_code == 200:
47
49
  raw_response = response.json()
48
50
  return [
49
- ProcessingCaseItem.from_persist_dict(item)
50
- for item in raw_response.get('data', [])
51
+ ProcessingCaseItem.from_dict(camel_to_snake(item_data))
52
+ for item_data in raw_response.get('data', [])
51
53
  ]
52
54
  return []
55
+
56
+ @classmethod
57
+ def _build_processing_case_item(cls, response: Response) -> ProcessingCaseItem:
58
+ response_json = response.json()
59
+ instance_data = response_json.get('data', {})
60
+ return ProcessingCaseItem.from_dict(camel_to_snake(instance_data))
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "documente_shared"
3
- version = "0.1.81"
3
+ version = "0.1.82"
4
4
  description = "Shared utilities for Documente AI projects"
5
5
  authors = ["Tech <tech@llamitai.com>"]
6
6
  license = "MIT"