documente_shared 0.1.72b0__py3-none-any.whl → 0.1.73__py3-none-any.whl

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 (41) hide show
  1. documente_shared/__init__.py +0 -0
  2. documente_shared/application/__init__.py +0 -0
  3. documente_shared/application/digest.py +7 -7
  4. documente_shared/application/exceptions.py +23 -23
  5. documente_shared/application/files.py +22 -22
  6. documente_shared/application/time_utils.py +13 -13
  7. documente_shared/application/timezone.py +7 -7
  8. documente_shared/domain/__init__.py +0 -0
  9. documente_shared/domain/base_enum.py +53 -53
  10. documente_shared/domain/constants.py +8 -3
  11. documente_shared/domain/entities/__init__.py +0 -0
  12. documente_shared/domain/entities/document.py +348 -348
  13. documente_shared/domain/entities/document_metadata.py +63 -63
  14. documente_shared/domain/entities/in_memory_result.py +51 -51
  15. documente_shared/domain/entities/processing_case.py +145 -144
  16. documente_shared/domain/entities/processing_case_item.py +216 -216
  17. documente_shared/domain/entities/processing_event.py +49 -49
  18. documente_shared/domain/enums/__init__.py +0 -0
  19. documente_shared/domain/enums/common.py +95 -95
  20. documente_shared/domain/enums/document.py +71 -71
  21. documente_shared/domain/enums/processing_case.py +55 -54
  22. documente_shared/domain/repositories/__init__.py +0 -0
  23. documente_shared/domain/repositories/document.py +24 -24
  24. documente_shared/domain/repositories/processing_case.py +24 -24
  25. documente_shared/domain/repositories/processing_case_item.py +29 -29
  26. documente_shared/infrastructure/__init__.py +0 -0
  27. documente_shared/infrastructure/documente_client.py +20 -20
  28. documente_shared/infrastructure/dynamo_table.py +75 -75
  29. documente_shared/infrastructure/repositories/__init__.py +0 -0
  30. documente_shared/infrastructure/repositories/dynamo_document.py +43 -43
  31. documente_shared/infrastructure/repositories/dynamo_processing_case.py +43 -43
  32. documente_shared/infrastructure/repositories/dynamo_processing_case_item.py +53 -53
  33. documente_shared/infrastructure/repositories/http_processing_case.py +40 -40
  34. documente_shared/infrastructure/repositories/http_processing_case_item.py +52 -52
  35. documente_shared/infrastructure/s3_bucket.py +57 -57
  36. documente_shared/infrastructure/sqs_queue.py +47 -47
  37. {documente_shared-0.1.72b0.dist-info → documente_shared-0.1.73.dist-info}/METADATA +1 -1
  38. documente_shared-0.1.73.dist-info/RECORD +39 -0
  39. documente_shared/infrastructure/repositories/http_document_processing.py +0 -41
  40. documente_shared-0.1.72b0.dist-info/RECORD +0 -40
  41. {documente_shared-0.1.72b0.dist-info → documente_shared-0.1.73.dist-info}/WHEEL +0 -0
