benchling-sdk 1.17.0a0__tar.gz → 1.17.1__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 (119) hide show
  1. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/PKG-INFO +3 -3
  2. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/benchling.py +38 -0
  3. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/errors.py +2 -1
  4. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/models/__init__.py +103 -3
  5. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/models/webhooks/v0/__init__.py +17 -39
  6. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/aa_sequence_service.py +63 -6
  7. benchling_sdk-1.17.1/benchling_sdk/services/v2/stable/codon_usage_table_service.py +73 -0
  8. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/dna_sequence_service.py +12 -0
  9. benchling_sdk-1.17.1/benchling_sdk/services/v2/stable/enzyme_service.py +72 -0
  10. benchling_sdk-1.17.1/benchling_sdk/services/v2/stable/monomer_service.py +144 -0
  11. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/organization_service.py +104 -2
  12. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/team_service.py +120 -2
  13. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/v2_stable_service.py +44 -0
  14. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/pyproject.toml +3 -3
  15. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/LICENSE +0 -0
  16. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/README.md +0 -0
  17. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/__init__.py +0 -0
  18. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/__init__.py +0 -0
  19. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/canvas/__init__.py +0 -0
  20. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/canvas/errors.py +0 -0
  21. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/canvas/framework.py +0 -0
  22. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/canvas/types.py +0 -0
  23. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/__init__.py +0 -0
  24. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/cryptography_helpers.py +0 -0
  25. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/decryption_provider.py +0 -0
  26. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/errors.py +0 -0
  27. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/framework.py +0 -0
  28. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/helpers.py +0 -0
  29. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/mock_config.py +0 -0
  30. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/config/types.py +0 -0
  31. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/framework.py +0 -0
  32. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/helpers/__init__.py +0 -0
  33. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/helpers/manifest_helpers.py +0 -0
  34. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/helpers/webhook_helpers.py +0 -0
  35. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/status/__init__.py +0 -0
  36. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/status/errors.py +0 -0
  37. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/status/framework.py +0 -0
  38. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/status/helpers.py +0 -0
  39. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/status/types.py +0 -0
  40. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/apps/types.py +0 -0
  41. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/auth/__init__.py +0 -0
  42. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/auth/api_key_auth.py +0 -0
  43. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/auth/bearer_token_auth.py +0 -0
  44. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/auth/client_credentials_oauth2.py +0 -0
  45. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/docs/__init__.py +0 -0
  46. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/docs/__main__.py +0 -0
  47. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/__init__.py +0 -0
  48. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/client_helpers.py +0 -0
  49. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/constants.py +0 -0
  50. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/decorators.py +0 -0
  51. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/file_helpers.py +0 -0
  52. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/logging_helpers.py +0 -0
  53. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/package_helpers.py +0 -0
  54. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/pagination_helpers.py +0 -0
  55. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/response_helpers.py +0 -0
  56. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/retry_helpers.py +0 -0
  57. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/serialization_helpers.py +0 -0
  58. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/helpers/transaction_manager.py +0 -0
  59. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/models/webhooks/__init__.py +0 -0
  60. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/py.typed +0 -0
  61. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/__init__.py +0 -0
  62. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/__init__.py +0 -0
  63. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/alpha/__init__.py +0 -0
  64. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/alpha/v2_alpha_app_service.py +0 -0
  65. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/base_service.py +0 -0
  66. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/__init__.py +0 -0
  67. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_app_service.py +0 -0
  68. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py +0 -0
  69. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +0 -0
  70. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_entry_service.py +0 -0
  71. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_folder_service.py +0 -0
  72. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_project_service.py +0 -0
  73. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/beta/v2_beta_worklist_service.py +0 -0
  74. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/__init__.py +0 -0
  75. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/api_service.py +0 -0
  76. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/app_service.py +0 -0
  77. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/assay_result_service.py +0 -0
  78. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/assay_run_service.py +0 -0
  79. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/blob_service.py +0 -0
  80. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/box_service.py +0 -0
  81. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/container_service.py +0 -0
  82. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/custom_entity_service.py +0 -0
  83. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/custom_notation_service.py +0 -0
  84. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/dna_alignments_service.py +0 -0
  85. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/dna_oligo_service.py +0 -0
  86. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/dropdown_service.py +0 -0
  87. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/entity_service.py +0 -0
  88. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/entry_service.py +0 -0
  89. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/event_service.py +0 -0
  90. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/export_service.py +0 -0
  91. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/feature_library_service.py +0 -0
  92. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/folder_service.py +0 -0
  93. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/inventory_service.py +0 -0
  94. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/lab_automation_service.py +0 -0
  95. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/label_template_service.py +0 -0
  96. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/location_service.py +0 -0
  97. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/mixture_service.py +0 -0
  98. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/molecule_service.py +0 -0
  99. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +0 -0
  100. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/oligo_service.py +0 -0
  101. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/plate_service.py +0 -0
  102. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/printer_service.py +0 -0
  103. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/project_service.py +0 -0
  104. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/registry_service.py +0 -0
  105. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/request_service.py +0 -0
  106. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/rna_oligo_service.py +0 -0
  107. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/rna_sequence_service.py +0 -0
  108. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/schema_service.py +0 -0
  109. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/task_service.py +0 -0
  110. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/user_service.py +0 -0
  111. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/warehouse_service.py +0 -0
  112. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/workflow_flowchart_config_version_service.py +0 -0
  113. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/workflow_flowchart_service.py +0 -0
  114. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/workflow_output_service.py +0 -0
  115. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/workflow_task_group_service.py +0 -0
  116. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/stable/workflow_task_service.py +0 -0
  117. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/v2_alpha_service.py +0 -0
  118. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/benchling_sdk/services/v2/v2_beta_service.py +0 -0
  119. {benchling_sdk-1.17.0a0 → benchling_sdk-1.17.1}/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.17.0a0
