documente_shared 0.1.27__py3-none-any.whl → 0.1.28__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.

File without changes
@@ -4,6 +4,7 @@ from decimal import Decimal
4
4
  from typing import Optional, List
5
5
 
6
6
  from documente_shared.application.time_utils import get_datetime_from_data
7
+ from documente_shared.domain.entities.document_process_metadata import DocumentProcessMetadata
7
8
  from documente_shared.domain.enums import (
8
9
  DocumentProcessStatus,
9
10
  DocumentProcessSubCategory,
@@ -19,7 +20,6 @@ def remove_slash_from_path(path: str) -> str:
19
20
  class DocumentProcess(object):
20
21
  digest: str
21
22
  status: DocumentProcessStatus
22
- metadata: Optional[dict] = None
23
23
  file_path: Optional[str] = None
24
24
  file_bytes: Optional[bytes] = None
25
25
  category: Optional[DocumentProcessCategory] = None
@@ -34,9 +34,10 @@ class DocumentProcess(object):
34
34
  started_at: Optional[datetime] = None
35
35
  failed_at: Optional[datetime] = None
36
36
  completed_at: Optional[datetime] = None
37
+ metadata_items: Optional[List[DocumentProcessMetadata]] = None
37
38
 
38
39
  def __post_init__(self):
39
- self.metadata = self.metadata or {}
40
+ self.metadata_items = self.metadata_items or []
40
41
 
41
42
  @property
42
43
  def is_pending(self) -> bool:
@@ -111,7 +112,6 @@ class DocumentProcess(object):
111
112
  return {
112
113
  'digest': self.digest,
113
114
  'status': str(self.status),
114
- 'metadata': self.metadata,
115
115
  'file_path': self.file_path,
116
116
  'category': (
117
117
  str(self.category)
@@ -132,6 +132,7 @@ class DocumentProcess(object):
132
132
  'started_at': self.started_at.isoformat() if self.started_at else None,
133
133
  'failed_at': self.failed_at.isoformat() if self.failed_at else None,
134
134
  'completed_at': self.completed_at.isoformat() if self.completed_at else None,
135
+ 'metadata_items': [metadata.to_dict for metadata in self.metadata_items],
135
136
  }
136
137
 
137
138
  def overload(
@@ -157,7 +158,6 @@ class DocumentProcess(object):
157
158
  return cls(
158
159
  digest=data.get('digest'),
159
160
  status=DocumentProcessStatus.from_value(data.get('status')),
160
- metadata=data.get('metadata', {}),
161
161
  file_path=data.get('file_path'),
162
162
  category=(
163
163
  DocumentProcessCategory.from_value(data.get('category'))
@@ -178,4 +178,8 @@ class DocumentProcess(object):
178
178
  started_at=get_datetime_from_data(input_datetime=data.get('started_at')),
179
179
  failed_at=get_datetime_from_data(input_datetime=data.get('failed_at')),
180
180
  completed_at=get_datetime_from_data(input_datetime=data.get('completed_at')),
181
+ metadata_items=[
182
+ DocumentProcessMetadata.from_dict(metadata)
183
+ for metadata in data.get('metadata_items', [])
184
+ ],
181
185
  )
@@ -0,0 +1,65 @@
1
+ from dataclasses import dataclass
2
+ from datetime import datetime
3
+ from typing import Optional
4
+
5
+
6
+ @dataclass
7
+ class DocumentProcessMetadata(object):
8
+ publication_date: Optional[datetime] = None
9
+ num_circular: Optional[str] = None
10
+ asfi_identifier: Optional[str] = None
11
+ contains_tables: Optional[bool] = None
12
+ text_content: Optional[str] = None
13
+ case_name: Optional[str] = None
14
+ starting_office: Optional[str] = None
15
+ output_json: Optional[dict] = None
16
+ processing_time: Optional[float] = None
17
+ llm_model: Optional[str] = None
18
+ num_pages: Optional[float] = None
19
+ num_tokens: Optional[float] = None
20
+ citcular_type: Optional[str] = None
21
+
22
+
23
+ @property
24
+ def to_dict(self):
25
+ return {
26
+ 'publication_date': (
27
+ self.publication_date.isoformat()
28
+ if self.publication_date
29
+ else None
30
+ ),
31
+ 'num_circular': self.num_circular,
32
+ 'asfi_identifier': self.asfi_identifier,
33
+ 'contains_tables': self.contains_tables,
34
+ 'text_content': self.text_content,
35
+ 'case_name': self.case_name,
36
+ 'starting_office': self.starting_office,
37
+ 'output_json': self.output_json,
38
+ 'processing_time': self.processing_time,
39
+ 'llm_model': self.llm_model,
40
+ 'num_pages': self.num_pages,
41
+ 'num_tokens': self.num_tokens,
42
+ 'citcular_type': self.citcular_type
43
+ }
44
+
45
+ @classmethod
46
+ def from_dict(cls, data: dict):
47
+ return cls(
48
+ publication_date=(
49
+ datetime.fromisoformat(data.get('publication_date'))
50
+ if data.get('publication_date')
51
+ else None
52
+ ),
53
+ num_circular=data.get('num_circular'),
54
+ asfi_identifier=data.get('asfi_identifier'),
55
+ contains_tables=data.get('contains_tables'),
56
+ text_content=data.get('text_content'),
57
+ case_name=data.get('case_name'),
58
+ starting_office=data.get('starting_office'),
59
+ output_json=data.get('output_json'),
60
+ processing_time=data.get('processing_time'),
61
+ llm_model=data.get('llm_model'),
62
+ num_pages=data.get('num_pages'),
63
+ num_tokens=data.get('num_tokens'),
64
+ citcular_type=data.get('citcular_type')
65
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: documente_shared
3
- Version: 0.1.27
3
+ Version: 0.1.28
4
4
  Summary: Shared utilities for Documente AI projects
5
5
  License: MIT
6
6
  Author: Tech
@@ -4,7 +4,9 @@ documente_shared/application/digest.py,sha256=Um6E8WfFri2_lly4RFWydJyvSfPZGFcOX-
4
4
  documente_shared/application/time_utils.py,sha256=XDH27cKgoTFO8ad1JgrxKaeT7sZ1fduuJqLkvHUjy-Q,309
5
5
  documente_shared/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  documente_shared/domain/base_enum.py,sha256=DojAfn-zQdtjtImeHUpBzE6TBTm07XrbMOdW3h8RVd8,1449
7
- documente_shared/domain/entities.py,sha256=itAfic52aUFUZabcspSk8d5IJ3Eo4hLyRl8ZxsTtpZE,6430
7
+ documente_shared/domain/entities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ documente_shared/domain/entities/document_process.py,sha256=ioWAyXvz-ORgkaZZzPsBibSOM6Kpo_ScIhQInNjHf7M,6735
9
+ documente_shared/domain/entities/document_process_metadata.py,sha256=rBHkDkoKwrxReKtXIScU1vrCO_6bg2LwWhrtXMcQ8TA,2351
8
10
  documente_shared/domain/enums.py,sha256=s3bFDkpplWvJWNpUwPOkC9a3OYUYsx8uTusN_FrzNQk,463
9
11
  documente_shared/domain/repositories.py,sha256=EekvB2BE4AnT5myEhU3DfwHfF9MkNJZRbqRVGFxCEWM,509
10
12
  documente_shared/infrastructure/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -12,6 +14,6 @@ documente_shared/infrastructure/dynamo_repositories.py,sha256=WULK8_N7PjA397vXTZ
12
14
  documente_shared/infrastructure/dynamo_table.py,sha256=Lod8vwUCGX65SNH_8hvlpG6rRUYb4jfZqoFHD1YloAA,2096
13
15
  documente_shared/infrastructure/s3_bucket.py,sha256=RwcEyYPUUXQ0fFR-Zr1KfkFGGpO6qAIfZ70CWHu1V8M,1923
14
16
  documente_shared/infrastructure/sqs_queue.py,sha256=PSiTAnjXvQ-W-9mzLpH2UjbQJTvYkMiaxNaMecF-cR4,1505
15
- documente_shared-0.1.27.dist-info/METADATA,sha256=sXO5zKOY9F9NhkSSUEKMu6RJj9wN2ytHB4EzOB5vtaA,640
16
- documente_shared-0.1.27.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
17
- documente_shared-0.1.27.dist-info/RECORD,,
17
+ documente_shared-0.1.28.dist-info/METADATA,sha256=2Q2xK6OmOJzCJjFWg-sJ_Cyoz0a_ZcLoq0RKptXQ4q8,640
18
+ documente_shared-0.1.28.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
19
+ documente_shared-0.1.28.dist-info/RECORD,,