@@ -1,57 +1,57 @@
1
- import boto3
2
-
3
- from dataclasses import dataclass
4
- from typing import Optional
5
-
6
- from documente_shared.domain.entities.document import remove_slash_from_path
7
-
8
-
9
- def remove_none_values(data: dict) -> dict: # noqa: WPS110
10
- return {key: value for key, value in data.items() if value is not None} # noqa: WPS110
11
-
12
-
13
- @dataclass
14
- class S3Bucket(object):
15
- bucket_name: str
16
-
17
- def __post_init__(self):
18
- self._resource = boto3.resource('s3')
19
-
20
- def get(self, file_key: str) -> Optional[dict]:
21
- try:
22
- return self._resource.Object(self.bucket_name, file_key).get()
23
- except self._resource.meta.client.exceptions.NoSuchKey:
24
- return None
25
-
26
- def get_bytes(self, file_key: str) -> Optional[bytes]:
27
- cleaned_file_key = remove_slash_from_path(file_key)
28
- file_context = self.get(cleaned_file_key)
29
- if not file_context:
30
- return None
31
- return (
32
- file_context['Body'].read()
33
- if 'Body' in file_context
34
- else None
35
- )
36
-
37
- def upload(self, file_key: str, file_content, content_type: Optional[str] = None):
38
- cleaned_file_key = remove_slash_from_path(file_key)
39
- optional_params = {'ContentType': content_type}
40
- return self._resource.Object(self.bucket_name, cleaned_file_key).put(
41
- Body=file_content,
42
- **remove_none_values(optional_params),
43
- )
44
-
45
- def delete(self, file_key: str):
46
- cleaned_file_key = remove_slash_from_path(file_key)
47
- return self._resource.Object(self.bucket_name, cleaned_file_key).delete()
48
-
49
- def get_url(self, file_key: str):
50
- cleaned_file_key = remove_slash_from_path(file_key)
51
- return 'https://{bucket_url}.s3.amazonaws.com/{file_key}'.format(
52
- bucket_url=self.bucket_name,
53
- file_key=cleaned_file_key,
54
- )
55
-
56
- def read(self, file_key: str) -> bytes:
57
- return self.get(file_key)['Body'].read()
1
+ import boto3
2
+
3
+ from dataclasses import dataclass
4
+ from typing import Optional
5
+
6
+ from documente_shared.domain.entities.document import remove_slash_from_path
7
+
8
+
9
+ def remove_none_values(data: dict) -> dict: # noqa: WPS110
10
+ return {key: value for key, value in data.items() if value is not None} # noqa: WPS110
11
+
12
+
13
+ @dataclass
14
+ class S3Bucket(object):
15
+ bucket_name: str
16
+
17
+ def __post_init__(self):
18
+ self._resource = boto3.resource('s3')
19
+
20
+ def get(self, file_key: str) -> Optional[dict]:
21
+ try:
22
+ return self._resource.Object(self.bucket_name, file_key).get()
23
+ except self._resource.meta.client.exceptions.NoSuchKey:
24
+ return None
25
+
26
+ def get_bytes(self, file_key: str) -> Optional[bytes]:
27
+ cleaned_file_key = remove_slash_from_path(file_key)
28
+ file_context = self.get(cleaned_file_key)
29
+ if not file_context:
30
+ return None
31
+ return (
32
+ file_context['Body'].read()
33
+ if 'Body' in file_context
34
+ else None
35
+ )
36
+
37
+ def upload(self, file_key: str, file_content, content_type: Optional[str] = None):
38
+ cleaned_file_key = remove_slash_from_path(file_key)
39
+ optional_params = {'ContentType': content_type}
40
+ return self._resource.Object(self.bucket_name, cleaned_file_key).put(
41
+ Body=file_content,
42
+ **remove_none_values(optional_params),
43
+ )
44
+
45
+ def delete(self, file_key: str):
46
+ cleaned_file_key = remove_slash_from_path(file_key)
47
+ return self._resource.Object(self.bucket_name, cleaned_file_key).delete()
48
+
49
+ def get_url(self, file_key: str):
50
+ cleaned_file_key = remove_slash_from_path(file_key)
51
+ return 'https://{bucket_url}.s3.amazonaws.com/{file_key}'.format(
52
+ bucket_url=self.bucket_name,
53
+ file_key=cleaned_file_key,
54
+ )
55
+
56
+ def read(self, file_key: str) -> bytes:
57
+ return self.get(file_key)['Body'].read()
@@ -1,48 +1,48 @@
1
- import json
2
- import boto3
3
-
4
- from dataclasses import dataclass
5
-
6
-
7
- @dataclass
8
- class SQSQueue(object):
9
- queue_url: str
10
- visibility_timeout: int = 60 * 10
11
- waiting_timeout: int = 20
12
-
13
- def __post_init__(self):
14
- self._client = boto3.client('sqs')
15
-
16
- def send_message(
17
- self,
18
- payload: dict,
19
- message_attributes: dict = None,
20
- delay_seconds: dict = None,
21
- message_group_id: dict = None,
22
- message_deduplication_id: dict =None,
23
- ):
24
- message_params = {
25
- 'QueueUrl': self.queue_url,
26
- 'MessageBody': json.dumps(payload),
27
- 'MessageAttributes': message_attributes,
28
- 'DelaySeconds': delay_seconds,
29
- 'MessageGroupId': message_group_id,
30
- 'MessageDeduplicationId': message_deduplication_id,
31
- }
32
- clean_params = {key: value for key, value in message_params.items() if value}
33
- return self._client.send_message(**clean_params)
34
-
35
- def delete_message(self, receipt_handle: str):
36
- return self._client.delete_message(
37
- QueueUrl=self.queue_url,
38
- ReceiptHandle=receipt_handle
39
- )
40
-
41
- def fetch_messages(self, num_messages: int = 1) -> list[dict]:
42
- response = self._client.receive_message(
43
- QueueUrl=self.queue_url,
44
- MaxNumberOfMessages=num_messages,
45
- VisibilityTimeout=self.visibility_timeout,
46
- WaitTimeSeconds=self.waiting_timeout,
47
- )
1
+ import json
2
+ import boto3
3
+
4
+ from dataclasses import dataclass
5
+
6
+
7
+ @dataclass
8
+ class SQSQueue(object):
9
+ queue_url: str
10
+ visibility_timeout: int = 60 * 10
11
+ waiting_timeout: int = 20
12
+
13
+ def __post_init__(self):
14
+ self._client = boto3.client('sqs')
15
+
16
+ def send_message(
17
+ self,
18
+ payload: dict,
19
+ message_attributes: dict = None,
20
+ delay_seconds: dict = None,
21
+ message_group_id: dict = None,
22
+ message_deduplication_id: dict =None,
23
+ ):
24
+ message_params = {
25
+ 'QueueUrl': self.queue_url,
26
+ 'MessageBody': json.dumps(payload),
27
+ 'MessageAttributes': message_attributes,
28
+ 'DelaySeconds': delay_seconds,
29
+ 'MessageGroupId': message_group_id,
30
+ 'MessageDeduplicationId': message_deduplication_id,
31
+ }
32
+ clean_params = {key: value for key, value in message_params.items() if value}
33
+ return self._client.send_message(**clean_params)
34
+
35
+ def delete_message(self, receipt_handle: str):
36
+ return self._client.delete_message(
37
+ QueueUrl=self.queue_url,
38
+ ReceiptHandle=receipt_handle
39
+ )
40
+
41
+ def fetch_messages(self, num_messages: int = 1) -> list[dict]:
42
+ response = self._client.receive_message(
43
+ QueueUrl=self.queue_url,
44
+ MaxNumberOfMessages=num_messages,
45
+ VisibilityTimeout=self.visibility_timeout,
46
+ WaitTimeSeconds=self.waiting_timeout,
47
+ )
48
48
  return response.get('Messages', [])
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: documente_shared
3
- Version: 0.1.72b0
3
+ Version: 0.1.73
4
4
  Summary: Shared utilities for Documente AI projects