3
+ Version: 1.17.1
4
4
  Summary: SDK for interacting with the Benchling Platform.
5
5
  License: Apache-2.0
6
6
  Author: Benchling Support
@@ -15,9 +15,9 @@ Classifier: Programming Language :: Python :: 3.11
15
15
  Provides-Extra: cryptography
16
16
  Provides-Extra: python-jose
17
17
  Requires-Dist: PyYAML (>=6.0,<7.0)
18
- Requires-Dist: attrs (>=20.1.0,<24)
18
+ Requires-Dist: attrs (>=20.1.0)
19
19
  Requires-Dist: backoff (>=1.10.0,<3)
20
- Requires-Dist: benchling-api-client (==2.0.313)
20
+ Requires-Dist: benchling-api-client (==2.0.317)
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)
@@ -20,6 +20,7 @@ if TYPE_CHECKING:
20
20
  from benchling_sdk.services.v2.stable.assay_run_service import AssayRunService
21
21
  from benchling_sdk.services.v2.stable.blob_service import BlobService
22
22
  from benchling_sdk.services.v2.stable.box_service import BoxService
23
+ from benchling_sdk.services.v2.stable.codon_usage_table_service import CodonUsageTableService
23
24
  from benchling_sdk.services.v2.stable.container_service import ContainerService
24
25
  from benchling_sdk.services.v2.stable.custom_entity_service import CustomEntityService
25
26
  from benchling_sdk.services.v2.stable.custom_notation_service import CustomNotationService
@@ -29,6 +30,7 @@ if TYPE_CHECKING:
29
30
  from benchling_sdk.services.v2.stable.dropdown_service import DropdownService
30
31
  from benchling_sdk.services.v2.stable.entity_service import EntityService
31
32
  from benchling_sdk.services.v2.stable.entry_service import EntryService
33
+ from benchling_sdk.services.v2.stable.enzyme_service import EnzymeService
32
34
  from benchling_sdk.services.v2.stable.event_service import EventService
33
35
  from benchling_sdk.services.v2.stable.export_service import ExportService
34
36
  from benchling_sdk.services.v2.stable.feature_library_service import FeatureLibraryService
@@ -39,6 +41,7 @@ if TYPE_CHECKING:
39
41
  from benchling_sdk.services.v2.stable.location_service import LocationService
40
42
  from benchling_sdk.services.v2.stable.mixture_service import MixtureService
41
43
  from benchling_sdk.services.v2.stable.molecule_service import MoleculeService
44
+ from benchling_sdk.services.v2.stable.monomer_service import MonomerService
42
45
  from benchling_sdk.services.v2.stable.nucleotide_alignments_service import NucleotideAlignmentsService
43
46
  from benchling_sdk.services.v2.stable.oligo_service import OligoService
44
47
  from benchling_sdk.services.v2.stable.organization_service import OrganizationService
@@ -265,6 +268,18 @@ class Benchling(object):
265
268
  """
266
269
  return self.v2.stable.boxes
267
270
 
271
+ @property
272
+ def codon_usage_tables(self) -> CodonUsageTableService:
273
+ """
274
+ Codon Usage Tables.
275
+
276
+ Benchling curates codon usage data for a variety of organisms to support operations such as Codon
277
+ Optimization and Back Translation.
278
+
279
+ See https://benchling.com/api/reference#/Codon%20Usage%20Tables
280
+ """
281
+ return self.v2.stable.codon_usage_tables
282
+
268
283
  @property
269
284
  def containers(self) -> ContainerService:
270
285
  """
@@ -389,6 +404,17 @@ class Benchling(object):
389
404
  """
390
405
  return self.v2.stable.entries
391
406
 
407
+ @property
408
+ def enzymes(self) -> EnzymeService:
409
+ """
410
+ Enzymes.
411
+
412
+ Restriction enzymes are curated by Benchling for operations such as Digests and Codon Optimization.
413
+
414
+ See https://benchling.com/api/reference#/Enzymes
415
+ """
416
+ return self.v2.stable.enzymes
417
+
392
418
  @property
393
419
  def events(self) -> EventService:
394
420
  """
@@ -492,6 +518,18 @@ class Benchling(object):
492
518
  """
493
519
  return self.v2.stable.mixtures
494
520
 
521
+ @property
522
+ def monomers(self) -> MonomerService:
523
+ """
524
+ Monomers.
525
+
526
+ Monomers are chemical building blocks with specified structures used to compose modified
527
+ nucleotides. Note that monomer write endpoints require tenant admin permissions.
528
+
529
+ See https://benchling.com/api/reference#/Monomers
530
+ """
531
+ return self.v2.stable.monomers
532
+
495
533
  @property
496
534
  def molecules(self) -> MoleculeService:
497
535
  """
@@ -204,7 +204,7 @@ class DataFrameInProgressError(Exception):
204
204
 
