benchling-sdk 1.14.0a0__py3-none-any.whl → 1.15.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from functools import cached_property
3
4
  from typing import Optional, TYPE_CHECKING
4
5
 
5
6
  from benchling_api_client.v2.stable.client import Client
@@ -23,7 +24,6 @@ class V2Service(BaseService):
23
24
 
24
25
  _v2_alpha_service: Optional[V2AlphaService]
25
26
  _v2_beta_service: Optional[V2BetaService]
26
- _v2_stable_service: Optional[V2StableService]
27
27
 
28
28
  def __init__(self, client: Client, retry_strategy: RetryStrategy = RetryStrategy()):
29
29
  """
@@ -35,7 +35,12 @@ class V2Service(BaseService):
35
35
  super().__init__(client, retry_strategy)
36
36
  self._v2_alpha_service = None
37
37
  self._v2_beta_service = None
38
- self._v2_stable_service = None
38
+
39
+ # Note that alpha & beta do not use the @cached_property pattern that we've used for all other
40
+ # service accessors; instead, we've rolled our own equivalent caching logic using an attribute.
41
+ # That's because we want some additional behavior - logging a warning message - to happen on
42
+ # every call to those property methods, not just on the first call. We could consider changing
43
+ # this in a future release so it only logs once, in which case we can use @cached_property.
39
44
 
40
45
  @property
41
46
  def alpha(self) -> V2AlphaService:
@@ -47,10 +52,12 @@ class V2Service(BaseService):
47
52
  See https://benchling.com/api/v2-alpha/reference
48
53
  """
49
54
  log_stability_warning(StabilityLevel.ALPHA, package="v2.alpha")
55
+
50
56
  if self._v2_alpha_service is None:
51
- from benchling_sdk.services.v2.v2_alpha_service import V2AlphaService
57
+ from .v2.v2_alpha_service import V2AlphaService
58
+
59
+ self._v2_alpha_service = self._create_service(V2AlphaService)
52
60
 
53
- self._v2_alpha_service = V2AlphaService(self._client, self._retry_strategy)
54
61
  return self._v2_alpha_service
55
62
 
56
63
  @property
@@ -64,20 +71,19 @@ class V2Service(BaseService):
64
71
  """
65
72
  log_stability_warning(StabilityLevel.BETA, package="v2.beta")
66
73
  if self._v2_beta_service is None:
67
- from benchling_sdk.services.v2.v2_beta_service import V2BetaService
74
+ from .v2.v2_beta_service import V2BetaService
75
+
76
+ self._v2_beta_service = self._create_service(V2BetaService)
68
77
 
69
- self._v2_beta_service = V2BetaService(self._client, self._retry_strategy)
70
78
  return self._v2_beta_service
71
79
 
72
- @property
80
+ @cached_property
73
81
  def stable(self) -> V2StableService:
74
82
  """
75
83
  Stable.
76
84
 
77
85
  See https://docs.benchling.com/docs/stability#are-breaking-changes-made-to-the-api-or-events
