projectdavid 1.32.14__py3-none-any.whl → 1.32.16__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 projectdavid might be problematic. Click here for more details.
- projectdavid/clients/synchronous_inference_wrapper.py +21 -16
- {projectdavid-1.32.14.dist-info → projectdavid-1.32.16.dist-info}/METADATA +1 -1
- {projectdavid-1.32.14.dist-info → projectdavid-1.32.16.dist-info}/RECORD +6 -6
- {projectdavid-1.32.14.dist-info → projectdavid-1.32.16.dist-info}/WHEEL +0 -0
- {projectdavid-1.32.14.dist-info → projectdavid-1.32.16.dist-info}/licenses/LICENSE +0 -0
- {projectdavid-1.32.14.dist-info → projectdavid-1.32.16.dist-info}/top_level.txt +0 -0
|
@@ -81,17 +81,23 @@ class SynchronousInferenceStream:
|
|
|
81
81
|
def _filter_text(txt: str) -> str: # noqa: D401
|
|
82
82
|
return txt
|
|
83
83
|
|
|
84
|
-
# helper – drain
|
|
85
|
-
def
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
84
|
+
# helper – drain **all** residual bytes from the chain
|
|
85
|
+
def _drain_filters() -> Optional[dict]:
|
|
86
|
+
if not suppress_fc:
|
|
87
|
+
return None
|
|
88
|
+
parts: list[str] = []
|
|
89
|
+
# 1) normal draining loop
|
|
90
|
+
while True:
|
|
91
|
+
out = _filter_text("")
|
|
92
|
+
if not out:
|
|
93
|
+
break
|
|
94
|
+
parts.append(out)
|
|
95
|
+
# 2) force-drain the ≤ 8 safety-margin tail
|
|
96
|
+
if not _peek_gate.suppressing and _peek_gate.buf:
|
|
97
|
+
parts.append(_peek_gate.buf)
|
|
98
|
+
_peek_gate.buf = ""
|
|
99
|
+
if parts:
|
|
100
|
+
return {"type": "content", "content": "".join(parts)}
|
|
95
101
|
return None
|
|
96
102
|
|
|
97
103
|
# ── main loop ─────────────────────────────────────────────
|
|
@@ -110,7 +116,6 @@ class SynchronousInferenceStream:
|
|
|
110
116
|
if chunk.get("type") in ("hot_code", "hot_code_output"):
|
|
111
117
|
yield chunk
|
|
112
118
|
continue
|
|
113
|
-
|
|
114
119
|
if (
|
|
115
120
|
chunk.get("stream_type") == "code_execution"
|
|
116
121
|
and chunk.get("chunk", {}).get("type") == "code_interpreter_stream"
|
|
@@ -127,21 +132,21 @@ class SynchronousInferenceStream:
|
|
|
127
132
|
# ④ everything else streams unchanged
|
|
128
133
|
yield chunk
|
|
129
134
|
|
|
130
|
-
#
|
|
135
|
+
# graceful endings ------------------------------------------------
|
|
131
136
|
except StopAsyncIteration:
|
|
132
|
-
if tail :=
|
|
137
|
+
if tail := _drain_filters():
|
|
133
138
|
yield tail
|
|
134
139
|
LOG.info("Stream completed normally.")
|
|
135
140
|
break
|
|
136
141
|
|
|
137
142
|
except asyncio.TimeoutError:
|
|
138
|
-
if tail :=
|
|
143
|
+
if tail := _drain_filters():
|
|
139
144
|
yield tail
|
|
140
145
|
LOG.error("[TimeoutError] Chunk wait expired – aborting stream.")
|
|
141
146
|
break
|
|
142
147
|
|
|
143
148
|
except Exception as exc: # noqa: BLE001
|
|
144
|
-
if tail :=
|
|
149
|
+
if tail := _drain_filters():
|
|
145
150
|
yield tail
|
|
146
151
|
LOG.error("Unexpected streaming error: %s", exc, exc_info=True)
|
|
147
152
|
break
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid
|
|
3
|
-
Version: 1.32.
|
|
3
|
+
Version: 1.32.16
|
|
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
|
|
@@ -15,7 +15,7 @@ projectdavid/clients/files_client.py,sha256=XkIDzbQFGDrd88taf0Kouc_4YJOPIYEHiIyW
|
|
|
15
15
|
projectdavid/clients/inference_client.py,sha256=xz4ACPv5Tkis604QxO5mJX1inH_TGDfQP-31geETYpE,6609
|
|
16
16
|
projectdavid/clients/messages_client.py,sha256=467xeIt3VYs6cG8-bl-eDRi_auWOPmfd5tSJDmQSJUI,17232
|
|
17
17
|
projectdavid/clients/runs.py,sha256=-fXOq5L9w2efDPmZkNxb0s2yjl6oN0XN4_aLXqaeceo,25270
|
|
18
|
-
projectdavid/clients/synchronous_inference_wrapper.py,sha256=
|
|
18
|
+
projectdavid/clients/synchronous_inference_wrapper.py,sha256=JPOmEeF8ib5EwbH0QUvctyIYShpflZXOT-sMlhnFvdY,6373
|
|
19
19
|
projectdavid/clients/threads_client.py,sha256=ekzU5w14zftmtmFkiec3NC90Of-_KVSUY1qH9cmfSFg,6771
|
|
20
20
|
projectdavid/clients/tools_client.py,sha256=GkCVOmwpAoPqVt6aYmH0G1HIFha3iEwR9IIf9teR0j8,11487
|
|
21
21
|
projectdavid/clients/users_client.py,sha256=eCuUb9qvyH1GUFhZu6TRL9zdoK-qzHSs8-Vmrk_0mmg,13729
|
|
@@ -34,8 +34,8 @@ projectdavid/utils/monitor_launcher.py,sha256=3YAgJdeuaUvq3JGvpA4ymqFsAnk29nH5q9
|
|
|
34
34
|
projectdavid/utils/peek_gate.py,sha256=5whMRnDOQjATRpThWDJkvY9ScXuJ7Sd_-9rvGgXeTAQ,2532
|
|
35
35
|
projectdavid/utils/run_monitor.py,sha256=F_WkqIP-qnWH-4llIbileWWLfRj2Q1Cg-ni23SR1rec,3786
|
|
36
36
|
projectdavid/utils/vector_search_formatter.py,sha256=YTe3HPGec26qGY7uxY8_GS8lc4QaN6aNXMzkl29nZpI,1735
|
|
37
|
-
projectdavid-1.32.
|
|
38
|
-
projectdavid-1.32.
|
|
39
|
-
projectdavid-1.32.
|
|
40
|
-
projectdavid-1.32.
|
|
41
|
-
projectdavid-1.32.
|
|
37
|
+
projectdavid-1.32.16.dist-info/licenses/LICENSE,sha256=_8yjiEGttpS284BkfhXxfERqTRZW_tUaHiBB0GTJTMg,4563
|
|
38
|
+
projectdavid-1.32.16.dist-info/METADATA,sha256=BOcsvrfPdNelHuFfb9u08dkcx6NxeyWEpoJcnqxaAEc,10782
|
|
39
|
+
projectdavid-1.32.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
40
|
+
projectdavid-1.32.16.dist-info/top_level.txt,sha256=kil8GU4s7qYRfNnzGnFHhZnSNRSxgNG-J4HLgQMmMtw,13
|
|
41
|
+
projectdavid-1.32.16.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|