clerk-sdk 0.4.0__py3-none-any.whl → 0.4.2__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.
clerk/client.py CHANGED
@@ -1,7 +1,7 @@
1
1
  from typing import Any, Dict, List, Literal
2
2
 
3
3
  from clerk.base import BaseClerk
4
- from clerk.models.document import Document, UploadDocumentRequest
4
+ from clerk.models.document import Document, GetDocumentsRequest, UploadDocumentRequest
5
5
  from .models.file import ParsedFile, UploadFile
6
6
 
7
7
 
@@ -28,6 +28,27 @@ class Clerk(BaseClerk):
28
28
  res = self.get_request(endpoint=endpoint)
29
29
  return Document(**res.data[0])
30
30
 
31
+ def get_documents(self, request: GetDocumentsRequest) -> List[Document]:
32
+ if not any(
33
+ [
34
+ request.organization_id,
35
+ request.project_id,
36
+ request.start_date,
37
+ request.end_date,
38
+ request.query,
39
+ request.include_statuses,
40
+ ]
41
+ ):
42
+ raise ValueError(
43
+ "At least one query parameter (organization_id, project_id, start_date, end_date, query, or include_statuses) must be provided."
44
+ )
45
+
46
+ endpoint = f"/documents"
47
+ params = request.model_dump(mode="json")
48
+ res = self.get_request(endpoint, params=params)
49
+
50
+ return [Document(**d) for d in res.data]
51
+
31
52
  def get_files_document(self, document_id: str) -> List[ParsedFile]:
32
53
  endpoint = f"/document/{document_id}/files"
33
54
  res = self.get_request(endpoint=endpoint)
@@ -13,7 +13,9 @@ output_pkl: str = "/app/data/output/output.pkl"
13
13
  def clerk_code():
14
14
  def decorator(func: Callable[[ClerkCodePayload], ClerkCodePayload]):
15
15
  @wraps(func)
16
- def wrapper(payload: Optional[ClerkCodePayload] = None) -> ClerkCodePayload:
16
+ def wrapper(
17
+ payload: Optional[ClerkCodePayload] = None,
18
+ ) -> ClerkCodePayload | None:
17
19
  # 1. Load payload from file if not provided
18
20
  use_pickle = False
19
21
  output: ClerkCodePayload | BaseException | None = None
@@ -57,6 +59,7 @@ def clerk_code():
57
59
  message=str(e),
58
60
  traceback=traceback.format_exc(),
59
61
  )
62
+ output = error_info
60
63
 
61
64
  # 3. write to output.pkl
62
65
  try:
@@ -88,9 +91,6 @@ def clerk_code():
88
91
  if isinstance(output, Exception):
89
92
  raise output
90
93
 
91
- if output is None:
92
- raise RuntimeError("output object cannot be None")
93
-
94
94
  return output
95
95
 
96
96
  return wrapper
clerk/models/document.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from datetime import datetime
2
+ import json
2
3
  import mimetypes
3
4
  import os
4
5
  from typing import Any, Dict, List, Optional
@@ -28,6 +29,7 @@ class UploadDocumentRequest(BaseModel):
28
29
  message_subject: Optional[str] = None
29
30
  message_content: Optional[str] = None
30
31
  files: List[str | ParsedFile] = []
32
+ input_structured_data: Dict[str, Any] | None = None
31
33
 
32
34
  def _define_files(self):
