@@ -135,6 +135,7 @@ impl ProducerClient {
135135 ///
136136 /// Returns an error if the submission cannot be cancelled or if the request fails.
137137 #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
138+ #[ pyo3( signature = ( id) ) ]
138139 pub fn cancel_submission (
139140 & self ,
140141 py : Python < ' _ > ,
@@ -168,6 +169,7 @@ impl ProducerClient {
168169 /// # Errors
169170 ///
170171 /// Returns an error if contacting the server fails.
172+ #[ pyo3( signature = ( id) ) ]
171173 pub fn get_submission_status (
172174 & self ,
173175 py : Python < ' _ > ,
@@ -193,6 +195,7 @@ impl ProducerClient {
193195 /// # Errors
194196 ///
195197 /// Returns an error if contacting the server fails.
198+ #[ pyo3( signature = ( prefix) ) ]
196199 pub fn lookup_submission_id_by_prefix (
197200 & self ,
198201 py : Python < ' _ > ,
@@ -216,6 +219,7 @@ impl ProducerClient {
216219 ///
217220 /// Returns an error if too many submissions match or if the request fails.
218221 #[ allow( clippy:: needless_pass_by_value) ]
222+ #[ pyo3( signature = ( strategic_metadata) ) ]
219223 pub fn lookup_submission_ids_by_strategic_metadata (
220224 & self ,
221225 py : Python < ' _ > ,
@@ -246,25 +250,24 @@ impl ProducerClient {
246250 /// # Errors
247251 ///
248252 /// Returns an error if submission insertion fails.
249- #[ pyo3( signature = ( chunk_contents, metadata=None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
253+ #[ pyo3( signature = ( chunk_contents, metadata=None , strategic_metadata= None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
250254 pub fn insert_submission_direct (
251255 & self ,
252256 py : Python < ' _ > ,
253257 chunk_contents : Vec < chunk:: Content > ,
254258 metadata : Option < submission:: Metadata > ,
259+ strategic_metadata : Option < StrategicMetadataMap > ,
255260 chunk_size : Option < u64 > ,
256261 otel_trace_carrier : CarrierMap ,
257262 ) -> CPyResult < SubmissionId , E < FatalPythonException , InternalProducerClientError > > {
258- let strategic_metadata = std:: collections:: HashMap :: default ( ) ;
259-
260263 py. detach ( || {
261264 let submission = opsqueue:: producer:: InsertSubmission {
262265 chunk_size : chunk_size. map ( |n| chunk:: ChunkSize ( n. cast_signed ( ) ) ) ,
263266 chunk_contents : ChunkContents :: Direct {
264267 contents : chunk_contents,
265268 } ,
266269 metadata,
267- strategic_metadata,
270+ strategic_metadata : strategic_metadata . unwrap_or_default ( ) ,
268271 } ;
269272 self . block_unless_interrupted ( async move {
270273 self . client
@@ -276,13 +279,13 @@ impl ProducerClient {
276279 } )
277280 }
278281
279- #[ pyo3( signature = ( chunk_contents, metadata=None , strategic_metadata=None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
280- #[ allow( clippy:: type_complexity) ]
281282 /// Insert submission chunks via object storage and enqueue the submission.
282283 ///
283284 /// # Errors
284285 ///
285286 /// Returns an error if chunk upload or submission insertion fails.
287+ #[ allow( clippy:: type_complexity) ]
288+ #[ pyo3( signature = ( chunk_contents, metadata=None , strategic_metadata=None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
286289 pub fn insert_submission_chunks (
287290 & self ,
288291 py : Python < ' _ > ,
@@ -343,12 +346,13 @@ impl ProducerClient {
343346 } )
344347 }
345348
346- #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
347349 /// Try streaming completed submission chunks without waiting.
348350 ///
349351 /// # Errors
350352 ///
351353 /// Returns an error if the submission is incomplete/failed or if the request fails.
354+ #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
355+ #[ pyo3( signature = ( id) ) ]
352356 pub fn try_stream_completed_submission_chunks (
353357 & self ,
354358 py : Python < ' _ > ,
@@ -376,13 +380,13 @@ impl ProducerClient {
376380 } )
377381 }
378382
379- #[ pyo3( signature = ( chunk_contents, metadata=None , strategic_metadata=None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
380- #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
381383 /// Submit chunks and then stream the completed output chunks.
382384 ///
383385 /// # Errors
384386 ///
385387 /// Returns an error if upload, submission creation, or streaming fails.
388+ #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
389+ #[ pyo3( signature = ( chunk_contents, metadata=None , strategic_metadata=None , chunk_size=None , otel_trace_carrier=CarrierMap :: default ( ) ) ) ]
386390 pub fn run_submission_chunks (
387391 & self ,
388392 py : Python < ' _ > ,
@@ -438,6 +442,7 @@ impl ProducerClient {
438442 ///
439443 /// Returns an error if polling or output streaming fails.
440444 #[ allow( clippy:: result_large_err, clippy:: type_complexity) ]
445+ #[ pyo3( signature = ( submission_id) ) ]
441446 pub fn blocking_stream_completed_submission_chunks (
442447 & self ,
443448 py : Python < ' _ > ,
@@ -462,6 +467,7 @@ impl ProducerClient {
462467 /// # Errors
463468 ///
464469 /// Returns a Python error if creating the awaitable fails.
470+ #[ pyo3( signature = ( submission_id) ) ]
465471 pub fn async_stream_completed_submission_chunks < ' p > (
466472 & self ,
467473 py : Python < ' p > ,
0 commit comments