78
86
  """
79
- if self._v2_stable_service is None:
80
- from benchling_sdk.services.v2.v2_stable_service import V2StableService
87
+ from .v2.v2_stable_service import V2StableService
81
88
 
82
- self._v2_stable_service = V2StableService(self._client, self._retry_strategy)
83
- return self._v2_stable_service
89
+ return self._create_service(V2StableService)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: benchling-sdk
3
- Version: 1.14.0a0
3
+ Version: 1.15.0
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,<23)
19
- Requires-Dist: backoff (>=1.10.0,<2.0.0)
20
- Requires-Dist: benchling-api-client (==2.0.305)
18
+ Requires-Dist: attrs (>=20.1.0,<24)
19
+ Requires-Dist: backoff (>=1.10.0,<3)
20
+ Requires-Dist: benchling-api-client (==2.0.309)
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)
@@ -27,7 +27,7 @@ benchling_sdk/auth/__init__.py,sha256=N4pJYVUnTLzg5HO9ZldHaI-Am97i6AOCdQS0M5QcVp
27
27
  benchling_sdk/auth/api_key_auth.py,sha256=Ui-cnvGMjcwVPV_b2GdBaoTjEyHJIu9CjtZScVBEUvU,641
28
28
  benchling_sdk/auth/bearer_token_auth.py,sha256=nymI8V91evcnK-TWKkBXZwck8U1qSh4WaseyQbvF-Cg,1268
29
29
  benchling_sdk/auth/client_credentials_oauth2.py,sha256=auHj8FAJxUrDf1HJp9wfmcC_pJ-3rj4tdQbsUIvSUQs,5801
30
- benchling_sdk/benchling.py,sha256=zpthXOtPdGo1-BsjqXo6TcPVNBWadQKHHZnBOD784A0,26428
30
+ benchling_sdk/benchling.py,sha256=jhOPq0CTZOOoWA_BWioR-kuoLxcozSYrY1fR7mqT1Ck,27400
31
31
  benchling_sdk/docs/__init__.py,sha256=ySHo76PzLndmXOVWrF80VjB5Pi48G82CCQNdzUEzbCY,38
32
32
  benchling_sdk/docs/__main__.py,sha256=1ZlGXdn2gHGC0fAuan5i54mh35VkDf5mhY9VeKNyCRA,244
33
33
  benchling_sdk/errors.py,sha256=9JCjkY7wQ-K-_GStgYZrSns35FNExZSx-t5Xdlh-U0I,8239
@@ -40,18 +40,18 @@ benchling_sdk/helpers/logging_helpers.py,sha256=rfjjhR0fxTpHWnups-3jKZA6-5IjK4LX
40
40
  benchling_sdk/helpers/package_helpers.py,sha256=JLDDdlOwz6_BgP5j157u0qX-Mtb7ZkzXSg2rrz2BPPU,1998
41
41
  benchling_sdk/helpers/pagination_helpers.py,sha256=Dewy1OxAO0ZdJOGuEPyJGkjU8Hu8iFNWob-z0riMNOs,7745
42
42
  benchling_sdk/helpers/response_helpers.py,sha256=vtmb9lEEKy3dRFre3Q0R4XaLBEaS_rruxtwPvpepPUw,613
43
- benchling_sdk/helpers/retry_helpers.py,sha256=SeKOPjnJIes6UsD7kVqlYKBYmwH_DCHdllnG3jys3N8,2740
43
+ benchling_sdk/helpers/retry_helpers.py,sha256=Sd7F8HMGPs31svYW-1z-SujbWUBn3qlZUk52hZ5G7xw,2814
44
44
  benchling_sdk/helpers/serialization_helpers.py,sha256=IUS0uGU_EiZvb8O-bTViUaROmxKcvdX3JeR9iKsWAG8,3662
45
45
  benchling_sdk/helpers/transaction_manager.py,sha256=HcSDsgGK7Rb93bgv6fpb4HvQUT-tqP0lXgVa_bWCDh4,3663
46
- benchling_sdk/models/__init__.py,sha256=V7obyEeyaj8miIgnsu22nGUijWRsc7vL4XgtyKnhfJA,353074
46
+ benchling_sdk/models/__init__.py,sha256=g_tZPB5NyW5EOcNPLlYLfkR24a5dFtVcrX6piEabKDE,360467
47
47
  benchling_sdk/models/webhooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- benchling_sdk/models/webhooks/v0/__init__.py,sha256=tEHA5YxF_WPBjvOIT8UxQjxFAnX--fQmReATINpTz7Y,48834
48
+ benchling_sdk/models/webhooks/v0/__init__.py,sha256=tZOza_-DC-yG-MzePP-k88ksz-PpbOcsZW5chNpCYQs,49581
49
49
  benchling_sdk/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
50
50
  benchling_sdk/services/__init__.py,sha256=K7N-sxMKhIsFroLe_tJIRcKJJuoShTCxiD_bfUz9958,85
51
51
  benchling_sdk/services/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
52
  benchling_sdk/services/v2/alpha/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  benchling_sdk/services/v2/alpha/v2_alpha_app_service.py,sha256=cR3nk6oxV2B-ewcUooQ4iqMZJQaj_wvwGyON2eL08Hc,1443
54
- benchling_sdk/services/v2/base_service.py,sha256=g4Qn001slCJTvqDvRmbImJNBJ8lPJgMVL1H4Xxc8D2o,951
54
+ benchling_sdk/services/v2/base_service.py,sha256=BoplYqaZCk_p9LAJ_U1doEdDD4HmvT9UPfGKeXW53dY,1254
55
55
  benchling_sdk/services/v2/beta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  benchling_sdk/services/v2/beta/v2_beta_app_service.py,sha256=nVOEQ3ESkUo2e4p_MYMq-VUpEx2wNpJIY7ZZ8UuHnuQ,1385
57
57
  benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py,sha256=epLHLdDRfj8ni2-45WWFSpOgQG-kTmbxTffRP1mnim0,5753
@@ -102,14 +102,16 @@ benchling_sdk/services/v2/stable/task_service.py,sha256=61vimlvZf2R93SitGyd883Yk
102
102
  benchling_sdk/services/v2/stable/team_service.py,sha256=SYwI2Bv3rWDYnoEKb-MX_yhe39fErewJ4Sx0aon-ej0,4723
103
103
  benchling_sdk/services/v2/stable/user_service.py,sha256=NkMPz2rPaF6iXNWTBAOWSiXVif2rHYGbYAzaHg4Fhig,7528
104
104
  benchling_sdk/services/v2/stable/warehouse_service.py,sha256=_gVTwJZ5BcaNBG0k8I0a4MRahajkV7TNtREfuQGwR74,1286
105
+ benchling_sdk/services/v2/stable/workflow_flowchart_config_version_service.py,sha256=HqSFSD9EDWaYAkCdHWjqpIPRuQbbNaJKkDHvQaK1Ggk,1323
106
+ benchling_sdk/services/v2/stable/workflow_flowchart_service.py,sha256=wkqk9fwIbOzq7JCAtZDAlc9dV7pw0bk1nhrFEkUd-ls,3158
105
107
  benchling_sdk/services/v2/stable/workflow_output_service.py,sha256=VD0RvOBCkgX_YwUoQYQPR_PyGJXuIau5beq9bK75VXM,9993
106
108
  benchling_sdk/services/v2/stable/workflow_task_group_service.py,sha256=SSfHDH-Eniz09HG_qSPSfSVHU3BpvTbgGhOQS4iWcAw,8848
107
109
  benchling_sdk/services/v2/stable/workflow_task_service.py,sha256=pOhwFmWVk1jh3A9C70LpLhYjlgk2DcGCfjO8Uup9ScQ,12819
108
- benchling_sdk/services/v2/v2_alpha_service.py,sha256=tlGZTudMaMIgzwHGDJiHB5YVPDOwuQ8PxWYgnc2wfeI,1665
109
- benchling_sdk/services/v2/v2_beta_service.py,sha256=B68EANGivafp67dWuXO1Rcl_mqmIX6-rSjd62t6mniI,6168
110
- benchling_sdk/services/v2/v2_stable_service.py,sha256=zZ9Mrx0TkDwPG62uNAzz79wI2hUwcaSO3qAJX29Fij0,36051
111
- benchling_sdk/services/v2_service.py,sha256=3eoIjYEmGLPdWCpBN0pl7q7_HNWCsUvfvTn3Hcz0wSM,2860
112
- benchling_sdk-1.14.0a0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
113
- benchling_sdk-1.14.0a0.dist-info/METADATA,sha256=SQJ4L_5y9WW7Inm-sa_X6sNNdWZk4p7eL36w8i_vOP4,2118
114
- benchling_sdk-1.14.0a0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
115
- benchling_sdk-1.14.0a0.dist-info/RECORD,,
110
+ benchling_sdk/services/v2/v2_alpha_service.py,sha256=sGj6cG7IkoolrKSBI1AVNIL5te_X6QOPGXn_WmHuSDc,1600
111
+ benchling_sdk/services/v2/v2_beta_service.py,sha256=extNpmdBP9yGQsE4k_CEPkwlqlTT9HGw7F3qiR11cJs,4651
112
+ benchling_sdk/services/v2/v2_stable_service.py,sha256=ASx8MtvZqfKNBMUnuzGwPKdH1gV4e3VnJYy6XSxxyNo,26129
113
+ benchling_sdk/services/v2_service.py,sha256=cGX-Ps0hu7Oh1M7a0tu2zDN8-QG63dNDoK7w4eYo_OQ,3093
114
+ benchling_sdk-1.15.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
115
+ benchling_sdk-1.15.0.dist-info/METADATA,sha256=9_a3ep1fkRi_7bVeLBHfDeB4kz_SBjlvf5vqeu8oOlo,2112
116
+ benchling_sdk-1.15.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
117
+ benchling_sdk-1.15.0.dist-info/RECORD,,