benchling-sdk 1.11.0a0__tar.gz → 1.11.0a2__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 (120) hide show
  1. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/PKG-INFO +1 -1
  2. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/auth/client_credentials_oauth2.py +24 -9
  3. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/pyproject.toml +1 -1
  4. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/LICENSE +0 -0
  5. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/README.md +0 -0
  6. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/__init__.py +0 -0
  7. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/__init__.py +0 -0
  8. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/canvas/__init__.py +0 -0
  9. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/canvas/errors.py +0 -0
  10. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/canvas/framework.py +0 -0
  11. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/canvas/types.py +0 -0
  12. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/__init__.py +0 -0
  13. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/cryptography_helpers.py +0 -0
  14. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/decryption_provider.py +0 -0
  15. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/errors.py +0 -0
  16. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/framework.py +0 -0
  17. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/helpers.py +0 -0
  18. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/mock_config.py +0 -0
  19. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/config/types.py +0 -0
  20. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/framework.py +0 -0
  21. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/helpers/__init__.py +0 -0
  22. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/helpers/manifest_helpers.py +0 -0
  23. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/helpers/webhook_helpers.py +0 -0
  24. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/status/__init__.py +0 -0
  25. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/status/errors.py +0 -0
  26. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/status/framework.py +0 -0
  27. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/status/helpers.py +0 -0
  28. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/status/types.py +0 -0
  29. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/apps/types.py +0 -0
  30. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/auth/__init__.py +0 -0
  31. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/auth/api_key_auth.py +0 -0
  32. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/auth/bearer_token_auth.py +0 -0
  33. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/benchling.py +0 -0
  34. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/docs/__init__.py +0 -0
  35. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/docs/__main__.py +0 -0
  36. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/errors.py +0 -0
  37. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/__init__.py +0 -0
  38. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/client_helpers.py +0 -0
  39. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/constants.py +0 -0
  40. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/decorators.py +0 -0
  41. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/file_helpers.py +0 -0
  42. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/logging_helpers.py +0 -0
  43. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/package_helpers.py +0 -0
  44. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/pagination_helpers.py +0 -0
  45. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/response_helpers.py +0 -0
  46. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/retry_helpers.py +0 -0
  47. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/serialization_helpers.py +0 -0
  48. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/helpers/transaction_manager.py +0 -0
  49. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/models/__init__.py +0 -0
  50. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/models/webhooks/__init__.py +0 -0
  51. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/models/webhooks/v0/__init__.py +0 -0
  52. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/py.typed +0 -0
  53. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/__init__.py +0 -0
  54. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/__init__.py +0 -0
  55. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/alpha/__init__.py +0 -0
  56. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/alpha/v2_alpha_app_service.py +0 -0
  57. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/alpha/v2_alpha_dna_sequence_service.py +0 -0
  58. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/base_service.py +0 -0
  59. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/__init__.py +0 -0
  60. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_aa_sequence_service.py +0 -0
  61. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_app_service.py +0 -0
  62. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py +0 -0
  63. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_custom_entity_service.py +0 -0
  64. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +0 -0
  65. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_dna_oligo_service.py +0 -0
  66. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_dna_sequence_service.py +0 -0
  67. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_entity_service.py +0 -0
  68. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_entry_service.py +0 -0
  69. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_folder_service.py +0 -0
  70. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_project_service.py +0 -0
  71. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_rna_oligo_service.py +0 -0
  72. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/beta/v2_beta_worklist_service.py +0 -0
  73. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/__init__.py +0 -0
  74. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/aa_sequence_service.py +0 -0
  75. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/api_service.py +0 -0
  76. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/app_service.py +0 -0
  77. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/assay_result_service.py +0 -0
  78. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/assay_run_service.py +0 -0
  79. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/blob_service.py +0 -0
  80. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/box_service.py +0 -0
  81. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/container_service.py +0 -0
  82. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/custom_entity_service.py +0 -0
  83. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/custom_notation_service.py +0 -0
  84. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/dna_alignments_service.py +0 -0
  85. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/dna_oligo_service.py +0 -0
  86. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/dna_sequence_service.py +0 -0
  87. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/dropdown_service.py +0 -0
  88. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/entry_service.py +0 -0
  89. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/event_service.py +0 -0
  90. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/export_service.py +0 -0
  91. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/feature_library_service.py +0 -0
  92. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/folder_service.py +0 -0
  93. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/inventory_service.py +0 -0
  94. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/lab_automation_service.py +0 -0
  95. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/label_template_service.py +0 -0
  96. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/location_service.py +0 -0
  97. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/mixture_service.py +0 -0
  98. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/molecule_service.py +0 -0
  99. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +0 -0
  100. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/oligo_service.py +0 -0
  101. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/organization_service.py +0 -0
  102. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/plate_service.py +0 -0
  103. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/printer_service.py +0 -0
  104. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/project_service.py +0 -0
  105. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/registry_service.py +0 -0
  106. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/request_service.py +0 -0
  107. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/rna_oligo_service.py +0 -0
  108. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/rna_sequence_service.py +0 -0
  109. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/schema_service.py +0 -0
  110. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/task_service.py +0 -0
  111. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/team_service.py +0 -0
  112. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/user_service.py +0 -0
  113. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/warehouse_service.py +0 -0
  114. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/workflow_output_service.py +0 -0
  115. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/workflow_task_group_service.py +0 -0
  116. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/stable/workflow_task_service.py +0 -0
  117. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/v2_alpha_service.py +0 -0
  118. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/v2_beta_service.py +0 -0
  119. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/benchling_sdk/services/v2/v2_stable_service.py +0 -0
  120. {benchling_sdk-1.11.0a0 → benchling_sdk-1.11.0a2}/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.11.0a0