205
205
  def raise_for_status(
206
206
  response: Response, error_matchers: Optional[Iterable[ResponseErrorMatcher[E]]] = None
207
- ) -> None:
207
+ ) -> Response:
208
208
  """
209
209
  Evaluate a Response for a successful HTTP status code or raise a BenchlingError.
210
210
 
@@ -224,6 +224,7 @@ def raise_for_status(
224
224
  check_matcher.raise_on_match(response)
225
225
  # Raise a generalized error
226
226
  raise BenchlingError.from_response(response)
227
+ return response
227
228
 
228
229
 
229
230
  def _parse_error_body(content: bytes) -> Optional[Dict[str, str]]:
@@ -138,7 +138,12 @@ __all__ = [
138
138
  "AssayResultsBulkCreateInTableRequest",
139
139
  "AssayResultsBulkCreateRequest",
140
140
  "AssayResultsBulkGet",
141
+ "AssayResultsCreateErrorResponse",
142
+ "AssayResultsCreateErrorResponseAssayResultsItem",
143
+ "AssayResultsCreateErrorResponseErrorsItem",
144
+ "AssayResultsCreateErrorResponseErrorsItemFields",
141
145
  "AssayResultsCreateResponse",
146
+ "AssayResultsCreateResponseErrors",
142
147
  "AssayResultsPaginatedList",
143
148
  "AssayRun",
144
149
  "AssayRunCreate",
@@ -158,8 +163,13 @@ __all__ = [
158
163
  "AssayRunsArchivalChange",
159
164
  "AssayRunsArchive",
160
165
  "AssayRunsArchiveReason",
166
+ "AssayRunsBulkCreateErrorResponse",
167
+ "AssayRunsBulkCreateErrorResponseAssayRunsItem",
168
+ "AssayRunsBulkCreateErrorResponseErrorsItem",
169
+ "AssayRunsBulkCreateErrorResponseErrorsItemFields",
161
170
  "AssayRunsBulkCreateRequest",
162
171
  "AssayRunsBulkCreateResponse",
172
+ "AssayRunsBulkCreateResponseErrors",
163
173
  "AssayRunsBulkGet",
164
174
  "AssayRunsPaginatedList",
165
175
  "AssayRunsUnarchive",
@@ -675,6 +685,13 @@ __all__ = [
675
685
  "MatchBasesRequestArchiveReason",
676
686
  "MatchBasesRequestSort",
677
687
  "Measurement",
688
+ "Membership",
689
+ "MembershipCreate",
690
+ "MembershipCreateRole",
691
+ "MembershipRole",
692
+ "MembershipUpdate",
693
+ "MembershipUpdateRole",
694
+ "MembershipsPaginatedList",
678
695
  "Mixture",
679
696
  "MixtureBulkUpdate",
680
697
  "MixtureCreate",
@@ -954,7 +971,9 @@ __all__ = [
954
971
  "TableUiBlockType",
955
972
  "TableUiBlockUpdate",
956
973
  "Team",
974
+ "TeamCreate",
957
975
  "TeamSummary",
976
+ "TeamUpdate",
958
977
  "TeamsPaginatedList",
959
978
  "TextAppConfigItem",
960
979
  "TextAppConfigItemType",
@@ -1225,7 +1244,12 @@ if TYPE_CHECKING:
1225
1244
  import benchling_api_client.v2.stable.models.assay_results_bulk_create_in_table_request
1226
1245
  import benchling_api_client.v2.stable.models.assay_results_bulk_create_request
1227
1246
  import benchling_api_client.v2.stable.models.assay_results_bulk_get
1247
+ import benchling_api_client.v2.stable.models.assay_results_create_error_response
1248
+ import benchling_api_client.v2.stable.models.assay_results_create_error_response_assay_results_item
1249
+ import benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item
1250
+ import benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item_fields
1228
1251
  import benchling_api_client.v2.stable.models.assay_results_create_response
1252
+ import benchling_api_client.v2.stable.models.assay_results_create_response_errors
1229
1253
  import benchling_api_client.v2.stable.models.assay_results_paginated_list
1230
1254
  import benchling_api_client.v2.stable.models.assay_run
1231
1255
  import benchling_api_client.v2.stable.models.assay_run_create
@@ -1245,8 +1269,13 @@ if TYPE_CHECKING:
1245
1269
  import benchling_api_client.v2.stable.models.assay_runs_archival_change
1246
1270
  import benchling_api_client.v2.stable.models.assay_runs_archive
1247
1271
  import benchling_api_client.v2.stable.models.assay_runs_archive_reason
1272
+ import benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response
1273
+ import benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_assay_runs_item
1274
+ import benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item
1275
+ import benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item_fields
1248
1276
  import benchling_api_client.v2.stable.models.assay_runs_bulk_create_request
1249
1277
  import benchling_api_client.v2.stable.models.assay_runs_bulk_create_response
1278
+ import benchling_api_client.v2.stable.models.assay_runs_bulk_create_response_errors
1250
1279
  import benchling_api_client.v2.stable.models.assay_runs_bulk_get
1251
1280
  import benchling_api_client.v2.stable.models.assay_runs_paginated_list
1252
1281
  import benchling_api_client.v2.stable.models.assay_runs_unarchive
@@ -1762,6 +1791,13 @@ if TYPE_CHECKING:
1762
1791
  import benchling_api_client.v2.stable.models.match_bases_request_archive_reason
1763
1792
  import benchling_api_client.v2.stable.models.match_bases_request_sort
1764
1793
  import benchling_api_client.v2.stable.models.measurement
1794
+ import benchling_api_client.v2.stable.models.membership
1795
+ import benchling_api_client.v2.stable.models.membership_create
1796
+ import benchling_api_client.v2.stable.models.membership_create_role
1797
+ import benchling_api_client.v2.stable.models.membership_role
1798
+ import benchling_api_client.v2.stable.models.membership_update
1799
+ import benchling_api_client.v2.stable.models.membership_update_role
1800
+ import benchling_api_client.v2.stable.models.memberships_paginated_list
1765
1801
  import benchling_api_client.v2.stable.models.mixture
1766
1802
  import benchling_api_client.v2.stable.models.mixture_bulk_update
1767
1803
  import benchling_api_client.v2.stable.models.mixture_create
@@ -2041,7 +2077,9 @@ if TYPE_CHECKING:
2041
2077
  import benchling_api_client.v2.stable.models.table_ui_block_type
2042
2078
  import benchling_api_client.v2.stable.models.table_ui_block_update
2043
2079
  import benchling_api_client.v2.stable.models.team
2080
+ import benchling_api_client.v2.stable.models.team_create
2044
2081
  import benchling_api_client.v2.stable.models.team_summary
2082
+ import benchling_api_client.v2.stable.models.team_update
2045
2083
  import benchling_api_client.v2.stable.models.teams_paginated_list
2046
2084
  import benchling_api_client.v2.stable.models.text_app_config_item
2047
2085
  import benchling_api_client.v2.stable.models.text_app_config_item_type
@@ -2486,9 +2524,24 @@ if TYPE_CHECKING:
2486
2524
  benchling_api_client.v2.stable.models.assay_results_bulk_create_request.AssayResultsBulkCreateRequest
2487
2525
  )
2488
2526
  AssayResultsBulkGet = benchling_api_client.v2.stable.models.assay_results_bulk_get.AssayResultsBulkGet
2527
+ AssayResultsCreateErrorResponse = (
2528
+ benchling_api_client.v2.stable.models.assay_results_create_error_response.AssayResultsCreateErrorResponse
2529
+ )
2530
+ AssayResultsCreateErrorResponseAssayResultsItem = (
2531
+ benchling_api_client.v2.stable.models.assay_results_create_error_response_assay_results_item.AssayResultsCreateErrorResponseAssayResultsItem
2532
+ )
2533
+ AssayResultsCreateErrorResponseErrorsItem = (
2534
+ benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item.AssayResultsCreateErrorResponseErrorsItem
2535
+ )
2536
+ AssayResultsCreateErrorResponseErrorsItemFields = (
2537
+ benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item_fields.AssayResultsCreateErrorResponseErrorsItemFields
2538
+ )
2489
2539
  AssayResultsCreateResponse = (
2490
2540
  benchling_api_client.v2.stable.models.assay_results_create_response.AssayResultsCreateResponse
2491
2541
  )
2542
+ AssayResultsCreateResponseErrors = (
2543
+ benchling_api_client.v2.stable.models.assay_results_create_response_errors.AssayResultsCreateResponseErrors
2544
+ )
2492
2545
  AssayResultsPaginatedList = (
2493
2546
  benchling_api_client.v2.stable.models.assay_results_paginated_list.AssayResultsPaginatedList
2494
2547
  )
@@ -2528,12 +2581,27 @@ if TYPE_CHECKING:
2528
2581
  AssayRunsArchiveReason = (
2529
2582
  benchling_api_client.v2.stable.models.assay_runs_archive_reason.AssayRunsArchiveReason
2530
2583
  )
2584
+ AssayRunsBulkCreateErrorResponse = (
2585
+ benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response.AssayRunsBulkCreateErrorResponse
2586
+ )
2587
+ AssayRunsBulkCreateErrorResponseAssayRunsItem = (
2588
+ benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_assay_runs_item.AssayRunsBulkCreateErrorResponseAssayRunsItem
2589
+ )
2590
+ AssayRunsBulkCreateErrorResponseErrorsItem = (
2591
+ benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item.AssayRunsBulkCreateErrorResponseErrorsItem
2592
+ )
2593
+ AssayRunsBulkCreateErrorResponseErrorsItemFields = (
2594
+ benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item_fields.AssayRunsBulkCreateErrorResponseErrorsItemFields
2595
+ )
2531
2596
  AssayRunsBulkCreateRequest = (
2532
2597
  benchling_api_client.v2.stable.models.assay_runs_bulk_create_request.AssayRunsBulkCreateRequest
2533
2598
  )
2534
2599
  AssayRunsBulkCreateResponse = (
2535
2600
  benchling_api_client.v2.stable.models.assay_runs_bulk_create_response.AssayRunsBulkCreateResponse
2536
2601
  )
2602
+ AssayRunsBulkCreateResponseErrors = (
2603
+ benchling_api_client.v2.stable.models.assay_runs_bulk_create_response_errors.AssayRunsBulkCreateResponseErrors
2604
+ )
2537
2605
  AssayRunsBulkGet = benchling_api_client.v2.stable.models.assay_runs_bulk_get.AssayRunsBulkGet
2538
2606
  AssayRunsPaginatedList = (
2539
2607
  benchling_api_client.v2.stable.models.assay_runs_paginated_list.AssayRunsPaginatedList
@@ -3595,6 +3663,15 @@ if TYPE_CHECKING:
3595
3663
  benchling_api_client.v2.stable.models.match_bases_request_sort.MatchBasesRequestSort
3596
3664
  )
3597
3665
  Measurement = benchling_api_client.v2.stable.models.measurement.Measurement
3666
+ Membership = benchling_api_client.v2.stable.models.membership.Membership
3667
+ MembershipCreate = benchling_api_client.v2.stable.models.membership_create.MembershipCreate
3668
+ MembershipCreateRole = benchling_api_client.v2.stable.models.membership_create_role.MembershipCreateRole
3669
+ MembershipRole = benchling_api_client.v2.stable.models.membership_role.MembershipRole
3670
+ MembershipUpdate = benchling_api_client.v2.stable.models.membership_update.MembershipUpdate
3671
+ MembershipUpdateRole = benchling_api_client.v2.stable.models.membership_update_role.MembershipUpdateRole
3672
+ MembershipsPaginatedList = (
3673
+ benchling_api_client.v2.stable.models.memberships_paginated_list.MembershipsPaginatedList
3674
+ )
3598
3675
  Mixture = benchling_api_client.v2.stable.models.mixture.Mixture
3599
3676
  MixtureBulkUpdate = benchling_api_client.v2.stable.models.mixture_bulk_update.MixtureBulkUpdate
3600
3677
  MixtureCreate = benchling_api_client.v2.stable.models.mixture_create.MixtureCreate
@@ -4170,7 +4247,9 @@ if TYPE_CHECKING:
4170
4247
  TableUiBlockType = benchling_api_client.v2.stable.models.table_ui_block_type.TableUiBlockType
4171
4248
  TableUiBlockUpdate = benchling_api_client.v2.stable.models.table_ui_block_update.TableUiBlockUpdate
4172
4249
  Team = benchling_api_client.v2.stable.models.team.Team
4250
+ TeamCreate = benchling_api_client.v2.stable.models.team_create.TeamCreate
4173
4251
  TeamSummary = benchling_api_client.v2.stable.models.team_summary.TeamSummary
4252
+ TeamUpdate = benchling_api_client.v2.stable.models.team_update.TeamUpdate
4174
4253
  TeamsPaginatedList = benchling_api_client.v2.stable.models.teams_paginated_list.TeamsPaginatedList
4175
4254
  TextAppConfigItem = benchling_api_client.v2.stable.models.text_app_config_item.TextAppConfigItem
4176
4255
  TextAppConfigItemType = (
@@ -4621,7 +4700,12 @@ else:
4621
4700
  "AssayResultsBulkCreateInTableRequest": "benchling_api_client.v2.stable.models.assay_results_bulk_create_in_table_request",
4622
4701
  "AssayResultsBulkCreateRequest": "benchling_api_client.v2.stable.models.assay_results_bulk_create_request",
4623
4702
  "AssayResultsBulkGet": "benchling_api_client.v2.stable.models.assay_results_bulk_get",
4703
+ "AssayResultsCreateErrorResponse": "benchling_api_client.v2.stable.models.assay_results_create_error_response",
4704
+ "AssayResultsCreateErrorResponseAssayResultsItem": "benchling_api_client.v2.stable.models.assay_results_create_error_response_assay_results_item",
4705
+ "AssayResultsCreateErrorResponseErrorsItem": "benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item",
4706
+ "AssayResultsCreateErrorResponseErrorsItemFields": "benchling_api_client.v2.stable.models.assay_results_create_error_response_errors_item_fields",
4624
4707
  "AssayResultsCreateResponse": "benchling_api_client.v2.stable.models.assay_results_create_response",
4708
+ "AssayResultsCreateResponseErrors": "benchling_api_client.v2.stable.models.assay_results_create_response_errors",
4625
4709
  "AssayResultsPaginatedList": "benchling_api_client.v2.stable.models.assay_results_paginated_list",
4626
4710
  "AssayRun": "benchling_api_client.v2.stable.models.assay_run",
4627
4711
  "AssayRunCreate": "benchling_api_client.v2.stable.models.assay_run_create",
@@ -4641,8 +4725,13 @@ else:
4641
4725
  "AssayRunsArchivalChange": "benchling_api_client.v2.stable.models.assay_runs_archival_change",
4642
4726
  "AssayRunsArchive": "benchling_api_client.v2.stable.models.assay_runs_archive",
4643
4727
  "AssayRunsArchiveReason": "benchling_api_client.v2.stable.models.assay_runs_archive_reason",
4728
+ "AssayRunsBulkCreateErrorResponse": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response",
4729
+ "AssayRunsBulkCreateErrorResponseAssayRunsItem": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_assay_runs_item",
4730
+ "AssayRunsBulkCreateErrorResponseErrorsItem": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item",
4731
+ "AssayRunsBulkCreateErrorResponseErrorsItemFields": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_error_response_errors_item_fields",
4644
4732
  "AssayRunsBulkCreateRequest": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_request",
4645
4733
  "AssayRunsBulkCreateResponse": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_response",
4734
+ "AssayRunsBulkCreateResponseErrors": "benchling_api_client.v2.stable.models.assay_runs_bulk_create_response_errors",
4646
4735
  "AssayRunsBulkGet": "benchling_api_client.v2.stable.models.assay_runs_bulk_get",
4647
4736
  "AssayRunsPaginatedList": "benchling_api_client.v2.stable.models.assay_runs_paginated_list",
4648
4737
  "AssayRunsUnarchive": "benchling_api_client.v2.stable.models.assay_runs_unarchive",
@@ -5158,6 +5247,13 @@ else:
5158
5247
  "MatchBasesRequestArchiveReason": "benchling_api_client.v2.stable.models.match_bases_request_archive_reason",
5159
5248
  "MatchBasesRequestSort": "benchling_api_client.v2.stable.models.match_bases_request_sort",
5160
5249
  "Measurement": "benchling_api_client.v2.stable.models.measurement",
5250
+ "Membership": "benchling_api_client.v2.stable.models.membership",
5251
+ "MembershipCreate": "benchling_api_client.v2.stable.models.membership_create",
5252
+ "MembershipCreateRole": "benchling_api_client.v2.stable.models.membership_create_role",
5253
+ "MembershipRole": "benchling_api_client.v2.stable.models.membership_role",
5254
+ "MembershipUpdate": "benchling_api_client.v2.stable.models.membership_update",
5255
+ "MembershipUpdateRole": "benchling_api_client.v2.stable.models.membership_update_role",
5256
+ "MembershipsPaginatedList": "benchling_api_client.v2.stable.models.memberships_paginated_list",
5161
5257
  "Mixture": "benchling_api_client.v2.stable.models.mixture",
5162
5258
  "MixtureBulkUpdate": "benchling_api_client.v2.stable.models.mixture_bulk_update",
5163
5259
  "MixtureCreate": "benchling_api_client.v2.stable.models.mixture_create",
@@ -5437,7 +5533,9 @@ else:
5437
5533
  "TableUiBlockType": "benchling_api_client.v2.stable.models.table_ui_block_type",
5438
5534
  "TableUiBlockUpdate": "benchling_api_client.v2.stable.models.table_ui_block_update",
5439
5535
  "Team": "benchling_api_client.v2.stable.models.team",
5536
+ "TeamCreate": "benchling_api_client.v2.stable.models.team_create",
5440
5537
  "TeamSummary": "benchling_api_client.v2.stable.models.team_summary",
5538
+ "TeamUpdate": "benchling_api_client.v2.stable.models.team_update",
5441
5539
  "TeamsPaginatedList": "benchling_api_client.v2.stable.models.teams_paginated_list",
5442
5540
  "TextAppConfigItem": "benchling_api_client.v2.stable.models.text_app_config_item",
5443
5541
  "TextAppConfigItemType": "benchling_api_client.v2.stable.models.text_app_config_item_type",
@@ -5583,9 +5681,11 @@ else:
5583
5681
  # Custom module to allow for lazy loading of models
5584
5682
  class _Models(ModuleType):
5585
5683
  def __getattr__(self, name):
5586
- module = __import__(model_to_module_mapping[name], None, None, [name])
5587
- setattr(self, name, getattr(module, name))
5588
- return ModuleType.__getattribute__(self, name)
5684
+ if module_name := model_to_module_mapping.get(name):
5685
+ module = __import__(module_name, None, None, [name])
5686
+ setattr(self, name, getattr(module, name))
5687
+ return ModuleType.__getattribute__(self, name)
5688
+ return ModuleType.__getattr__(self, name)
5589
5689
 
5590
5690
  # keep a reference to this module so that it's not garbage collected
5591
5691
  old_module = sys.modules[__name__]
@@ -19,12 +19,8 @@ __all__ = [
19
19
  "AssayRunCreatedWebhookV2Type",
20
20
  "AssayRunUpdatedFieldsWebhookV2",
21
21
  "AssayRunUpdatedFieldsWebhookV2Type",
22
- "CanvasInitializeWebhookV0",
23
- "CanvasInitializeWebhookV0Type",
24
22
  "CanvasInitializeWebhookV2",
25
23
  "CanvasInitializeWebhookV2Type",
26
- "CanvasInteractionWebhookV0",
27
- "CanvasInteractionWebhookV0Type",
28
24
  "CanvasInteractionWebhookV2",
29
25
  "CanvasInteractionWebhookV2Type",
30
26
  "EntityRegisteredWebhookV2",
@@ -37,8 +33,6 @@ __all__ = [
37
33
  "EntryUpdatedReviewRecordWebhookV2Type",
38
34
  "EventBaseWebhookV2",
39
35
  "EventBaseWebhookV2Schematized",
40
- "EventCreatedWebhookV0Beta",
41
- "EventCreatedWebhookV0BetaType",
42
36
  "EventResourceSchema",
43
37
  "LifecycleActivateWebhookV0",
44
38
  "LifecycleActivateWebhookV0Beta",
@@ -111,6 +105,8 @@ __all__ = [
111
105
  "WorkflowTaskCreatedWebhookV2Type",
112
106
  "WorkflowTaskGroupCreatedWebhookV2",
113
107
  "WorkflowTaskGroupCreatedWebhookV2Type",
108
+ "WorkflowTaskGroupMappingCompletedWebhookV2",
109
+ "WorkflowTaskGroupMappingCompletedWebhookV2Type",
114
110
  "WorkflowTaskGroupUpdatedWatchersWebhookV2",
115
111
  "WorkflowTaskGroupUpdatedWatchersWebhookV2Type",
116
112
  "WorkflowTaskUpdatedAssigneeWebhookV2",
@@ -134,12 +130,8 @@ if TYPE_CHECKING:
134
130
  import benchling_api_client.webhooks.v0.stable.models.assay_run_created_webhook_v2_type
135
131
  import benchling_api_client.webhooks.v0.stable.models.assay_run_updated_fields_webhook_v2
136
132
  import benchling_api_client.webhooks.v0.stable.models.assay_run_updated_fields_webhook_v2_type
137
- import benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0
138
- import benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0_type
139
133
  import benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2
140
134
  import benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2_type
141
- import benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0
142
- import benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0_type
143
135
  import benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v2
144
136
  import benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v2_type
145
137
  import benchling_api_client.webhooks.v0.stable.models.entity_registered_webhook_v2
@@ -152,8 +144,6 @@ if TYPE_CHECKING:
152
144
  import benchling_api_client.webhooks.v0.stable.models.entry_updated_review_record_webhook_v2_type
153
145
  import benchling_api_client.webhooks.v0.stable.models.event_base_webhook_v2
154
146
  import benchling_api_client.webhooks.v0.stable.models.event_base_webhook_v2_schematized
155
- import benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta
156
- import benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta_type
157
147
  import benchling_api_client.webhooks.v0.stable.models.event_resource_schema
158
148
  import benchling_api_client.webhooks.v0.stable.models.lifecycle_activate_webhook_v0
159
149
  import benchling_api_client.webhooks.v0.stable.models.lifecycle_activate_webhook_v0_beta
@@ -226,6 +216,8 @@ if TYPE_CHECKING:
226
216
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_created_webhook_v2_type
227
217
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_created_webhook_v2
228
218
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_created_webhook_v2_type
219
+ import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2
220
+ import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2_type
229
221
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_updated_watchers_webhook_v2
230
222
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_group_updated_watchers_webhook_v2_type
231
223
  import benchling_api_client.webhooks.v0.stable.models.workflow_task_updated_assignee_webhook_v2
@@ -267,24 +259,12 @@ if TYPE_CHECKING:
267
259
  AssayRunUpdatedFieldsWebhookV2Type = (
268
260
  benchling_api_client.webhooks.v0.stable.models.assay_run_updated_fields_webhook_v2_type.AssayRunUpdatedFieldsWebhookV2Type
269
261
  )
270
- CanvasInitializeWebhookV0 = (
271
- benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0.CanvasInitializeWebhookV0
272
- )
273
- CanvasInitializeWebhookV0Type = (
274
- benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0_type.CanvasInitializeWebhookV0Type
275
- )
276
262
  CanvasInitializeWebhookV2 = (
277
263
  benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2.CanvasInitializeWebhookV2
278
264
  )
279
265
  CanvasInitializeWebhookV2Type = (
280
266
  benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2_type.CanvasInitializeWebhookV2Type
281
267
  )
282
- CanvasInteractionWebhookV0 = (
283
- benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0.CanvasInteractionWebhookV0
284
- )
285
- CanvasInteractionWebhookV0Type = (
286
- benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0_type.CanvasInteractionWebhookV0Type
287
- )
288
268
  CanvasInteractionWebhookV2 = (
289
269
  benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v2.CanvasInteractionWebhookV2
290
270
  )
@@ -321,12 +301,6 @@ if TYPE_CHECKING:
321
301
  EventBaseWebhookV2Schematized = (
322
302
  benchling_api_client.webhooks.v0.stable.models.event_base_webhook_v2_schematized.EventBaseWebhookV2Schematized
323
303
  )
324
- EventCreatedWebhookV0Beta = (
325
- benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta.EventCreatedWebhookV0Beta
326
- )
327
- EventCreatedWebhookV0BetaType = (
328
- benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta_type.EventCreatedWebhookV0BetaType
329
- )
330
304
  EventResourceSchema = (
331
305
  benchling_api_client.webhooks.v0.stable.models.event_resource_schema.EventResourceSchema
332
306
  )
@@ -535,6 +509,12 @@ if TYPE_CHECKING:
535
509
  WorkflowTaskGroupCreatedWebhookV2Type = (
536
510
  benchling_api_client.webhooks.v0.stable.models.workflow_task_group_created_webhook_v2_type.WorkflowTaskGroupCreatedWebhookV2Type
537
511
  )
512
+ WorkflowTaskGroupMappingCompletedWebhookV2 = (
513
+ benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2.WorkflowTaskGroupMappingCompletedWebhookV2
514
+ )
515
+ WorkflowTaskGroupMappingCompletedWebhookV2Type = (
516
+ benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2_type.WorkflowTaskGroupMappingCompletedWebhookV2Type
517
+ )
538
518
  WorkflowTaskGroupUpdatedWatchersWebhookV2 = (
539
519
  benchling_api_client.webhooks.v0.stable.models.workflow_task_group_updated_watchers_webhook_v2.WorkflowTaskGroupUpdatedWatchersWebhookV2
540
520
  )
@@ -578,12 +558,8 @@ else:
578
558
  "AssayRunCreatedWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.assay_run_created_webhook_v2_type",
579
559
  "AssayRunUpdatedFieldsWebhookV2": "benchling_api_client.webhooks.v0.stable.models.assay_run_updated_fields_webhook_v2",
580
560
  "AssayRunUpdatedFieldsWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.assay_run_updated_fields_webhook_v2_type",
581
- "CanvasInitializeWebhookV0": "benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0",
582
- "CanvasInitializeWebhookV0Type": "benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v0_type",
583
561
  "CanvasInitializeWebhookV2": "benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2",
584
562
  "CanvasInitializeWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.canvas_initialize_webhook_v2_type",
585
- "CanvasInteractionWebhookV0": "benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0",
586
- "CanvasInteractionWebhookV0Type": "benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v0_type",
587
563
  "CanvasInteractionWebhookV2": "benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v2",
588
564
  "CanvasInteractionWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.canvas_interaction_webhook_v2_type",
589
565
  "EntityRegisteredWebhookV2": "benchling_api_client.webhooks.v0.stable.models.entity_registered_webhook_v2",
@@ -596,8 +572,6 @@ else:
596
572
  "EntryUpdatedReviewRecordWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.entry_updated_review_record_webhook_v2_type",
597
573
  "EventBaseWebhookV2": "benchling_api_client.webhooks.v0.stable.models.event_base_webhook_v2",
598
574
  "EventBaseWebhookV2Schematized": "benchling_api_client.webhooks.v0.stable.models.event_base_webhook_v2_schematized",
599
- "EventCreatedWebhookV0Beta": "benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta",
600
- "EventCreatedWebhookV0BetaType": "benchling_api_client.webhooks.v0.stable.models.event_created_webhook_v0_beta_type",
601
575
  "EventResourceSchema": "benchling_api_client.webhooks.v0.stable.models.event_resource_schema",
602
576
  "LifecycleActivateWebhookV0": "benchling_api_client.webhooks.v0.stable.models.lifecycle_activate_webhook_v0",
603
577
  "LifecycleActivateWebhookV0Beta": "benchling_api_client.webhooks.v0.stable.models.lifecycle_activate_webhook_v0_beta",
@@ -670,6 +644,8 @@ else:
670
644
  "WorkflowTaskCreatedWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.workflow_task_created_webhook_v2_type",
671
645
  "WorkflowTaskGroupCreatedWebhookV2": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_created_webhook_v2",
672
646
  "WorkflowTaskGroupCreatedWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_created_webhook_v2_type",
647
+ "WorkflowTaskGroupMappingCompletedWebhookV2": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2",
648
+ "WorkflowTaskGroupMappingCompletedWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_mapping_completed_webhook_v2_type",
673
649
  "WorkflowTaskGroupUpdatedWatchersWebhookV2": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_updated_watchers_webhook_v2",
674
650
  "WorkflowTaskGroupUpdatedWatchersWebhookV2Type": "benchling_api_client.webhooks.v0.stable.models.workflow_task_group_updated_watchers_webhook_v2_type",
675
651
  "WorkflowTaskUpdatedAssigneeWebhookV2": "benchling_api_client.webhooks.v0.stable.models.workflow_task_updated_assignee_webhook_v2",
@@ -687,9 +663,11 @@ else:
687
663
  # Custom module to allow for lazy loading of models
688
664
  class _Models(ModuleType):
689
665
  def __getattr__(self, name):
690
- module = __import__(model_to_module_mapping[name], None, None, [name])
691
- setattr(self, name, getattr(module, name))
692
- return ModuleType.__getattribute__(self, name)
666
+ if module_name := model_to_module_mapping.get(name):
667
+ module = __import__(module_name, None, None, [name])
668
+ setattr(self, name, getattr(module, name))
669
+ return ModuleType.__getattribute__(self, name)
670
+ return ModuleType.__getattr__(self, name)
693
671
 
694
672
  # keep a reference to this module so that it's not garbage collected
695
673
  old_module = sys.modules[__name__]
@@ -1,8 +1,10 @@
1
1
  from typing import Any, Dict, Iterable, List, Optional, Union
2
2
 
3
+ from attr import evolve
3
4
  from benchling_api_client.v2.stable.api.aa_sequences import (
4
5
  archive_aa_sequences,
5
6
  auto_annotate_aa_sequences,
7
+ back_translate,
6
8
  bulk_create_aa_sequences,
7
9
  bulk_get_aa_sequences,
8
10
  bulk_update_aa_sequences,
@@ -11,6 +13,8 @@ from benchling_api_client.v2.stable.api.aa_sequences import (
11
13
  find_matching_regions_aa_sequences,
12
14
  get_aa_sequence,
13
15
  list_aa_sequences,
16
+ match_amino_acids_aa_sequences,
17
+ search_aa_sequences,
14
18
  unarchive_aa_sequences,
15
19
  update_aa_sequence,
16
20
  upsert_aa_sequence,
@@ -39,18 +43,25 @@ from benchling_sdk.models import (
39
43
  AaSequencesBulkUpdateRequest,
40
44
  AaSequencesBulkUpsertRequest,
41
45
  AaSequencesFindMatchingRegion,
46
+ AaSequencesMatchBases,
42
47
  AaSequencesPaginatedList,
48
+ AaSequencesSearchBases,
43
49
  AaSequencesUnarchive,
44
50
  AaSequenceUpdate,
45
51
  AaSequenceUpsert,
46
52
  AsyncTaskLink,
47
53
  AutoAnnotateAaSequences,
54
+ BackTranslate,
48
55
  EntityArchiveReason,
49
56
  ListAASequencesSort,
50
57
  )
51
58
  from benchling_sdk.services.v2.base_service import BaseService
52
59
 
53
60
 
61
+ def _list_results_extractor(body: AaSequencesPaginatedList) -> Optional[List[AaSequence]]:
62
+ return body.aa_sequences
63
+
64
+
54
65
  class AaSequenceService(BaseService):
55
66
  """
