benchling-sdk 1.12.0a0__tar.gz → 1.12.0a1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/PKG-INFO +1 -1
  2. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/aa_sequence_service.py +7 -2
  3. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/dna_oligo_service.py +7 -2
  4. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/dna_sequence_service.py +42 -2
  5. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/entity_service.py +10 -2
  6. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/molecule_service.py +7 -2
  7. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/plate_service.py +40 -0
  8. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/rna_oligo_service.py +7 -2
  9. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/rna_sequence_service.py +35 -0
  10. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/user_service.py +12 -0
  11. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/pyproject.toml +1 -1
  12. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/LICENSE +0 -0
  13. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/README.md +0 -0
  14. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/__init__.py +0 -0
  15. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/__init__.py +0 -0
  16. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/canvas/__init__.py +0 -0
  17. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/canvas/errors.py +0 -0
  18. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/canvas/framework.py +0 -0
  19. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/canvas/types.py +0 -0
  20. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/__init__.py +0 -0
  21. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/cryptography_helpers.py +0 -0
  22. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/decryption_provider.py +0 -0
  23. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/errors.py +0 -0
  24. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/framework.py +0 -0
  25. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/helpers.py +0 -0
  26. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/mock_config.py +0 -0
  27. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/config/types.py +0 -0
  28. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/framework.py +0 -0
  29. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/helpers/__init__.py +0 -0
  30. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/helpers/manifest_helpers.py +0 -0
  31. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/helpers/webhook_helpers.py +0 -0
  32. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/status/__init__.py +0 -0
  33. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/status/errors.py +0 -0
  34. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/status/framework.py +0 -0
  35. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/status/helpers.py +0 -0
  36. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/status/types.py +0 -0
  37. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/apps/types.py +0 -0
  38. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/auth/__init__.py +0 -0
  39. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/auth/api_key_auth.py +0 -0
  40. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/auth/bearer_token_auth.py +0 -0
  41. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/auth/client_credentials_oauth2.py +0 -0
  42. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/benchling.py +0 -0
  43. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/docs/__init__.py +0 -0
  44. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/docs/__main__.py +0 -0
  45. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/errors.py +0 -0
  46. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/__init__.py +0 -0
  47. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/client_helpers.py +0 -0
  48. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/constants.py +0 -0
  49. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/decorators.py +0 -0
  50. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/file_helpers.py +0 -0
  51. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/logging_helpers.py +0 -0
  52. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/package_helpers.py +0 -0
  53. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/pagination_helpers.py +0 -0
  54. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/response_helpers.py +0 -0
  55. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/retry_helpers.py +0 -0
  56. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/serialization_helpers.py +0 -0
  57. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/helpers/transaction_manager.py +0 -0
  58. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/models/__init__.py +0 -0
  59. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/models/webhooks/__init__.py +0 -0
  60. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/models/webhooks/v0/__init__.py +0 -0
  61. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/py.typed +0 -0
  62. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/__init__.py +0 -0
  63. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/__init__.py +0 -0
  64. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/alpha/__init__.py +0 -0
  65. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/alpha/v2_alpha_app_service.py +0 -0
  66. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/alpha/v2_alpha_dna_sequence_service.py +0 -0
  67. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/base_service.py +0 -0
  68. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/__init__.py +0 -0
  69. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_aa_sequence_service.py +0 -0
  70. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_app_service.py +0 -0
  71. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py +0 -0
  72. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +0 -0
  73. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_entry_service.py +0 -0
  74. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_folder_service.py +0 -0
  75. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_project_service.py +0 -0
  76. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/beta/v2_beta_worklist_service.py +0 -0
  77. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/__init__.py +0 -0
  78. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/api_service.py +0 -0
  79. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/app_service.py +0 -0
  80. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/assay_result_service.py +0 -0
  81. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/assay_run_service.py +0 -0
  82. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/blob_service.py +0 -0
  83. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/box_service.py +0 -0
  84. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/container_service.py +0 -0
  85. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/custom_entity_service.py +0 -0
  86. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/custom_notation_service.py +0 -0
  87. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/dna_alignments_service.py +0 -0
  88. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/dropdown_service.py +0 -0
  89. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/entry_service.py +0 -0
  90. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/event_service.py +0 -0
  91. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/export_service.py +0 -0
  92. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/feature_library_service.py +0 -0
  93. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/folder_service.py +0 -0
  94. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/inventory_service.py +0 -0
  95. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/lab_automation_service.py +0 -0
  96. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/label_template_service.py +0 -0
  97. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/location_service.py +0 -0
  98. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/mixture_service.py +0 -0
  99. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +0 -0
  100. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/oligo_service.py +0 -0
  101. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/organization_service.py +0 -0
  102. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/printer_service.py +0 -0
  103. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/project_service.py +0 -0
  104. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/registry_service.py +0 -0
  105. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/request_service.py +0 -0
  106. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/schema_service.py +0 -0
  107. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/task_service.py +0 -0
  108. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/team_service.py +0 -0
  109. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/warehouse_service.py +0 -0
  110. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/workflow_output_service.py +0 -0
  111. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/workflow_task_group_service.py +0 -0
  112. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/stable/workflow_task_service.py +0 -0
  113. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/v2_alpha_service.py +0 -0
  114. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/v2_beta_service.py +0 -0
  115. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2/v2_stable_service.py +0 -0
  116. {benchling_sdk-1.12.0a0 → benchling_sdk-1.12.0a1}/benchling_sdk/services/v2_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: benchling-sdk
