projectdavid 1.34.5__tar.gz → 1.34.7__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.

Files changed (72) hide show
  1. {projectdavid-1.34.5 → projectdavid-1.34.7}/CHANGELOG.md +14 -0
  2. {projectdavid-1.34.5/src/projectdavid.egg-info → projectdavid-1.34.7}/PKG-INFO +2 -2
  3. {projectdavid-1.34.5 → projectdavid-1.34.7}/pyproject.toml +2 -2
  4. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/runs.py +33 -58
  5. {projectdavid-1.34.5 → projectdavid-1.34.7/src/projectdavid.egg-info}/PKG-INFO +2 -2
  6. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid.egg-info/requires.txt +1 -1
  7. {projectdavid-1.34.5 → projectdavid-1.34.7}/LICENSE +0 -0
  8. {projectdavid-1.34.5 → projectdavid-1.34.7}/MANIFEST.in +0 -0
  9. {projectdavid-1.34.5 → projectdavid-1.34.7}/README.md +0 -0
  10. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/UPDATE-V133.23.md +0 -0
  11. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/assistants.md +0 -0
  12. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/code_interpretation.md +0 -0
  13. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/database.md +0 -0
  14. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/database_assistant_example.md +0 -0
  15. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/docker_comtainers.md +0 -0
  16. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/file_search.md +0 -0
  17. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/files.md +0 -0
  18. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/function_call_definition.md +0 -0
  19. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/function_calls.md +0 -0
  20. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/handling_function_calls.md +0 -0
  21. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/inference.md +0 -0
  22. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/messages.md +0 -0
  23. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/runs.md +0 -0
  24. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/streams.md +0 -0
  25. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/threads.md +0 -0
  26. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/tools.md +0 -0
  27. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/users.md +0 -0
  28. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/vector_store.md +0 -0
  29. {projectdavid-1.34.5 → projectdavid-1.34.7}/docs/versioning.md +0 -0
  30. {projectdavid-1.34.5 → projectdavid-1.34.7}/setup.cfg +0 -0
  31. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/__init__.py +0 -0
  32. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/_version.py +0 -0
  33. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/actions_client.py +0 -0
  34. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/api_key_client.py +0 -0
  35. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/assistants_client.py +0 -0
  36. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/base_client.py +0 -0
  37. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/base_vector_store.py +0 -0
  38. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/event_handler.py +0 -0
  39. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/file_processor.py +0 -0
  40. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/file_search.py +0 -0
  41. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/files_client.py +0 -0
  42. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/inference_client.py +0 -0
  43. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/messages_client.py +0 -0
  44. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/synchronous_inference_wrapper.py +0 -0
  45. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/threads_client.py +0 -0
  46. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/tools_client.py +0 -0
  47. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/users_client.py +0 -0
  48. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/vector_store_manager.py +0 -0
  49. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/vectors.py +0 -0
  50. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/vision-file_processor.py +0 -0
  51. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/clients/vision_vectors.py +0 -0
  52. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/constants/platform.py +0 -0
  53. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/decorators.py +0 -0
  54. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/entity.py +0 -0
  55. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/events.py +0 -0
  56. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/serializers.py +0 -0
  57. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/services/logging_service.py +0 -0
  58. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/synthesis/__init__.py +0 -0
  59. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/synthesis/llm_synthesizer.py +0 -0
  60. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/synthesis/prompt.py +0 -0
  61. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/synthesis/reranker.py +0 -0
  62. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/synthesis/retriever.py +0 -0
  63. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/__init__.py +0 -0
  64. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/function_call_suppressor.py +0 -0
  65. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/monitor_launcher.py +0 -0
  66. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/peek_gate.py +0 -0
  67. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/run_monitor.py +0 -0
  68. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid/utils/vector_search_formatter.py +0 -0
  69. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid.egg-info/SOURCES.txt +0 -0
  70. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid.egg-info/dependency_links.txt +0 -0
  71. {projectdavid-1.34.5 → projectdavid-1.34.7}/src/projectdavid.egg-info/top_level.txt +0 -0
  72. {projectdavid-1.34.5 → projectdavid-1.34.7}/tests/test_clients.py +0 -0
@@ -1,3 +1,17 @@
1
+ ## [1.34.7](https://github.com/frankie336/projectdavid/compare/v1.34.6...v1.34.7) (2025-08-21)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Normalize time stamps to epoch integer format instead of datetime. ([43af583](https://github.com/frankie336/projectdavid/commit/43af5830f80d9eafde694449d7119a2da8a8d127))
7
+
8
+ ## [1.34.6](https://github.com/frankie336/projectdavid/compare/v1.34.5...v1.34.6) (2025-08-20)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * epoch time on .create_run ([be013d4](https://github.com/frankie336/projectdavid/commit/be013d4e98724a2c252a7daa5b31bfda61253d15))
14
+
1
15
  ## [1.34.5](https://github.com/frankie336/projectdavid/compare/v1.34.4...v1.34.5) (2025-08-17)