5
5
  License: MIT
6
6
  Author: Tech
@@ -0,0 +1,39 @@
1
+ documente_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ documente_shared/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ documente_shared/application/digest.py,sha256=Um6E8WfFri2_lly4RFWydJyvSfPZGFcOX-opEOzDCWc,172
4
+ documente_shared/application/exceptions.py,sha256=lQM8m7wmI9OTLGva0gd7s7YT7ldaTk_Ln4t32PpzNf8,654
5
+ documente_shared/application/files.py,sha256=ADiWi6Mk3YQGx3boGsDqdb5wk8qmabkGRy7bhNFa1OY,649
6
+ documente_shared/application/time_utils.py,sha256=_fxgh8VoGPkdsft47COJ16vFwt8pMbHIJCgDFHLSlrU,435
7
+ documente_shared/application/timezone.py,sha256=NHpzTzOPD_fWQiJ4BrRqt_TIDs5XyB5ZMR7x8vUk8gQ,183
8
+ documente_shared/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ documente_shared/domain/base_enum.py,sha256=DojAfn-zQdtjtImeHUpBzE6TBTm07XrbMOdW3h8RVd8,1449
10
+ documente_shared/domain/constants.py,sha256=NG5BGaXBr_FnzudjTRPxpDpyiSDdaB_PLCdlYlFUQeU,187
11
+ documente_shared/domain/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
+ documente_shared/domain/entities/document.py,sha256=AthTUyA-QZE3WAT7lMoKVr_Z8mO_3qERuCnZge0DTLQ,12595
13
+ documente_shared/domain/entities/document_metadata.py,sha256=ygyFIC5qwxlm8DUM5kvVFny9zJfPQS8vNLM2br5XsQ8,2353
14
+ documente_shared/domain/entities/in_memory_result.py,sha256=Q1E9vnLL5Hz5xunOqWtQmJOMjoK5KN42LZr18GlBAZo,1246
15
+ documente_shared/domain/entities/processing_case.py,sha256=3bL6BgFwWe6F5keZ6A1K_lLsrwGpkcKg98roM_i6kEQ,5167
16
+ documente_shared/domain/entities/processing_case_item.py,sha256=hglyPhZBSjlMKVdEVccyHXU3aQRdZ8hfZlXDJnkf7wA,7996
17
+ documente_shared/domain/entities/processing_event.py,sha256=m1O0gcNaE_SszeIhxM3uYPHSpyOUmize6mfRw1_bYZo,1723
18
+ documente_shared/domain/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ documente_shared/domain/enums/common.py,sha256=vXldMUPhhWo0PfTgYwDSjI8bur_lYcImZYiV7yAO7DQ,2262
20
+ documente_shared/domain/enums/document.py,sha256=NltZA1YVgJ7dVfSQdJFIE0ZUGf9Y-nxNXsVQ6GiPLL4,1827
21
+ documente_shared/domain/enums/processing_case.py,sha256=LhFhcoWlockxcpplsVdC6M2kpXn7sOdzQySf24wFhx8,1572
22
+ documente_shared/domain/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ documente_shared/domain/repositories/document.py,sha256=vJzr6c92gqBzyhaEdjrvnoneKRrWmJ0AsvocPnhxiLU,767
24
+ documente_shared/domain/repositories/processing_case.py,sha256=E2AivKrtoWdGiI9XLZp6-8xN7YZrd_is8jl3GOyYYvQ,726
25
+ documente_shared/domain/repositories/processing_case_item.py,sha256=XZLmYsHkaJ0gyMlACHZX2FywxdcH9oJ6-rvWdJgWpbs,957
26
+ documente_shared/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ documente_shared/infrastructure/documente_client.py,sha256=UjVWs9DKa-yhw5DVbcEs8iJxalHOarusVayi_ob6QhE,494
28
+ documente_shared/infrastructure/dynamo_table.py,sha256=TMQbcuty7wjDMbuhI8PbT0IGXelgELsNTtqTEQeZ824,2112
29
+ documente_shared/infrastructure/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ documente_shared/infrastructure/repositories/dynamo_document.py,sha256=_Yp4gtA-n-hJ2w2wAM5BMCs2Mf46Q2Kq3eHqlxudkL4,1443
31
+ documente_shared/infrastructure/repositories/dynamo_processing_case.py,sha256=UJcROnmfKvE5k_GZOHvaYDvnNSX4Rm22xCB7tUaUUEU,1386
32
+ documente_shared/infrastructure/repositories/dynamo_processing_case_item.py,sha256=reHtgWmLXbLhWUw14sG22Mj7RVzs8XZmTt13kElUcpA,1812
33
+ documente_shared/infrastructure/repositories/http_processing_case.py,sha256=0etYPjeWW2bWvKtBvgeaZQxj-qw91T228biIbJSGsGo,1683
34
+ documente_shared/infrastructure/repositories/http_processing_case_item.py,sha256=2-I2Oq4PFI1WsSnOzNC5OlqU1NE2QdZ5X3U_CjA-cls,2187
35
+ documente_shared/infrastructure/s3_bucket.py,sha256=vT_yN42RFQXubtUn8ln-j13Os_-25UGClVtXg5Bkv6I,1932
36
+ documente_shared/infrastructure/sqs_queue.py,sha256=KZWeHZ9zmXmrxoNpOQX7GEdDhZ1knbPXgwSwFwJblGg,1504
37
+ documente_shared-0.1.73.dist-info/METADATA,sha256=KVhxyT5zo7u_nG8RjY2pzflZ3SvZxyw_4-KQNu-QCIs,881
38
+ documente_shared-0.1.73.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
39
+ documente_shared-0.1.73.dist-info/RECORD,,
@@ -1,41 +0,0 @@
1
- from dataclasses import dataclass
2
- from typing import List, Optional
3
-
4
- from documente_shared.domain.entities.documet import DocumentProcessing
5
- from documente_shared.domain.enums.common import ProcessingStatus, DocumentProcessingCategory
6
- from documente_shared.domain.repositories.document_processing import DocumentProcessingRepository
7
- from documente_shared.infrastructure.documente_client import DocumenteClientMixin
8
-
9
- class HttpDocumentProcessingRepository(
10
- DocumenteClientMixin,
11
- DocumentProcessingRepository,
12
- ):
13
- def find(self, digest: str) -> Optional[DocumentProcessing]:
14
- response = self.session.get(f"{self.base_url}/documents/{digest}/")
15
- if response.status_code == 200:
16
- return DocumentProcessing.from_dict(response.json())
17
- return None
18
-
19
- def persist(self, instance: DocumentProcessing) -> DocumentProcessing:
20
- response = self.session.put(
21
- url=f"{self.base_url}/documents/{instance.uuid}/",
22
- json=instance.to_simple_dict,
23
- )
24
- if response.status_code in [200, 201]:
25
- return DocumentProcessing.from_dict(response.json())
26
- return instance
27
-
28
- def remove(self, instance: DocumentProcessing):
29
- self.session.delete(f"{self.base_url}/documents/{instance.uuid}/")
30
-
31
- def filter(self, statuses: List[ProcessingStatus]) -> List[DocumentProcessing]:
32
- response = self.session.get(f"{self.base_url}/processing-cases/{statuses}/")
33
- if response.status_code == 200:
34
- raw_response = response.json()
35
- return [
36
- DocumentProcessing.from_dict(item)
37
- for item in raw_response.get('data', [])
38
- ]
39
- return []
40
-
41
-
@@ -1,40 +0,0 @@
1
- documente_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- documente_shared/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- documente_shared/application/digest.py,sha256=9T5e5SC1EKYrIjcmzqnlG29pyjJl29q0kdNl-zgsmws,179
4
- documente_shared/application/exceptions.py,sha256=zrV-wPYXLFUQhA_0hoXKnFAhNntNG17oGB_MU_YhtIg,677
5
- documente_shared/application/files.py,sha256=EOm6TQWXXjlX-6dQeY2__GdVrzeMDZVnoPU_bVtZDB0,671
6
- documente_shared/application/time_utils.py,sha256=YBgiJfVdLo2IlgS2Kxp24DY5AwSByDqZ3QjiaOwPKGs,448
7
- documente_shared/application/timezone.py,sha256=RlLmdvGlMJ-TSfGrTRm1wlJPwpc-_bu9RtWwdKYIPfo,190
8
- documente_shared/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
- documente_shared/domain/base_enum.py,sha256=KihiZGq1ylvQaWjEWtPHCAw9uFpFWsu8eJtLB_nwaWs,1502
10
- documente_shared/domain/constants.py,sha256=lws6A8b4KM2ch9DAh4Xvpvi_1oWNf_cc0kL3NwpMUOc,58
11
- documente_shared/domain/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
- documente_shared/domain/entities/document.py,sha256=8iLXzJ0qcy1LAgztsTyOzk_DthgJddH5xyTATS5sShw,12943
13
- documente_shared/domain/entities/document_metadata.py,sha256=QXFy0UemTrECVUFWpsE9o-ZI5Va7QHjvyhNA55a-n9s,2416
14
- documente_shared/domain/entities/in_memory_result.py,sha256=wG_yWdDglt3BMW0mtc2YFZwBeTrx4_2H92IuqaMK01Q,1297
15
- documente_shared/domain/entities/processing_case.py,sha256=RlvG2ioQ439PeKcpjczLcwipMYsOVOriT6B1aPzW0OM,5301
16
- documente_shared/domain/entities/processing_case_item.py,sha256=4TIAJPviUSY77pHWlXZ36R3hkziuHiKpZj9YsXA5NEs,8212
17
- documente_shared/domain/entities/processing_event.py,sha256=oCi5ym5HcmACKFYoExXEq8pgVAskx7jAttpsvptTGLQ,1772
18
- documente_shared/domain/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- documente_shared/domain/enums/common.py,sha256=fxLkGAfJStNmJDBN6jyLXDD_d3T65DZqZCgSFVRDQ0s,2357
20
- documente_shared/domain/enums/document.py,sha256=GlAUn_Rq0wzf98iQQNBxQRO6n-0_1LjRm6zYIi2irj0,1898
21
- documente_shared/domain/enums/processing_case.py,sha256=3cJ8gLcqWqKtohW1kd1PiGGXx13SkY80mnSTInDutMA,1600
22
- documente_shared/domain/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
- documente_shared/domain/repositories/document.py,sha256=SSqc3zuVpCfnr3OdRj5huREiOYvlID7JSmuFHDtEeg4,791
24
- documente_shared/domain/repositories/processing_case.py,sha256=xF16EoarAaSmH54w50yBaDwNWrAasZXCEb2q2gxKoOk,753
25
- documente_shared/domain/repositories/processing_case_item.py,sha256=zOZvjc4Vfc9avgMNr0GEMiCD5fgKB9KJUVhRalbA_Rs,986
26
- documente_shared/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
- documente_shared/infrastructure/documente_client.py,sha256=iuwpNBa9H02a36xqDRt8ffT3KlIMkHkV4mt0RtuvZXo,515
28
- documente_shared/infrastructure/dynamo_table.py,sha256=Kdz2iViRb5C7wlfbBDp-JDcu2dq_MY1io3gB1uLff0A,2187
29
- documente_shared/infrastructure/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- documente_shared/infrastructure/repositories/dynamo_document.py,sha256=-zf33Dey17_IPsqpUeczZyD2MGzzK9LfV6j-8iQLYPY,1486
31
- documente_shared/infrastructure/repositories/dynamo_processing_case.py,sha256=kV1D6T19BW9veUyDIgcijelndiGO5e1tOinBGV8S908,1444
32
- documente_shared/infrastructure/repositories/dynamo_processing_case_item.py,sha256=AghVYUMr9sFG3-pz1A2YctBDxKe1P9447tjhomdHbWI,1865
33
- documente_shared/infrastructure/repositories/http_document_processing.py,sha256=vDFFz3yCLscXt-lyMSNOFMeZdfq6D4lLj_ndG4CSNGM,1752
34
- documente_shared/infrastructure/repositories/http_processing_case.py,sha256=oRDn-A2HCDJsEfDL4lyh4jrTQ_oTLEazCBQeIUYnYKw,1675
35
- documente_shared/infrastructure/repositories/http_processing_case_item.py,sha256=LZXf_FG9OZT51DbOYPupT1pGdhRsC8IOEo1nnib4yeo,2244
36
- documente_shared/infrastructure/s3_bucket.py,sha256=qPCBpheM1qvtC08vynlwIGJZCCOhefFcD3Q3ClusXmM,1989
37
- documente_shared/infrastructure/sqs_queue.py,sha256=UcjrT23JpK1Em9f0qbxI7oYnCPUD7Ll1aJ4JICcqPRo,1551
38
- documente_shared-0.1.72b0.dist-info/METADATA,sha256=0QOi_tenMNop-s7L3Grz-u3PnFUrxdUQwupWownkeGg,883
39
- documente_shared-0.1.72b0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
40
- documente_shared-0.1.72b0.dist-info/RECORD,,