benchling-sdk 1.23.0a3__tar.gz → 1.23.0a5__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 (130) hide show
  1. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/PKG-INFO +2 -2
  2. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/errors.py +4 -2
  3. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/serialization_helpers.py +7 -5
  4. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/task_helpers.py +2 -2
  5. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/assay_result_service.py +11 -3
  6. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/plate_service.py +1 -1
  7. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/pyproject.toml +2 -3
  8. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/LICENSE +0 -0
  9. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/README.md +0 -0
  10. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/__init__.py +0 -0
  11. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/__init__.py +0 -0
  12. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/canvas/__init__.py +0 -0
  13. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/canvas/errors.py +0 -0
  14. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/canvas/framework.py +0 -0
  15. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/canvas/types.py +0 -0
  16. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/__init__.py +0 -0
  17. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/cryptography_helpers.py +0 -0
  18. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/decryption_provider.py +0 -0
  19. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/errors.py +0 -0
  20. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/framework.py +0 -0
  21. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/helpers.py +0 -0
  22. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/mock_config.py +0 -0
  23. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/config/types.py +0 -0
  24. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/framework.py +0 -0
  25. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/helpers/__init__.py +0 -0
  26. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/helpers/manifest_helpers.py +0 -0
  27. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/helpers/webhook_helpers.py +0 -0
  28. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/status/__init__.py +0 -0
  29. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/status/errors.py +0 -0
  30. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/status/framework.py +0 -0
  31. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/status/helpers.py +0 -0
  32. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/status/types.py +0 -0
  33. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/apps/types.py +0 -0
  34. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/auth/__init__.py +0 -0
  35. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/auth/api_key_auth.py +0 -0
  36. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/auth/bearer_token_auth.py +0 -0
  37. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/auth/client_credentials_oauth2.py +0 -0
  38. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/benchling.py +0 -0
  39. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/docs/__init__.py +0 -0
  40. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/docs/__main__.py +0 -0
  41. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/__init__.py +0 -0
  42. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/client_helpers.py +0 -0
  43. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/constants.py +0 -0
  44. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/decorators.py +0 -0
  45. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/file_helpers.py +0 -0
  46. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/logging_helpers.py +0 -0
  47. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/package_helpers.py +0 -0
  48. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/pagination_helpers.py +0 -0
  49. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/response_helpers.py +0 -0
  50. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/retry_helpers.py +0 -0
  51. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/helpers/transaction_manager.py +0 -0
  52. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/models/__init__.py +0 -0
  53. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/models/webhooks/__init__.py +0 -0
  54. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/models/webhooks/v0/__init__.py +0 -0
  55. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/py.typed +0 -0
  56. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/__init__.py +0 -0
  57. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/__init__.py +0 -0
  58. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/alpha/__init__.py +0 -0
  59. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/alpha/v2_alpha_app_service.py +0 -0
  60. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/alpha/v2_alpha_assembly_service.py +0 -0
  61. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/base_service.py +0 -0
  62. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/__init__.py +0 -0
  63. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_analysis_service.py +0 -0
  64. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_app_definition_service.py +0 -0
  65. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_app_service.py +0 -0
  66. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py +0 -0
  67. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +0 -0
  68. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_entry_service.py +0 -0
  69. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_folder_service.py +0 -0
  70. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_project_service.py +0 -0
  71. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/beta/v2_beta_worklist_service.py +0 -0
  72. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/__init__.py +0 -0
  73. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/aa_sequence_service.py +0 -0
  74. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/api_service.py +0 -0
  75. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/app_service.py +0 -0
  76. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/assay_run_service.py +0 -0
  77. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/audit_service.py +0 -0
  78. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/blob_service.py +0 -0
  79. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/box_service.py +0 -0
  80. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/codon_usage_table_service.py +0 -0
  81. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/connect_service.py +0 -0
  82. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/container_service.py +0 -0
  83. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/custom_entity_service.py +0 -0
  84. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/custom_notation_service.py +0 -0
  85. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/data_frame_service.py +0 -0
  86. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/dataset_service.py +0 -0
  87. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/dna_alignments_service.py +0 -0
  88. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/dna_oligo_service.py +0 -0
  89. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/dna_sequence_service.py +0 -0
  90. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/dropdown_service.py +0 -0
  91. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/entity_service.py +0 -0
  92. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/entry_service.py +0 -0
  93. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/enzyme_service.py +0 -0
  94. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/event_service.py +0 -0
  95. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/export_service.py +0 -0
  96. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/feature_library_service.py +0 -0
  97. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/file_service.py +0 -0
  98. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/folder_service.py +0 -0
  99. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/instrument_query_service.py +0 -0
  100. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/inventory_service.py +0 -0
  101. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/lab_automation_service.py +0 -0
  102. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/label_template_service.py +0 -0
  103. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/legacy_request_service.py +0 -0
  104. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/location_service.py +0 -0
  105. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/mixture_service.py +0 -0
  106. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/molecule_service.py +0 -0
  107. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/monomer_service.py +0 -0
  108. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +0 -0
  109. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/oligo_service.py +0 -0
  110. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/organization_service.py +0 -0
  111. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/printer_service.py +0 -0
  112. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/project_service.py +0 -0
  113. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/registry_service.py +0 -0
  114. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/rna_oligo_service.py +0 -0
  115. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/rna_sequence_service.py +0 -0
  116. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/schema_service.py +0 -0
  117. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/task_service.py +0 -0
  118. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/team_service.py +0 -0
  119. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/test_order_service.py +0 -0
  120. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/user_service.py +0 -0
  121. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/warehouse_service.py +0 -0
  122. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/workflow_flowchart_config_version_service.py +0 -0
  123. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/workflow_flowchart_service.py +0 -0
  124. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/workflow_output_service.py +0 -0
  125. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/workflow_task_group_service.py +0 -0
  126. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/stable/workflow_task_service.py +0 -0
  127. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/v2_alpha_service.py +0 -0
  128. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/v2_beta_service.py +0 -0
  129. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/benchling_sdk/services/v2/v2_stable_service.py +0 -0
  130. {benchling_sdk-1.23.0a3 → benchling_sdk-1.23.0a5}/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.23.0a3
