benchling-sdk 1.11.0a5__py3-none-any.whl → 1.12.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.
Files changed (23) hide show
  1. benchling_sdk/benchling.py +14 -0
  2. benchling_sdk/models/__init__.py +6 -0
  3. benchling_sdk/services/v2/beta/v2_beta_aa_sequence_service.py +2 -30
  4. benchling_sdk/services/v2/stable/aa_sequence_service.py +31 -0
  5. benchling_sdk/services/v2/stable/custom_entity_service.py +26 -0
  6. benchling_sdk/services/v2/stable/dna_oligo_service.py +31 -0
  7. benchling_sdk/services/v2/stable/dna_sequence_service.py +66 -0
  8. benchling_sdk/services/v2/{beta/v2_beta_entity_service.py → stable/entity_service.py} +16 -9
  9. benchling_sdk/services/v2/stable/molecule_service.py +46 -12
  10. benchling_sdk/services/v2/stable/plate_service.py +40 -0
  11. benchling_sdk/services/v2/stable/rna_oligo_service.py +31 -0
  12. benchling_sdk/services/v2/stable/rna_sequence_service.py +35 -0
  13. benchling_sdk/services/v2/stable/user_service.py +12 -0
  14. benchling_sdk/services/v2/v2_beta_service.py +0 -96
  15. benchling_sdk/services/v2/v2_stable_service.py +21 -1
  16. {benchling_sdk-1.11.0a5.dist-info → benchling_sdk-1.12.0.dist-info}/METADATA +3 -3
  17. {benchling_sdk-1.11.0a5.dist-info → benchling_sdk-1.12.0.dist-info}/RECORD +19 -23
  18. benchling_sdk/services/v2/beta/v2_beta_custom_entity_service.py +0 -43
  19. benchling_sdk/services/v2/beta/v2_beta_dna_oligo_service.py +0 -41
  20. benchling_sdk/services/v2/beta/v2_beta_dna_sequence_service.py +0 -43
  21. benchling_sdk/services/v2/beta/v2_beta_rna_oligo_service.py +0 -41
  22. {benchling_sdk-1.11.0a5.dist-info → benchling_sdk-1.12.0.dist-info}/LICENSE +0 -0
  23. {benchling_sdk-1.11.0a5.dist-info → benchling_sdk-1.12.0.dist-info}/WHEEL +0 -0
@@ -26,6 +26,7 @@ if TYPE_CHECKING:
26
26
  from benchling_sdk.services.v2.stable.dna_oligo_service import DnaOligoService
27
27
  from benchling_sdk.services.v2.stable.dna_sequence_service import DnaSequenceService
28
28
  from benchling_sdk.services.v2.stable.dropdown_service import DropdownService
29
+ from benchling_sdk.services.v2.stable.entity_service import EntityService
29
30
  from benchling_sdk.services.v2.stable.entry_service import EntryService
30
31
  from benchling_sdk.services.v2.stable.event_service import EventService
31
32
  from benchling_sdk.services.v2.stable.export_service import ExportService
@@ -362,6 +363,19 @@ class Benchling(object):
362
363
  """
363
364
  return self.v2.stable.dropdowns
364
365
 
366
+ @property
367
+ def entities(self) -> EntityService:
368
+ """
369
+ Entities.
370
+
371
+ Entities include DNA and AA sequences, oligos, molecules, custom entities, and
372
+ other biological objects in Benchling. Entities support schemas, tags, and aliases,
373
+ and can be registered.
374
+
375
+ See https://benchling.com/api/reference#/Entities
376
+ """
377
+ return self.v2.stable.entities
378
+
365
379
  @property
366
380
  def entries(self) -> EntryService:
367
381
  """
