zenml-nightly 0.68.1.dev20241112__py3-none-any.whl → 0.70.0.dev20241114__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.
- README.md +1 -1
- RELEASE_NOTES.md +77 -0
- zenml/VERSION +1 -1
- zenml/__init__.py +2 -0
- zenml/artifacts/utils.py +5 -1
- zenml/client.py +6 -1
- zenml/config/server_config.py +17 -1
- zenml/constants.py +1 -7
- zenml/enums.py +8 -0
- zenml/model/utils.py +5 -0
- zenml/models/v2/base/filter.py +121 -8
- zenml/models/v2/core/artifact_version.py +23 -0
- zenml/models/v2/core/model_version.py +23 -0
- zenml/models/v2/core/pipeline_run.py +22 -1
- zenml/models/v2/core/step_run.py +22 -0
- zenml/orchestrators/base_orchestrator.py +12 -1
- zenml/orchestrators/step_launcher.py +2 -1
- zenml/orchestrators/utils.py +45 -26
- zenml/steps/utils.py +5 -0
- zenml/utils/metadata_utils.py +335 -0
- zenml/zen_server/auth.py +221 -3
- zenml/zen_server/cache.py +208 -0
- zenml/zen_server/dashboard/assets/{404-DT4QRUqN.js → 404-NVXKFp-x.js} +1 -1
- zenml/zen_server/dashboard/assets/{@radix-DP6vWzyx.js → @radix-DeK6qiuw.js} +1 -1
- zenml/zen_server/dashboard/assets/{@react-router-BMhZulnd.js → @react-router-B3Z5rLr2.js} +1 -1
- zenml/zen_server/dashboard/assets/{@reactflow-8U9qNlMR.js → @reactflow-CK0KJUen.js} +2 -2
- zenml/zen_server/dashboard/assets/{@tanstack-BUCbhJyH.js → @tanstack-DT5WLu9C.js} +1 -1
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-DezXKmDf.js +1 -0
- zenml/zen_server/dashboard/assets/{CodeSnippet-CqybNv0k.js → CodeSnippet-JzR8CEtw.js} +2 -2
- zenml/zen_server/dashboard/assets/{CollapsibleCard-0r_8G2Lj.js → CollapsibleCard-DQW_ktMO.js} +1 -1
- zenml/zen_server/dashboard/assets/{Commands-BDjgBQKi.js → Commands-DL2kwkRd.js} +1 -1
- zenml/zen_server/dashboard/assets/ComponentBadge-D_g62Wv8.js +1 -0
- zenml/zen_server/dashboard/assets/{CopyButton-C745BrKi.js → CopyButton-LNcWaa14.js} +1 -1
- zenml/zen_server/dashboard/assets/{CsvVizualization-PpAq0CeZ.js → CsvVizualization-DknpE5ej.js} +5 -5
- zenml/zen_server/dashboard/assets/{DialogItem-DcVCZEew.js → DialogItem-Bxf8FuAT.js} +1 -1
- zenml/zen_server/dashboard/assets/{DisplayDate-BeXgUG_C.js → DisplayDate-CDMUcQHS.js} +1 -1
- zenml/zen_server/dashboard/assets/{EmptyState-DeK7H4pr.js → EmptyState-BzdlCwp3.js} +1 -1
- zenml/zen_server/dashboard/assets/{Error-BMlzibXj.js → Error-DYflYyps.js} +1 -1
- zenml/zen_server/dashboard/assets/ExecutionStatus-C7zyIQKZ.js +1 -0
- zenml/zen_server/dashboard/assets/{Helpbox-BLf40fLV.js → Helpbox-oYSGpLqd.js} +1 -1
- zenml/zen_server/dashboard/assets/{Infobox-BwisKifi.js → Infobox-Cx4xGoXR.js} +1 -1
- zenml/zen_server/dashboard/assets/{InlineAvatar-jEgodSgX.js → InlineAvatar-DiGOWNKF.js} +1 -1
- zenml/zen_server/dashboard/assets/{Lock-3lLt1ih0.js → Lock-CYYy18Mm.js} +1 -1
- zenml/zen_server/dashboard/assets/{MarkdownVisualization-8O9kTr-2.js → MarkdownVisualization-ylXaAxev.js} +1 -1
- zenml/zen_server/dashboard/assets/NestedCollapsible-DYbgyKxK.js +1 -0
- zenml/zen_server/dashboard/assets/{NumberBox-T9eELfLZ.js → NumberBox-Dtp3J6g5.js} +1 -1
- zenml/zen_server/dashboard/assets/Partials-03iZf8-N.js +1 -0
- zenml/zen_server/dashboard/assets/{PasswordChecker-CW0kqY0W.js → PasswordChecker-B0nadgh6.js} +1 -1
- zenml/zen_server/dashboard/assets/ProBadge-D_EB8HNo.js +1 -0
- zenml/zen_server/dashboard/assets/ProCta-DqNS4v3x.js +1 -0
- zenml/zen_server/dashboard/assets/ProviderIcon-Bki2aw8w.js +1 -0
- zenml/zen_server/dashboard/assets/{ProviderRadio-BROY1700.js → ProviderRadio-8f43sPD4.js} +1 -1
- zenml/zen_server/dashboard/assets/RunSelector-DkPiIiNr.js +1 -0
- zenml/zen_server/dashboard/assets/RunsBody-07YEO7qI.js +1 -0
- zenml/zen_server/dashboard/assets/SearchField-lp1KgU4e.js +1 -0
- zenml/zen_server/dashboard/assets/{SecretTooltip-C_qByGWB.js → SecretTooltip-CgnbyeOx.js} +1 -1
- zenml/zen_server/dashboard/assets/{SetPassword-7pRB00El.js → SetPassword-CpP418A2.js} +1 -1
- zenml/zen_server/dashboard/assets/StackList-WvuKQusZ.js +1 -0
- zenml/zen_server/dashboard/assets/Tabs-BktHkCJJ.js +1 -0
- zenml/zen_server/dashboard/assets/Tick-BlMoIlJT.js +1 -0
- zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DckMEkFf.js → UpdatePasswordSchemas-Sc0A0pP-.js} +1 -1
- zenml/zen_server/dashboard/assets/{UsageReason-DVceN14P.js → UsageReason-YYduL4fj.js} +1 -1
- zenml/zen_server/dashboard/assets/{WizardFooter-CW0Cvd70.js → WizardFooter-dgmizSJC.js} +1 -1
- zenml/zen_server/dashboard/assets/all-pipeline-runs-query-D-c2G6lV.js +1 -0
- zenml/zen_server/dashboard/assets/check-DloQpStc.js +1 -0
- zenml/zen_server/dashboard/assets/{check-circle-Dwxliy1Z.js → check-circle-jNbX5-sR.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-down-8wLBS5pQ.js → chevron-down-6JyMkfjR.js} +1 -1
- zenml/zen_server/dashboard/assets/{chevron-right-double-DoD8iXWM.js → chevron-right-double-D7ojK9Co.js} +1 -1
- zenml/zen_server/dashboard/assets/{code-browser-CZUQs3Wa.js → code-browser-CUFUIHfp.js} +1 -1
- zenml/zen_server/dashboard/assets/{copy-CaSMXwiU.js → copy-C8XQA2Ug.js} +1 -1
- zenml/zen_server/dashboard/assets/create-stack-DM_JPgef.js +1 -0
- zenml/zen_server/dashboard/assets/delete-run-CJdh1P_h.js +1 -0
- zenml/zen_server/dashboard/assets/{docker-BFNgg-z3.js → docker-BdA9vrnW.js} +1 -1
- zenml/zen_server/dashboard/assets/{dots-horizontal-DK5Duzx4.js → dots-horizontal-otGBOSDJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{form-schemas-1AyOCx90.js → form-schemas-K6FYKjwa.js} +1 -1
- zenml/zen_server/dashboard/assets/{gcp-7M2Yf3ZK.js → gcp-CFtm4BA7.js} +1 -1
- zenml/zen_server/dashboard/assets/{help-Dam461dC.js → help-Cc9bBIJH.js} +1 -1
- zenml/zen_server/dashboard/assets/index-B1mVPYxf.js +1 -0
- zenml/zen_server/dashboard/assets/index-BAkC7FXi.js +1 -0
- zenml/zen_server/dashboard/assets/{index-QQb7wQEC.js → index-CCOPpudF.js} +8 -8
- zenml/zen_server/dashboard/assets/index-CEV4Cvaf.js +1 -0
- zenml/zen_server/dashboard/assets/index-DlGvJQPn.css +1 -0
- zenml/zen_server/dashboard/assets/{index-BVJ8n2-j.js → index-Uu49AX48.js} +1 -1
- zenml/zen_server/dashboard/assets/{index.esm-cuVep_NJ.js → index.esm-Dy6Z9Ung.js} +1 -1
- zenml/zen_server/dashboard/assets/{kubernetes--g7r02Zu.js → kubernetes-B2wmAJ1d.js} +1 -1
- zenml/zen_server/dashboard/assets/{layout-DCSYN7-C.js → layout-BtHBmE4w.js} +1 -1
- zenml/zen_server/dashboard/assets/{link-external-CBEk6kEG.js → link-external-b9AXw_sW.js} +1 -1
- zenml/zen_server/dashboard/assets/{login-mutation-DTcAFP1l.js → login-mutation-hf-lK87O.js} +1 -1
- zenml/zen_server/dashboard/assets/{logs-D5bdJGur.js → logs-WMSM52RF.js} +1 -1
- zenml/zen_server/dashboard/assets/{not-found-Cc-JkRH2.js → not-found-BGirLjU-.js} +1 -1
- zenml/zen_server/dashboard/assets/{package-Cs35Szwh.js → package-C6uypY4h.js} +1 -1
- zenml/zen_server/dashboard/assets/page-0JE_-Ec1.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DH_Z7iW1.js → page-6m6yHHlE.js} +1 -1
- zenml/zen_server/dashboard/assets/page-BDigxVpo.js +1 -0
- zenml/zen_server/dashboard/assets/page-BR68V0V1.js +1 -0
- zenml/zen_server/dashboard/assets/page-BRLpxOt0.js +1 -0
- zenml/zen_server/dashboard/assets/{page-BQQKaabe.js → page-BU7huvKw.js} +3 -3
- zenml/zen_server/dashboard/assets/page-BvqLv2Ky.js +1 -0
- zenml/zen_server/dashboard/assets/page-C00YAkaB.js +1 -0
- zenml/zen_server/dashboard/assets/{page-N4qoPHKb.js → page-CD-DcWoy.js} +1 -1
- zenml/zen_server/dashboard/assets/page-COXXJj1k.js +1 -0
- zenml/zen_server/dashboard/assets/page-CbpvrsDL.js +1 -0
- zenml/zen_server/dashboard/assets/page-CdMWnQak.js +1 -0
- zenml/zen_server/dashboard/assets/{page-ClUVkl-O.js → page-CjGdWY13.js} +1 -1
- zenml/zen_server/dashboard/assets/page-CwxrFarU.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DLixvR-7.js → page-D01JhjQB.js} +1 -1
- zenml/zen_server/dashboard/assets/page-D6uU2ax4.js +1 -0
- zenml/zen_server/dashboard/assets/page-D7S3aCbF.js +1 -0
- zenml/zen_server/dashboard/assets/{page-9yplj5JT.js → page-DLC-bNBP.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DXSTpqRD.js +1 -0
- zenml/zen_server/dashboard/assets/{page-DzpVUZ8f.js → page-DakHVWXF.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-DIOXwhiD.js → page-Df-Fw0aq.js} +1 -1
- zenml/zen_server/dashboard/assets/{page-B-y2XKIc.js → page-DfbXf_8s.js} +1 -1
- zenml/zen_server/dashboard/assets/page-DjRJCGb3.js +1 -0
- zenml/zen_server/dashboard/assets/{page-C0N5q3l7.js → page-Djikxq_S.js} +1 -1
- zenml/zen_server/dashboard/assets/page-Dnovpa0i.js +3 -0
- zenml/zen_server/dashboard/assets/page-Dot3LPmL.js +1 -0
- zenml/zen_server/dashboard/assets/page-Vcxara9U.js +1 -0
- zenml/zen_server/dashboard/assets/page-Xynx4btY.js +14 -0
- zenml/zen_server/dashboard/assets/page-YpKAqVSa.js +1 -0
- zenml/zen_server/dashboard/assets/page-yYC9OI-E.js +1 -0
- zenml/zen_server/dashboard/assets/{persist-DNb5cdrU.js → persist-Coz7ZWvz.js} +1 -1
- zenml/zen_server/dashboard/assets/{persist-CP0JmYZ4.js → persist-GjC8PZoC.js} +1 -1
- zenml/zen_server/dashboard/assets/{plus-C9IxgN2M.js → plus-tf1V2hTJ.js} +1 -1
- zenml/zen_server/dashboard/assets/{refresh-BVu22P_C.js → refresh-BjOeWlEq.js} +1 -1
- zenml/zen_server/dashboard/assets/{rocket-CONEmRmB.js → rocket-DjT2cDvG.js} +1 -1
- zenml/zen_server/dashboard/assets/sharedSchema-CQb14VSr.js +14 -0
- zenml/zen_server/dashboard/assets/stack-detail-query-OPEW-cDJ.js +1 -0
- zenml/zen_server/dashboard/assets/{tick-circle-CM1ZScbQ.js → tick-circle-BEX_Tp4v.js} +1 -1
- zenml/zen_server/dashboard/assets/{trash-DkJHMOg7.js → trash-arLUMWMS.js} +1 -1
- zenml/zen_server/dashboard/assets/{update-server-settings-mutation-DsU8cNVl.js → update-server-settings-mutation-LwuQfHYn.js} +1 -1
- zenml/zen_server/dashboard/assets/upgrade-form-CwRHBuXB.webp +0 -0
- zenml/zen_server/dashboard/assets/url-CkvKAnwF.js +1 -0
- zenml/zen_server/dashboard/assets/{zod-D89GC_vc.js → zod-BwEbpOxH.js} +1 -1
- zenml/zen_server/dashboard/index.html +7 -7
- zenml/zen_server/deploy/helm/Chart.yaml +1 -1
- zenml/zen_server/deploy/helm/README.md +2 -2
- zenml/zen_server/jwt.py +30 -13
- zenml/zen_server/routers/auth_endpoints.py +134 -102
- zenml/zen_server/template_execution/utils.py +14 -16
- zenml/zen_server/utils.py +27 -0
- zenml/zen_server/zen_server_api.py +4 -1
- zenml/zen_stores/migrations/versions/0.70.0_release.py +23 -0
- zenml/zen_stores/rest_zen_store.py +13 -10
- {zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/METADATA +2 -2
- {zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/RECORD +149 -137
- zenml/zen_server/dashboard/assets/AlertDialogDropdownItem-C6N2rGrB.js +0 -1
- zenml/zen_server/dashboard/assets/ComponentBadge-DUiEYJHu.js +0 -1
- zenml/zen_server/dashboard/assets/ComponentFallbackDialog-BFoH5K4V.js +0 -1
- zenml/zen_server/dashboard/assets/ComponentIcon-CAIoUis2.js +0 -1
- zenml/zen_server/dashboard/assets/Partials-YPBB3V4q.js +0 -1
- zenml/zen_server/dashboard/assets/ProviderIcon-Bb3Xha5A.js +0 -1
- zenml/zen_server/dashboard/assets/RunSelector-DCiL3M1c.js +0 -1
- zenml/zen_server/dashboard/assets/SearchField-DfUiGFVd.js +0 -1
- zenml/zen_server/dashboard/assets/Tick-CykQFPj2.js +0 -1
- zenml/zen_server/dashboard/assets/cloud-only-B-s_HMDm.js +0 -1
- zenml/zen_server/dashboard/assets/codespaces-BitYDX9d.gif +0 -0
- zenml/zen_server/dashboard/assets/create-stack-CEmaPZ4c.js +0 -1
- zenml/zen_server/dashboard/assets/delete-run-D-LKbGyz.js +0 -1
- zenml/zen_server/dashboard/assets/index-Bpmj40BI.js +0 -1
- zenml/zen_server/dashboard/assets/index-CbU4Ln_E.css +0 -1
- zenml/zen_server/dashboard/assets/index-DKPhqP2B.js +0 -1
- zenml/zen_server/dashboard/assets/page-BBpOxVcY.js +0 -1
- zenml/zen_server/dashboard/assets/page-BRInM1Lg.js +0 -1
- zenml/zen_server/dashboard/assets/page-BjjlMk7s.js +0 -1
- zenml/zen_server/dashboard/assets/page-Bvd7YH2A.js +0 -1
- zenml/zen_server/dashboard/assets/page-CT3Nep8W.js +0 -1
- zenml/zen_server/dashboard/assets/page-C_f47pBf.js +0 -1
- zenml/zen_server/dashboard/assets/page-Cmv8C_yM.js +0 -3
- zenml/zen_server/dashboard/assets/page-CyN2bdWG.js +0 -1
- zenml/zen_server/dashboard/assets/page-CzzXH4fs.js +0 -1
- zenml/zen_server/dashboard/assets/page-DTlGjgnG.js +0 -1
- zenml/zen_server/dashboard/assets/page-Dbpl86h0.js +0 -1
- zenml/zen_server/dashboard/assets/page-Ddgy6kDS.js +0 -1
- zenml/zen_server/dashboard/assets/page-DtCAfBLy.js +0 -9
- zenml/zen_server/dashboard/assets/page-Dx16z7nA.js +0 -1
- zenml/zen_server/dashboard/assets/page-McUyYbo1.js +0 -1
- zenml/zen_server/dashboard/assets/page-T1P3RyAR.js +0 -1
- zenml/zen_server/dashboard/assets/page-bKaULTGG.js +0 -1
- zenml/zen_server/dashboard/assets/page-sbXUJy9t.js +0 -1
- zenml/zen_server/dashboard/assets/sharedSchema-TMLu-nYQ.js +0 -14
- zenml/zen_server/dashboard/assets/stack-detail-query-xmYxSsUY.js +0 -1
- zenml/zen_server/dashboard/assets/url-D5le3J4q.js +0 -1
- {zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/LICENSE +0 -0
- {zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/WHEEL +0 -0
- {zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/entry_points.txt +0 -0
@@ -42,7 +42,7 @@ from zenml.pipelines.run_utils import (
|
|
42
42
|
)
|
43
43
|
from zenml.stack.flavor import Flavor
|
44
44
|
from zenml.utils import dict_utils, requirements_utils, settings_utils
|
45
|
-
from zenml.zen_server.auth import AuthContext
|
45
|
+
from zenml.zen_server.auth import AuthContext, generate_access_token
|
46
46
|
from zenml.zen_server.template_execution.runner_entrypoint_configuration import (
|
47
47
|
RunnerEntrypointConfiguration,
|
48
48
|
)
|
@@ -111,17 +111,6 @@ def run_template(
|
|
111
111
|
|
112
112
|
new_deployment = zen_store().create_deployment(deployment_request)
|
113
113
|
|
114
|
-
if auth_context.access_token:
|
115
|
-
token = auth_context.access_token
|
116
|
-
token.pipeline_id = deployment_request.pipeline
|
117
|
-
|
118
|
-
# We create a non-expiring token to make sure its active for the entire
|
119
|
-
# duration of the pipeline run
|
120
|
-
api_token = token.encode(expires=None)
|
121
|
-
else:
|
122
|
-
assert auth_context.encoded_access_token
|
123
|
-
api_token = auth_context.encoded_access_token
|
124
|
-
|
125
114
|
server_url = server_config().server_url
|
126
115
|
if not server_url:
|
127
116
|
raise RuntimeError(
|
@@ -130,6 +119,18 @@ def run_template(
|
|
130
119
|
assert build.zenml_version
|
131
120
|
zenml_version = build.zenml_version
|
132
121
|
|
122
|
+
placeholder_run = create_placeholder_run(deployment=new_deployment)
|
123
|
+
assert placeholder_run
|
124
|
+
|
125
|
+
# We create an API token scoped to the pipeline run
|
126
|
+
api_token = generate_access_token(
|
127
|
+
user_id=auth_context.user.id,
|
128
|
+
pipeline_run_id=placeholder_run.id,
|
129
|
+
# Keep the original API key or device scopes, if any
|
130
|
+
api_key=auth_context.api_key,
|
131
|
+
device=auth_context.device,
|
132
|
+
).access_token
|
133
|
+
|
133
134
|
environment = {
|
134
135
|
ENV_ZENML_ACTIVE_WORKSPACE_ID: str(new_deployment.workspace.id),
|
135
136
|
ENV_ZENML_ACTIVE_STACK_ID: str(stack.id),
|
@@ -145,9 +146,6 @@ def run_template(
|
|
145
146
|
deployment_id=new_deployment.id
|
146
147
|
)
|
147
148
|
|
148
|
-
placeholder_run = create_placeholder_run(deployment=new_deployment)
|
149
|
-
assert placeholder_run
|
150
|
-
|
151
149
|
def _task() -> None:
|
152
150
|
pypi_requirements, apt_packages = (
|
153
151
|
requirements_utils.get_requirements_for_stack(stack=stack)
|
@@ -350,7 +348,7 @@ def deployment_request_from_template(
|
|
350
348
|
)
|
351
349
|
|
352
350
|
step_config_dict_base = pipeline_configuration.model_dump(
|
353
|
-
exclude={"name", "parameters"}
|
351
|
+
exclude={"name", "parameters", "tags"}
|
354
352
|
)
|
355
353
|
steps = {}
|
356
354
|
for invocation_id, step in deployment.step_configurations.items():
|
zenml/zen_server/utils.py
CHANGED
@@ -43,6 +43,7 @@ from zenml.enums import StoreType
|
|
43
43
|
from zenml.exceptions import IllegalOperationError, OAuthError
|
44
44
|
from zenml.logger import get_logger
|
45
45
|
from zenml.plugins.plugin_flavor_registry import PluginFlavorRegistry
|
46
|
+
from zenml.zen_server.cache import MemoryCache
|
46
47
|
from zenml.zen_server.deploy.deployment import (
|
47
48
|
LocalServerDeployment,
|
48
49
|
)
|
@@ -67,6 +68,7 @@ _rbac: Optional[RBACInterface] = None
|
|
67
68
|
_feature_gate: Optional[FeatureGateInterface] = None
|
68
69
|
_workload_manager: Optional[WorkloadManagerInterface] = None
|
69
70
|
_plugin_flavor_registry: Optional[PluginFlavorRegistry] = None
|
71
|
+
_memcache: Optional[MemoryCache] = None
|
70
72
|
|
71
73
|
|
72
74
|
def zen_store() -> "SqlZenStore":
|
@@ -222,6 +224,31 @@ def initialize_zen_store() -> None:
|
|
222
224
|
_zen_store = zen_store_
|
223
225
|
|
224
226
|
|
227
|
+
def initialize_memcache(max_capacity: int, default_expiry: int) -> None:
|
228
|
+
"""Initialize the memory cache.
|
229
|
+
|
230
|
+
Args:
|
231
|
+
max_capacity: The maximum capacity of the cache.
|
232
|
+
default_expiry: The default expiry time in seconds.
|
233
|
+
"""
|
234
|
+
global _memcache
|
235
|
+
_memcache = MemoryCache(max_capacity, default_expiry)
|
236
|
+
|
237
|
+
|
238
|
+
def memcache() -> MemoryCache:
|
239
|
+
"""Return the memory cache.
|
240
|
+
|
241
|
+
Returns:
|
242
|
+
The memory cache.
|
243
|
+
|
244
|
+
Raises:
|
245
|
+
RuntimeError: If the memory cache is not initialized.
|
246
|
+
"""
|
247
|
+
if _memcache is None:
|
248
|
+
raise RuntimeError("Memory cache not initialized")
|
249
|
+
return _memcache
|
250
|
+
|
251
|
+
|
225
252
|
_server_config: Optional[ServerConfiguration] = None
|
226
253
|
|
227
254
|
|
@@ -95,6 +95,7 @@ from zenml.zen_server.secure_headers import (
|
|
95
95
|
)
|
96
96
|
from zenml.zen_server.utils import (
|
97
97
|
initialize_feature_gate,
|
98
|
+
initialize_memcache,
|
98
99
|
initialize_plugins,
|
99
100
|
initialize_rbac,
|
100
101
|
initialize_workload_manager,
|
@@ -335,9 +336,10 @@ async def infer_source_context(request: Request, call_next: Any) -> Any:
|
|
335
336
|
@app.on_event("startup")
|
336
337
|
def initialize() -> None:
|
337
338
|
"""Initialize the ZenML server."""
|
339
|
+
cfg = server_config()
|
338
340
|
# Set the maximum number of worker threads
|
339
341
|
to_thread.current_default_thread_limiter().total_tokens = (
|
340
|
-
|
342
|
+
cfg.thread_pool_size
|
341
343
|
)
|
342
344
|
# IMPORTANT: these need to be run before the fastapi app starts, to avoid
|
343
345
|
# race conditions
|
@@ -347,6 +349,7 @@ def initialize() -> None:
|
|
347
349
|
initialize_workload_manager()
|
348
350
|
initialize_plugins()
|
349
351
|
initialize_secure_headers()
|
352
|
+
initialize_memcache(cfg.memcache_max_capacity, cfg.memcache_default_expiry)
|
350
353
|
|
351
354
|
|
352
355
|
DASHBOARD_REDIRECT_URL = None
|
@@ -0,0 +1,23 @@
|
|
1
|
+
"""Release [0.70.0].
|
2
|
+
|
3
|
+
Revision ID: 0.70.0
|
4
|
+
Revises: 904464ea4041
|
5
|
+
Create Date: 2024-11-12 12:20:05.537646
|
6
|
+
|
7
|
+
"""
|
8
|
+
|
9
|
+
# revision identifiers, used by Alembic.
|
10
|
+
revision = "0.70.0"
|
11
|
+
down_revision = "904464ea4041"
|
12
|
+
branch_labels = None
|
13
|
+
depends_on = None
|
14
|
+
|
15
|
+
|
16
|
+
def upgrade() -> None:
|
17
|
+
"""Upgrade database schema and/or data, creating a new revision."""
|
18
|
+
pass
|
19
|
+
|
20
|
+
|
21
|
+
def downgrade() -> None:
|
22
|
+
"""Downgrade database schema and/or data back to the previous revision."""
|
23
|
+
pass
|
@@ -110,6 +110,7 @@ from zenml.constants import (
|
|
110
110
|
WORKSPACES,
|
111
111
|
)
|
112
112
|
from zenml.enums import (
|
113
|
+
APITokenType,
|
113
114
|
OAuthGrantTypes,
|
114
115
|
StackDeploymentProvider,
|
115
116
|
StoreType,
|
@@ -3872,17 +3873,16 @@ class RestZenStore(BaseZenStore):
|
|
3872
3873
|
|
3873
3874
|
def get_api_token(
|
3874
3875
|
self,
|
3875
|
-
pipeline_id: Optional[UUID] = None,
|
3876
3876
|
schedule_id: Optional[UUID] = None,
|
3877
|
-
|
3877
|
+
pipeline_run_id: Optional[UUID] = None,
|
3878
|
+
step_run_id: Optional[UUID] = None,
|
3878
3879
|
) -> str:
|
3879
3880
|
"""Get an API token for a workload.
|
3880
3881
|
|
3881
3882
|
Args:
|
3882
|
-
pipeline_id: The ID of the pipeline to get a token for.
|
3883
3883
|
schedule_id: The ID of the schedule to get a token for.
|
3884
|
-
|
3885
|
-
|
3884
|
+
pipeline_run_id: The ID of the pipeline run to get a token for.
|
3885
|
+
step_run_id: The ID of the step run to get a token for.
|
3886
3886
|
|
3887
3887
|
Returns:
|
3888
3888
|
The API token.
|
@@ -3890,13 +3890,16 @@ class RestZenStore(BaseZenStore):
|
|
3890
3890
|
Raises:
|
3891
3891
|
ValueError: if the server response is not valid.
|
3892
3892
|
"""
|
3893
|
-
params: Dict[str, Any] = {
|
3894
|
-
|
3895
|
-
|
3893
|
+
params: Dict[str, Any] = {
|
3894
|
+
# Python clients may only request workload tokens.
|
3895
|
+
"token_type": APITokenType.WORKLOAD.value,
|
3896
|
+
}
|
3896
3897
|
if schedule_id:
|
3897
3898
|
params["schedule_id"] = schedule_id
|
3898
|
-
if
|
3899
|
-
params["
|
3899
|
+
if pipeline_run_id:
|
3900
|
+
params["pipeline_run_id"] = pipeline_run_id
|
3901
|
+
if step_run_id:
|
3902
|
+
params["step_run_id"] = step_run_id
|
3900
3903
|
response_body = self.get(API_TOKEN, params=params)
|
3901
3904
|
if not isinstance(response_body, str):
|
3902
3905
|
raise ValueError(
|
{zenml_nightly-0.68.1.dev20241112.dist-info → zenml_nightly-0.70.0.dev20241114.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: zenml-nightly
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.70.0.dev20241114
|
4
4
|
Summary: ZenML: Write production-ready ML code.
|
5
5
|
Home-page: https://zenml.io
|
6
6
|
License: Apache-2.0
|
@@ -474,7 +474,7 @@ the Apache License Version 2.0.
|
|
474
474
|
<a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
|
475
475
|
<br />
|
476
476
|
<br />
|
477
|
-
🎉 Version 0.
|
477
|
+
🎉 Version 0.70.0 is out. Check out the release notes
|
478
478
|
<a href="https://github.com/zenml-io/zenml/releases">here</a>.
|
479
479
|
<br />
|
480
480
|
🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.
|