3
+ Version: 1.23.0a5
4
4
  Summary: SDK for interacting with the Benchling Platform.
5
5
  License: Apache-2.0
6
6
  Author: Benchling Support
@@ -23,9 +23,9 @@ Requires-Dist: dataclasses-json (>=0.5.2,<0.6.0)
23
23
  Requires-Dist: httpx (>=0.23.0)
24
24
  Requires-Dist: jwcrypto (>=1.5.1,<2.0.0)
25
25
  Requires-Dist: ordered-set (>=4.1.0,<5.0.0)
26
- Requires-Dist: psutil (>=5.9.4,<6.0.0) ; python_version >= "3.11" and python_version < "4.0"
27
26
  Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
28
27
  Requires-Dist: python-jose[cryptography] (>=3.3.0,<4.0.0) ; extra == "python-jose"
28
+ Requires-Dist: tzdata (>=2025.2,<2026.0)
29
29
  Description-Content-Type: text/markdown
30
30
 
31
31
  # Benchling SDK
@@ -98,9 +98,11 @@ class RegistrationError(Exception):
98
98
  @classmethod
99
99
  def from_task(cls, task: AsyncTask) -> RegistrationError:
100
100
  """Create a RegistrationError from a failed AsyncTask."""
101
- task_errors = unset_as_none(task.errors)
101
+ task_errors = unset_as_none(lambda: task.errors)
102
102
  errors_dict: Dict[Any, Any] = task_errors.to_dict() if task_errors else dict() # type: ignore
103
- return cls(message=unset_as_none(task.message), errors=errors_dict, task_status=task.status)
103
+ return cls(
104
+ message=unset_as_none(lambda: task.message), errors=errors_dict, task_status=task.status
105
+ )
104
106
 
105
107
  def __str__(self):
106
108
  return repr(self)
@@ -1,6 +1,7 @@
1
1
  from dataclasses import dataclass
2
- from typing import Any, Dict, Iterable, Optional, Type, TypeVar, Union
2
+ from typing import Any, Callable, Dict, Iterable, Optional, Type, TypeVar, Union
3
3
 
4
+ from benchling_api_client.v2.stable.extensions import NotPresentError
4
5
  from benchling_api_client.v2.types import UNSET, Unset
5
6
  from dataclasses_json import DataClassJsonMixin
6
7
 
@@ -83,11 +84,12 @@ def custom_fields(source: Dict[str, Any]) -> CustomFields:
83
84
  return CustomFields.from_dict(source)
84
85
 
85
86
 
86
- def unset_as_none(source: Union[Unset, None, T]) -> Optional[T]:
87
- """Given a value that may be UNSET, produces an Optional[] where UNSET will be treated as None."""
88
- if source is UNSET:
87
+ def unset_as_none(attr_fn: Callable[[], T]) -> Optional[T]:
88
+ """Given an attribute accessor that may raise a NotPresentError, produces an Optional[] where the NotPresentError will be treated as None."""
89
+ try:
90
+ return attr_fn()
91
+ except NotPresentError:
89
92
  return None
90
- return source # type: ignore
91
93
 
92
94
 