@@ -687,6 +687,7 @@ __all__ = [
687
687
  "MoleculesArchiveReason",
688
688
  "MoleculesBulkCreateRequest",
689
689
  "MoleculesBulkUpdateRequest",
690
+ "MoleculesBulkUpsertRequest",
690
691
  "MoleculesPaginatedList",
691
692
  "MoleculesUnarchive",
692
693
  "Monomer",
@@ -1731,6 +1732,7 @@ if TYPE_CHECKING:
1731
1732
  import benchling_api_client.v2.stable.models.molecules_archive_reason
1732
1733
  import benchling_api_client.v2.stable.models.molecules_bulk_create_request
1733
1734
  import benchling_api_client.v2.stable.models.molecules_bulk_update_request
1735
+ import benchling_api_client.v2.stable.models.molecules_bulk_upsert_request
1734
1736
  import benchling_api_client.v2.stable.models.molecules_paginated_list
1735
1737
  import benchling_api_client.v2.stable.models.molecules_unarchive
1736
1738
  import benchling_api_client.v2.stable.models.monomer
@@ -3519,6 +3521,9 @@ if TYPE_CHECKING:
3519
3521
  MoleculesBulkUpdateRequest = (
3520
3522
  benchling_api_client.v2.stable.models.molecules_bulk_update_request.MoleculesBulkUpdateRequest
3521
3523
  )
3524
+ MoleculesBulkUpsertRequest = (
3525
+ benchling_api_client.v2.stable.models.molecules_bulk_upsert_request.MoleculesBulkUpsertRequest
3526
+ )
3522
3527
  MoleculesPaginatedList = (
3523
3528
  benchling_api_client.v2.stable.models.molecules_paginated_list.MoleculesPaginatedList
3524
3529
  )
@@ -4963,6 +4968,7 @@ else:
4963
4968
  "MoleculesArchiveReason": "benchling_api_client.v2.stable.models.molecules_archive_reason",
4964
4969
  "MoleculesBulkCreateRequest": "benchling_api_client.v2.stable.models.molecules_bulk_create_request",
4965
4970
  "MoleculesBulkUpdateRequest": "benchling_api_client.v2.stable.models.molecules_bulk_update_request",
4971
+ "MoleculesBulkUpsertRequest": "benchling_api_client.v2.stable.models.molecules_bulk_upsert_request",
4966
4972
  "MoleculesPaginatedList": "benchling_api_client.v2.stable.models.molecules_paginated_list",
4967
4973
  "MoleculesUnarchive": "benchling_api_client.v2.stable.models.molecules_unarchive",
4968
4974
  "Monomer": "benchling_api_client.v2.stable.models.monomer",
@@ -1,17 +1,11 @@
1
- from benchling_api_client.v2.beta.api.aa_sequences import (
2
- bulk_upsert_aa_sequences,
3
- find_matching_regions_aa_sequences,
4
- upsert_aa_sequence,
5
- )
6
- from benchling_api_client.v2.beta.models.aa_sequence_upsert import AaSequenceUpsert
7
- from benchling_api_client.v2.beta.models.aa_sequences_bulk_upsert_request import AaSequencesBulkUpsertRequest
1
+ from benchling_api_client.v2.beta.api.aa_sequences import find_matching_regions_aa_sequences
8
2
  from benchling_api_client.v2.beta.models.aa_sequences_find_matching_region import (
9
3
  AaSequencesFindMatchingRegion,
10
4
  )
11
5
 
12
6
  from benchling_sdk.helpers.decorators import api_method
13
7
  from benchling_sdk.helpers.response_helpers import model_from_detailed
14
- from benchling_sdk.models import AaSequence, AsyncTaskLink
8
+ from benchling_sdk.models import AsyncTaskLink
15
9
  from benchling_sdk.services.v2.base_service import BaseService
16
10
 
17
11
 
@@ -26,28 +20,6 @@ class V2BetaAaSequenceService(BaseService):
26
20
  See https://benchling.com/api/v2-beta/reference#/AA%20Sequences
27
21
  """
28
22
 
29
- @api_method
30
- def upsert(self, entity_registry_id: str, aa_sequence: AaSequenceUpsert) -> AaSequence:
31
- """
32
- Create or modify an Amino Acid Sequence.
33
-
34
- See https://benchling.com/api/v2-beta/reference#/AA%20Sequences/upsertAaSequence
35
- """
36
- response = upsert_aa_sequence.sync_detailed(
37
- client=self.client, entity_registry_id=entity_registry_id, json_body=aa_sequence
38
- )
39
- return model_from_detailed(response)
40
-
41
- @api_method
42
- def bulk_upsert(self, body: AaSequencesBulkUpsertRequest) -> AsyncTaskLink:
43
- """
44
- Bulk create or update AA sequences.
45
-
46
- See https://benchling.com/api/v2-beta/reference#/AA%20Sequences/bulkUpsertAASequences
47
- """
48
- response = bulk_upsert_aa_sequences.sync_detailed(client=self.client, json_body=body)
49
- return model_from_detailed(response)
50
-
51
23
  @api_method
52
24
  def find_matching_regions(self, find_matching_region: AaSequencesFindMatchingRegion) -> AsyncTaskLink:
53
25
  """
@@ -6,11 +6,13 @@ from benchling_api_client.v2.stable.api.aa_sequences import (
6
6
  bulk_create_aa_sequences,
7
7
  bulk_get_aa_sequences,
8
8
  bulk_update_aa_sequences,
9
+ bulk_upsert_aa_sequences,
9
10
  create_aa_sequence,
10
11
  get_aa_sequence,
11
12
  list_aa_sequences,
12
13
  unarchive_aa_sequences,
13
14
  update_aa_sequence,
15
+ upsert_aa_sequence,
14
16
  )
15
17
  from benchling_api_client.v2.types import Response
16
18
 
@@ -34,9 +36,11 @@ from benchling_sdk.models import (
34
36
  AaSequencesArchive,
35
37
  AaSequencesBulkCreateRequest,
36
38
  AaSequencesBulkUpdateRequest,
39
+ AaSequencesBulkUpsertRequest,
37
40
  AaSequencesPaginatedList,
38
41
  AaSequencesUnarchive,
39
42
  AaSequenceUpdate,
43
+ AaSequenceUpsert,
40
44
  AsyncTaskLink,
41
45
  AutoAnnotateAaSequences,
42
46
  EntityArchiveReason,
@@ -281,3 +285,30 @@ class AaSequenceService(BaseService):
281
285
  """
282
286
  response = auto_annotate_aa_sequences.sync_detailed(client=self.client, json_body=auto_annotate)
283
287
  return model_from_detailed(response)
288
+
289
+ @api_method
290
+ def upsert(self, entity_registry_id: str, aa_sequence: AaSequenceUpsert) -> AaSequence:
291
+ """
292
+ Create or modify an Amino Acid Sequence.
293
+
294
+ See https://benchling.com/api/reference#/AA%20Sequences/upsertAaSequence
295
+ """
296
+ response = upsert_aa_sequence.sync_detailed(
297
+ client=self.client, entity_registry_id=entity_registry_id, json_body=aa_sequence
298
+ )
299
+ return model_from_detailed(response)
300
+
301
+ @api_method
302
+ def bulk_upsert(
303
+ self, body: AaSequencesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
304
+ ) -> AsyncTaskLink:
305
+ """
306
+ Bulk create or update AA sequences.
307
+
308
+ See https://benchling.com/api/reference#/AA%20Sequences/bulkUpsertAASequences
309
+ """
310
+ returning_string = optional_array_query_param(returning)
311
+ response = bulk_upsert_aa_sequences.sync_detailed(
312
+ client=self.client, json_body=body, returning=none_as_unset(returning_string)
313
+ )
314
+ return model_from_detailed(response)
@@ -5,11 +5,13 @@ from benchling_api_client.v2.stable.api.custom_entities import (
5
5
  bulk_create_custom_entities,
6
6
  bulk_get_custom_entities,
7
7
  bulk_update_custom_entities,
8
+ bulk_upsert_custom_entities,
8
9
  create_custom_entity,
9
10
  get_custom_entity,
10
11
  list_custom_entities,
11
12
  unarchive_custom_entities,
12
13
  update_custom_entity,
14
+ upsert_custom_entity,
13
15
  )
14
16
  from benchling_api_client.v2.types import Response
15
17
 
@@ -30,6 +32,7 @@ from benchling_sdk.models import (
30
32
  CustomEntitiesArchive,
31
33
  CustomEntitiesBulkCreateRequest,
32
34
  CustomEntitiesBulkUpdateRequest,
35
+ CustomEntitiesBulkUpsertRequest,
33
36
  CustomEntitiesPaginatedList,
34
37
  CustomEntitiesUnarchive,
35
38
  CustomEntity,
@@ -37,6 +40,7 @@ from benchling_sdk.models import (
37
40
  CustomEntityBulkUpdate,
38
41
  CustomEntityCreate,
39
42
  CustomEntityUpdate,
43
+ CustomEntityUpsertRequest,
40
44
  EntityArchiveReason,
41
45
  ListCustomEntitiesSort,
42
46
  )
@@ -266,3 +270,25 @@ class CustomEntityService(BaseService):
266
270
  body = CustomEntitiesBulkUpdateRequest(list(entities))
267
271
  response = bulk_update_custom_entities.sync_detailed(client=self.client, json_body=body)
268
272
  return model_from_detailed(response)
273
+
274
+ @api_method
275
+ def upsert(self, entity_registry_id: str, entity: CustomEntityUpsertRequest) -> CustomEntity:
276
+ """
277
+ Create or modify a custom entity.
278
+
279
+ See https://benchling.com/api/reference#/Custom%20Entities/upsertCustomEntity
280
+ """
281
+ response = upsert_custom_entity.sync_detailed(
282
+ client=self.client, entity_registry_id=entity_registry_id, json_body=entity
283
+ )
284
+ return model_from_detailed(response)
285
+
286
+ @api_method
287
+ def bulk_upsert(self, body: CustomEntitiesBulkUpsertRequest) -> AsyncTaskLink:
288
+ """
289
+ Bulk update custom entities.
290
+
291
+ See https://benchling.com/api/reference#/Custom%20Entities/bulkUpsertCustomEntities
292
+ """
293
+ response = bulk_upsert_custom_entities.sync_detailed(client=self.client, json_body=body)
294
+ return model_from_detailed(response)
@@ -4,11 +4,13 @@ from benchling_api_client.v2.stable.api.dna_oligos import (
4
4
  archive_dna_oligos,
5
5
  bulk_create_dna_oligos,
6
6
  bulk_update_dna_oligos,
7
+ bulk_upsert_dna_oligos,
7
8
  create_dna_oligo,
8
9
  get_dna_oligo,
9
10
  list_dna_oligos,
10
11
  unarchive_dna_oligos,
11
12
  update_dna_oligo,
13
+ upsert_dna_oligo,
12
14
  )
13
15
  from benchling_api_client.v2.types import Response
14
16
 
@@ -31,11 +33,13 @@ from benchling_sdk.models import (
31
33
  DnaOligosArchive,
32
34
  DnaOligosBulkCreateRequest,
33
35
  DnaOligosBulkUpdateRequest,
36
+ DnaOligosBulkUpsertRequest,
34
37
  DnaOligosPaginatedList,
35
38
  DnaOligosUnarchive,
36
39
  DnaOligoUpdate,
37
40
  EntityArchiveReason,
38
41
  ListDNAOligosSort,
42
+ OligoUpsertRequest,
39
43
  )
40
44
  from benchling_sdk.services.v2.base_service import BaseService
41
45
 
@@ -243,3 +247,30 @@ class DnaOligoService(BaseService):
243
247
  body = DnaOligosBulkUpdateRequest(list(dna_oligos))
244
248
  response = bulk_update_dna_oligos.sync_detailed(client=self.client, json_body=body)
245
249
  return model_from_detailed(response)
250
+
251
+ @api_method
252
+ def upsert(self, entity_registry_id: str, dna_oligo: OligoUpsertRequest) -> DnaOligo:
253
+ """
254
+ Create or modify a DNA Oligo.
255
+
256
+ See https://benchling.com/api/reference#/DNA%20Oligos/upsertDNAOligo
257
+ """
258
+ response = upsert_dna_oligo.sync_detailed(
259
+ client=self.client, entity_registry_id=entity_registry_id, json_body=dna_oligo
260
+ )
261
+ return model_from_detailed(response)
262
+
263
+ @api_method
264
+ def bulk_upsert(
265
+ self, body: DnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
266
+ ) -> AsyncTaskLink:
267
+ """
268
+ Bulk create or update DNA Oligos.
269
+
270
+ See https://benchling.com/api/reference#/DNA%20Oligos/bulkUpsertDnaOligos
271
+ """
272
+ returning_string = optional_array_query_param(returning)
273
+ response = bulk_upsert_dna_oligos.sync_detailed(
274
+ client=self.client, json_body=body, returning=none_as_unset(returning_string)
275
+ )
276
+ return model_from_detailed(response)
@@ -8,11 +8,15 @@ from benchling_api_client.v2.stable.api.dna_sequences import (
8
8
  bulk_create_dna_sequences,
9
9
  bulk_get_dna_sequences,
10
10
  bulk_update_dna_sequences,
11
+ bulk_upsert_dna_sequences,
11
12
  create_dna_sequence,
12
13
  get_dna_sequence,
13
14
  list_dna_sequences,
15
+ match_bases_dna_sequences,
16
+ search_dna_sequences,
14
17
  unarchive_dna_sequences,
15
18
  update_dna_sequence,
19
+ upsert_dna_sequence,
16
20
  )
17
21
  from benchling_api_client.v2.types import Response
18
22
 
@@ -39,11 +43,15 @@ from benchling_sdk.models import (
39
43
  DnaSequencesArchive,
40
44
  DnaSequencesBulkCreateRequest,
41
45
  DnaSequencesBulkUpdateRequest,
46
+ DnaSequencesBulkUpsertRequest,
42
47
  DnaSequencesPaginatedList,
43
48
  DnaSequencesUnarchive,
44
49
  DnaSequenceUpdate,
50
+ DnaSequenceUpsertRequest,
45
51
  EntityArchiveReason,
46
52
  ListDNASequencesSort,
53
+ MatchBasesRequest,
54
+ SearchBasesRequest,
47
55
  )
48
56
  from benchling_sdk.services.v2.base_service import BaseService
49
57
 
@@ -306,3 +314,61 @@ class DnaSequenceService(BaseService):
306
314
  """
307
315
  response = auto_annotate_dna_sequences.sync_detailed(client=self.client, json_body=auto_annotate)
308
316
  return model_from_detailed(response)
317
+
318
+ @api_method
319
+ def upsert(self, entity_registry_id: str, dna_sequence: DnaSequenceUpsertRequest) -> DnaSequence:
320
+ """
321
+ Create or modify a DNA sequence.
322
+
323
+ See https://benchling.com/api/reference#/DNA%20Sequences/upsertDNASequence
324
+ """
325
+ response = upsert_dna_sequence.sync_detailed(
326
+ client=self.client, entity_registry_id=entity_registry_id, json_body=dna_sequence
327
+ )
328
+ return model_from_detailed(response)
329
+
330
+ @api_method
331
+ def bulk_upsert(
332
+ self, body: DnaSequencesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
333
+ ) -> AsyncTaskLink:
334
+ """
335
+ Bulk create or update DNA sequences.
336
+
337
+ See https://benchling.com/api/reference#/DNA%20Sequences/bulkUpsertDnaSequences
338
+ """
339
+ returning_string = optional_array_query_param(returning)
340
+ response = bulk_upsert_dna_sequences.sync_detailed(
341
+ client=self.client, json_body=body, returning=none_as_unset(returning_string)
342
+ )
343
+ return model_from_detailed(response)
344
+
345
+ @api_method
346
+ def match_bases(self, match_bases_request: MatchBasesRequest) -> DnaSequencesPaginatedList:
347
+ """
348
+ Match bases.
349
+
350
+ Returns DNA Sequences that exactly match the provided bases.
351
+
352
+ See https://benchling.com/api/reference#/DNA%20Sequences/matchBasesDnaSequences
353
+ """
354
+ response = match_bases_dna_sequences.sync_detailed(
355
+ client=self.client,
356
+ json_body=match_bases_request,
357
+ )
358
+ return model_from_detailed(response)
359
+
360
+ @api_method
361
+ def search_bases(self, search_bases_request: SearchBasesRequest) -> DnaSequencesPaginatedList:
362
+ """
363
+ Search bases.
364
+
365
+ Returns DNA Sequences that contain the provided bases.
366
+ Search indexing is asynchronous, so results may be not be available immediately after creation.
367
+
368
+ See https://benchling.com/api/reference#/DNA%20Sequences/searchDnaSequences
369
+ """
370
+ response = search_dna_sequences.sync_detailed(
371
+ client=self.client,
372
+ json_body=search_bases_request,
373
+ )
374
+ return model_from_detailed(response)
@@ -1,25 +1,29 @@
1
- from benchling_api_client.v2.beta.api.entities import bulk_upsert_entities
2
- from benchling_api_client.v2.beta.models.entities_bulk_upsert_request import EntitiesBulkUpsertRequest
1
+ from typing import Iterable, Optional
2
+
3
+ from benchling_api_client.v2.stable.api.entities import bulk_upsert_entities
3
4
 
4
5
  from benchling_sdk.helpers.decorators import api_method
5
6
  from benchling_sdk.helpers.response_helpers import model_from_detailed
6
- from benchling_sdk.models import AsyncTaskLink
7
+ from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
8
+ from benchling_sdk.models import AsyncTaskLink, EntitiesBulkUpsertRequest
7
9
  from benchling_sdk.services.v2.base_service import BaseService
8
10
 
9
11
 
10
- class V2BetaEntityService(BaseService):
12
+ class EntityService(BaseService):
11
13
  """
12
- V2-Beta Entities.
14
+ Entities.
13
15
 
14
16
  Entities include DNA and AA sequences, oligos, molecules, custom entities, and
15
17
  other biological objects in Benchling. Entities support schemas, tags, and aliases,
16
18
  and can be registered.
17
19
 
18
- See https://benchling.com/api/v2-beta/reference#/Entities
20
+ See https://benchling.com/api/reference#/Entities
19
21
  """
20
22
 
21
23
  @api_method
22
- def bulk_upsert(self, bulk_upsert: EntitiesBulkUpsertRequest) -> AsyncTaskLink:
24
+ def bulk_upsert(
25
+ self, bulk_upsert: EntitiesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
26
+ ) -> AsyncTaskLink:
23
27
  """
24
28
  Upsert many entities at once.
25
29
 
@@ -33,7 +37,10 @@ class V2BetaEntityService(BaseService):
33
37
  4. Entities are registered, using the provided name and entity registry ID.
34
38
 
35
39
  If any action fails, the whole operation is canceled and no objects are created or updated.
36
- See https://benchling.com/api/v2-beta/reference#/Entities/bulkUpsertEntities
40
+ See https://benchling.com/api/reference#/Entities/bulkUpsertEntities
37
41
  """
38
- response = bulk_upsert_entities.sync_detailed(client=self.client, json_body=bulk_upsert)
42
+ returning_string = optional_array_query_param(returning)
43
+ response = bulk_upsert_entities.sync_detailed(
44
+ client=self.client, json_body=bulk_upsert, returning=none_as_unset(returning_string)
45
+ )
39
46
  return model_from_detailed(response)
@@ -4,23 +4,14 @@ from benchling_api_client.v2.stable.api.molecules import (
4
4
  archive_molecules,
5
5
  bulk_create_molecules,
6
6
  bulk_update_molecules,
7
+ bulk_upsert_molecules,
7
8
  create_molecule,
8
9
  get_molecule,
9
10
  list_molecules,
10
11
  unarchive_molecules,
11
12
  update_molecule,
13
+ upsert_molecule,
12
14
  )
13
- from benchling_api_client.v2.stable.models.list_molecules_sort import ListMoleculesSort
14
- from benchling_api_client.v2.stable.models.molecule_bulk_update import MoleculeBulkUpdate
15
- from benchling_api_client.v2.stable.models.molecule_create import MoleculeCreate
16
- from benchling_api_client.v2.stable.models.molecule_update import MoleculeUpdate
17
- from benchling_api_client.v2.stable.models.molecules_archival_change import MoleculesArchivalChange
18
- from benchling_api_client.v2.stable.models.molecules_archive import MoleculesArchive
19
- from benchling_api_client.v2.stable.models.molecules_archive_reason import MoleculesArchiveReason
20
- from benchling_api_client.v2.stable.models.molecules_bulk_create_request import MoleculesBulkCreateRequest
21
- from benchling_api_client.v2.stable.models.molecules_bulk_update_request import MoleculesBulkUpdateRequest
22
- from benchling_api_client.v2.stable.models.molecules_paginated_list import MoleculesPaginatedList
23
- from benchling_api_client.v2.stable.models.molecules_unarchive import MoleculesUnarchive
24
15
  from benchling_api_client.v2.types import Response
25
16
 
26
17
  from benchling_sdk.errors import raise_for_status
@@ -34,7 +25,23 @@ from benchling_sdk.helpers.serialization_helpers import (
34
25
  optional_array_query_param,
35
26
  schema_fields_query_param,
36
27
  )
37
- from benchling_sdk.models import AsyncTaskLink, Molecule
28
+ from benchling_sdk.models import (
29
+ AsyncTaskLink,
30
+ ListMoleculesSort,
31
+ Molecule,
32
+ MoleculeBulkUpdate,
33
+ MoleculeCreate,
34
+ MoleculesArchivalChange,
35
+ MoleculesArchive,
36
+ MoleculesArchiveReason,
37
+ MoleculesBulkCreateRequest,
38
+ MoleculesBulkUpdateRequest,
39
+ MoleculesBulkUpsertRequest,
40
+ MoleculesPaginatedList,
41
+ MoleculesUnarchive,
42
+ MoleculeUpdate,
43
+ MoleculeUpsertRequest,
44
+ )
38
45
  from benchling_sdk.services.v2.base_service import BaseService
39
46
 
40
47
 
@@ -232,3 +239,30 @@ class MoleculeService(BaseService):
232
239
  body = MoleculesBulkUpdateRequest(list(molecules))
233
240
  response = bulk_update_molecules.sync_detailed(client=self.client, json_body=body)
234
241
  return model_from_detailed(response)
242
+
243
+ @api_method
244
+ def upsert(self, entity_registry_id: str, molecule: MoleculeUpsertRequest) -> Molecule:
245
+ """
246
+ Create or modify a Molecule.
247
+
248
+ See https://benchling.com/api/reference#/Molecules/upsertMolecule
249
+ """
250
+ response = upsert_molecule.sync_detailed(
251
+ client=self.client, entity_registry_id=entity_registry_id, json_body=molecule
252
+ )
253
+ return model_from_detailed(response)
254
+
255
+ @api_method
256
+ def bulk_upsert(
257
+ self, body: MoleculesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
258
+ ) -> AsyncTaskLink:
259
+ """
260
+ Bulk create or update Molecules.
261
+
262
+ See https://benchling.com/api/reference#/Molecules/bulkUpsertMolecules
263
+ """
264
+ returning_string = optional_array_query_param(returning)
265
+ response = bulk_upsert_molecules.sync_detailed(
266
+ client=self.client, json_body=body, returning=none_as_unset(returning_string)
267
+ )
268
+ return model_from_detailed(response)
@@ -90,6 +90,16 @@ class PlateService(BaseService):
90
90
  creator_ids: Optional[Iterable[str]] = None,
91
91
  archive_reason: Optional[str] = None,
92
92
  schema_fields: Optional[Dict[str, Any]] = None,
93
+ empty_containers: Optional[int] = None,
94
+ empty_containers_gt: Optional[int] = None,
95
+ empty_containers_gte: Optional[int] = None,
96
+ empty_containers_lt: Optional[int] = None,
97
+ empty_containers_lte: Optional[int] = None,
98
+ empty_positions: Optional[int] = None,
99
+ empty_positions_gt: Optional[int] = None,
100
+ empty_positions_gte: Optional[int] = None,
101
+ empty_positions_lt: Optional[int] = None,
102
+ empty_positions_lte: Optional[int] = None,
93
103
  timeout_seconds: Optional[float] = None,
94
104
  returning: Optional[Iterable[str]] = None
95
105
  ) -> Response[PlatesPaginatedList]:
@@ -111,6 +121,16 @@ class PlateService(BaseService):
111
121
  namesany_ofcase_sensitive=none_as_unset(optional_array_query_param(names_any_of_case_sensitive)),
112
122
  creator_ids=none_as_unset(optional_array_query_param(creator_ids)),
113
123
  schema_fields=none_as_unset(schema_fields_query_param(schema_fields)),
124
+ empty_containers=none_as_unset(empty_containers),
125
+ empty_containersgt=none_as_unset(empty_containers_gt),
126
+ empty_containersgte=none_as_unset(empty_containers_gte),
127
+ empty_containerslt=none_as_unset(empty_containers_lt),
128
+ empty_containerslte=none_as_unset(empty_containers_lte),
129
+ empty_positions=none_as_unset(empty_positions),
130
+ empty_positionsgt=none_as_unset(empty_positions_gt),
131
+ empty_positionsgte=none_as_unset(empty_positions_gte),
132
+ empty_positionslt=none_as_unset(empty_positions_lt),
133
+ empty_positionslte=none_as_unset(empty_positions_lte),
114
134
  next_token=none_as_unset(next_token),
115
135
  page_size=none_as_unset(page_size),
116
136
  returning=none_as_unset(optional_array_query_param(returning)),
@@ -136,6 +156,16 @@ class PlateService(BaseService):
136
156
  creator_ids: Optional[Iterable[str]] = None,
137
157
  archive_reason: Optional[str] = None,
138
158
  schema_fields: Optional[Dict[str, Any]] = None,
159
+ empty_containers: Optional[int] = None,
160
+ empty_containers_gt: Optional[int] = None,
161
+ empty_containers_gte: Optional[int] = None,
162
+ empty_containers_lt: Optional[int] = None,
163
+ empty_containers_lte: Optional[int] = None,
164
+ empty_positions: Optional[int] = None,
165
+ empty_positions_gt: Optional[int] = None,
166
+ empty_positions_gte: Optional[int] = None,
167
+ empty_positions_lt: Optional[int] = None,
168
+ empty_positions_lte: Optional[int] = None,
139
169
  page_size: Optional[int] = None,
140
170
  timeout_seconds: Optional[float] = DEFAULT_PLATE_HTTP_TIMEOUT,
141
171
  returning: Optional[Iterable[str]] = None
@@ -170,6 +200,16 @@ class PlateService(BaseService):
170
200
  names_any_of_case_sensitive=names_any_of_case_sensitive,
171
201
  creator_ids=creator_ids,
172
202
  schema_fields=schema_fields,
203
+ empty_containers=empty_containers,
204
+ empty_containers_gt=empty_containers_gt,
205
+ empty_containers_gte=empty_containers_gte,
206
+ empty_containers_lt=empty_containers_lt,
207
+ empty_containers_lte=empty_containers_lte,
208
+ empty_positions=empty_positions,
209
+ empty_positions_gt=empty_positions_gt,
210
+ empty_positions_gte=empty_positions_gte,
211
+ empty_positions_lt=empty_positions_lt,
212
+ empty_positions_lte=empty_positions_lte,
173
213
  next_token=next_token,
174
214
  page_size=page_size,
175
215
  timeout_seconds=timeout_seconds,
@@ -4,11 +4,13 @@ from benchling_api_client.v2.stable.api.rna_oligos import (
4
4
  archive_rna_oligos,
5
5
  bulk_create_rna_oligos,
6
6
  bulk_update_rna_oligos,
7
+ bulk_upsert_rna_oligos,
7
8
  create_rna_oligo,
8
9
  get_rna_oligo,
9
10
  list_rna_oligos,
10
11
  unarchive_rna_oligos,
11
12
  update_rna_oligo,
13
+ upsert_rna_oligo,
12
14
  )
13
15
  from benchling_api_client.v2.types import Response
14
16
 
@@ -26,6 +28,7 @@ from benchling_sdk.models import (
26
28
  AsyncTaskLink,
27
29
  EntityArchiveReason,
28
30
  ListRNAOligosSort,
31
+ OligoUpsertRequest,
29
32
  RnaOligo,
30
33
  RnaOligoBulkUpdate,
31
34
  RnaOligoCreate,
@@ -33,6 +36,7 @@ from benchling_sdk.models import (
33
36
  RnaOligosArchive,
34
37
  RnaOligosBulkCreateRequest,
35
38
  RnaOligosBulkUpdateRequest,
39
+ RnaOligosBulkUpsertRequest,
36
40
  RnaOligosPaginatedList,
37
41
  RnaOligosUnarchive,
38
42
  RnaOligoUpdate,
@@ -252,3 +256,30 @@ class RnaOligoService(BaseService):
252
256
  body = RnaOligosBulkUpdateRequest(list(rna_oligos))
253
257
  response = bulk_update_rna_oligos.sync_detailed(client=self.client, json_body=body)
254
258
  return model_from_detailed(response)
259
+
260
+ @api_method
261
+ def upsert(self, entity_registry_id: str, rna_oligo: OligoUpsertRequest) -> RnaOligo:
262
+ """
263
+ Create or modify a RNA Oligo.
264
+
265
+ See https://benchling.com/api/reference#/RNA%20Oligos/upsertRNAOligo
266
+ """
267
+ response = upsert_rna_oligo.sync_detailed(
268
+ client=self.client, entity_registry_id=entity_registry_id, json_body=rna_oligo
269
+ )
270
+ return model_from_detailed(response)
271
+
272
+ @api_method
273
+ def bulk_upsert(
274
+ self, body: RnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
275
+ ) -> AsyncTaskLink:
276
+ """
277
+ Bulk create or update RNA Oligos.
278
+
279
+ See https://benchling.com/api/reference#/RNA%20Oligos/bulkUpsertRnaOligos
280
+ """
281
+ returning_string = optional_array_query_param(returning)
282
+ response = bulk_upsert_rna_oligos.sync_detailed(
283
+ client=self.client, json_body=body, returning=none_as_unset(returning_string)
284
+ )
285
+ return model_from_detailed(response)
@@ -11,6 +11,8 @@ from benchling_api_client.v2.stable.api.rna_sequences import (
11
11
  create_rna_sequence,
12
12
  get_rna_sequence,
13
13
  list_rna_sequences,
14
+ match_bases_rna_sequences,
15
+ search_rna_sequences,
14
16
  unarchive_rna_sequences,
15
17
  update_rna_sequence,
16
18
  )
@@ -31,6 +33,7 @@ from benchling_sdk.models import (
31
33
  AutoAnnotateRnaSequences,
32
34
  EntityArchiveReason,
33
35
  ListRNASequencesSort,
36
+ MatchBasesRequest,
34
37
  RnaSequence,
35
38
  RnaSequenceBulkCreate,
36
39
  RnaSequenceBulkUpdate,
@@ -42,6 +45,7 @@ from benchling_sdk.models import (
42
45
  RnaSequencesPaginatedList,
43
46
  RnaSequencesUnarchive,
44
47
  RnaSequenceUpdate,
48
+ SearchBasesRequest,
45
49
  )
46
50
  from benchling_sdk.services.v2.base_service import BaseService
47
51
 
@@ -315,3 +319,34 @@ class RnaSequenceService(BaseService):
315
319
  """
316
320
  response = auto_annotate_rna_sequences.sync_detailed(client=self.client, json_body=auto_annotate)
317
321
  return model_from_detailed(response)
322
+
323
+ @api_method
324
+ def match_bases(self, match_bases_request: MatchBasesRequest) -> RnaSequencesPaginatedList:
325
+ """
326
+ Match bases.
327
+
328
+ Returns RNA Sequences that exactly match the provided bases.
329
+
330
+ See https://benchling.com/api/reference#/RNA%20Sequences/matchBasesRnaSequences
331
+ """
332
+ response = match_bases_rna_sequences.sync_detailed(
333
+ client=self.client,
334
+ json_body=match_bases_request,
335
+ )
336
+ return model_from_detailed(response)
337
+
338
+ @api_method
339
+ def search_bases(self, search_bases_request: SearchBasesRequest) -> RnaSequencesPaginatedList:
340
+ """
341
+ Search bases.
342
+
343
+ Returns RNA Sequences that contain the provided bases.
344
+ Search indexing is asynchronous, so results may be not be available immediately after creation.
345
+
346
+ See https://benchling.com/api/reference#/RNA%20Sequences/searchRnaSequences
347
+ """
348
+ response = search_rna_sequences.sync_detailed(
349
+ client=self.client,
350
+ json_body=search_bases_request,
351
+ )
352
+ return model_from_detailed(response)
@@ -6,6 +6,7 @@ from benchling_api_client.v2.stable.api.users import (
6
6
  create_user,
7
7
  get_user,
8
8
  get_user_activity,
9
+ get_user_warehouse_logins,
9
10
  list_users,
10
11
  update_user,
11
12
  )
@@ -19,6 +20,7 @@ from benchling_sdk.helpers.response_helpers import model_from_detailed
19
20
  from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
20
21
  from benchling_sdk.models import (
21
22
  AsyncTaskLink,
23
+ GetUserWarehouseLoginsResponse_200,
22
24
  ListUsersSort,
23
25
  User,
24
26
  UserActivity,
@@ -193,3 +195,13 @@ class UserService(BaseService):
193
195
  """
194
196
  response = get_user_activity.sync_detailed(client=self.client, user_id=user_id)
195
197
  return model_from_detailed(response)
198
+
199
+ @api_method
200
+ def get_warehouse_logins(self, user_id: str) -> GetUserWarehouseLoginsResponse_200:
201
+ """
202
+ Return the list of warehouse credential summaries for this user.
203
+
204
+ See https://benchling.com/api/reference#/Users/getUserWarehouseLogins
205
+ """
206
+ response = get_user_warehouse_logins.sync_detailed(client=self.client, user_id=user_id)
207
+ return model_from_detailed(response)
@@ -13,14 +13,9 @@ if TYPE_CHECKING:
13
13
  from benchling_sdk.services.v2.beta.v2_beta_aa_sequence_service import V2BetaAaSequenceService
14
14
  from benchling_sdk.services.v2.beta.v2_beta_app_service import V2BetaAppService
15
15
  from benchling_sdk.services.v2.beta.v2_beta_collaboration_service import V2BetaCollaborationService
16
- from benchling_sdk.services.v2.beta.v2_beta_custom_entity_service import V2BetaCustomEntityService
17
- from benchling_sdk.services.v2.beta.v2_beta_dna_oligo_service import V2BetaDnaOligoService
18
- from benchling_sdk.services.v2.beta.v2_beta_dna_sequence_service import V2BetaDnaSequenceService
19
- from benchling_sdk.services.v2.beta.v2_beta_entity_service import V2BetaEntityService
20
16
  from benchling_sdk.services.v2.beta.v2_beta_entry_service import V2BetaEntryService
21
17
  from benchling_sdk.services.v2.beta.v2_beta_folder_service import V2BetaFolderService
22
18
  from benchling_sdk.services.v2.beta.v2_beta_project_service import V2BetaProjectService
23
- from benchling_sdk.services.v2.beta.v2_beta_rna_oligo_service import V2BetaRnaOligoService
24
19
  from benchling_sdk.services.v2.beta.v2_beta_worklist_service import V2BetaWorklistService
25
20
 
26
21
 
@@ -36,15 +31,10 @@ class V2BetaService(BaseService):
36
31
  _aa_sequence_service: Optional[V2BetaAaSequenceService]
37
32
  _app_service: Optional[V2BetaAppService]
38
33
  _collaboration_service: Optional[V2BetaCollaborationService]
39
- _custom_entity_service: Optional[V2BetaCustomEntityService]
40
34
  _data_frame_service: Optional[V2BetaDataFrameService]
41
- _dna_oligo_service: Optional[V2BetaDnaOligoService]
42
- _dna_sequence_service: Optional[V2BetaDnaSequenceService]
43
- _entity_service: Optional[V2BetaEntityService]
44
35
  _entry_service: Optional[V2BetaEntryService]
45
36
  _folder_service: Optional[V2BetaFolderService]
46
37
  _project_service: Optional[V2BetaProjectService]
47
- _rna_oligo_service: Optional[V2BetaRnaOligoService]
48
38
  _worklist_service: Optional[V2BetaWorklistService]
49
39
  _beta_client: Client
50
40
 
@@ -60,15 +50,10 @@ class V2BetaService(BaseService):
60
50
  self._aa_sequence_service = None
61
51
  self._app_service = None
62
52
  self._collaboration_service = None
63
- self._custom_entity_service = None
64
53
  self._data_frame_service = None
65
- self._dna_sequence_service = None
66
- self._dna_oligo_service = None
67
- self._entity_service = None
68
54
  self._entry_service = None
69
55
  self._folder_service = None
70
56
  self._project_service = None
71
- self._rna_oligo_service = None
72
57
  self._worklist_service = None
73
58
 
74
59
  @property
@@ -120,22 +105,6 @@ class V2BetaService(BaseService):
120
105
  self._collaboration_service = V2BetaCollaborationService(self._beta_client, self.retry_strategy)
121
106
  return self._collaboration_service
122
107
 
123
- @property
124
- def custom_entities(self) -> V2BetaCustomEntityService:
125
- """
126
- V2-Beta Custom Entities.
127
-
128
- Benchling supports custom entities for biological entities that are neither sequences or proteins. Custom
129
- entities must have an entity schema set and can have both schema fields and custom fields.
130
-
131
- See https://benchling.com/api/v2-beta/reference#/Custom%20Entities
132
- """
133
- if self._custom_entity_service is None:
134
- from benchling_sdk.services.v2.beta.v2_beta_custom_entity_service import V2BetaCustomEntityService
135
-
136
- self._custom_entity_service = V2BetaCustomEntityService(self._beta_client, self.retry_strategy)
137
- return self._custom_entity_service
138
-
139
108
  @property
140
109
  def data_frames(self) -> V2BetaDataFrameService:
141
110
  """
@@ -151,55 +120,6 @@ class V2BetaService(BaseService):
151
120
  self._data_frame_service = V2BetaDataFrameService(self._beta_client, self.retry_strategy)
152
121
  return self._data_frame_service
153
122
 
154
- @property
155
- def dna_oligos(self) -> V2BetaDnaOligoService:
156
- """
157
- V2-Beta DNA Oligos.
158
-
159
- DNA Oligos are short linear DNA sequences that can be attached as primers to full DNA sequences. Just like other
160
- entities, they support schemas, tags, and aliases.
161
-
162
- See https://benchling.com/api/v2-beta/reference#/DNA%20Oligos
163
- """
164
- if self._dna_oligo_service is None:
165
- from benchling_sdk.services.v2.beta.v2_beta_dna_oligo_service import V2BetaDnaOligoService
166
-
167
- self._dna_oligo_service = V2BetaDnaOligoService(self._beta_client, self.retry_strategy)
168
- return self._dna_oligo_service
169
-
170
- @property
171
- def dna_sequences(self) -> V2BetaDnaSequenceService:
172
- """
173
- V2-Beta DNA Sequences.
174
-
175
- DNA sequences are the bread and butter of the Benchling Molecular Biology suite. On Benchling, these are
176
- comprised of a string of nucleotides and collections of other attributes, such as annotations and primers.
177
-
178
- See https://benchling.com/api/v2-beta/reference#/DNA%20Sequences
179
- """
180
- if self._dna_sequence_service is None:
181
- from benchling_sdk.services.v2.beta.v2_beta_dna_sequence_service import V2BetaDnaSequenceService
182
-
183
- self._dna_sequence_service = V2BetaDnaSequenceService(self._beta_client, self.retry_strategy)
184
- return self._dna_sequence_service
185
-
186
- @property
187
- def entities(self) -> V2BetaEntityService:
188
- """
189
- V2-Beta Entities.
190
-
191
- Entities include DNA and AA sequences, oligos, molecules, custom entities, and
192
- other biological objects in Benchling. Entities support schemas, tags, and aliases,
193
- and can be registered.
194
-
195
- See https://benchling.com/api/v2-beta/reference#/Entities
196
- """
197
- if self._entity_service is None:
198
- from benchling_sdk.services.v2.beta.v2_beta_entity_service import V2BetaEntityService
199
-
200
- self._entity_service = V2BetaEntityService(self._beta_client, self.retry_strategy)
201
- return self._entity_service
202
-
203
123
  @property
204
124
  def entries(self) -> V2BetaEntryService:
205
125
  """
@@ -245,22 +165,6 @@ class V2BetaService(BaseService):
245
165
  self._project_service = V2BetaProjectService(self._beta_client, self.retry_strategy)
246
166
  return self._project_service
247
167
 
248
- @property
249
- def rna_oligos(self) -> V2BetaRnaOligoService:
250
- """
251
- V2-Beta RNA Oligos.
252
-
253
- RNA Oligos are short linear RNA sequences that can be attached as primers to full DNA sequences. Just like other
254
- entities, they support schemas, tags, and aliases.
255
-
256
- See https://benchling.com/api/v2-beta/reference#/RNA%20Oligos
257
- """
258
- if self._rna_oligo_service is None:
259
- from benchling_sdk.services.v2.beta.v2_beta_rna_oligo_service import V2BetaRnaOligoService
260
-
261
- self._rna_oligo_service = V2BetaRnaOligoService(self._beta_client, self.retry_strategy)
262
- return self._rna_oligo_service
263
-
264
168
  @property
265
169
  def worklists(self) -> V2BetaWorklistService:
266
170
  """
@@ -6,7 +6,6 @@ from benchling_api_client.v2.stable.client import Client
6
6
 
7
7
  from benchling_sdk.helpers.retry_helpers import RetryStrategy
8
8
  from benchling_sdk.services.v2.base_service import BaseService
9
- from benchling_sdk.services.v2.stable.custom_notation_service import CustomNotationService
10
9
 
11
10
  if TYPE_CHECKING:
12
11
  from benchling_sdk.services.v2.stable.aa_sequence_service import AaSequenceService
@@ -18,10 +17,12 @@ if TYPE_CHECKING:
18
17
  from benchling_sdk.services.v2.stable.box_service import BoxService
19
18
  from benchling_sdk.services.v2.stable.container_service import ContainerService
20
19
  from benchling_sdk.services.v2.stable.custom_entity_service import CustomEntityService
20
+ from benchling_sdk.services.v2.stable.custom_notation_service import CustomNotationService
21
21
  from benchling_sdk.services.v2.stable.dna_alignments_service import DnaAlignmentsService
22
22
  from benchling_sdk.services.v2.stable.dna_oligo_service import DnaOligoService
23
23
  from benchling_sdk.services.v2.stable.dna_sequence_service import DnaSequenceService
24
24
  from benchling_sdk.services.v2.stable.dropdown_service import DropdownService
25
+ from benchling_sdk.services.v2.stable.entity_service import EntityService
25
26
  from benchling_sdk.services.v2.stable.entry_service import EntryService
26
27
  from benchling_sdk.services.v2.stable.event_service import EventService
27
28
  from benchling_sdk.services.v2.stable.export_service import ExportService
@@ -74,6 +75,7 @@ class V2StableService(BaseService):
74
75
  _dna_alignments_service: Optional[DnaAlignmentsService]
75
76
  _dna_oligo_service: Optional[DnaOligoService]
76
77
  _dna_sequence_service: Optional[DnaSequenceService]
78
+ _entities_service: Optional[EntityService]
77
79
  _entries_service: Optional[EntryService]
78
80
  _event_service: Optional[EventService]
79
81
  _export_service: Optional[ExportService]
@@ -126,6 +128,7 @@ class V2StableService(BaseService):
126
128
  self._dna_alignments_service = None
127
129
  self._dna_oligo_service = None
128
130
  self._dna_sequence_service = None
131
+ self._entities_service = None
129
132
  self._entries_service = None
130
133
  self._event_service = None
131
134
  self._export_service = None
@@ -412,6 +415,23 @@ class V2StableService(BaseService):
412
415
  self._dropdown_service = DropdownService(self._client, retry_strategy=self._retry_strategy)
413
416
  return self._dropdown_service
414
417
 
418
+ @property
419
+ def entities(self) -> EntityService:
420
+ """
421
+ Entities.
422
+
423
+ Entities include DNA and AA sequences, oligos, molecules, custom entities, and
424
+ other biological objects in Benchling. Entities support schemas, tags, and aliases,
425
+ and can be registered.
426
+
427
+ See https://benchling.com/api/reference#/Entities
428
+ """
429
+ if self._entities_service is None:
430
+ from benchling_sdk.services.v2.stable.entity_service import EntityService
431
+
432
+ self._entities_service = EntityService(self._client, retry_strategy=self._retry_strategy)
433
+ return self._entities_service
434
+
415
435
  @property
416
436
  def entries(self) -> EntryService:
417
437
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: benchling-sdk
3
- Version: 1.11.0a5
3
+ Version: 1.12.0
4
4
  Summary: SDK for interacting with the Benchling Platform.
5
5
  License: Apache-2.0
6
6
  Author: Benchling Support
@@ -17,9 +17,9 @@ Provides-Extra: python-jose
17
17
  Requires-Dist: PyYAML (>=6.0,<7.0)
18
18
  Requires-Dist: attrs (>=20.1.0,<23)
19
19
  Requires-Dist: backoff (>=1.10.0,<2.0.0)
20
- Requires-Dist: benchling-api-client (==2.0.283)
20
+ Requires-Dist: benchling-api-client (==2.0.287)
21
21
  Requires-Dist: certifi (>=2022.12.7)
22
- Requires-Dist: cryptography (>=41.0.7,<42.0.0) ; extra == "cryptography"
22
+ Requires-Dist: cryptography (>=42.0.0) ; extra == "cryptography"
23
23
  Requires-Dist: dataclasses-json (>=0.5.2,<0.6.0)
24
24
  Requires-Dist: httpx (>=0.23.0)
25
25
  Requires-Dist: jwcrypto (>=1.5.1,<2.0.0)
@@ -27,7 +27,7 @@ benchling_sdk/auth/__init__.py,sha256=N4pJYVUnTLzg5HO9ZldHaI-Am97i6AOCdQS0M5QcVp
27
27
  benchling_sdk/auth/api_key_auth.py,sha256=Ui-cnvGMjcwVPV_b2GdBaoTjEyHJIu9CjtZScVBEUvU,641
28
28
  benchling_sdk/auth/bearer_token_auth.py,sha256=nymI8V91evcnK-TWKkBXZwck8U1qSh4WaseyQbvF-Cg,1268
29
29
  benchling_sdk/auth/client_credentials_oauth2.py,sha256=auHj8FAJxUrDf1HJp9wfmcC_pJ-3rj4tdQbsUIvSUQs,5801
30
- benchling_sdk/benchling.py,sha256=eED0ge5hWspr1kFFZ1fOovPvw-JdVKhylAGT-n_GUSA,25943
30
+ benchling_sdk/benchling.py,sha256=zpthXOtPdGo1-BsjqXo6TcPVNBWadQKHHZnBOD784A0,26428
31
31
  benchling_sdk/docs/__init__.py,sha256=ySHo76PzLndmXOVWrF80VjB5Pi48G82CCQNdzUEzbCY,38
32
32
  benchling_sdk/docs/__main__.py,sha256=1ZlGXdn2gHGC0fAuan5i54mh35VkDf5mhY9VeKNyCRA,244
33
33
  benchling_sdk/errors.py,sha256=9JCjkY7wQ-K-_GStgYZrSns35FNExZSx-t5Xdlh-U0I,8239
@@ -43,7 +43,7 @@ benchling_sdk/helpers/response_helpers.py,sha256=vtmb9lEEKy3dRFre3Q0R4XaLBEaS_rr
43
43
  benchling_sdk/helpers/retry_helpers.py,sha256=SeKOPjnJIes6UsD7kVqlYKBYmwH_DCHdllnG3jys3N8,2740
44
44
  benchling_sdk/helpers/serialization_helpers.py,sha256=IUS0uGU_EiZvb8O-bTViUaROmxKcvdX3JeR9iKsWAG8,3662
45
45
  benchling_sdk/helpers/transaction_manager.py,sha256=HcSDsgGK7Rb93bgv6fpb4HvQUT-tqP0lXgVa_bWCDh4,3663
46
- benchling_sdk/models/__init__.py,sha256=an2sVFcr6D-qILew2M4pLhUyEhYDJgOxgbmGQgmjkoY,344971
46
+ benchling_sdk/models/__init__.py,sha256=nOv638Xm2k1mMXNfFDKcY9oLbXjfgzjxyfdMGlZjZ9A,345337
47
47
  benchling_sdk/models/webhooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  benchling_sdk/models/webhooks/v0/__init__.py,sha256=4n1NDjsKwvdQTGTpNjvzCBq4ZMwv4wtImkETMCX-TdM,6836
49
49
  benchling_sdk/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
@@ -54,21 +54,16 @@ benchling_sdk/services/v2/alpha/v2_alpha_app_service.py,sha256=cR3nk6oxV2B-ewcUo
54
54
  benchling_sdk/services/v2/alpha/v2_alpha_dna_sequence_service.py,sha256=XzpaPWbdxbwE_LJ5RheKHNAwdjPNfr7-o3IXmJsQ6UI,1347
55
55
  benchling_sdk/services/v2/base_service.py,sha256=g4Qn001slCJTvqDvRmbImJNBJ8lPJgMVL1H4Xxc8D2o,951
56
56
  benchling_sdk/services/v2/beta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- benchling_sdk/services/v2/beta/v2_beta_aa_sequence_service.py,sha256=Y7E56Z8Piuucd1UQiN6yM1vbQAY7T8x3fZy62RaNRbk,2551
57
+ benchling_sdk/services/v2/beta/v2_beta_aa_sequence_service.py,sha256=ED5jOL1N5JzuikpVPZNj0Wi5czwTfA9HChQca1fwA3I,1410
58
58
  benchling_sdk/services/v2/beta/v2_beta_app_service.py,sha256=nVOEQ3ESkUo2e4p_MYMq-VUpEx2wNpJIY7ZZ8UuHnuQ,1385
59
59
  benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py,sha256=epLHLdDRfj8ni2-45WWFSpOgQG-kTmbxTffRP1mnim0,5753
60
- benchling_sdk/services/v2/beta/v2_beta_custom_entity_service.py,sha256=qpKQ8X_oiyDv_KIEeD9eTo6kGU9hkNlUqqjAdMZQPiM,1840
61
60
  benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py,sha256=oqCVyYBK7YECXYIDWJ5VIaiAO-W7GXC7xd0Wy1swTmU,14853
62
- benchling_sdk/services/v2/beta/v2_beta_dna_oligo_service.py,sha256=s2XZMItVJjJp3lZZ7YLh1GbV_cdIKLPOVqglKcAWMNg,1704
63
- benchling_sdk/services/v2/beta/v2_beta_dna_sequence_service.py,sha256=wLN9lTF-faBrofQHlw3uKilaQvdOgSDI2oFa1GeuViY,1843
64
- benchling_sdk/services/v2/beta/v2_beta_entity_service.py,sha256=NKYYdqZz6umnbGHb2syWr5E2ECwrPfoeWp5O--dhpaA,1970
65
61
  benchling_sdk/services/v2/beta/v2_beta_entry_service.py,sha256=XP00N8NGuAMpJMkeiSTqDR-LFRvwRMVzFHIzQJvOfbA,1053
66
62
  benchling_sdk/services/v2/beta/v2_beta_folder_service.py,sha256=b6-D_eDTF1e2l2YLhr4qkKtLXtH_BUVCcHhaB_CBNAM,4959
67
63
  benchling_sdk/services/v2/beta/v2_beta_project_service.py,sha256=8Wk0u6dtiewytfuJ2RaybMOfqih7YF74cJF_wsetJpM,4926
68
- benchling_sdk/services/v2/beta/v2_beta_rna_oligo_service.py,sha256=q6ckT2GOuytJaHj4hvu7aXLK5es8pq0HycmDwAhl2Xo,1704
69
64
  benchling_sdk/services/v2/beta/v2_beta_worklist_service.py,sha256=tFMe-7Wbw3qISe-T5EsnYVsmcd1P8Aw1NoWmNA5MroU,5544
70
65
  benchling_sdk/services/v2/stable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- benchling_sdk/services/v2/stable/aa_sequence_service.py,sha256=3RCNwyFBrryQowC9fbLoQHSSqKyGA6TQ0VQYBUyeg1U,11782
66
+ benchling_sdk/services/v2/stable/aa_sequence_service.py,sha256=ttiN9YeezeBmJW8RAyqwwSYRDk2i2EMDNvArgVPsM-w,12935
72
67
  benchling_sdk/services/v2/stable/api_service.py,sha256=e0RNp4Jne9UTaHOYMOxxXJpsyUO3WMSFPzN7hB8iliU,12371
73
68
  benchling_sdk/services/v2/stable/app_service.py,sha256=dy9FMVvMiJrkYbxZswKuB37EB9K_jCqQr9FfAa0BMgE,23126
74
69
  benchling_sdk/services/v2/stable/assay_result_service.py,sha256=_qtSpMznVrGHlB2VnHI87IPjVQHCX1pZbLPJ_LYuW7U,13362
@@ -76,12 +71,13 @@ benchling_sdk/services/v2/stable/assay_run_service.py,sha256=tLpG1pAztEoaDatqlgY
76
71
  benchling_sdk/services/v2/stable/blob_service.py,sha256=KwchH3FGzPLfZx85GEG3voQp_ZxyVL_dds_9awRWa0Q,17115
77
72
  benchling_sdk/services/v2/stable/box_service.py,sha256=M40smqG-jQlioyRfLBu9Cr9aQmdh06crsYbH1fiZ0BM,12359
78
73
  benchling_sdk/services/v2/stable/container_service.py,sha256=8g3gwcI5fSuSbEQCtrksAiqcksky9lHXxyoyf0lbAR0,18639
79
- benchling_sdk/services/v2/stable/custom_entity_service.py,sha256=cArRFDCDArC17ymUusCmjHjWl33f9Pjc7U9jEUEIHbU,11199
74
+ benchling_sdk/services/v2/stable/custom_entity_service.py,sha256=LOATrTh7Vv6dXWlUqyH8Eet3bwBm0BNoVbCZYiqWu80,12188
80
75
  benchling_sdk/services/v2/stable/custom_notation_service.py,sha256=LCnt8hoCkkSRbz-bXUaYbuMaE-1XdYmXB0MgeQ30POc,2141
81
76
  benchling_sdk/services/v2/stable/dna_alignments_service.py,sha256=leJaPt7Uk1PyxfO9LXTVi2DjLyqcXgeMselftJaGJA4,7445
82
- benchling_sdk/services/v2/stable/dna_oligo_service.py,sha256=3noU06yPoA0bUedORyVS_Pvf_BqXP_oQoAN_KqiFkWc,10010
83
- benchling_sdk/services/v2/stable/dna_sequence_service.py,sha256=lEDrbJET1OGAEhHmeMsaq0BW1UF-nWTQXAcXm6tpU2s,12816
77
+ benchling_sdk/services/v2/stable/dna_oligo_service.py,sha256=0D3X98UxWWolkCG_IxiPE3oiFMwyqC7vJlJCyEbNDt4,11128
78
+ benchling_sdk/services/v2/stable/dna_sequence_service.py,sha256=YkcwrFmWDQpKDtMvdTdaMkiRD9-xd9BtNejb8VWVhnk,15203
84
79
  benchling_sdk/services/v2/stable/dropdown_service.py,sha256=AcnATXU_TChhSm9NX8dx9wnbxeBwACzThw5zM3yPYmk,4919
80
+ benchling_sdk/services/v2/stable/entity_service.py,sha256=NGDjng4rwiL6EeDCEs5oy9ciKV6CPv71S1l7A8zM0Uk,2190
85
81
  benchling_sdk/services/v2/stable/entry_service.py,sha256=nGK8bctxpaeyHFNj-aY53TbTOwGvqbd8xqQgs-nncKI,12935
86
82
  benchling_sdk/services/v2/stable/event_service.py,sha256=--j-oqKR-Ld5d4QiJ6aofOr9LTBCM7maqwRvo2goSPA,2538
87
83
  benchling_sdk/services/v2/stable/export_service.py,sha256=T8ir9yRyA8rMUXagLAWYR4cYtOzxt6JxjlnQwExk_HU,1080
@@ -92,30 +88,30 @@ benchling_sdk/services/v2/stable/lab_automation_service.py,sha256=vfKLrH6eZn9v2u
92
88
  benchling_sdk/services/v2/stable/label_template_service.py,sha256=VS25LUpUsJnkU_AFTTKjwMruVgE5-izLoc-_wrqr4Pk,1300
93
89
  benchling_sdk/services/v2/stable/location_service.py,sha256=4RVFEBRQZnNOm2AXdJcBYHVVPEtDsvihlKskbtez_d0,8026
94
90
  benchling_sdk/services/v2/stable/mixture_service.py,sha256=nNwh67Or1BQYZxcatcg-OEEw82Jr6UnxsYVRB9Y18GY,9952
95
- benchling_sdk/services/v2/stable/molecule_service.py,sha256=L_JtJTBxyPwVt68O8nOUJcBqg3XXAmFqvOFpSNgHGNg,10149
91
+ benchling_sdk/services/v2/stable/molecule_service.py,sha256=7BiurkHuS1ufMeZdRQ7UDb9Z7iTpcVeUIs2i9afHIdQ,10530
96
92
  benchling_sdk/services/v2/stable/nucleotide_alignments_service.py,sha256=ab52E-PVeBF693QA8R8OxwtsppyDiehvrkveNPIhjTI,6100
97
93
  benchling_sdk/services/v2/stable/oligo_service.py,sha256=0cmQIpsijY-X2-6Bd33NVk5JRdS0OSoLjgTrZHIOra8,12173
98
94
  benchling_sdk/services/v2/stable/organization_service.py,sha256=j9B2cUCgPPTMjtFW70-dMUFQJAqpUXNTh8LJ7gvcOGo,4927
99
- benchling_sdk/services/v2/stable/plate_service.py,sha256=P5k_PMTRcWlbwDbEI0S159gJdzlSxpmBRH1qsOYOGfw,11006
95
+ benchling_sdk/services/v2/stable/plate_service.py,sha256=2KU9sZ7x3niQQQHlhQ_yFKy4GoddJQ5v-kxG808T1mE,13226
100
96
  benchling_sdk/services/v2/stable/printer_service.py,sha256=XhXCwbNAamndWLuHn9UE2ehkkl6vCN5hhxBUvr93Uzk,1181
101
97
  benchling_sdk/services/v2/stable/project_service.py,sha256=Mb3ibiOQJ3uRnJLoDLYgPgrFE80N1bdYQz9LwpbrMtg,4140
102
98
  benchling_sdk/services/v2/stable/registry_service.py,sha256=DtftbhKoxruV9H8ksvQRUYXakv1nQ92uu17iKVOlZnY,4627
103
99
  benchling_sdk/services/v2/stable/request_service.py,sha256=EzXuIXE4mnGtEXiLYKqUApDbXp8ODq35FP-egVEXZC8,9500
104
- benchling_sdk/services/v2/stable/rna_oligo_service.py,sha256=lgP4z_r0C7eh5D6X3cOA45neTyBXszTqg8x4CeD7AJk,10240
105
- benchling_sdk/services/v2/stable/rna_sequence_service.py,sha256=IC5YTc76oaThtFHsMAd0C6qPLgUiQ4q1WTa2LaNMrqE,12951
100
+ benchling_sdk/services/v2/stable/rna_oligo_service.py,sha256=16Q2ijthmpbkDm6_9EeXZ_QfVDOb5vgAWum33QKQ8Kw,11358
101
+ benchling_sdk/services/v2/stable/rna_sequence_service.py,sha256=F1_wx7t4SOsb_yswH-X4cLeqhqZTQe1oE6D7dg52Fcw,14163
106
102
  benchling_sdk/services/v2/stable/schema_service.py,sha256=W64obUUqBcDbMbBOtDVb_bl-VUQGARoeb2u4I96k9Tk,23509
107
103
  benchling_sdk/services/v2/stable/task_service.py,sha256=61vimlvZf2R93SitGyd883Yk5pmStavnPDkxuwFvzfU,4983
108
104
  benchling_sdk/services/v2/stable/team_service.py,sha256=SYwI2Bv3rWDYnoEKb-MX_yhe39fErewJ4Sx0aon-ej0,4723
109
- benchling_sdk/services/v2/stable/user_service.py,sha256=7rIcB7Bf_lSr0TSVch08DXQED90ElAd1-N8pAgtgsh4,7035
105
+ benchling_sdk/services/v2/stable/user_service.py,sha256=NkMPz2rPaF6iXNWTBAOWSiXVif2rHYGbYAzaHg4Fhig,7528
110
106
  benchling_sdk/services/v2/stable/warehouse_service.py,sha256=_gVTwJZ5BcaNBG0k8I0a4MRahajkV7TNtREfuQGwR74,1286
111
107
  benchling_sdk/services/v2/stable/workflow_output_service.py,sha256=VD0RvOBCkgX_YwUoQYQPR_PyGJXuIau5beq9bK75VXM,9993
112
108
  benchling_sdk/services/v2/stable/workflow_task_group_service.py,sha256=SSfHDH-Eniz09HG_qSPSfSVHU3BpvTbgGhOQS4iWcAw,8848
113
109
  benchling_sdk/services/v2/stable/workflow_task_service.py,sha256=pOhwFmWVk1jh3A9C70LpLhYjlgk2DcGCfjO8Uup9ScQ,12819
114
110
  benchling_sdk/services/v2/v2_alpha_service.py,sha256=vNfYK0Dheml9ozR_0tzTlA3blPDTdfTQR8ppaQ6xuu4,2609
115
- benchling_sdk/services/v2/v2_beta_service.py,sha256=0vbjFFfPQNUGUhckR_cnzGjypRMBpBP6c5c49zrA3mk,11564
116
- benchling_sdk/services/v2/v2_stable_service.py,sha256=YIc-_0p6x1NQqj7awnWgCTHxbxYO7ZOolePZyW90whc,35246
111
+ benchling_sdk/services/v2/v2_beta_service.py,sha256=URRSAdNuoSg322Ej18st0Z4SPBw7-y0udOeBpw2Lomg,7149
112
+ benchling_sdk/services/v2/v2_stable_service.py,sha256=zZ9Mrx0TkDwPG62uNAzz79wI2hUwcaSO3qAJX29Fij0,36051
117
113
  benchling_sdk/services/v2_service.py,sha256=3eoIjYEmGLPdWCpBN0pl7q7_HNWCsUvfvTn3Hcz0wSM,2860
118
- benchling_sdk-1.11.0a5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
119
- benchling_sdk-1.11.0a5.dist-info/METADATA,sha256=6Mg-68OY6r_xy0xNmjEGyzsxqBAYHN2xhLuPlLruA9A,2126
120
- benchling_sdk-1.11.0a5.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
121
- benchling_sdk-1.11.0a5.dist-info/RECORD,,
114
+ benchling_sdk-1.12.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
115
+ benchling_sdk-1.12.0.dist-info/METADATA,sha256=grV7rGrGhxzw7zLQjBR0sfAqHQhku_VBYRlKjPrn7ho,2116
116
+ benchling_sdk-1.12.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
117
+ benchling_sdk-1.12.0.dist-info/RECORD,,
@@ -1,43 +0,0 @@
1
- from benchling_api_client.v2.beta.api.custom_entities import bulk_upsert_custom_entities, upsert_custom_entity
2
- from benchling_api_client.v2.beta.models.custom_entities_bulk_upsert_request import (
3
- CustomEntitiesBulkUpsertRequest,
4
- )
5
- from benchling_api_client.v2.beta.models.custom_entity_upsert_request import CustomEntityUpsertRequest
6
-
7
- from benchling_sdk.helpers.decorators import api_method
8
- from benchling_sdk.helpers.response_helpers import model_from_detailed
9
- from benchling_sdk.models import AsyncTaskLink, CustomEntity
10
- from benchling_sdk.services.v2.base_service import BaseService
11
-
12
-
13
- class V2BetaCustomEntityService(BaseService):
14
- """
15
- V2-Beta Custom Entities.
16
-
17
- Benchling supports custom entities for biological entities that are neither sequences or proteins. Custom
18
- entities must have an entity schema set and can have both schema fields and custom fields.
19
-
20
- See https://benchling.com/api/v2-beta/reference#/Custom%20Entities
21
- """
22
-
23
- @api_method
24
- def upsert(self, entity_registry_id: str, entity: CustomEntityUpsertRequest) -> CustomEntity:
25
- """
26
- Create or modify a custom entity.
27
-
28
- See https://benchling.com/api/v2-beta/reference#/Custom%20Entities/upsertCustomEntity
29
- """
30
- response = upsert_custom_entity.sync_detailed(
31
- client=self.client, entity_registry_id=entity_registry_id, json_body=entity
32
- )
33
- return model_from_detailed(response)
34
-
35
- @api_method
36
- def bulk_upsert(self, body: CustomEntitiesBulkUpsertRequest) -> AsyncTaskLink:
37
- """
38
- Bulk update custom entities.
39
-
40
- See https://benchling.com/api/v2-beta/reference#/Custom%20Entities/bulkUpsertCustomEntities
41
- """
42
- response = bulk_upsert_custom_entities.sync_detailed(client=self.client, json_body=body)
43
- return model_from_detailed(response)
@@ -1,41 +0,0 @@
1
- from benchling_api_client.v2.beta.api.dna_oligos import bulk_upsert_dna_oligos, upsert_dna_oligo
2
- from benchling_api_client.v2.beta.models.dna_oligos_bulk_upsert_request import DnaOligosBulkUpsertRequest
3
- from benchling_api_client.v2.beta.models.oligo_upsert_request import OligoUpsertRequest
4
-
5
- from benchling_sdk.helpers.decorators import api_method
6
- from benchling_sdk.helpers.response_helpers import model_from_detailed
7
- from benchling_sdk.models import AsyncTaskLink, DnaOligo
8
- from benchling_sdk.services.v2.base_service import BaseService
9
-
10
-
11
- class V2BetaDnaOligoService(BaseService):
12
- """
13
- V2-Beta DNA Oligos.
14
-
15
- DNA Oligos are short linear DNA sequences that can be attached as primers to full DNA sequences. Just like other
16
- entities, they support schemas, tags, and aliases.
17
-
18
- See https://benchling.com/api/v2-beta/reference#/DNA%20Oligos
19
- """
20
-
21
- @api_method
22
- def upsert(self, entity_registry_id: str, dna_oligo: OligoUpsertRequest) -> DnaOligo:
23
- """
24
- Create or modify a DNA Oligo.
25
-
26
- See https://benchling.com/api/v2-beta/reference#/DNA%20Oligos/upsertDNAOligo
27
- """
28
- response = upsert_dna_oligo.sync_detailed(
29
- client=self.client, entity_registry_id=entity_registry_id, json_body=dna_oligo
30
- )
31
- return model_from_detailed(response)
32
-
33
- @api_method
34
- def bulk_upsert(self, body: DnaOligosBulkUpsertRequest) -> AsyncTaskLink:
35
- """
36
- Bulk create or update DNA Oligos.
37
-
38
- See https://benchling.com/api/v2-beta/reference#/DNA%20Oligos/bulkUpsertDnaOligos
39
- """
40
- response = bulk_upsert_dna_oligos.sync_detailed(client=self.client, json_body=body)
41
- return model_from_detailed(response)
@@ -1,43 +0,0 @@
1
- from benchling_api_client.v2.beta.api.dna_sequences import bulk_upsert_dna_sequences, upsert_dna_sequence
2
- from benchling_api_client.v2.beta.models.dna_sequence_upsert_request import DnaSequenceUpsertRequest
3
- from benchling_api_client.v2.beta.models.dna_sequences_bulk_upsert_request import (
4
- DnaSequencesBulkUpsertRequest,
5
- )
6
-
7
- from benchling_sdk.helpers.decorators import api_method
8
- from benchling_sdk.helpers.response_helpers import model_from_detailed
9
- from benchling_sdk.models import AsyncTaskLink, DnaSequence
10
- from benchling_sdk.services.v2.base_service import BaseService
11
-
12
-
13
- class V2BetaDnaSequenceService(BaseService):
14
- """
15
- V2-Beta DNA Sequences.
16
-
17
- DNA sequences are the bread and butter of the Benchling Molecular Biology suite. On Benchling, these are
18
- comprised of a string of nucleotides and collections of other attributes, such as annotations and primers.
19
-
20
- See https://benchling.com/api/v2-beta/reference#/DNA%20Sequences
21
- """
22
-
23
- @api_method
24
- def upsert(self, entity_registry_id: str, dna_sequence: DnaSequenceUpsertRequest) -> DnaSequence:
25
- """
26
- Create or modify a DNA sequence.
27
-
28
- See https://benchling.com/api/v2-beta/reference#/DNA%20Sequences/upsertDNASequence
29
- """
30
- response = upsert_dna_sequence.sync_detailed(
31
- client=self.client, entity_registry_id=entity_registry_id, json_body=dna_sequence
32
- )
33
- return model_from_detailed(response)
34
-
35
- @api_method
36
- def bulk_upsert(self, body: DnaSequencesBulkUpsertRequest) -> AsyncTaskLink:
37
- """
38
- Bulk create or update DNA sequences.
39
-
40
- See https://benchling.com/api/v2-beta/reference#/DNA%20Sequences/bulkUpsertDnaSequences
41
- """
42
- response = bulk_upsert_dna_sequences.sync_detailed(client=self.client, json_body=body)
43
- return model_from_detailed(response)
@@ -1,41 +0,0 @@
1
- from benchling_api_client.v2.beta.api.rna_oligos import bulk_upsert_rna_oligos, upsert_rna_oligo
2
- from benchling_api_client.v2.beta.models.oligo_upsert_request import OligoUpsertRequest
3
- from benchling_api_client.v2.beta.models.rna_oligos_bulk_upsert_request import RnaOligosBulkUpsertRequest
4
-
5
- from benchling_sdk.helpers.decorators import api_method
6
- from benchling_sdk.helpers.response_helpers import model_from_detailed
7
- from benchling_sdk.models import AsyncTaskLink, RnaOligo
8
- from benchling_sdk.services.v2.base_service import BaseService
9
-
10
-
11
- class V2BetaRnaOligoService(BaseService):
12
- """
13
- V2-Beta RNA Oligos.
14
-
15
- RNA Oligos are short linear RNA sequences that can be attached as primers to full DNA sequences. Just like other
16
- entities, they support schemas, tags, and aliases.
17
-
18
- See https://benchling.com/api/v2-beta/reference#/RNA%20Oligos
19
- """
20
-
21
- @api_method
22
- def upsert(self, entity_registry_id: str, rna_oligo: OligoUpsertRequest) -> RnaOligo:
23
- """
24
- Create or modify a RNA Oligo.
25
-
26
- See https://benchling.com/api/v2-beta/reference#/RNA%20Oligos/upsertRNAOligo
27
- """
28
- response = upsert_rna_oligo.sync_detailed(
29
- client=self.client, entity_registry_id=entity_registry_id, json_body=rna_oligo
30
- )
31
- return model_from_detailed(response)
32
-
33
- @api_method
34
- def bulk_upsert(self, body: RnaOligosBulkUpsertRequest) -> AsyncTaskLink:
35
- """
36
- Bulk create or update RNA Oligos.
37
-
38
- See https://benchling.com/api/v2-beta/reference#/RNA%20Oligos/bulkUpsertRnaOligos
39
- """
40
- response = bulk_upsert_rna_oligos.sync_detailed(client=self.client, json_body=body)
41
- return model_from_detailed(response)