56
67
  AA Sequences.
@@ -125,8 +136,7 @@ class AaSequenceService(BaseService):
125
136
  author_idsany_of=none_as_unset(optional_array_query_param(author_idsany_of)),
126
137
  returning=none_as_unset(optional_array_query_param(returning)),
127
138
  )
128
- raise_for_status(response)
129
- return response # type: ignore
139
+ return raise_for_status(response)
130
140
 
131
141
  def list(
132
142
  self,
@@ -186,10 +196,7 @@ class AaSequenceService(BaseService):
186
196
  returning=returning,
187
197
  )
188
198
 
189
- def results_extractor(body: AaSequencesPaginatedList) -> Optional[List[AaSequence]]:
190
- return body.aa_sequences
191
-
192
- return PageIterator(api_call, results_extractor)
199
+ return PageIterator(api_call, _list_results_extractor)
193
200
 
194
201
  @api_method
195
202
  def create(self, aa_sequence: AaSequenceCreate) -> AaSequence:
@@ -326,3 +333,53 @@ class AaSequenceService(BaseService):
326
333
  client=self.client, json_body=find_matching_region
327
334
  )
328
335
  return model_from_detailed(response)
336
+
337
+ @api_method
338
+ def back_translate(self, translate: BackTranslate) -> AsyncTaskLink:
339
+ """
340
+ Create back-translated DNA sequences from AA sequences.
341
+
342
+ See https://benchling.com/api/v2/reference#/AA%20Sequences/backTranslate
343
+ """
344
+ response = back_translate.sync_detailed(client=self.client, json_body=translate)
345
+ return model_from_detailed(response)
346
+
347
+ @api_method
348
+ def _match_bases_page(self, match_bases: AaSequencesMatchBases) -> Response[AaSequencesPaginatedList]:
349
+ return raise_for_status(
350
+ match_amino_acids_aa_sequences.sync_detailed(client=self.client, json_body=match_bases)
351
+ )
352
+
353
+ def match_amino_acids(self, match_bases: AaSequencesMatchBases) -> PageIterator[AaSequence]:
354
+ """
355
+ Return AA Sequences that exactly match the provided amino acids.
356
+
357
+ See https://benchling.com/api/reference#/AA%20Sequences/matchAminoAcidsAaSequences
358
+ """
359
+
360
+ def api_call(next_token: NextToken) -> Response[AaSequencesPaginatedList]:
361
+ return self._match_bases_page(evolve(match_bases, next_token=next_token))
362
+
363
+ return PageIterator(api_call, _list_results_extractor)
364
+
365
+ @api_method
366
+ def _search_bases_page(
367
+ self, search_request: AaSequencesSearchBases
368
+ ) -> Response[AaSequencesPaginatedList]:
369
+ return raise_for_status(
370
+ search_aa_sequences.sync_detailed(client=self.client, json_body=search_request)
371
+ )
372
+
373
+ def search(self, search_request: AaSequencesSearchBases) -> PageIterator[AaSequence]:
374
+ """
375
+ Return AA Sequences that contain the provided amino acids.
376
+
377
+ Search indexing is asynchronous, so results my be not be available immediately after creation.
378
+
379
+ See https://benchling.com/api/reference#/AA%20Sequences/searchAaSequences
380
+ """
381
+
382
+ def api_call(next_token: NextToken) -> Response[AaSequencesPaginatedList]:
383
+ return self._search_bases_page(evolve(search_request, next_token=next_token))
384
+
385
+ return PageIterator(api_call, _list_results_extractor)