3
- Version: 1.12.0a0
3
+ Version: 1.12.0a1
4
4
  Summary: SDK for interacting with the Benchling Platform.
5
5
  License: Apache-2.0
6
6
  Author: Benchling Support
@@ -299,11 +299,16 @@ class AaSequenceService(BaseService):
299
299
  return model_from_detailed(response)
300
300
 
301
301
  @api_method
302
- def bulk_upsert(self, body: AaSequencesBulkUpsertRequest) -> AsyncTaskLink:
302
+ def bulk_upsert(
303
+ self, body: AaSequencesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
304
+ ) -> AsyncTaskLink:
303
305
  """
304
306
  Bulk create or update AA sequences.
305
307
 
306
308
  See https://benchling.com/api/reference#/AA%20Sequences/bulkUpsertAASequences
307
309
  """
308
- response = bulk_upsert_aa_sequences.sync_detailed(client=self.client, json_body=body)
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
+ )
309
314
  return model_from_detailed(response)
@@ -261,11 +261,16 @@ class DnaOligoService(BaseService):
261
261
  return model_from_detailed(response)
262
262
 
263
263
  @api_method
264
- def bulk_upsert(self, body: DnaOligosBulkUpsertRequest) -> AsyncTaskLink:
264
+ def bulk_upsert(
265
+ self, body: DnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
266
+ ) -> AsyncTaskLink:
265
267
  """
266
268
  Bulk create or update DNA Oligos.
267
269
 
268
270
  See https://benchling.com/api/reference#/DNA%20Oligos/bulkUpsertDnaOligos
269
271
  """
270
- response = bulk_upsert_dna_oligos.sync_detailed(client=self.client, json_body=body)
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
+ )
271
276
  return model_from_detailed(response)
@@ -12,6 +12,8 @@ from benchling_api_client.v2.stable.api.dna_sequences import (
12
12
  create_dna_sequence,
13
13
  get_dna_sequence,
14
14
  list_dna_sequences,
15
+ match_bases_dna_sequences,
16
+ search_dna_sequences,
15
17
  unarchive_dna_sequences,
16
18
  update_dna_sequence,
17
19
  upsert_dna_sequence,
@@ -48,6 +50,8 @@ from benchling_sdk.models import (
48
50
  DnaSequenceUpsertRequest,
49
51
  EntityArchiveReason,
50
52
  ListDNASequencesSort,
53
+ MatchBasesRequest,
54
+ SearchBasesRequest,
51
55
  )
52
56
  from benchling_sdk.services.v2.base_service import BaseService
53
57
 
@@ -324,11 +328,47 @@ class DnaSequenceService(BaseService):
324
328
  return model_from_detailed(response)
325
329
 
326
330
  @api_method
327
- def bulk_upsert(self, body: DnaSequencesBulkUpsertRequest) -> AsyncTaskLink:
331
+ def bulk_upsert(
332
+ self, body: DnaSequencesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
333
+ ) -> AsyncTaskLink:
328
334
  """
329
335
  Bulk create or update DNA sequences.
330
336
 
331
337
  See https://benchling.com/api/reference#/DNA%20Sequences/bulkUpsertDnaSequences
332
338
  """
333
- response = bulk_upsert_dna_sequences.sync_detailed(client=self.client, json_body=body)
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
+ )
334
374
  return model_from_detailed(response)