33
35
  formatted_files: List[
@@ -70,12 +72,35 @@ class UploadDocumentRequest(BaseModel):
70
72
 
71
73
  @property
72
74
  def data(self) -> Dict[str, Any]:
75
+
76
+ serialized_input_structured_data: str | None = None
77
+ if self.input_structured_data:
78
+ try:
79
+ serialized_input_structured_data = json.dumps(
80
+ self.input_structured_data
81
+ )
82
+ except Exception as e:
83
+ raise ValueError(
84
+ f"`input_structured_data` is not JSON serializable: {e}"
85
+ )
86
+
73
87
  return dict(
74
88
  project_id=self.project_id,
75
89
  message_subject=self.message_subject,
76
90
  mesasge_content=self.message_content,
91
+ input_structured_data=serialized_input_structured_data,
77
92
  )
78
93
 
79
94
  @property
80
95
  def files_(self):
81
96
  return self._define_files()
97
+
98
+
99
+ class GetDocumentsRequest(BaseModel):
100
+ organization_id: str | None = None
101
+ project_id: str | None = None
102
+ start_date: datetime | None = None
103
+ end_date: datetime | None = None
104
+ query: str | None = None
105
+ include_statuses: List[DocumentStatuses] | None = None
106
+ limit: int = 50
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: clerk-sdk
3
- Version: 0.4.0
3
+ Version: 0.4.2
4
4
  Summary: Library for interacting with Clerk
5
5
  Home-page: https://github.com/F-ONE-Group/clerk_pypi
6
6
  Author: F-ONE Group
@@ -1,9 +1,9 @@
1
1
  clerk/__init__.py,sha256=LWpbImG7352mUJYC1tRm_zsn5rnt4sFl5ldoq5f0dlo,26
2
2
  clerk/base.py,sha256=S1RKc2pBw2FPlVjefJzsNtyTDPB0UG46C2K_QVV1opA,4008
3
- clerk/client.py,sha256=cgDOO9fRfJAoV5_r6PCoPWoAY0OwoeEMT3cEkzUSZOI,1612
3
+ clerk/client.py,sha256=Ma6nCICRBjgdcntPaEJv8baMBr7zftKeLcEzfD634eA,2368
4
4
  clerk/decorator/__init__.py,sha256=yGGcS17VsZ7cZ-hVGCm3I3vGDJMiJIAqmDGzriIi0DI,65
5
5
  clerk/decorator/models.py,sha256=PiAugPvX1c6BQBWtfhyh5k9Uau2OJNDIx7T1TLz7ZFY,409
6
- clerk/decorator/task_decorator.py,sha256=YgE6flNBtz7b1_hCeM_PULurktuA7sHTaX0yly_eg3A,3798
6
+ clerk/decorator/task_decorator.py,sha256=H8caRvNvvl-IRwyREP66gBGVM-SpQJ1W7oAFImO-6Jw,3769
7
7
  clerk/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  clerk/exceptions/exceptions.py,sha256=gSCma06b6W6c0NrA2rhzd5YjFhZGa6caShX07lo-_3E,1291
9
9
  clerk/exceptions/remote_device.py,sha256=R0Vfmk8ejibEFeV29A8Vqst2YA6yxdqEX9lP5wWubgM,134
@@ -37,7 +37,7 @@ clerk/gui_automation/ui_state_machine/exceptions.py,sha256=9KWg20dnCssMdMu632E0n
37
37
  clerk/gui_automation/ui_state_machine/models.py,sha256=oNmfHtjqgRkUAxPnQ8R5-IR-K_FCeg3NU6aqjVSnThI,1407
38
38
  clerk/gui_automation/ui_state_machine/state_machine.py,sha256=u2wJqu5WxmZHkzlIHTgK_icZUw3yv9nNuZkh9IaqmXI,35622
39
39
  clerk/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- clerk/models/document.py,sha256=m9ccAQdy1G-ZgUT-a44TMgIVAp4he-90uYjVPqwgO98,2193
40
+ clerk/models/document.py,sha256=SdHLuX01yQ1std-o25Wso5sq7HQznV7-SN8azVzyczQ,3036
41
41
  clerk/models/document_statuses.py,sha256=ytTQhgACs2m22qz51_7Ti0IxzbVyl-fl7uF7CnDEyLA,279
42
42
  clerk/models/file.py,sha256=wfMGoNTsIBFxpPUzOTOkUYZ-FGxXg6n2mZhDCBt6Jbc,733
43
43
  clerk/models/remote_device.py,sha256=2jijS-9WWq7y6xIbAaDaPnzZo3-tjp2-dCQvNKP8YSU,109
@@ -46,8 +46,8 @@ clerk/models/ui_operator.py,sha256=mKTJUFZgv7PeEt5oys28HVZxHOJsofmRQOcRpqj0dbU,2
46
46
  clerk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  clerk/utils/logger.py,sha256=vHbp-lUK3W3c5fhyPsp05p9LGyDHj95v8XM_XQ_FlLc,3691
48
48
  clerk/utils/save_artifact.py,sha256=94aYkYNVGcSUaSWZmdjiY6Oc-3yCKb2XWCZ56IAXQqk,1158
49
- clerk_sdk-0.4.0.dist-info/licenses/LICENSE,sha256=GTVQl3vH6ht70wJXKC0yMT8CmXKHxv_YyO_utAgm7EA,1065
50
- clerk_sdk-0.4.0.dist-info/METADATA,sha256=UJfJ-qzwDHYlfxA1ypJOffGSqm_Jgy-0a6u4Gi0O-as,3508
51
- clerk_sdk-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
- clerk_sdk-0.4.0.dist-info/top_level.txt,sha256=99eQiU6d05_-f41tmSFanfI_SIJeAdh7u9m3LNSfcv4,6
53
- clerk_sdk-0.4.0.dist-info/RECORD,,
49
+ clerk_sdk-0.4.2.dist-info/licenses/LICENSE,sha256=GTVQl3vH6ht70wJXKC0yMT8CmXKHxv_YyO_utAgm7EA,1065
50
+ clerk_sdk-0.4.2.dist-info/METADATA,sha256=diOx_nGZ1b1fmBU6_Bu_WKpnf30RVc5FiY3Zf8kL3GU,3508
51
+ clerk_sdk-0.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
52
+ clerk_sdk-0.4.2.dist-info/top_level.txt,sha256=99eQiU6d05_-f41tmSFanfI_SIJeAdh7u9m3LNSfcv4,6
53
+ clerk_sdk-0.4.2.dist-info/RECORD,,