projectdavid 1.34.4__tar.gz → 1.34.6__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 projectdavid might be problematic. Click here for more details.
- {projectdavid-1.34.4 → projectdavid-1.34.6}/CHANGELOG.md +14 -0
- {projectdavid-1.34.4/src/projectdavid.egg-info → projectdavid-1.34.6}/PKG-INFO +1 -1
- {projectdavid-1.34.4 → projectdavid-1.34.6}/pyproject.toml +1 -1
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/runs.py +33 -35
- {projectdavid-1.34.4 → projectdavid-1.34.6/src/projectdavid.egg-info}/PKG-INFO +1 -1
- {projectdavid-1.34.4 → projectdavid-1.34.6}/LICENSE +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/MANIFEST.in +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/README.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/UPDATE-V133.23.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/assistants.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/code_interpretation.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/database.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/database_assistant_example.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/docker_comtainers.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/file_search.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/files.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/function_call_definition.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/function_calls.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/handling_function_calls.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/inference.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/messages.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/runs.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/streams.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/threads.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/tools.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/users.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/vector_store.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/docs/versioning.md +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/setup.cfg +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/__init__.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/_version.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/actions_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/api_key_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/assistants_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/base_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/base_vector_store.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/event_handler.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/file_processor.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/file_search.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/files_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/inference_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/messages_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/synchronous_inference_wrapper.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/threads_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/tools_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/users_client.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vector_store_manager.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vectors.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vision-file_processor.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vision_vectors.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/constants/platform.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/decorators.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/entity.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/events.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/serializers.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/services/logging_service.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/synthesis/__init__.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/synthesis/llm_synthesizer.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/synthesis/prompt.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/synthesis/reranker.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/synthesis/retriever.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/__init__.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/function_call_suppressor.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/monitor_launcher.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/peek_gate.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/run_monitor.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/vector_search_formatter.py +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid.egg-info/SOURCES.txt +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid.egg-info/dependency_links.txt +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid.egg-info/requires.txt +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid.egg-info/top_level.txt +0 -0
- {projectdavid-1.34.4 → projectdavid-1.34.6}/tests/test_clients.py +0 -0
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.34.6](https://github.com/frankie336/projectdavid/compare/v1.34.5...v1.34.6) (2025-08-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* epoch time on .create_run ([be013d4](https://github.com/frankie336/projectdavid/commit/be013d4e98724a2c252a7daa5b31bfda61253d15))
|
|
7
|
+
|
|
8
|
+
## [1.34.5](https://github.com/frankie336/projectdavid/compare/v1.34.4...v1.34.5) (2025-08-17)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* Adding update_run ([10b1c6f](https://github.com/frankie336/projectdavid/commit/10b1c6f1b7da9f77d3bd7c9478edf8f1dc41fc82))
|
|
14
|
+
|
|
1
15
|
## [1.34.4](https://github.com/frankie336/projectdavid/compare/v1.34.3...v1.34.4) (2025-08-15)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid
|
|
3
|
-
Version: 1.34.
|
|
3
|
+
Version: 1.34.6
|
|
4
4
|
Summary: Python SDK for interacting with the Entities Assistant API.
|
|
5
5
|
Author-email: Francis Neequaye Armah <francis.neequaye@projectdavid.co.uk>
|
|
6
6
|
License: PolyForm Noncommercial License 1.0.0
|
|
@@ -45,15 +45,30 @@ class RunsClient(BaseAPIClient):
|
|
|
45
45
|
meta_data: Optional[Dict[str, Any]] = None,
|
|
46
46
|
) -> ent_validator.Run:
|
|
47
47
|
"""
|
|
48
|
-
Create a run. The server
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
Returns a fully‑populated Run model (read schema).
|
|
48
|
+
Create a run. The server injects user_id from the API key.
|
|
49
|
+
We normalize all timestamp fields to epoch ints (or None).
|
|
52
50
|
"""
|
|
51
|
+
|
|
52
|
+
def _epoch(v):
|
|
53
|
+
# Accept None, int, datetime, or stringified int
|
|
54
|
+
if v is None:
|
|
55
|
+
return None
|
|
56
|
+
if isinstance(v, int):
|
|
57
|
+
return v
|
|
58
|
+
if isinstance(v, float):
|
|
59
|
+
return int(v)
|
|
60
|
+
if hasattr(v, "timestamp"): # datetime / date
|
|
61
|
+
return int(v.timestamp())
|
|
62
|
+
try:
|
|
63
|
+
return int(str(v))
|
|
64
|
+
except Exception:
|
|
65
|
+
return None
|
|
66
|
+
|
|
67
|
+
now = int(time.time())
|
|
53
68
|
if meta_data is None:
|
|
54
69
|
meta_data = {}
|
|
55
70
|
|
|
56
|
-
#
|
|
71
|
+
# Build the Pydantic payload with epoch-normalized timestamps
|
|
57
72
|
run_payload = ent_validator.RunCreate(
|
|
58
73
|
id=UtilsInterface.IdentifierService.generate_run_id(),
|
|
59
74
|
user_id=None,
|
|
@@ -61,11 +76,11 @@ class RunsClient(BaseAPIClient):
|
|
|
61
76
|
thread_id=thread_id,
|
|
62
77
|
instructions=instructions,
|
|
63
78
|
meta_data=meta_data,
|
|
64
|
-
cancelled_at=None,
|
|
65
|
-
completed_at=None,
|
|
66
|
-
created_at=
|
|
67
|
-
expires_at=
|
|
68
|
-
failed_at=None,
|
|
79
|
+
cancelled_at=_epoch(None),
|
|
80
|
+
completed_at=_epoch(None),
|
|
81
|
+
created_at=_epoch(now),
|
|
82
|
+
expires_at=_epoch(now + 3600),
|
|
83
|
+
failed_at=_epoch(None),
|
|
69
84
|
incomplete_details=None,
|
|
70
85
|
last_error=None,
|
|
71
86
|
max_completion_tokens=1000,
|
|
@@ -75,14 +90,15 @@ class RunsClient(BaseAPIClient):
|
|
|
75
90
|
parallel_tool_calls=False,
|
|
76
91
|
required_action=None,
|
|
77
92
|
response_format="text",
|
|
78
|
-
started_at=None,
|
|
93
|
+
started_at=_epoch(None),
|
|
79
94
|
status=StatusEnum.queued,
|
|
80
95
|
tool_choice="none",
|
|
81
96
|
tools=[],
|
|
82
97
|
truncation_strategy={},
|
|
83
98
|
usage=None,
|
|
84
|
-
|
|
85
|
-
|
|
99
|
+
# NOTE: your DB columns are Integer; avoid floats here to prevent truncation
|
|
100
|
+
temperature=1, # or None if you prefer to omit
|
|
101
|
+
top_p=1, # or None if you prefer to omit
|
|
86
102
|
tool_resources={},
|
|
87
103
|
)
|
|
88
104
|
|
|
@@ -91,14 +107,15 @@ class RunsClient(BaseAPIClient):
|
|
|
91
107
|
assistant_id,
|
|
92
108
|
thread_id,
|
|
93
109
|
)
|
|
94
|
-
|
|
95
110
|
logging_utility.debug("Run payload: %s", run_payload.model_dump())
|
|
96
111
|
|
|
97
112
|
try:
|
|
98
|
-
|
|
113
|
+
# Exclude None so we don't send unset fields
|
|
114
|
+
resp = self.client.post(
|
|
115
|
+
"/v1/runs", json=run_payload.model_dump(exclude_none=True)
|
|
116
|
+
)
|
|
99
117
|
resp.raise_for_status()
|
|
100
118
|
|
|
101
|
-
# Validate response with the *read* schema
|
|
102
119
|
run_out = ent_validator.Run(**resp.json())
|
|
103
120
|
logging_utility.info("Run created successfully: %s", run_out.id)
|
|
104
121
|
return run_out
|
|
@@ -148,25 +165,6 @@ class RunsClient(BaseAPIClient):
|
|
|
148
165
|
)
|
|
149
166
|
raise
|
|
150
167
|
|
|
151
|
-
def update_run(self, run_id: str, metadata: Dict[str, Any]) -> ent_validator.Run:
|
|
152
|
-
"""
|
|
153
|
-
Shallow-merge metadata into a run. Returns the updated Run.
|
|
154
|
-
"""
|
|
155
|
-
logging_utility.info("Updating metadata for run_id: %s", run_id)
|
|
156
|
-
try:
|
|
157
|
-
resp = self.client.put(f"/v1/runs/{run_id}/metadata", json=metadata)
|
|
158
|
-
resp.raise_for_status()
|
|
159
|
-
return ent_validator.Run(**resp.json())
|
|
160
|
-
except ValidationError as e:
|
|
161
|
-
logging_utility.error("Validation error: %s", e.json())
|
|
162
|
-
raise ValueError(f"Validation error: {e}")
|
|
163
|
-
except httpx.HTTPStatusError as e:
|
|
164
|
-
logging_utility.error("HTTP error updating run metadata: %s", str(e))
|
|
165
|
-
raise
|
|
166
|
-
except Exception as e:
|
|
167
|
-
logging_utility.error("Unexpected error updating run metadata: %s", str(e))
|
|
168
|
-
raise
|
|
169
|
-
|
|
170
168
|
def update_run_status(self, run_id: str, new_status: str) -> ent_validator.Run:
|
|
171
169
|
"""
|
|
172
170
|
Update the status of a run.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid
|
|
3
|
-
Version: 1.34.
|
|
3
|
+
Version: 1.34.6
|
|
4
4
|
Summary: Python SDK for interacting with the Entities Assistant API.
|
|
5
5
|
Author-email: Francis Neequaye Armah <francis.neequaye@projectdavid.co.uk>
|
|
6
6
|
License: PolyForm Noncommercial License 1.0.0
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vector_store_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/clients/vision-file_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/function_call_suppressor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid-1.34.4 → projectdavid-1.34.6}/src/projectdavid/utils/vector_search_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|