@@ -1,7 +1,10 @@
1
+ from typing import Iterable, Optional
2
+
1
3
  from benchling_api_client.v2.stable.api.entities import bulk_upsert_entities
2
4
 
3
5
  from benchling_sdk.helpers.decorators import api_method
4
6
  from benchling_sdk.helpers.response_helpers import model_from_detailed
7
+ from benchling_sdk.helpers.serialization_helpers import none_as_unset, optional_array_query_param
5
8
  from benchling_sdk.models import AsyncTaskLink, EntitiesBulkUpsertRequest
6
9
  from benchling_sdk.services.v2.base_service import BaseService
7
10
 
@@ -18,7 +21,9 @@ class EntityService(BaseService):
18
21
  """
19
22
 
20
23
  @api_method
21
- def bulk_upsert(self, bulk_upsert: EntitiesBulkUpsertRequest) -> AsyncTaskLink:
24
+ def bulk_upsert(
25
+ self, bulk_upsert: EntitiesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
26
+ ) -> AsyncTaskLink:
22
27
  """
23
28
  Upsert many entities at once.
24
29
 
@@ -34,5 +39,8 @@ class EntityService(BaseService):
34
39
  If any action fails, the whole operation is canceled and no objects are created or updated.
35
40
  See https://benchling.com/api/reference#/Entities/bulkUpsertEntities
36
41
  """
37
- 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
+ )
38
46
  return model_from_detailed(response)
@@ -253,11 +253,16 @@ class MoleculeService(BaseService):
253
253
  return model_from_detailed(response)
254
254
 
255
255
  @api_method
256
- def bulk_upsert(self, body: MoleculesBulkUpsertRequest) -> AsyncTaskLink:
256
+ def bulk_upsert(
257
+ self, body: MoleculesBulkUpsertRequest, returning: Optional[Iterable[str]] = None
258
+ ) -> AsyncTaskLink:
257
259
  """
258
260
  Bulk create or update Molecules.
259
261
 
260
262
  See https://benchling.com/api/reference#/Molecules/bulkUpsertMolecules
261
263
  """
262
- response = bulk_upsert_molecules.sync_detailed(client=self.client, json_body=body)
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
+ )
263
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,
@@ -270,11 +270,16 @@ class RnaOligoService(BaseService):
270
270
  return model_from_detailed(response)
271
271
 
272
272
  @api_method
273
- def bulk_upsert(self, body: RnaOligosBulkUpsertRequest) -> AsyncTaskLink:
273
+ def bulk_upsert(
274
+ self, body: RnaOligosBulkUpsertRequest, returning: Optional[Iterable[str]] = None
275
+ ) -> AsyncTaskLink:
274
276
  """
275
277
  Bulk create or update RNA Oligos.
276
278
 
277
279
  See https://benchling.com/api/reference#/RNA%20Oligos/bulkUpsertRnaOligos
278
280
  """
279
- response = bulk_upsert_rna_oligos.sync_detailed(client=self.client, json_body=body)
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
+ )
280
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)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "benchling-sdk"
3
- version = "1.12.0a0" # NOTE: This version number is ignored and does not correspond to releases (see README)
3
+ version = "1.12.0a1" # NOTE: This version number is ignored and does not correspond to releases (see README)
4
4
  description = "SDK for interacting with the Benchling Platform."
5
5
  authors = ["Benchling Support <support@benchling.com>"]
6
6
  packages = [{include = "benchling_sdk"}]