2
16
 
3
17
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid
3
- Version: 1.34.5
3
+ Version: 1.34.7
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
@@ -20,7 +20,7 @@ Requires-Dist: pydantic<3.0,>=2.0
20
20
  Requires-Dist: python-dotenv<2.0,>=1.0.1
21
21
  Requires-Dist: aiofiles<25.0,>=23.2.1
22
22
  Requires-Dist: ollama<0.5.0,>=0.4.4
23
- Requires-Dist: projectdavid_common==0.17.13
23
+ Requires-Dist: projectdavid_common==0.17.14
24
24
  Requires-Dist: qdrant-client<2.0.0,>=1.0.0
25
25
  Requires-Dist: pdfplumber<0.12.0,>=0.11.0
26
26
  Requires-Dist: validators<0.35.0,>=0.29.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid"
7
- version = "1.34.5"
7
+ version = "1.34.7"
8
8
  description = "Python SDK for interacting with the Entities Assistant API."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -20,7 +20,7 @@ dependencies = [
20
20
  "python-dotenv>=1.0.1,<2.0",
21
21
  "aiofiles>=23.2.1,<25.0",
22
22
  "ollama>=0.4.4,<0.5.0",
23
- "projectdavid_common==0.17.13",
23
+ "projectdavid_common==0.17.14",
24
24
  "qdrant-client>=1.0.0,<2.0.0",
25
25
  "pdfplumber>=0.11.0,<0.12.0",
26
26
  "validators>=0.29.0,<0.35.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 expects user_id to be injected explicitly,
49
- which is passed in from the authenticated API key.
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
- # Construct the RunCreate payload, including user_id
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=int(time.time()),
67
- expires_at=int(time.time()) + 3600,
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
- temperature=0.7,
85
- top_p=0.9,
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
- resp = self.client.post("/v1/runs", json=run_payload.model_dump())
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,48 +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
- Server route expects body shaped as:
156
- {"metadata": {...}}
157
-
158
- Args:
159
- run_id: The run ID (e.g., "run_abc123").
160
- metadata: Dict to merge into run.meta_data.
161
-
162
- Raises:
163
- ValueError: if metadata is not a dict or validation fails.
164
- httpx.HTTPStatusError: on non-2xx response.
165
- Exception: on unexpected errors.
166
- """
167
- logging_utility.info("Updating metadata for run_id: %s", run_id)
168
-
169
- # Basic input validation (fail fast with clear error)
170
- if not isinstance(metadata, dict):
171
- raise ValueError("`metadata` must be a dict")
172
-
173
- try:
174
- resp = self.client.put(
175
- f"/v1/runs/{run_id}/metadata",
176
- json={"metadata": metadata}, # <-- wrap to match router param
177
- )
178
- resp.raise_for_status()
179
-
180
- # Validate server response to the shared model
181
- return ent_validator.Run(**resp.json())
182
-
183
- except ValidationError as e:
184
- logging_utility.error("Validation error: %s", e.json())
185
- raise ValueError(f"Validation error: {e}")
186
- except httpx.HTTPStatusError as e:
187
- logging_utility.error("HTTP error updating run metadata: %s", str(e))
188
- raise
189
- except Exception as e:
190
- logging_utility.error("Unexpected error updating run metadata: %s", str(e))
191
- raise
192
-
193
168
  def update_run_status(self, run_id: str, new_status: str) -> ent_validator.Run:
194
169
  """
195
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.5
3
+ Version: 1.34.7
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
@@ -20,7 +20,7 @@ Requires-Dist: pydantic<3.0,>=2.0
20
20
  Requires-Dist: python-dotenv<2.0,>=1.0.1
21
21
  Requires-Dist: aiofiles<25.0,>=23.2.1
22
22
  Requires-Dist: ollama<0.5.0,>=0.4.4
23
- Requires-Dist: projectdavid_common==0.17.13
23
+ Requires-Dist: projectdavid_common==0.17.14
24
24
  Requires-Dist: qdrant-client<2.0.0,>=1.0.0
25
25
  Requires-Dist: pdfplumber<0.12.0,>=0.11.0
26
26
  Requires-Dist: validators<0.35.0,>=0.29.0
@@ -3,7 +3,7 @@ pydantic<3.0,>=2.0
3
3
  python-dotenv<2.0,>=1.0.1
4
4
  aiofiles<25.0,>=23.2.1
5
5
  ollama<0.5.0,>=0.4.4
6
- projectdavid_common==0.17.13
6
+ projectdavid_common==0.17.14
7
7
  qdrant-client<2.0.0,>=1.0.0
8
8
  pdfplumber<0.12.0,>=0.11.0
9
9
  validators<0.35.0,>=0.29.0
File without changes
File without changes
File without changes
File without changes