benchling-sdk 1.18.1__py3-none-any.whl → 1.19.0__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.
- benchling_sdk/helpers/client_helpers.py +5 -0
- benchling_sdk/helpers/task_helpers.py +145 -0
- benchling_sdk/services/v2/alpha/v2_alpha_assembly_service.py +6 -4
- benchling_sdk/services/v2/base_service.py +11 -0
- benchling_sdk/services/v2/beta/v2_beta_audit_service.py +18 -13
- benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +9 -9
- benchling_sdk/services/v2/stable/aa_sequence_service.py +23 -13
- benchling_sdk/services/v2/stable/app_service.py +4 -2
- benchling_sdk/services/v2/stable/assay_result_service.py +3 -3
- benchling_sdk/services/v2/stable/container_service.py +14 -7
- benchling_sdk/services/v2/stable/custom_entity_service.py +15 -7
- benchling_sdk/services/v2/stable/dna_alignments_service.py +9 -5
- benchling_sdk/services/v2/stable/dna_oligo_service.py +13 -7
- benchling_sdk/services/v2/stable/dna_sequence_service.py +28 -19
- benchling_sdk/services/v2/stable/export_service.py +4 -4
- benchling_sdk/services/v2/stable/feature_library_service.py +6 -3
- benchling_sdk/services/v2/stable/lab_automation_service.py +5 -5
- benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +5 -5
- benchling_sdk/services/v2/stable/oligo_service.py +4 -3
- benchling_sdk/services/v2/stable/registry_service.py +3 -3
- benchling_sdk/services/v2/stable/rna_oligo_service.py +13 -7
- benchling_sdk/services/v2/stable/rna_sequence_service.py +17 -11
- benchling_sdk/services/v2/stable/task_service.py +4 -0
- {benchling_sdk-1.18.1.dist-info → benchling_sdk-1.19.0.dist-info}/METADATA +2 -2
- {benchling_sdk-1.18.1.dist-info → benchling_sdk-1.19.0.dist-info}/RECORD +27 -26
- {benchling_sdk-1.18.1.dist-info → benchling_sdk-1.19.0.dist-info}/LICENSE +0 -0
- {benchling_sdk-1.18.1.dist-info → benchling_sdk-1.19.0.dist-info}/WHEEL +0 -0
@@ -16,8 +16,8 @@ from benchling_sdk.helpers.logging_helpers import log_deprecation
|
|
16
16
|
from benchling_sdk.helpers.pagination_helpers import NextToken, PageIterator
|
17
17
|
from benchling_sdk.helpers.response_helpers import model_from_detailed
|
18
18
|
from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
|
19
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
19
20
|
from benchling_sdk.models import (
|
20
|
-
AsyncTaskLink,
|
21
21
|
DnaAlignment,
|
22
22
|
DnaAlignmentsPaginatedList,
|
23
23
|
DnaAlignmentSummary,
|
@@ -126,7 +126,9 @@ class DnaAlignmentsService(BaseService):
|
|
126
126
|
return PageIterator(api_call, results_extractor)
|
127
127
|
|
128
128
|
@api_method
|
129
|
-
def create_template_alignment(
|
129
|
+
def create_template_alignment(
|
130
|
+
self, template_alignment: DnaTemplateAlignmentCreate
|
131
|
+
) -> TaskHelper[DnaAlignment]:
|
130
132
|
"""
|
131
133
|
Create a template DNA alignment (Deprecated).
|
132
134
|
|
@@ -141,10 +143,12 @@ class DnaAlignmentsService(BaseService):
|
|
141
143
|
response = create_dna_template_alignment.sync_detailed(
|
142
144
|
client=self.client, json_body=template_alignment
|
143
145
|
)
|
144
|
-
return
|
146
|
+
return self._task_helper_from_response(response, DnaAlignment)
|
145
147
|
|
146
148
|
@api_method
|
147
|
-
def create_consensus_alignment(
|
149
|
+
def create_consensus_alignment(
|
150
|
+
self, consensus_alignment: DnaConsensusAlignmentCreate
|
151
|
+
) -> TaskHelper[DnaAlignment]:
|
148
152
|
"""
|
149
153
|
Create a consensus DNA alignment (Deprecated).
|
150
154
|
|
@@ -159,7 +163,7 @@ class DnaAlignmentsService(BaseService):
|
|
159
163
|
response = create_dna_consensus_alignment.sync_detailed(
|
160
164
|
client=self.client, json_body=consensus_alignment
|
161
165
|
)
|
162
|
-
return
|
166
|
+
return self._task_helper_from_response(response, DnaAlignment)
|
163
167
|
|
164
168
|
@api_method
|
165
169
|
def delete_alignment(self, dna_alignment_id: str) -> None:
|
@@ -24,8 +24,10 @@ from benchling_sdk.helpers.serialization_helpers import (
|
|
24
24
|
optional_array_query_param,
|
25
25
|
schema_fields_query_param,
|
26
26
|
)
|
27
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
27
28
|
from benchling_sdk.models import (
|
28
|
-
|
29
|
+
BulkCreateDnaOligosAsyncTaskResponse,
|
30
|
+
BulkUpdateDnaOligosAsyncTaskResponse,
|
29
31
|
DnaOligo,
|
30
32
|
DnaOligoBulkUpdate,
|
31
33
|
DnaOligoCreate,
|
@@ -227,7 +229,9 @@ class DnaOligoService(BaseService):
|
|
227
229
|
return model_from_detailed(response)
|
228
230
|
|
229
231
|
@api_method
|
230
|
-
def bulk_create(
|
232
|
+
def bulk_create(
|
233
|
+
self, dna_oligos: Iterable[DnaOligoCreate]
|
234
|
+
) -> TaskHelper[BulkCreateDnaOligosAsyncTaskResponse]:
|
231
235
|
"""
|
232
236
|
Bulk create DNA Oligos.
|
233
237
|
|
@@ -235,10 +239,12 @@ class DnaOligoService(BaseService):
|
|
235
239
|
"""
|
236
240
|
body = DnaOligosBulkCreateRequest(list(dna_oligos))
|
237
241
|
response = bulk_create_dna_oligos.sync_detailed(client=self.client, json_body=body)
|
238
|
-
return
|
242
|
+
return self._task_helper_from_response(response, BulkCreateDnaOligosAsyncTaskResponse)
|
239
243
|
|
240
244
|
@api_method
|
241
|
-
def bulk_update(
|
245
|
+
def bulk_update(
|
246
|
+
self, dna_oligos: Iterable[DnaOligoBulkUpdate]
|
247
|
+
) -> TaskHelper[BulkUpdateDnaOligosAsyncTaskResponse]:
|
242
248
|
"""
|
243
249
|
Bulk update DNA oligos.
|
244
250
|
|
@@ -246,7 +252,7 @@ class DnaOligoService(BaseService):
|
|
246
252
|
"""
|
247
253
|
body = DnaOligosBulkUpdateRequest(list(dna_oligos))
|
248
254
|
response = bulk_update_dna_oligos.sync_detailed(client=self.client, json_body=body)
|
249
|
-
return
|
255
|
+
return self._task_helper_from_response(response, BulkUpdateDnaOligosAsyncTaskResponse)
|
250
256
|
|
251
257
|
@api_method
|
252
258
|
def upsert(self, entity_registry_id: str, dna_oligo: OligoUpsertRequest) -> DnaOligo:
|
@@ -263,7 +269,7 @@ class DnaOligoService(BaseService):
|
|
263
269
|
@api_method
|
264
270
|
def bulk_upsert(
|
265
271
|
self, body: DnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
|
266
|
-
) ->
|
272
|
+
) -> TaskHelper[BulkUpdateDnaOligosAsyncTaskResponse]:
|
267
273
|
"""
|
268
274
|
Bulk create or update DNA Oligos.
|
269
275
|
|
@@ -273,4 +279,4 @@ class DnaOligoService(BaseService):
|
|
273
279
|
response = bulk_upsert_dna_oligos.sync_detailed(
|
274
280
|
client=self.client, json_body=body, returning=none_as_unset(returning_string)
|
275
281
|
)
|
276
|
-
return
|
282
|
+
return self._task_helper_from_response(response, BulkUpdateDnaOligosAsyncTaskResponse)
|
@@ -34,10 +34,12 @@ from benchling_sdk.helpers.serialization_helpers import (
|
|
34
34
|
optional_array_query_param,
|
35
35
|
schema_fields_query_param,
|
36
36
|
)
|
37
|
+
from benchling_sdk.helpers.task_helpers import EmptyTaskResponse, TaskHelper
|
37
38
|
from benchling_sdk.models import (
|
38
|
-
AsyncTaskLink,
|
39
39
|
AutoAnnotateDnaSequences,
|
40
40
|
AutofillSequences,
|
41
|
+
BulkCreateDnaSequencesAsyncTaskResponse,
|
42
|
+
BulkUpdateDnaSequencesAsyncTaskResponse,
|
41
43
|
DnaSequence,
|
42
44
|
DnaSequenceBulkCreate,
|
43
45
|
DnaSequenceBulkUpdate,
|
@@ -53,6 +55,7 @@ from benchling_sdk.models import (
|
|
53
55
|
DnaSequenceUpdate,
|
54
56
|
DnaSequenceUpsertRequest,
|
55
57
|
EntityArchiveReason,
|
58
|
+
FindMatchingRegionsDnaAsyncTaskResponse,
|
56
59
|
ListDNASequencesSort,
|
57
60
|
MatchBasesRequest,
|
58
61
|
OptimizeCodons,
|
@@ -267,7 +270,9 @@ class DnaSequenceService(BaseService):
|
|
267
270
|
return dna_sequences_results.dna_sequences
|
268
271
|
|
269
272
|
@api_method
|
270
|
-
def bulk_create(
|
273
|
+
def bulk_create(
|
274
|
+
self, dna_sequences: Iterable[DnaSequenceBulkCreate]
|
275
|
+
) -> TaskHelper[BulkCreateDnaSequencesAsyncTaskResponse]:
|
271
276
|
"""
|
272
277
|
Bulk create DNA sequences.
|
273
278
|
|
@@ -275,10 +280,12 @@ class DnaSequenceService(BaseService):
|
|
275
280
|
"""
|
276
281
|
body = DnaSequencesBulkCreateRequest(list(dna_sequences))
|
277
282
|
response = bulk_create_dna_sequences.sync_detailed(client=self.client, json_body=body)
|
278
|
-
return
|
283
|
+
return self._task_helper_from_response(response, BulkCreateDnaSequencesAsyncTaskResponse)
|
279
284
|
|
280
285
|
@api_method
|
281
|
-
def bulk_update(
|
286
|
+
def bulk_update(
|
287
|
+
self, dna_sequences: Iterable[DnaSequenceBulkUpdate]
|
288
|
+
) -> TaskHelper[BulkUpdateDnaSequencesAsyncTaskResponse]:
|
282
289
|
"""
|
283
290
|
Bulk update DNA sequences.
|
284
291
|
|
@@ -286,10 +293,10 @@ class DnaSequenceService(BaseService):
|
|
286
293
|
"""
|
287
294
|
body = DnaSequencesBulkUpdateRequest(list(dna_sequences))
|
288
295
|
response = bulk_update_dna_sequences.sync_detailed(client=self.client, json_body=body)
|
289
|
-
return
|
296
|
+
return self._task_helper_from_response(response, BulkUpdateDnaSequencesAsyncTaskResponse)
|
290
297
|
|
291
298
|
@api_method
|
292
|
-
def autofill_parts(self, dna_sequence_ids: Iterable[str]) ->
|
299
|
+
def autofill_parts(self, dna_sequence_ids: Iterable[str]) -> TaskHelper[EmptyTaskResponse]:
|
293
300
|
"""
|
294
301
|
Autofill DNA sequence parts.
|
295
302
|
|
@@ -297,10 +304,10 @@ class DnaSequenceService(BaseService):
|
|
297
304
|
"""
|
298
305
|
body = AutofillSequences(dna_sequence_ids=list(dna_sequence_ids))
|
299
306
|
response = autofill_dna_sequence_parts.sync_detailed(client=self.client, json_body=body)
|
300
|
-
return
|
307
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
301
308
|
|
302
309
|
@api_method
|
303
|
-
def autofill_transcriptions(self, dna_sequence_ids: Iterable[str]) ->
|
310
|
+
def autofill_transcriptions(self, dna_sequence_ids: Iterable[str]) -> TaskHelper[EmptyTaskResponse]:
|
304
311
|
"""
|
305
312
|
Autofill DNA sequence transcriptions.
|
306
313
|
|
@@ -308,10 +315,10 @@ class DnaSequenceService(BaseService):
|
|
308
315
|
"""
|
309
316
|
body = AutofillSequences(dna_sequence_ids=list(dna_sequence_ids))
|
310
317
|
response = autofill_dna_sequence_transcriptions.sync_detailed(client=self.client, json_body=body)
|
311
|
-
return
|
318
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
312
319
|
|
313
320
|
@api_method
|
314
|
-
def autofill_translations(self, dna_sequence_ids: Iterable[str]) ->
|
321
|
+
def autofill_translations(self, dna_sequence_ids: Iterable[str]) -> TaskHelper[EmptyTaskResponse]:
|
315
322
|
"""
|
316
323
|
Autofill DNA sequence translations.
|
317
324
|
|
@@ -319,17 +326,17 @@ class DnaSequenceService(BaseService):
|
|
319
326
|
"""
|
320
327
|
body = AutofillSequences(dna_sequence_ids=list(dna_sequence_ids))
|
321
328
|
response = autofill_dna_sequence_translations.sync_detailed(client=self.client, json_body=body)
|
322
|
-
return
|
329
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
323
330
|
|
324
331
|
@api_method
|
325
|
-
def auto_annotate(self, auto_annotate: AutoAnnotateDnaSequences) ->
|
332
|
+
def auto_annotate(self, auto_annotate: AutoAnnotateDnaSequences) -> TaskHelper[EmptyTaskResponse]:
|
326
333
|
"""
|
327
334
|
Auto-annotate DNA sequences with matching features from specified Feature Libraries.
|
328
335
|
|
329
336
|
See https://benchling.com/api/reference#/DNA%20Sequences/autoAnnotateDnaSequences
|
330
337
|
"""
|
331
338
|
response = auto_annotate_dna_sequences.sync_detailed(client=self.client, json_body=auto_annotate)
|
332
|
-
return
|
339
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
333
340
|
|
334
341
|
@api_method
|
335
342
|
def upsert(self, entity_registry_id: str, dna_sequence: DnaSequenceUpsertRequest) -> DnaSequence:
|
@@ -346,7 +353,7 @@ class DnaSequenceService(BaseService):
|
|
346
353
|
@api_method
|
347
354
|
def bulk_upsert(
|
348
355
|
self, body: DnaSequencesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
|
349
|
-
) ->
|
356
|
+
) -> TaskHelper[BulkUpdateDnaSequencesAsyncTaskResponse]:
|
350
357
|
"""
|
351
358
|
Bulk create or update DNA sequences.
|
352
359
|
|
@@ -356,7 +363,7 @@ class DnaSequenceService(BaseService):
|
|
356
363
|
response = bulk_upsert_dna_sequences.sync_detailed(
|
357
364
|
client=self.client, json_body=body, returning=none_as_unset(returning_string)
|
358
365
|
)
|
359
|
-
return
|
366
|
+
return self._task_helper_from_response(response, BulkUpdateDnaSequencesAsyncTaskResponse)
|
360
367
|
|
361
368
|
@api_method
|
362
369
|
def match_bases(self, match_bases_request: MatchBasesRequest) -> DnaSequencesPaginatedList:
|
@@ -390,7 +397,9 @@ class DnaSequenceService(BaseService):
|
|
390
397
|
return model_from_detailed(response)
|
391
398
|
|
392
399
|
@api_method
|
393
|
-
def find_matching_regions(
|
400
|
+
def find_matching_regions(
|
401
|
+
self, find_matching_region: DnaSequencesFindMatchingRegion
|
402
|
+
) -> TaskHelper[FindMatchingRegionsDnaAsyncTaskResponse]:
|
394
403
|
"""
|
395
404
|
Find matching regions for DNA sequences.
|
396
405
|
|
@@ -399,14 +408,14 @@ class DnaSequenceService(BaseService):
|
|
399
408
|
response = find_matching_regions_dna_sequences.sync_detailed(
|
400
409
|
client=self.client, json_body=find_matching_region
|
401
410
|
)
|
402
|
-
return
|
411
|
+
return self._task_helper_from_response(response, FindMatchingRegionsDnaAsyncTaskResponse)
|
403
412
|
|
404
413
|
@api_method
|
405
|
-
def optimize_codons(self, optimize_request: OptimizeCodons) ->
|
414
|
+
def optimize_codons(self, optimize_request: OptimizeCodons) -> TaskHelper[EmptyTaskResponse]:
|
406
415
|
"""
|
407
416
|
Create codon-optimized DNA sequences.
|
408
417
|
|
409
418
|
See https://benchling.com/api/reference#/DNA%20Sequences/optimizeCodons
|
410
419
|
"""
|
411
420
|
response = optimize_codons.sync_detailed(client=self.client, json_body=optimize_request)
|
412
|
-
return
|
421
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
from benchling_api_client.v2.stable.api.exports import export_item
|
2
2
|
|
3
3
|
from benchling_sdk.helpers.decorators import api_method
|
4
|
-
from benchling_sdk.helpers.
|
5
|
-
from benchling_sdk.models import
|
4
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
5
|
+
from benchling_sdk.models import ExportItemRequest, ExportsAsyncTaskResponse
|
6
6
|
from benchling_sdk.services.v2.base_service import BaseService
|
7
7
|
|
8
8
|
|
@@ -16,7 +16,7 @@ class ExportService(BaseService):
|
|
16
16
|
"""
|
17
17
|
|
18
18
|
@api_method
|
19
|
-
def export(self, export_request: ExportItemRequest) ->
|
19
|
+
def export(self, export_request: ExportItemRequest) -> TaskHelper[ExportsAsyncTaskResponse]:
|
20
20
|
"""
|
21
21
|
Export a Notebook Entry.
|
22
22
|
|
@@ -27,4 +27,4 @@ class ExportService(BaseService):
|
|
27
27
|
See https://benchling.com/api/reference#/Exports/exportItem
|
28
28
|
"""
|
29
29
|
response = export_item.sync_detailed(client=self.client, json_body=export_request)
|
30
|
-
return
|
30
|
+
return self._task_helper_from_response(response, ExportsAsyncTaskResponse)
|
@@ -19,8 +19,9 @@ from benchling_sdk.helpers.decorators import api_method
|
|
19
19
|
from benchling_sdk.helpers.pagination_helpers import NextToken, PageIterator
|
20
20
|
from benchling_sdk.helpers.response_helpers import model_from_detailed
|
21
21
|
from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
|
22
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
22
23
|
from benchling_sdk.models import (
|
23
|
-
|
24
|
+
BulkCreateFeaturesAsyncTaskResponse,
|
24
25
|
Feature,
|
25
26
|
FeatureBulkCreate,
|
26
27
|
FeatureCreate,
|
@@ -244,7 +245,9 @@ class FeatureLibraryService(BaseService):
|
|
244
245
|
return model_from_detailed(response)
|
245
246
|
|
246
247
|
@api_method
|
247
|
-
def bulk_create_features(
|
248
|
+
def bulk_create_features(
|
249
|
+
self, features: Iterable[FeatureBulkCreate]
|
250
|
+
) -> TaskHelper[BulkCreateFeaturesAsyncTaskResponse]:
|
248
251
|
"""
|
249
252
|
Bulk create features.
|
250
253
|
|
@@ -252,4 +255,4 @@ class FeatureLibraryService(BaseService):
|
|
252
255
|
"""
|
253
256
|
body = FeaturesBulkCreateRequest(list(features))
|
254
257
|
response = bulk_create_features.sync_detailed(client=self.client, json_body=body)
|
255
|
-
return
|
258
|
+
return self._task_helper_from_response(response, BulkCreateFeaturesAsyncTaskResponse)
|
@@ -21,8 +21,8 @@ from benchling_sdk.helpers.decorators import api_method
|
|
21
21
|
from benchling_sdk.helpers.pagination_helpers import NextToken, PageIterator
|
22
22
|
from benchling_sdk.helpers.response_helpers import model_from_detailed
|
23
23
|
from benchling_sdk.helpers.serialization_helpers import none_as_unset
|
24
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
24
25
|
from benchling_sdk.models import (
|
25
|
-
AsyncTaskLink,
|
26
26
|
AutomationInputGenerator,
|
27
27
|
AutomationInputGeneratorUpdate,
|
28
28
|
AutomationOutputProcessor,
|
@@ -101,7 +101,7 @@ class LabAutomationService(BaseService):
|
|
101
101
|
return model_from_detailed(response)
|
102
102
|
|
103
103
|
@api_method
|
104
|
-
def generate_input(self, input_generator_id: str) ->
|
104
|
+
def generate_input(self, input_generator_id: str) -> TaskHelper[AutomationInputGenerator]:
|
105
105
|
"""
|
106
106
|
Generate input with an Automation Input Generator.
|
107
107
|
|
@@ -110,10 +110,10 @@ class LabAutomationService(BaseService):
|
|
110
110
|
response = generate_input_with_automation_input_generator.sync_detailed(
|
111
111
|
client=self.client, input_generator_id=input_generator_id
|
112
112
|
)
|
113
|
-
return
|
113
|
+
return self._task_helper_from_response(response, AutomationInputGenerator)
|
114
114
|
|
115
115
|
@api_method
|
116
|
-
def process_output(self, output_processor_id: str) ->
|
116
|
+
def process_output(self, output_processor_id: str) -> TaskHelper[AutomationOutputProcessor]:
|
117
117
|
"""
|
118
118
|
Process output with an Automation Output Processor.
|
119
119
|
|
@@ -122,7 +122,7 @@ class LabAutomationService(BaseService):
|
|
122
122
|
response = process_output_with_automation_output_processor.sync_detailed(
|
123
123
|
client=self.client, output_processor_id=output_processor_id
|
124
124
|
)
|
125
|
-
return
|
125
|
+
return self._task_helper_from_response(response, AutomationOutputProcessor)
|
126
126
|
|
127
127
|
@api_method
|
128
128
|
def _automation_output_processors_page(
|
@@ -15,8 +15,8 @@ from benchling_sdk.helpers.decorators import api_method
|
|
15
15
|
from benchling_sdk.helpers.pagination_helpers import NextToken, PageIterator
|
16
16
|
from benchling_sdk.helpers.response_helpers import model_from_detailed
|
17
17
|
from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
|
18
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
18
19
|
from benchling_sdk.models import (
|
19
|
-
AsyncTaskLink,
|
20
20
|
ListNucleotideAlignmentsSort,
|
21
21
|
NucleotideAlignment,
|
22
22
|
NucleotideAlignmentsPaginatedList,
|
@@ -118,7 +118,7 @@ class NucleotideAlignmentsService(BaseService):
|
|
118
118
|
@api_method
|
119
119
|
def create_template_alignment(
|
120
120
|
self, template_alignment: NucleotideTemplateAlignmentCreate
|
121
|
-
) ->
|
121
|
+
) -> TaskHelper[NucleotideAlignment]:
|
122
122
|
"""
|
123
123
|
Create a template Nucleotide alignment.
|
124
124
|
|
@@ -127,12 +127,12 @@ class NucleotideAlignmentsService(BaseService):
|
|
127
127
|
response = create_template_nucleotide_alignment.sync_detailed(
|
128
128
|
client=self.client, json_body=template_alignment
|
129
129
|
)
|
130
|
-
return
|
130
|
+
return self._task_helper_from_response(response, NucleotideAlignment)
|
131
131
|
|
132
132
|
@api_method
|
133
133
|
def create_consensus_alignment(
|
134
134
|
self, consensus_alignment: NucleotideConsensusAlignmentCreate
|
135
|
-
) ->
|
135
|
+
) -> TaskHelper[NucleotideAlignment]:
|
136
136
|
"""
|
137
137
|
Create a consensus Nucleotide alignment.
|
138
138
|
|
@@ -141,7 +141,7 @@ class NucleotideAlignmentsService(BaseService):
|
|
141
141
|
response = create_consensus_nucleotide_alignment.sync_detailed(
|
142
142
|
client=self.client, json_body=consensus_alignment
|
143
143
|
)
|
144
|
-
return
|
144
|
+
return self._task_helper_from_response(response, NucleotideAlignment)
|
145
145
|
|
146
146
|
@api_method
|
147
147
|
def delete_alignment(self, alignment_id: str) -> None:
|
@@ -23,8 +23,9 @@ from benchling_sdk.helpers.serialization_helpers import (
|
|
23
23
|
optional_array_query_param,
|
24
24
|
schema_fields_query_param,
|
25
25
|
)
|
26
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
26
27
|
from benchling_sdk.models import (
|
27
|
-
|
28
|
+
BulkCreateDnaOligosAsyncTaskResponse,
|
28
29
|
DnaOligo,
|
29
30
|
EntityArchiveReason,
|
30
31
|
ListOligosSort,
|
@@ -269,7 +270,7 @@ class OligoService(BaseService):
|
|
269
270
|
return oligos_results.oligos
|
270
271
|
|
271
272
|
@api_method
|
272
|
-
def bulk_create(self, oligos: Iterable[OligoCreate]) ->
|
273
|
+
def bulk_create(self, oligos: Iterable[OligoCreate]) -> TaskHelper[BulkCreateDnaOligosAsyncTaskResponse]:
|
273
274
|
"""
|
274
275
|
Bulk create DNA Oligos (Deprecated).
|
275
276
|
|
@@ -282,4 +283,4 @@ class OligoService(BaseService):
|
|
282
283
|
log_deprecation("oligos.bulk_create", "dna_oligos.bulk_create or rna_oligos.bulk_create")
|
283
284
|
body = OligosBulkCreateRequest(list(oligos))
|
284
285
|
response = bulk_create_oligos.sync_detailed(client=self.client, json_body=body)
|
285
|
-
return
|
286
|
+
return self._task_helper_from_response(response, BulkCreateDnaOligosAsyncTaskResponse)
|
@@ -13,9 +13,9 @@ from benchling_sdk.helpers.decorators import api_method
|
|
13
13
|
from benchling_sdk.helpers.logging_helpers import check_for_csv_bug_fix
|
14
14
|
from benchling_sdk.helpers.response_helpers import model_from_detailed
|
15
15
|
from benchling_sdk.helpers.serialization_helpers import array_query_param
|
16
|
+
from benchling_sdk.helpers.task_helpers import EmptyTaskResponse, TaskHelper
|
16
17
|
from benchling_sdk.models import (
|
17
18
|
AaSequenceWithEntityType,
|
18
|
-
AsyncTaskLink,
|
19
19
|
CustomEntityWithEntityType,
|
20
20
|
DnaOligoWithEntityType,
|
21
21
|
DnaSequenceWithEntityType,
|
@@ -54,7 +54,7 @@ class RegistryService(BaseService):
|
|
54
54
|
registry_id: str,
|
55
55
|
entity_ids: Iterable[str],
|
56
56
|
naming_strategy: NamingStrategy = NamingStrategy.NEW_IDS,
|
57
|
-
) ->
|
57
|
+
) -> TaskHelper[EmptyTaskResponse]:
|
58
58
|
"""
|
59
59
|
Register entities.
|
60
60
|
|
@@ -70,7 +70,7 @@ class RegistryService(BaseService):
|
|
70
70
|
response = register_entities.sync_detailed(
|
71
71
|
client=self.client, registry_id=registry_id, json_body=registration_body
|
72
72
|
)
|
73
|
-
return
|
73
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
74
74
|
|
75
75
|
@api_method
|
76
76
|
def unregister(
|
@@ -24,8 +24,10 @@ from benchling_sdk.helpers.serialization_helpers import (
|
|
24
24
|
optional_array_query_param,
|
25
25
|
schema_fields_query_param,
|
26
26
|
)
|
27
|
+
from benchling_sdk.helpers.task_helpers import TaskHelper
|
27
28
|
from benchling_sdk.models import (
|
28
|
-
|
29
|
+
BulkCreateRnaOligosAsyncTaskResponse,
|
30
|
+
BulkUpdateRnaOligosAsyncTaskResponse,
|
29
31
|
EntityArchiveReason,
|
30
32
|
ListRNAOligosSort,
|
31
33
|
OligoUpsertRequest,
|
@@ -236,7 +238,9 @@ class RnaOligoService(BaseService):
|
|
236
238
|
return model_from_detailed(response)
|
237
239
|
|
238
240
|
@api_method
|
239
|
-
def bulk_create(
|
241
|
+
def bulk_create(
|
242
|
+
self, rna_oligos: Iterable[RnaOligoCreate]
|
243
|
+
) -> TaskHelper[BulkCreateRnaOligosAsyncTaskResponse]:
|
240
244
|
"""
|
241
245
|
Bulk create RNA Oligos.
|
242
246
|
|
@@ -244,10 +248,12 @@ class RnaOligoService(BaseService):
|
|
244
248
|
"""
|
245
249
|
body = RnaOligosBulkCreateRequest(list(rna_oligos))
|
246
250
|
response = bulk_create_rna_oligos.sync_detailed(client=self.client, json_body=body)
|
247
|
-
return
|
251
|
+
return self._task_helper_from_response(response, BulkCreateRnaOligosAsyncTaskResponse)
|
248
252
|
|
249
253
|
@api_method
|
250
|
-
def bulk_update(
|
254
|
+
def bulk_update(
|
255
|
+
self, rna_oligos: Iterable[RnaOligoBulkUpdate]
|
256
|
+
) -> TaskHelper[BulkUpdateRnaOligosAsyncTaskResponse]:
|
251
257
|
"""
|
252
258
|
Bulk update RNA oligos.
|
253
259
|
|
@@ -255,7 +261,7 @@ class RnaOligoService(BaseService):
|
|
255
261
|
"""
|
256
262
|
body = RnaOligosBulkUpdateRequest(list(rna_oligos))
|
257
263
|
response = bulk_update_rna_oligos.sync_detailed(client=self.client, json_body=body)
|
258
|
-
return
|
264
|
+
return self._task_helper_from_response(response, BulkUpdateRnaOligosAsyncTaskResponse)
|
259
265
|
|
260
266
|
@api_method
|
261
267
|
def upsert(self, entity_registry_id: str, rna_oligo: OligoUpsertRequest) -> RnaOligo:
|
@@ -272,7 +278,7 @@ class RnaOligoService(BaseService):
|
|
272
278
|
@api_method
|
273
279
|
def bulk_upsert(
|
274
280
|
self, body: RnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
|
275
|
-
) ->
|
281
|
+
) -> TaskHelper[BulkUpdateRnaOligosAsyncTaskResponse]:
|
276
282
|
"""
|
277
283
|
Bulk create or update RNA Oligos.
|
278
284
|
|
@@ -282,4 +288,4 @@ class RnaOligoService(BaseService):
|
|
282
288
|
response = bulk_upsert_rna_oligos.sync_detailed(
|
283
289
|
client=self.client, json_body=body, returning=none_as_unset(returning_string)
|
284
290
|
)
|
285
|
-
return
|
291
|
+
return self._task_helper_from_response(response, BulkUpdateRnaOligosAsyncTaskResponse)
|
@@ -28,9 +28,11 @@ from benchling_sdk.helpers.serialization_helpers import (
|
|
28
28
|
optional_array_query_param,
|
29
29
|
schema_fields_query_param,
|
30
30
|
)
|
31
|
+
from benchling_sdk.helpers.task_helpers import EmptyTaskResponse, TaskHelper
|
31
32
|
from benchling_sdk.models import (
|
32
|
-
AsyncTaskLink,
|
33
33
|
AutoAnnotateRnaSequences,
|
34
|
+
BulkCreateRnaSequencesAsyncTaskResponse,
|
35
|
+
BulkUpdateRnaSequencesAsyncTaskResponse,
|
34
36
|
EntityArchiveReason,
|
35
37
|
ListRNASequencesSort,
|
36
38
|
MatchBasesRequest,
|
@@ -267,7 +269,9 @@ class RnaSequenceService(BaseService):
|
|
267
269
|
return rna_sequences_results.rna_sequences
|
268
270
|
|
269
271
|
@api_method
|
270
|
-
def bulk_create(
|
272
|
+
def bulk_create(
|
273
|
+
self, rna_sequences: Iterable[RnaSequenceBulkCreate]
|
274
|
+
) -> TaskHelper[BulkCreateRnaSequencesAsyncTaskResponse]:
|
271
275
|
"""
|
272
276
|
Bulk create RNA sequences.
|
273
277
|
|
@@ -275,10 +279,12 @@ class RnaSequenceService(BaseService):
|
|
275
279
|
"""
|
276
280
|
body = RnaSequencesBulkCreateRequest(list(rna_sequences))
|
277
281
|
response = bulk_create_rna_sequences.sync_detailed(client=self.client, json_body=body)
|
278
|
-
return
|
282
|
+
return self._task_helper_from_response(response, BulkCreateRnaSequencesAsyncTaskResponse)
|
279
283
|
|
280
284
|
@api_method
|
281
|
-
def bulk_update(
|
285
|
+
def bulk_update(
|
286
|
+
self, rna_sequences: Iterable[RnaSequenceBulkUpdate]
|
287
|
+
) -> TaskHelper[BulkUpdateRnaSequencesAsyncTaskResponse]:
|
282
288
|
"""
|
283
289
|
Bulk update RNA sequences.
|
284
290
|
|
@@ -286,10 +292,10 @@ class RnaSequenceService(BaseService):
|
|
286
292
|
"""
|
287
293
|
body = RnaSequencesBulkUpdateRequest(list(rna_sequences))
|
288
294
|
response = bulk_update_rna_sequences.sync_detailed(client=self.client, json_body=body)
|
289
|
-
return
|
295
|
+
return self._task_helper_from_response(response, BulkUpdateRnaSequencesAsyncTaskResponse)
|
290
296
|
|
291
297
|
@api_method
|
292
|
-
def autofill_parts(self, rna_sequence_ids: Iterable[str]) ->
|
298
|
+
def autofill_parts(self, rna_sequence_ids: Iterable[str]) -> TaskHelper[EmptyTaskResponse]:
|
293
299
|
"""
|
294
300
|
Autofill RNA sequence parts.
|
295
301
|
|
@@ -297,10 +303,10 @@ class RnaSequenceService(BaseService):
|
|
297
303
|
"""
|
298
304
|
body = AutofillRnaSequences(rna_sequence_ids=list(rna_sequence_ids))
|
299
305
|
response = autofill_rna_sequence_parts.sync_detailed(client=self.client, json_body=body)
|
300
|
-
return
|
306
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
301
307
|
|
302
308
|
@api_method
|
303
|
-
def autofill_translations(self, rna_sequence_ids: Iterable[str]) ->
|
309
|
+
def autofill_translations(self, rna_sequence_ids: Iterable[str]) -> TaskHelper[EmptyTaskResponse]:
|
304
310
|
"""
|
305
311
|
Autofill RNA sequence translations.
|
306
312
|
|
@@ -308,17 +314,17 @@ class RnaSequenceService(BaseService):
|
|
308
314
|
"""
|
309
315
|
body = AutofillRnaSequences(rna_sequence_ids=list(rna_sequence_ids))
|
310
316
|
response = autofill_rna_sequence_translations.sync_detailed(client=self.client, json_body=body)
|
311
|
-
return
|
317
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
312
318
|
|
313
319
|
@api_method
|
314
|
-
def auto_annotate(self, auto_annotate: AutoAnnotateRnaSequences) ->
|
320
|
+
def auto_annotate(self, auto_annotate: AutoAnnotateRnaSequences) -> TaskHelper[EmptyTaskResponse]:
|
315
321
|
"""
|
316
322
|
Auto-annotate RNA sequences with matching features from specified Feature Libraries.
|
317
323
|
|
318
324
|
See https://benchling.com/api/reference#/RNA%20Sequences/autoAnnotateRnaSequences
|
319
325
|
"""
|
320
326
|
response = auto_annotate_rna_sequences.sync_detailed(client=self.client, json_body=auto_annotate)
|
321
|
-
return
|
327
|
+
return self._task_helper_from_response(response, EmptyTaskResponse)
|
322
328
|
|
323
329
|
@api_method
|
324
330
|
def match_bases(self, match_bases_request: MatchBasesRequest) -> RnaSequencesPaginatedList:
|
@@ -32,6 +32,10 @@ class TaskService(BaseService):
|
|
32
32
|
You can access a task for up to 30 minutes after its completion, after which its data will no longer be
|
33
33
|
available.
|
34
34
|
|
35
|
+
Note that as of SDK version 1.19.0, most endpoint methods that create long-running tasks now return
|
36
|
+
a :py:class:`benchling_sdk.helpers.task_helpers.TaskHelper`, which allows you to get the task result
|
37
|
+
more conveniently as a specific model type.
|
38
|
+
|
35
39
|
See https://benchling.com/api/reference#/Tasks
|
36
40
|
"""
|
37
41
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: benchling-sdk
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.19.0
|
4
4
|
Summary: SDK for interacting with the Benchling Platform.
|
5
5
|
License: Apache-2.0
|
6
6
|
Author: Benchling Support
|
@@ -17,7 +17,7 @@ Provides-Extra: python-jose
|
|
17
17
|
Requires-Dist: PyYAML (>=6.0,<7.0)
|
18
18
|
Requires-Dist: attrs (>=20.1.0)
|
19
19
|
Requires-Dist: backoff (>=1.10.0,<3)
|
20
|
-
Requires-Dist: benchling-api-client (==2.0.
|
20
|
+
Requires-Dist: benchling-api-client (==2.0.338)
|
21
21
|
Requires-Dist: certifi (>=2022.12.7)
|
22
22
|
Requires-Dist: cryptography (>=42.0.0) ; extra == "cryptography"
|
23
23
|
Requires-Dist: dataclasses-json (>=0.5.2,<0.6.0)
|