93
95
  def schema_fields_query_param(schema_fields: Optional[Dict[str, Any]]) -> Optional[SchemaFieldsQueryParam]:
@@ -108,8 +108,8 @@ class TaskHelper(AsyncTaskLink, Generic[ResponseT]):
108
108
  response = cast(ResponseT, EMPTY_TASK_RESPONSE)
109
109
  else:
110
110
  response = self._response_decoder(task.response.to_dict())
111
- errors = None if task.status != AsyncTaskStatus.FAILED else unset_as_none(task.errors)
112
- message = None if task.status != AsyncTaskStatus.FAILED else unset_as_none(task.message)
111
+ errors = None if task.status != AsyncTaskStatus.FAILED else unset_as_none(lambda: task.errors)
112
+ message = None if task.status != AsyncTaskStatus.FAILED else unset_as_none(lambda:task.message)
113
113
  return TaskCompletion(
114
114
  success=task.status == AsyncTaskStatus.SUCCEEDED,
115
115
  errors=errors, # type: ignore
@@ -13,6 +13,7 @@ from benchling_api_client.v2.stable.api.assay_results import (
13
13
  list_assay_results,
14
14
  unarchive_assay_results,
15
15
  )
16
+ from benchling_api_client.v2.stable.types import UNSET, Unset
16
17
  from benchling_api_client.v2.types import Response
17
18
 
18
19
  from benchling_sdk.errors import raise_for_status
@@ -33,6 +34,7 @@ from benchling_sdk.models import (
33
34
  AssayResultIdsRequest,
34
35
  AssayResultIdsResponse,
35
36
  AssayResultsArchive,
37
+ AssayResultsArchiveReason,
36
38
  AssayResultsBulkCreateInTableRequest,
37
39
  AssayResultsBulkCreateRequest,
38
40
  AssayResultsCreateResponse,
@@ -215,7 +217,11 @@ class AssayResultService(BaseService):
215
217
  return self._task_helper_from_response(response, AssayResultsCreateResponse)
216
218
 
217
219
  @api_method
218
- def archive(self, assay_result_ids: Iterable[str]) -> AssayResultIdsResponse:
220
+ def archive(
221
+ self,
222
+ assay_result_ids: Iterable[str],
223
+ reason: Union[Unset, AssayResultsArchiveReason] = UNSET,
224
+ ) -> AssayResultIdsResponse:
219
225
  """
220
226
  Archive assay results.
221
227
 
@@ -225,8 +231,10 @@ class AssayResultService(BaseService):
225
231
 
226
232
  See https://benchling.com/api/reference#/Assay%20Results/archiveAssayResults
227
233
  """
228
- archive_request = AssayResultsArchive(assay_result_ids=list(assay_result_ids))
229
- response = archive_assay_results.sync_detailed(client=self.client, json_body=archive_request)
234
+ archive_request = AssayResultsArchive(assay_result_ids=list(assay_result_ids), reason=reason)
235
+ response = archive_assay_results.sync_detailed(
236
+ client=self.client, json_body=archive_request
237
+ )
230
238
  return model_from_detailed(response)
231
239
 
232
240
  @api_method
@@ -221,7 +221,7 @@ class PlateService(BaseService):
221
221
  )
222
222
 
223
223
  def results_extractor(body: PlatesPaginatedList) -> Optional[List[Plate]]:
224
- return unset_as_none(body.plates)
224
+ return unset_as_none(lambda: body.plates)
225
225
 
226
226
  return PageIterator(api_call, results_extractor)
227
227
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "benchling-sdk"
3
- version = "1.23.0a3" # NOTE: This version number is ignored and does not correspond to releases (see README)
3
+ version = "1.23.0a5" # 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"}]
@@ -25,8 +25,6 @@ httpx = ">=0.23.0"
25
25
  attrs = ">=20.1.0"
26
26
  python-dateutil = "^2.8.0"
27
27
  PyYAML = "^6.0"
28
- # See issue: https://github.com/giampaolo/psutil/issues/2165
29
- psutil = {version = "^5.9.4", python = "^3.11" }
30
28
  jwcrypto = "^1.5.1"
31
29
  benchling-api-client = "2.0.390"
32
30
  # Minimum version due to vulnerability in 2022.9.24
@@ -38,6 +36,7 @@ cryptography = { version = ">=42.0.0", optional = true }
38
36
  # Python jose extras - see ExtrasPackage.PYTHON_JOSE
39
37
  python-jose = { version = "^3.3.0", extras=["cryptography"], optional = true }
40
38
  ordered-set = "^4.1.0"
39
+ tzdata = "^2025.2"
41
40
 
42
41
  [tool.poetry.extras]
43
42
  cryptography = ["cryptography"]