3
+ Version: 1.11.0a2
4
4
  Summary: SDK for interacting with the Benchling Platform.
5
5
  License: Apache-2.0
6
6
  Author: Benchling Support
@@ -1,13 +1,17 @@
1
+ from __future__ import annotations
2
+
1
3
  import base64
2
4
  from datetime import datetime, timedelta
5
+ from json import JSONDecodeError
3
6
  import threading
4
- from typing import Optional
7
+ from typing import NoReturn, Optional
5
8
  from urllib.parse import urljoin
6
9
 
7
10
  from benchling_api_client.v2.benchling_client import AuthorizationMethod, BenchlingApiClient
8
11
  import httpx
9
12
 
10
13
  from benchling_sdk.errors import BenchlingError
14
+ from benchling_sdk.helpers.logging_helpers import sdk_logger
11
15
 
12
16
  MINIMUM_TOKEN_EXPIRY_BUFFER = 60
13
17
 
@@ -30,7 +34,7 @@ class Token:
30
34
  return datetime.now() < self.refresh_time
31
35
 
32
36
  @classmethod
33
- def from_token_response(cls, token_response):
37
+ def from_token_response(cls, token_response) -> Token:
34
38
  """
35
39
  Construct Token from deserializing token endpoint response.
36
40
 
@@ -107,13 +111,7 @@ class ClientCredentialsOAuth2(AuthorizationMethod):
107
111
  as_json = response.json()
108
112
  self._token = Token.from_token_response(as_json)
109
113
  else:
110
- raise BenchlingError(
111
- status_code=response.status_code,
112
- headers=response.headers,
113
- json=response.json(),
114
- content=response.content,
115
- parsed=None,
116
- )
114
+ _raise_error_from_response(response)
117
115
 
118
116
  def get_authorization_header(self, base_url: str) -> str:
119
117
  """
@@ -127,3 +125,20 @@ class ClientCredentialsOAuth2(AuthorizationMethod):
127
125
  self.vend_new_token(base_url)
128
126
  assert self._token is not None
129
127
  return f"Bearer {self._token.access_token}"
128
+
129
+
130
+ def _raise_error_from_response(response: httpx.Response) -> NoReturn:
131
+ json_content = None
132
+ # Rather than rely on Content-Type header, try to parse JSON
133
+ # If the response isn't JSON, just swallow the exception
134
+ try:
135
+ json_content = response.json()
136
+ except JSONDecodeError as e:
137
+ sdk_logger.debug("Received error response without JSON OAuth vending token", e)
138
+ raise BenchlingError(
139
+ status_code=response.status_code,
140
+ headers=response.headers,
141
+ json=json_content,
142
+ content=response.content,
143
+ parsed=None,
144
+ )
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "benchling-sdk"
3
- version = "1.11.0a0" # NOTE: This version number is ignored and does not correspond to releases (see README)
3
+ version = "1.11.0a2" # 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"}]