benchling-sdk 1.17.1__py3-none-any.whl → 1.18.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.
- benchling_sdk/benchling.py +12 -0
- benchling_sdk/models/__init__.py +56 -0
- benchling_sdk/models/webhooks/v0/__init__.py +12 -0
- benchling_sdk/services/v2/alpha/v2_alpha_assembly_service.py +62 -0
- benchling_sdk/services/v2/beta/v2_beta_analysis_service.py +46 -0
- benchling_sdk/services/v2/beta/v2_beta_app_definition_service.py +45 -0
- benchling_sdk/services/v2/beta/v2_beta_app_service.py +1 -1
- benchling_sdk/services/v2/beta/v2_beta_audit_service.py +41 -0
- benchling_sdk/services/v2/beta/v2_beta_entry_service.py +13 -8
- benchling_sdk/services/v2/stable/instrument_query_service.py +28 -0
- benchling_sdk/services/v2/v2_alpha_service.py +15 -0
- benchling_sdk/services/v2/v2_beta_service.py +43 -1
- benchling_sdk/services/v2/v2_stable_service.py +14 -0
- {benchling_sdk-1.17.1.dist-info → benchling_sdk-1.18.0.dist-info}/METADATA +2 -2
- {benchling_sdk-1.17.1.dist-info → benchling_sdk-1.18.0.dist-info}/RECORD +17 -14
- benchling_sdk/apps/config/helpers.py +0 -157
- benchling_sdk/apps/config/mock_config.py +0 -635
- {benchling_sdk-1.17.1.dist-info → benchling_sdk-1.18.0.dist-info}/LICENSE +0 -0
- {benchling_sdk-1.17.1.dist-info → benchling_sdk-1.18.0.dist-info}/WHEEL +0 -0
@@ -11,7 +11,10 @@ from benchling_sdk.services.v2.base_service import BaseService
|
|
11
11
|
from benchling_sdk.services.v2.beta.v2_beta_data_frame_service import V2BetaDataFrameService
|
12
12
|
|
13
13
|
if TYPE_CHECKING:
|
14
|
+
from benchling_sdk.services.v2.beta.v2_beta_analysis_service import V2BetaAnalysisService
|
15
|
+
from benchling_sdk.services.v2.beta.v2_beta_app_definition_service import V2BetaAppDefinitionService
|
14
16
|
from benchling_sdk.services.v2.beta.v2_beta_app_service import V2BetaAppService
|
17
|
+
from benchling_sdk.services.v2.beta.v2_beta_audit_service import V2BetaAuditService
|
15
18
|
from benchling_sdk.services.v2.beta.v2_beta_collaboration_service import V2BetaCollaborationService
|
16
19
|
from benchling_sdk.services.v2.beta.v2_beta_entry_service import V2BetaEntryService
|
17
20
|
from benchling_sdk.services.v2.beta.v2_beta_folder_service import V2BetaFolderService
|
@@ -40,6 +43,19 @@ class V2BetaService(BaseService):
|
|
40
43
|
super().__init__(client, retry_strategy)
|
41
44
|
self._beta_client = v2_beta_client(self.client)
|
42
45
|
|
46
|
+
@cached_property
|
47
|
+
def analyses(self) -> V2BetaAnalysisService:
|
48
|
+
"""
|
49
|
+
V2-Beta Analyses.
|
50
|
+
|
51
|
+
Analyses allow experimental data to be viewed, analyzed, and visualized.
|
52
|
+
|
53
|
+
https://benchling.com/api/v2-beta/reference#/Analyses
|
54
|
+
"""
|
55
|
+
from .beta.v2_beta_analysis_service import V2BetaAnalysisService
|
56
|
+
|
57
|
+
return self._create_service(V2BetaAnalysisService)
|
58
|
+
|
43
59
|
@cached_property
|
44
60
|
def apps(self) -> V2BetaAppService:
|
45
61
|
"""
|
@@ -47,12 +63,38 @@ class V2BetaService(BaseService):
|
|
47
63
|
|
48
64
|
Create and manage Apps on your tenant.
|
49
65
|
|
50
|
-
https://benchling.com/api/v2-beta/reference
|
66
|
+
https://benchling.com/api/v2-beta/reference#/Apps
|
51
67
|
"""
|
52
68
|
from .beta.v2_beta_app_service import V2BetaAppService
|
53
69
|
|
54
70
|
return self._create_service(V2BetaAppService)
|
55
71
|
|
72
|
+
@cached_property
|
73
|
+
def app_definitions(self) -> V2BetaAppDefinitionService:
|
74
|
+
"""
|
75
|
+
V2-Beta App Definitions.
|
76
|
+
|
77
|
+
Create and manage Benchling app definitions on your tenant.
|
78
|
+
|
79
|
+
https://benchling.com/api/v2-beta/reference#/App%20Definitions
|
80
|
+
"""
|
81
|
+
from .beta.v2_beta_app_definition_service import V2BetaAppDefinitionService
|
82
|
+
|
83
|
+
return self._create_service(V2BetaAppDefinitionService)
|
84
|
+
|
85
|
+
@cached_property
|
86
|
+
def audit(self) -> V2BetaAuditService:
|
87
|
+
"""
|
88
|
+
V2-Beta Audit.
|
89
|
+
|
90
|
+
Export audit log data for Benchling objects.
|
91
|
+
|
92
|
+
https://benchling.com/api/v2-beta/reference#/Audit
|
93
|
+
"""
|
94
|
+
from .beta.v2_beta_audit_service import V2BetaAuditService
|
95
|
+
|
96
|
+
return self._create_service(V2BetaAuditService)
|
97
|
+
|
56
98
|
@cached_property
|
57
99
|
def collaborations(self) -> V2BetaCollaborationService:
|
58
100
|
"""
|
@@ -31,6 +31,7 @@ if TYPE_CHECKING:
|
|
31
31
|
from benchling_sdk.services.v2.stable.export_service import ExportService
|
32
32
|
from benchling_sdk.services.v2.stable.feature_library_service import FeatureLibraryService
|
33
33
|
from benchling_sdk.services.v2.stable.folder_service import FolderService
|
34
|
+
from benchling_sdk.services.v2.stable.instrument_query_service import InstrumentQueryService
|
34
35
|
from benchling_sdk.services.v2.stable.inventory_service import InventoryService
|
35
36
|
from benchling_sdk.services.v2.stable.lab_automation_service import LabAutomationService
|
36
37
|
from benchling_sdk.services.v2.stable.label_template_service import LabelTemplateService
|
@@ -407,6 +408,19 @@ class V2StableService(BaseService):
|
|
407
408
|
|
408
409
|
return self._create_service(FolderService)
|
409
410
|
|
411
|
+
@cached_property
|
412
|
+
def instrument_queries(self) -> InstrumentQueryService:
|
413
|
+
"""
|
414
|
+
Instrument Queries.
|
415
|
+
|
416
|
+
Instrument Queries are used to query the instrument service.
|
417
|
+
|
418
|
+
See https://benchling.com/api/reference#/Instrument%20Queries
|
419
|
+
"""
|
420
|
+
from .stable.instrument_query_service import InstrumentQueryService
|
421
|
+
|
422
|
+
return self._create_service(InstrumentQueryService)
|
423
|
+
|
410
424
|
@cached_property
|
411
425
|
def inventory(self) -> InventoryService:
|
412
426
|
"""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: benchling-sdk
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.18.0
|
4
4
|
Summary: SDK for interacting with the Benchling Platform.
|
5
5
|
License: Apache-2.0
|
6
6
|
Author: Benchling Support
|
@@ -17,7 +17,7 @@ Provides-Extra: python-jose
|
|
17
17
|
Requires-Dist: PyYAML (>=6.0,<7.0)
|
18
18
|
Requires-Dist: attrs (>=20.1.0)
|
19
19
|
Requires-Dist: backoff (>=1.10.0,<3)
|
20
|
-
Requires-Dist: benchling-api-client (==2.0.
|
20
|
+
Requires-Dist: benchling-api-client (==2.0.336)
|
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)
|
@@ -10,8 +10,6 @@ benchling_sdk/apps/config/cryptography_helpers.py,sha256=VCzgQURLAitYjcjdwFzMPSK
|
|
10
10
|
benchling_sdk/apps/config/decryption_provider.py,sha256=-HgjkBto8mYlooV0LXFenfaiP7PDhHRnKEHkK1P6gh4,2184
|
11
11
|
benchling_sdk/apps/config/errors.py,sha256=-qkfLdcUTuuRD-V4L2l7nzQWnWTRuifDtkNDv8tfHoo,800
|
12
12
|
benchling_sdk/apps/config/framework.py,sha256=a2cIkPugEVUfBNtHm2cbE3Qu326xb-SpMuM0Gi6U-3Q,13337
|
13
|
-
benchling_sdk/apps/config/helpers.py,sha256=LTLDR0GCDoo_8Sx4kepQnMmgVEQT7MHfKAxIoAvV9TM,7077
|
14
|
-
benchling_sdk/apps/config/mock_config.py,sha256=EPUCxWiUSsWxWilnHAJIq-_f1q6ckZkXoIFv1S25hnM,26967
|
15
13
|
benchling_sdk/apps/config/types.py,sha256=XKfSGv-75CU-j1XwfXBGq8zbtnkF-PQnuY6Z2U47-Tg,953
|
16
14
|
benchling_sdk/apps/framework.py,sha256=G15mv20FH7FLHJrnXMPcuFdUsP3Va-grvb5A4eq0Qlk,3175
|
17
15
|
benchling_sdk/apps/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -27,7 +25,7 @@ benchling_sdk/auth/__init__.py,sha256=N4pJYVUnTLzg5HO9ZldHaI-Am97i6AOCdQS0M5QcVp
|
|
27
25
|
benchling_sdk/auth/api_key_auth.py,sha256=Ui-cnvGMjcwVPV_b2GdBaoTjEyHJIu9CjtZScVBEUvU,641
|
28
26
|
benchling_sdk/auth/bearer_token_auth.py,sha256=nymI8V91evcnK-TWKkBXZwck8U1qSh4WaseyQbvF-Cg,1268
|
29
27
|
benchling_sdk/auth/client_credentials_oauth2.py,sha256=auHj8FAJxUrDf1HJp9wfmcC_pJ-3rj4tdQbsUIvSUQs,5801
|
30
|
-
benchling_sdk/benchling.py,sha256=
|
28
|
+
benchling_sdk/benchling.py,sha256=b6LGyX5j_Itp4WPJnaDCqgUcqtUrC1yWXs2rF1BlFys,29154
|
31
29
|
benchling_sdk/docs/__init__.py,sha256=ySHo76PzLndmXOVWrF80VjB5Pi48G82CCQNdzUEzbCY,38
|
32
30
|
benchling_sdk/docs/__main__.py,sha256=1ZlGXdn2gHGC0fAuan5i54mh35VkDf5mhY9VeKNyCRA,244
|
33
31
|
benchling_sdk/errors.py,sha256=Vv3y7FcoLSqrO7ydKDeGbii4WuWUjjaTmJsNjeJmX-A,8263
|
@@ -43,20 +41,24 @@ benchling_sdk/helpers/response_helpers.py,sha256=vtmb9lEEKy3dRFre3Q0R4XaLBEaS_rr
|
|
43
41
|
benchling_sdk/helpers/retry_helpers.py,sha256=Sd7F8HMGPs31svYW-1z-SujbWUBn3qlZUk52hZ5G7xw,2814
|
44
42
|
benchling_sdk/helpers/serialization_helpers.py,sha256=IUS0uGU_EiZvb8O-bTViUaROmxKcvdX3JeR9iKsWAG8,3662
|
45
43
|
benchling_sdk/helpers/transaction_manager.py,sha256=HcSDsgGK7Rb93bgv6fpb4HvQUT-tqP0lXgVa_bWCDh4,3663
|
46
|
-
benchling_sdk/models/__init__.py,sha256=
|
44
|
+
benchling_sdk/models/__init__.py,sha256=4m3QBFbghDfeU3hAf3h-DELjhcH1MUtvc0kJyGRG-q0,372428
|
47
45
|
benchling_sdk/models/webhooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
benchling_sdk/models/webhooks/v0/__init__.py,sha256=
|
46
|
+
benchling_sdk/models/webhooks/v0/__init__.py,sha256=1wFW1YYOZ0ebYIcb_Tv72lnUFfVAYyJy4qCf1qZ8wAY,49147
|
49
47
|
benchling_sdk/py.typed,sha256=8ZJUsxZiuOy1oJeVhsTWQhTG_6pTVHVXk5hJL79ebTk,25
|
50
48
|
benchling_sdk/services/__init__.py,sha256=K7N-sxMKhIsFroLe_tJIRcKJJuoShTCxiD_bfUz9958,85
|
51
49
|
benchling_sdk/services/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
52
50
|
benchling_sdk/services/v2/alpha/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
53
51
|
benchling_sdk/services/v2/alpha/v2_alpha_app_service.py,sha256=cR3nk6oxV2B-ewcUooQ4iqMZJQaj_wvwGyON2eL08Hc,1443
|
52
|
+
benchling_sdk/services/v2/alpha/v2_alpha_assembly_service.py,sha256=2qtaeiODSiAtZ9AhGKZ3JFmzrKy4p52SL86JjxZQwjU,2518
|
54
53
|
benchling_sdk/services/v2/base_service.py,sha256=BoplYqaZCk_p9LAJ_U1doEdDD4HmvT9UPfGKeXW53dY,1254
|
55
54
|
benchling_sdk/services/v2/beta/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
|
-
benchling_sdk/services/v2/beta/
|
55
|
+
benchling_sdk/services/v2/beta/v2_beta_analysis_service.py,sha256=TAvq1rcRFecL4YfJPYfk_b3B0bAkWujY5EbN53DmeUM,1664
|
56
|
+
benchling_sdk/services/v2/beta/v2_beta_app_definition_service.py,sha256=hL08s7YDrrXfA2CuXYonMC4UQT_ibF2IFl5ELDa4Qck,1788
|
57
|
+
benchling_sdk/services/v2/beta/v2_beta_app_service.py,sha256=9al78xzvxuzh39uPy6_HWRwBVwt2EIF8KXRNVI7rwng,1361
|
58
|
+
benchling_sdk/services/v2/beta/v2_beta_audit_service.py,sha256=LSCpl6xbl0XLh9oAsaHHXiJCNC7KWE3vgFcVnAnOha8,1815
|
57
59
|
benchling_sdk/services/v2/beta/v2_beta_collaboration_service.py,sha256=epLHLdDRfj8ni2-45WWFSpOgQG-kTmbxTffRP1mnim0,5753
|
58
60
|
benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py,sha256=oqCVyYBK7YECXYIDWJ5VIaiAO-W7GXC7xd0Wy1swTmU,14853
|
59
|
-
benchling_sdk/services/v2/beta/v2_beta_entry_service.py,sha256=
|
61
|
+
benchling_sdk/services/v2/beta/v2_beta_entry_service.py,sha256=lShn7mFVCf4z7alCSfqAPfEvuzgUZtUdtSZQgJEuki4,1339
|
60
62
|
benchling_sdk/services/v2/beta/v2_beta_folder_service.py,sha256=b6-D_eDTF1e2l2YLhr4qkKtLXtH_BUVCcHhaB_CBNAM,4959
|
61
63
|
benchling_sdk/services/v2/beta/v2_beta_project_service.py,sha256=8Wk0u6dtiewytfuJ2RaybMOfqih7YF74cJF_wsetJpM,4926
|
62
64
|
benchling_sdk/services/v2/beta/v2_beta_worklist_service.py,sha256=tFMe-7Wbw3qISe-T5EsnYVsmcd1P8Aw1NoWmNA5MroU,5544
|
@@ -83,6 +85,7 @@ benchling_sdk/services/v2/stable/event_service.py,sha256=--j-oqKR-Ld5d4QiJ6aofOr
|
|
83
85
|
benchling_sdk/services/v2/stable/export_service.py,sha256=T8ir9yRyA8rMUXagLAWYR4cYtOzxt6JxjlnQwExk_HU,1080
|
84
86
|
benchling_sdk/services/v2/stable/feature_library_service.py,sha256=h3vdttbJzWWG-297FedtmDXSFEUP0KVGU5Y2D_VW-KA,9767
|
85
87
|
benchling_sdk/services/v2/stable/folder_service.py,sha256=dgibCL02gFOJrIr5G6QUiKQoSy284RcDKk-vcOXus_I,5219
|
88
|
+
benchling_sdk/services/v2/stable/instrument_query_service.py,sha256=wk_mtpY3uOPVY1nP3XtLNwAER-1aWQqqiBB2bABbk68,961
|
86
89
|
benchling_sdk/services/v2/stable/inventory_service.py,sha256=kHcRrR1Zp92XwpAN5iFdWbrTjEhPnhaHS8iSRYY3X4s,1761
|
87
90
|
benchling_sdk/services/v2/stable/lab_automation_service.py,sha256=vfKLrH6eZn9v2uDYKaLroBeAcu_F6OjOuJIBm2L6-No,9869
|
88
91
|
benchling_sdk/services/v2/stable/label_template_service.py,sha256=VS25LUpUsJnkU_AFTTKjwMruVgE5-izLoc-_wrqr4Pk,1300
|
@@ -110,11 +113,11 @@ benchling_sdk/services/v2/stable/workflow_flowchart_service.py,sha256=wkqk9fwIbO
|
|
110
113
|
benchling_sdk/services/v2/stable/workflow_output_service.py,sha256=VD0RvOBCkgX_YwUoQYQPR_PyGJXuIau5beq9bK75VXM,9993
|
111
114
|
benchling_sdk/services/v2/stable/workflow_task_group_service.py,sha256=SSfHDH-Eniz09HG_qSPSfSVHU3BpvTbgGhOQS4iWcAw,8848
|
112
115
|
benchling_sdk/services/v2/stable/workflow_task_service.py,sha256=pOhwFmWVk1jh3A9C70LpLhYjlgk2DcGCfjO8Uup9ScQ,12819
|
113
|
-
benchling_sdk/services/v2/v2_alpha_service.py,sha256=
|
114
|
-
benchling_sdk/services/v2/v2_beta_service.py,sha256=
|
115
|
-
benchling_sdk/services/v2/v2_stable_service.py,sha256=
|
116
|
+
benchling_sdk/services/v2/v2_alpha_service.py,sha256=rl4niKxjU-Rvdx5W6cjyXd4rUMod-QcWdfZdVHSnMb4,2190
|
117
|
+
benchling_sdk/services/v2/v2_beta_service.py,sha256=SEv2AsZG0phf_B4ORqjRO-3VBkYehu1hlUhRFHrpX3c,6093
|
118
|
+
benchling_sdk/services/v2/v2_stable_service.py,sha256=21TzqEFHygMUFv0z0z8_MtXpSHLgwYC7YbIIsHrljaw,28232
|
116
119
|
benchling_sdk/services/v2_service.py,sha256=cGX-Ps0hu7Oh1M7a0tu2zDN8-QG63dNDoK7w4eYo_OQ,3093
|
117
|
-
benchling_sdk-1.
|
118
|
-
benchling_sdk-1.
|
119
|
-
benchling_sdk-1.
|
120
|
-
benchling_sdk-1.
|
120
|
+
benchling_sdk-1.18.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
121
|
+
benchling_sdk-1.18.0.dist-info/METADATA,sha256=fA4iDSxO-S_Kty11oC5D6eV4lCljcLzIGIb600MtoCI,2108
|
122
|
+
benchling_sdk-1.18.0.dist-info/WHEEL,sha256=d2fvjOD7sXsVzChCqf0Ty0JbHKBaLYwDbGQDwQTnJ50,88
|
123
|
+
benchling_sdk-1.18.0.dist-info/RECORD,,
|
@@ -1,157 +0,0 @@
|
|
1
|
-
from datetime import datetime
|
2
|
-
from typing import List, Optional, Union
|
3
|
-
|
4
|
-
from benchling_api_client.v2.beta.models.base_manifest_config import BaseManifestConfig
|
5
|
-
from benchling_api_client.v2.beta.models.dropdown_dependency import DropdownDependency
|
6
|
-
from benchling_api_client.v2.beta.models.dropdown_dependency_types import DropdownDependencyTypes
|
7
|
-
from benchling_api_client.v2.beta.models.entity_schema_dependency import EntitySchemaDependency
|
8
|
-
from benchling_api_client.v2.beta.models.entity_schema_dependency_type import EntitySchemaDependencyType
|
9
|
-
from benchling_api_client.v2.beta.models.field_definitions_manifest import FieldDefinitionsManifest
|
10
|
-
from benchling_api_client.v2.beta.models.manifest_array_config import ManifestArrayConfig
|
11
|
-
from benchling_api_client.v2.beta.models.manifest_float_scalar_config import ManifestFloatScalarConfig
|
12
|
-
from benchling_api_client.v2.beta.models.manifest_integer_scalar_config import ManifestIntegerScalarConfig
|
13
|
-
from benchling_api_client.v2.beta.models.manifest_scalar_config import ManifestScalarConfig
|
14
|
-
from benchling_api_client.v2.beta.models.manifest_text_scalar_config import ManifestTextScalarConfig
|
15
|
-
from benchling_api_client.v2.beta.models.resource_dependency import ResourceDependency
|
16
|
-
from benchling_api_client.v2.beta.models.resource_dependency_types import ResourceDependencyTypes
|
17
|
-
from benchling_api_client.v2.beta.models.scalar_config_types import ScalarConfigTypes
|
18
|
-
from benchling_api_client.v2.beta.models.schema_dependency import SchemaDependency
|
19
|
-
from benchling_api_client.v2.beta.models.schema_dependency_subtypes import SchemaDependencySubtypes
|
20
|
-
from benchling_api_client.v2.beta.models.schema_dependency_types import SchemaDependencyTypes
|
21
|
-
from benchling_api_client.v2.beta.models.workflow_task_schema_dependency import WorkflowTaskSchemaDependency
|
22
|
-
from benchling_api_client.v2.beta.models.workflow_task_schema_dependency_output import (
|
23
|
-
WorkflowTaskSchemaDependencyOutput,
|
24
|
-
)
|
25
|
-
from benchling_api_client.v2.beta.models.workflow_task_schema_dependency_type import (
|
26
|
-
WorkflowTaskSchemaDependencyType,
|
27
|
-
)
|
28
|
-
from benchling_api_client.v2.extensions import UnknownType
|
29
|
-
from benchling_api_client.v2.stable.extensions import NotPresentError
|
30
|
-
|
31
|
-
_ArrayElementDependency = Union[
|
32
|
-
SchemaDependency,
|
33
|
-
EntitySchemaDependency,
|
34
|
-
WorkflowTaskSchemaDependency,
|
35
|
-
DropdownDependency,
|
36
|
-
ResourceDependency,
|
37
|
-
ManifestScalarConfig,
|
38
|
-
]
|
39
|
-
|
40
|
-
|
41
|
-
class _UnsupportedSubTypeError(Exception):
|
42
|
-
"""Error when an unsupported subtype is encountered."""
|
43
|
-
|
44
|
-
pass
|
45
|
-
|
46
|
-
|
47
|
-
def _field_definitions_from_dependency(
|
48
|
-
dependency: Union[
|
49
|
-
EntitySchemaDependency,
|
50
|
-
SchemaDependency,
|
51
|
-
WorkflowTaskSchemaDependency,
|
52
|
-
WorkflowTaskSchemaDependencyOutput,
|
53
|
-
]
|
54
|
-
) -> List[FieldDefinitionsManifest]:
|
55
|
-
"""Safely return a list of field definitions from a schema dependency or empty list."""
|
56
|
-
try:
|
57
|
-
if hasattr(dependency, "field_definitions"):
|
58
|
-
return dependency.field_definitions
|
59
|
-
# We can't seem to handle this programmatically by checking isinstance() or field truthiness
|
60
|
-
except NotPresentError:
|
61
|
-
pass
|
62
|
-
return []
|
63
|
-
|
64
|
-
|
65
|
-
def _element_definition_from_dependency(dependency: ManifestArrayConfig) -> List[_ArrayElementDependency]:
|
66
|
-
"""Safely return an element definition as a list of dependencies from an array dependency or empty list."""
|
67
|
-
try:
|
68
|
-
if hasattr(dependency, "element_definition"):
|
69
|
-
return [
|
70
|
-
_fix_element_definition_deserialization(element) for element in dependency.element_definition
|
71
|
-
]
|
72
|
-
# We can't seem to handle this programmatically by checking isinstance() or field truthiness
|
73
|
-
except NotPresentError:
|
74
|
-
pass
|
75
|
-
return []
|
76
|
-
|
77
|
-
|
78
|
-
def _enum_from_dependency(
|
79
|
-
dependency: Union[
|
80
|
-
ManifestFloatScalarConfig,
|
81
|
-
ManifestIntegerScalarConfig,
|
82
|
-
ManifestTextScalarConfig,
|
83
|
-
]
|
84
|
-
) -> List:
|
85
|
-
"""Safely return an enum from a scalar config."""
|
86
|
-
try:
|
87
|
-
if hasattr(dependency, "enum"):
|
88
|
-
return dependency.enum
|
89
|
-
# We can't seem to handle this programmatically by checking isinstance() or field truthiness
|
90
|
-
except NotPresentError:
|
91
|
-
pass
|
92
|
-
return []
|
93
|
-
|
94
|
-
|
95
|
-
# TODO BNCH-57036 All element definitions currently deserialize to UnknownType. Hack around this temporarily
|
96
|
-
def _fix_element_definition_deserialization(
|
97
|
-
element: Union[UnknownType, _ArrayElementDependency]
|
98
|
-
) -> _ArrayElementDependency:
|
99
|
-
if isinstance(element, UnknownType):
|
100
|
-
if "type" in element.value:
|
101
|
-
element_type = element.value["type"]
|
102
|
-
if element_type == WorkflowTaskSchemaDependencyType.WORKFLOW_TASK_SCHEMA:
|
103
|
-
return WorkflowTaskSchemaDependency.from_dict(element.value)
|
104
|
-
elif element_type == EntitySchemaDependencyType.ENTITY_SCHEMA:
|
105
|
-
return EntitySchemaDependency.from_dict(element.value)
|
106
|
-
elif element_type in [member.value for member in SchemaDependencyTypes]:
|
107
|
-
return SchemaDependency.from_dict(element.value)
|
108
|
-
elif element_type == DropdownDependencyTypes.DROPDOWN:
|
109
|
-
return DropdownDependency.from_dict(element.value)
|
110
|
-
elif element_type in [member.value for member in ResourceDependencyTypes]:
|
111
|
-
return ResourceDependency.from_dict(element.value)
|
112
|
-
elif element_type in [member.value for member in ScalarConfigTypes]:
|
113
|
-
return type(element_type).from_dict(element.value)
|
114
|
-
raise NotImplementedError(f"No array deserialization fix for {element}")
|
115
|
-
return element
|
116
|
-
|
117
|
-
|
118
|
-
def _workflow_task_schema_output_from_dependency(
|
119
|
-
dependency: WorkflowTaskSchemaDependency,
|
120
|
-
) -> Optional[WorkflowTaskSchemaDependencyOutput]:
|
121
|
-
"""Safely return a workflow task schema output from a workflow task schema or None."""
|
122
|
-
try:
|
123
|
-
if hasattr(dependency, "output"):
|
124
|
-
return dependency.output
|
125
|
-
# We can't seem to handle this programmatically by checking isinstance() or output truthiness
|
126
|
-
except NotPresentError:
|
127
|
-
pass
|
128
|
-
return None
|
129
|
-
|
130
|
-
|
131
|
-
def _options_from_dependency(dependency: DropdownDependency) -> List[BaseManifestConfig]:
|
132
|
-
"""Safely return a list of options from a dropdown dependency or empty list."""
|
133
|
-
try:
|
134
|
-
if hasattr(dependency, "options"):
|
135
|
-
return dependency.options
|
136
|
-
# We can't seem to handle this programmatically by checking isinstance() or field truthiness
|
137
|
-
except NotPresentError:
|
138
|
-
pass
|
139
|
-
return []
|
140
|
-
|
141
|
-
|
142
|
-
def _subtype_from_entity_schema_dependency(
|
143
|
-
dependency: EntitySchemaDependency,
|
144
|
-
) -> Optional[SchemaDependencySubtypes]:
|
145
|
-
"""Safely return an entity schema dependency's subtype, if present."""
|
146
|
-
try:
|
147
|
-
if hasattr(dependency, "subtype") and dependency.subtype:
|
148
|
-
return dependency.subtype
|
149
|
-
# We can't seem to handle this programmatically by checking isinstance() or field truthiness
|
150
|
-
except NotPresentError:
|
151
|
-
pass
|
152
|
-
return None
|
153
|
-
|
154
|
-
|
155
|
-
def datetime_config_value_to_str(value: datetime) -> str:
|
156
|
-
"""Convert a datetime value to a valid string accepted by a datetime app config item."""
|
157
|
-
return value.strftime("%Y-%m-%d %I:%M:%S %p")
|