zenml-nightly 0.61.0.dev20240714__py3-none-any.whl → 0.62.0.dev20240719__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.
Files changed (133) hide show
  1. README.md +1 -1
  2. RELEASE_NOTES.md +40 -0
  3. zenml/VERSION +1 -1
  4. zenml/__init__.py +2 -0
  5. zenml/cli/stack.py +87 -228
  6. zenml/cli/stack_components.py +5 -3
  7. zenml/constants.py +2 -0
  8. zenml/entrypoints/entrypoint.py +3 -1
  9. zenml/integrations/__init__.py +1 -0
  10. zenml/integrations/constants.py +1 -0
  11. zenml/integrations/databricks/__init__.py +52 -0
  12. zenml/integrations/databricks/flavors/__init__.py +30 -0
  13. zenml/integrations/databricks/flavors/databricks_model_deployer_flavor.py +118 -0
  14. zenml/integrations/databricks/flavors/databricks_orchestrator_flavor.py +147 -0
  15. zenml/integrations/databricks/model_deployers/__init__.py +20 -0
  16. zenml/integrations/databricks/model_deployers/databricks_model_deployer.py +249 -0
  17. zenml/integrations/databricks/orchestrators/__init__.py +20 -0
  18. zenml/integrations/databricks/orchestrators/databricks_orchestrator.py +498 -0
  19. zenml/integrations/databricks/orchestrators/databricks_orchestrator_entrypoint_config.py +97 -0
  20. zenml/integrations/databricks/services/__init__.py +19 -0
  21. zenml/integrations/databricks/services/databricks_deployment.py +407 -0
  22. zenml/integrations/databricks/utils/__init__.py +14 -0
  23. zenml/integrations/databricks/utils/databricks_utils.py +87 -0
  24. zenml/integrations/great_expectations/data_validators/ge_data_validator.py +12 -8
  25. zenml/integrations/huggingface/materializers/huggingface_datasets_materializer.py +88 -3
  26. zenml/integrations/huggingface/steps/accelerate_runner.py +1 -7
  27. zenml/integrations/kubernetes/orchestrators/manifest_utils.py +7 -0
  28. zenml/integrations/kubernetes/pod_settings.py +2 -0
  29. zenml/integrations/lightgbm/__init__.py +1 -0
  30. zenml/integrations/mlflow/__init__.py +1 -1
  31. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +6 -2
  32. zenml/integrations/mlflow/services/mlflow_deployment.py +1 -1
  33. zenml/integrations/skypilot_lambda/__init__.py +1 -1
  34. zenml/materializers/built_in_materializer.py +1 -1
  35. zenml/materializers/cloudpickle_materializer.py +1 -1
  36. zenml/model/model.py +1 -1
  37. zenml/models/v2/core/component.py +29 -0
  38. zenml/models/v2/misc/full_stack.py +32 -0
  39. zenml/orchestrators/__init__.py +4 -0
  40. zenml/orchestrators/wheeled_orchestrator.py +147 -0
  41. zenml/service_connectors/service_connector_utils.py +349 -0
  42. zenml/stack_deployments/gcp_stack_deployment.py +2 -4
  43. zenml/steps/base_step.py +7 -5
  44. zenml/utils/function_utils.py +1 -1
  45. zenml/utils/pipeline_docker_image_builder.py +8 -0
  46. zenml/zen_server/dashboard/assets/{404-DpJaNHKF.js → 404-B_YdvmwS.js} +1 -1
  47. zenml/zen_server/dashboard/assets/{@reactflow-DJfzkHO1.js → @reactflow-l_1hUr1S.js} +1 -1
  48. zenml/zen_server/dashboard/assets/{AwarenessChannel-BYDLT2xC.js → AwarenessChannel-CFg5iX4Z.js} +1 -1
  49. zenml/zen_server/dashboard/assets/{CodeSnippet-BkOuRmyq.js → CodeSnippet-Dvkx_82E.js} +1 -1
  50. zenml/zen_server/dashboard/assets/CollapsibleCard-opiuBHHc.js +1 -0
  51. zenml/zen_server/dashboard/assets/{Commands-ZvWR1BRs.js → Commands-DoN1xrEq.js} +1 -1
  52. zenml/zen_server/dashboard/assets/{CopyButton-DVwLkafa.js → CopyButton-Cr7xYEPb.js} +1 -1
  53. zenml/zen_server/dashboard/assets/{CsvVizualization-C2IiqX4I.js → CsvVizualization-Ck-nZ43m.js} +3 -3
  54. zenml/zen_server/dashboard/assets/{Error-CqX0VqW_.js → Error-kLtljEOM.js} +1 -1
  55. zenml/zen_server/dashboard/assets/{ExecutionStatus-BoLUXR9t.js → ExecutionStatus-DguLLgTK.js} +1 -1
  56. zenml/zen_server/dashboard/assets/{Helpbox-LFydyVwh.js → Helpbox-BXUMP21n.js} +1 -1
  57. zenml/zen_server/dashboard/assets/{Infobox-DnENC0sh.js → Infobox-DSt0O-dm.js} +1 -1
  58. zenml/zen_server/dashboard/assets/{InlineAvatar-CbJtYr0t.js → InlineAvatar-xsrsIGE-.js} +1 -1
  59. zenml/zen_server/dashboard/assets/Pagination-C6X-mifw.js +1 -0
  60. zenml/zen_server/dashboard/assets/{SetPassword-BYBdbQDo.js → SetPassword-BXGTWiwj.js} +1 -1
  61. zenml/zen_server/dashboard/assets/{SuccessStep-Nx743hll.js → SuccessStep-DZC60t0x.js} +1 -1
  62. zenml/zen_server/dashboard/assets/{UpdatePasswordSchemas-DF9gSzE0.js → UpdatePasswordSchemas-DGvwFWO1.js} +1 -1
  63. zenml/zen_server/dashboard/assets/{chevron-right-double-BiEMg7rd.js → chevron-right-double-CZBOf6JM.js} +1 -1
  64. zenml/zen_server/dashboard/assets/cloud-only-C_yFCAkP.js +1 -0
  65. zenml/zen_server/dashboard/assets/index-BczVOqUf.js +55 -0
  66. zenml/zen_server/dashboard/assets/index-EpMIKgrI.css +1 -0
  67. zenml/zen_server/dashboard/assets/{login-mutation-BUnVASxp.js → login-mutation-CrHrndTI.js} +1 -1
  68. zenml/zen_server/dashboard/assets/logs-D8k8BVFf.js +1 -0
  69. zenml/zen_server/dashboard/assets/{not-found-B4VnX8gK.js → not-found-DYa4pC-C.js} +1 -1
  70. zenml/zen_server/dashboard/assets/{package-CsUhPmou.js → package-B3fWP-Dh.js} +1 -1
  71. zenml/zen_server/dashboard/assets/page-1h_sD1jz.js +1 -0
  72. zenml/zen_server/dashboard/assets/{page-Sxn82W-5.js → page-1iL8aMqs.js} +1 -1
  73. zenml/zen_server/dashboard/assets/{page-DMOYZppS.js → page-2grKx_MY.js} +1 -1
  74. zenml/zen_server/dashboard/assets/page-5NCOHOsy.js +1 -0
  75. zenml/zen_server/dashboard/assets/{page-JyfeDUfu.js → page-8a4UMKXZ.js} +1 -1
  76. zenml/zen_server/dashboard/assets/{page-Bx6o0ARS.js → page-B6h3iaHJ.js} +1 -1
  77. zenml/zen_server/dashboard/assets/page-BDns21Iz.js +1 -0
  78. zenml/zen_server/dashboard/assets/{page-3efNCDeb.js → page-BhgCDInH.js} +2 -2
  79. zenml/zen_server/dashboard/assets/{page-DKlIdAe5.js → page-Bi-wtWiO.js} +2 -2
  80. zenml/zen_server/dashboard/assets/{page-7zTHbhhI.js → page-BkeAAYwp.js} +1 -1
  81. zenml/zen_server/dashboard/assets/{page-CRTJ0UuR.js → page-BkuQDIf-.js} +1 -1
  82. zenml/zen_server/dashboard/assets/page-BnaevhnB.js +1 -0
  83. zenml/zen_server/dashboard/assets/{page-BEs6jK71.js → page-Bq0YxkLV.js} +1 -1
  84. zenml/zen_server/dashboard/assets/page-Bs2F4eoD.js +2 -0
  85. zenml/zen_server/dashboard/assets/{page-CUZIGO-3.js → page-C6-UGEbH.js} +1 -1
  86. zenml/zen_server/dashboard/assets/{page-Xu8JEjSU.js → page-CCNRIt_f.js} +1 -1
  87. zenml/zen_server/dashboard/assets/{page-DvCvroOM.js → page-CHNxpz3n.js} +1 -1
  88. zenml/zen_server/dashboard/assets/{page-BpSqIf4B.js → page-DgorQFqi.js} +1 -1
  89. zenml/zen_server/dashboard/assets/page-K8ebxVIs.js +1 -0
  90. zenml/zen_server/dashboard/assets/{page-Cx67M0QT.js → page-MFQyIJd3.js} +1 -1
  91. zenml/zen_server/dashboard/assets/page-TgCF0P_U.js +1 -0
  92. zenml/zen_server/dashboard/assets/page-ZnCEe-eK.js +9 -0
  93. zenml/zen_server/dashboard/assets/{page-Dc_7KMQE.js → page-uA5prJGY.js} +1 -1
  94. zenml/zen_server/dashboard/assets/persist-D7HJNBWx.js +1 -0
  95. zenml/zen_server/dashboard/assets/plus-C8WOyCzt.js +1 -0
  96. zenml/zen_server/dashboard/assets/stack-detail-query-Cficsl6d.js +1 -0
  97. zenml/zen_server/dashboard/assets/update-server-settings-mutation-7d8xi1tS.js +1 -0
  98. zenml/zen_server/dashboard/assets/{url-DuQMeqYA.js → url-D7mAQGUM.js} +1 -1
  99. zenml/zen_server/dashboard/index.html +4 -4
  100. zenml/zen_server/dashboard_legacy/asset-manifest.json +4 -4
  101. zenml/zen_server/dashboard_legacy/index.html +1 -1
  102. zenml/zen_server/dashboard_legacy/{precache-manifest.c8c57fb0d2132b1d3c2119e776b7dfb3.js → precache-manifest.12246c7548e71e2c4438e496360de80c.js} +4 -4
  103. zenml/zen_server/dashboard_legacy/service-worker.js +1 -1
  104. zenml/zen_server/dashboard_legacy/static/js/main.3b27024b.chunk.js +2 -0
  105. zenml/zen_server/dashboard_legacy/static/js/{main.382439a7.chunk.js.map → main.3b27024b.chunk.js.map} +1 -1
  106. zenml/zen_server/deploy/helm/Chart.yaml +1 -1
  107. zenml/zen_server/deploy/helm/README.md +2 -2
  108. zenml/zen_server/routers/service_connectors_endpoints.py +57 -0
  109. zenml/zen_stores/migrations/versions/0.62.0_release.py +23 -0
  110. zenml/zen_stores/rest_zen_store.py +4 -0
  111. zenml/zen_stores/schemas/component_schemas.py +14 -0
  112. {zenml_nightly-0.61.0.dev20240714.dist-info → zenml_nightly-0.62.0.dev20240719.dist-info}/METADATA +2 -2
  113. {zenml_nightly-0.61.0.dev20240714.dist-info → zenml_nightly-0.62.0.dev20240719.dist-info}/RECORD +116 -98
  114. zenml/zen_server/dashboard/assets/Pagination-DEbVUupy.js +0 -1
  115. zenml/zen_server/dashboard/assets/chevron-down-D_ZlKMqH.js +0 -1
  116. zenml/zen_server/dashboard/assets/cloud-only-DVbIeckv.js +0 -1
  117. zenml/zen_server/dashboard/assets/index-C_CrU4vI.js +0 -1
  118. zenml/zen_server/dashboard/assets/index-DK1ynKjA.js +0 -55
  119. zenml/zen_server/dashboard/assets/index-inApY3KQ.css +0 -1
  120. zenml/zen_server/dashboard/assets/page-C43QGHTt.js +0 -9
  121. zenml/zen_server/dashboard/assets/page-CR0OG7ss.js +0 -1
  122. zenml/zen_server/dashboard/assets/page-CaopxiU1.js +0 -1
  123. zenml/zen_server/dashboard/assets/page-D7Z399xy.js +0 -1
  124. zenml/zen_server/dashboard/assets/page-D93kd7Xj.js +0 -1
  125. zenml/zen_server/dashboard/assets/page-DMsSn3dv.js +0 -2
  126. zenml/zen_server/dashboard/assets/page-Hus2pr9T.js +0 -1
  127. zenml/zen_server/dashboard/assets/page-TKXERe16.js +0 -1
  128. zenml/zen_server/dashboard/assets/plus-DOeLmm7C.js +0 -1
  129. zenml/zen_server/dashboard/assets/update-server-settings-mutation-CR8e3Sir.js +0 -1
  130. zenml/zen_server/dashboard_legacy/static/js/main.382439a7.chunk.js +0 -2
  131. {zenml_nightly-0.61.0.dev20240714.dist-info → zenml_nightly-0.62.0.dev20240719.dist-info}/LICENSE +0 -0
  132. {zenml_nightly-0.61.0.dev20240714.dist-info → zenml_nightly-0.62.0.dev20240719.dist-info}/WHEEL +0 -0
  133. {zenml_nightly-0.61.0.dev20240714.dist-info → zenml_nightly-0.62.0.dev20240719.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  apiVersion: v2
2
2
  name: zenml
3
- version: "0.61.0"
3
+ version: "0.62.0"
4
4
  description: Open source MLOps framework for portable production ready ML pipelines
5
5
  keywords:
6
6
  - mlops
@@ -20,8 +20,8 @@ ZenML is an open-source MLOps framework designed to help you create robust, main
20
20
  To install the ZenML chart directly from Amazon ECR, use the following command:
21
21
 
22
22
  ```bash
23
- # example command for version 0.61.0
24
- helm install my-zenml oci://public.ecr.aws/zenml/zenml --version 0.61.0
23
+ # example command for version 0.62.0
24
+ helm install my-zenml oci://public.ecr.aws/zenml/zenml --version 0.62.0
25
25
  ```
26
26
 
27
27
  Note: Ensure you have OCI support enabled in your Helm client and that you are authenticated with Amazon ECR.
@@ -21,6 +21,7 @@ from fastapi import APIRouter, Depends, Security
21
21
  from zenml.constants import (
22
22
  API,
23
23
  SERVICE_CONNECTOR_CLIENT,
24
+ SERVICE_CONNECTOR_FULL_STACK,
24
25
  SERVICE_CONNECTOR_TYPES,
25
26
  SERVICE_CONNECTOR_VERIFY,
26
27
  SERVICE_CONNECTORS,
@@ -35,6 +36,13 @@ from zenml.models import (
35
36
  ServiceConnectorTypeModel,
36
37
  ServiceConnectorUpdate,
37
38
  )
39
+ from zenml.models.v2.misc.full_stack import (
40
+ ServiceConnectorInfo,
41
+ ServiceConnectorResourcesInfo,
42
+ )
43
+ from zenml.service_connectors.service_connector_utils import (
44
+ get_resources_options_from_resource_model_for_full_stack,
45
+ )
38
46
  from zenml.zen_server.auth import AuthContext, authorize
39
47
  from zenml.zen_server.exceptions import error_response
40
48
  from zenml.zen_server.rbac.endpoint_utils import (
@@ -393,3 +401,52 @@ def get_service_connector_type(
393
401
  The requested service connector type.
394
402
  """
395
403
  return zen_store().get_service_connector_type(connector_type)
404
+
405
+
406
+ @router.post(
407
+ SERVICE_CONNECTOR_FULL_STACK,
408
+ responses={401: error_response, 409: error_response, 422: error_response},
409
+ )
410
+ @handle_exceptions
411
+ def get_resources_based_on_service_connector_info(
412
+ connector_info: Optional[ServiceConnectorInfo] = None,
413
+ connector_uuid: Optional[UUID] = None,
414
+ _: AuthContext = Security(authorize),
415
+ ) -> ServiceConnectorResourcesInfo:
416
+ """Gets the list of resources that a service connector can access.
417
+
418
+ Args:
419
+ connector_info: The service connector info.
420
+ connector_uuid: The service connector uuid.
421
+
422
+ Returns:
423
+ The list of resources that the service connector configuration has
424
+ access to and consumable from UI/CLI.
425
+
426
+ Raises:
427
+ ValueError: If both connector_info and connector_uuid are provided.
428
+ ValueError: If neither connector_info nor connector_uuid are provided.
429
+ """
430
+ if connector_info is not None and connector_uuid is not None:
431
+ raise ValueError(
432
+ "Only one of connector_info or connector_uuid must be provided."
433
+ )
434
+ if connector_info is None and connector_uuid is None:
435
+ raise ValueError(
436
+ "Either connector_info or connector_uuid must be provided."
437
+ )
438
+
439
+ if connector_info is not None:
440
+ verify_permission(
441
+ resource_type=ResourceType.SERVICE_CONNECTOR, action=Action.CREATE
442
+ )
443
+ elif connector_uuid is not None:
444
+ verify_permission(
445
+ resource_type=ResourceType.SERVICE_CONNECTOR,
446
+ action=Action.READ,
447
+ resource_id=connector_uuid,
448
+ )
449
+
450
+ return get_resources_options_from_resource_model_for_full_stack(
451
+ connector_details=connector_info or connector_uuid # type: ignore[arg-type]
452
+ )
@@ -0,0 +1,23 @@
1
+ """Release [0.62.0].
2
+
3
+ Revision ID: 0.62.0
4
+ Revises: b4fca5241eea
5
+ Create Date: 2024-07-15 14:15:45.347033
6
+
7
+ """
8
+
9
+ # revision identifiers, used by Alembic.
10
+ revision = "0.62.0"
11
+ down_revision = "b4fca5241eea"
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
@@ -2591,6 +2591,10 @@ class RestZenStore(BaseZenStore):
2591
2591
  response_body = self.get(
2592
2592
  f"{WORKSPACES}/{workspace_name_or_id}{SERVICE_CONNECTORS}{SERVICE_CONNECTOR_RESOURCES}",
2593
2593
  params=params,
2594
+ timeout=max(
2595
+ self.config.http_timeout,
2596
+ SERVICE_CONNECTOR_VERIFY_REQUEST_TIMEOUT,
2597
+ ),
2594
2598
  )
2595
2599
 
2596
2600
  assert isinstance(response_body, list)
@@ -38,6 +38,7 @@ from zenml.zen_stores.schemas.user_schemas import UserSchema
38
38
  from zenml.zen_stores.schemas.workspace_schemas import WorkspaceSchema
39
39
 
40
40
  if TYPE_CHECKING:
41
+ from zenml.zen_stores.schemas.flavor_schemas import FlavorSchema
41
42
  from zenml.zen_stores.schemas.logs_schemas import LogsSchema
42
43
  from zenml.zen_stores.schemas.run_metadata_schemas import RunMetadataSchema
43
44
  from zenml.zen_stores.schemas.schedule_schema import ScheduleSchema
@@ -85,6 +86,13 @@ class StackComponentSchema(NamedSchema, table=True):
85
86
  run_metadata: List["RunMetadataSchema"] = Relationship(
86
87
  back_populates="stack_component",
87
88
  )
89
+ flavor_schema: Optional["FlavorSchema"] = Relationship(
90
+ sa_relationship_kwargs={
91
+ "primaryjoin": "and_(foreign(StackComponentSchema.flavor) == FlavorSchema.name, foreign(StackComponentSchema.type) == FlavorSchema.type)",
92
+ "lazy": "joined",
93
+ "uselist": False,
94
+ },
95
+ )
88
96
 
89
97
  run_or_step_logs: List["LogsSchema"] = Relationship(
90
98
  back_populates="artifact_store",
@@ -161,6 +169,12 @@ class StackComponentSchema(NamedSchema, table=True):
161
169
  user=self.user.to_model() if self.user else None,
162
170
  created=self.created,
163
171
  updated=self.updated,
172
+ logo_url=self.flavor_schema.logo_url
173
+ if self.flavor_schema
174
+ else None,
175
+ integration=self.flavor_schema.integration
176
+ if self.flavor_schema
177
+ else None,
164
178
  )
165
179
  metadata = None
166
180
  if include_metadata:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zenml-nightly
3
- Version: 0.61.0.dev20240714
3
+ Version: 0.62.0.dev20240719
4
4
  Summary: ZenML: Write production-ready ML code.
5
5
  Home-page: https://zenml.io
6
6
  License: Apache-2.0
@@ -467,7 +467,7 @@ the Apache License Version 2.0.
467
467
  <a href="https://github.com/zenml-io/zenml-projects">Projects Showcase</a>
468
468
  <br />
469
469
  <br />
470
- 🎉 Version 0.61.0 is out. Check out the release notes
470
+ 🎉 Version 0.62.0 is out. Check out the release notes
471
471
  <a href="https://github.com/zenml-io/zenml/releases">here</a>.
472
472
  <br />
473
473
  🖥️ Download our VS Code Extension <a href="https://marketplace.visualstudio.com/items?itemName=ZenML.zenml-vscode">here</a>.