zenml-nightly 0.58.2.dev20240617__py3-none-any.whl → 0.58.2.dev20240619__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 (312) hide show
  1. zenml/VERSION +1 -1
  2. zenml/_hub/client.py +8 -5
  3. zenml/actions/base_action.py +8 -10
  4. zenml/artifact_stores/base_artifact_store.py +20 -15
  5. zenml/artifact_stores/local_artifact_store.py +3 -2
  6. zenml/artifacts/artifact_config.py +34 -19
  7. zenml/artifacts/external_artifact.py +18 -8
  8. zenml/artifacts/external_artifact_config.py +14 -6
  9. zenml/artifacts/unmaterialized_artifact.py +2 -11
  10. zenml/cli/__init__.py +6 -0
  11. zenml/cli/artifact.py +20 -2
  12. zenml/cli/served_model.py +0 -1
  13. zenml/cli/server.py +3 -3
  14. zenml/cli/utils.py +36 -40
  15. zenml/cli/web_login.py +2 -2
  16. zenml/client.py +198 -24
  17. zenml/client_lazy_loader.py +20 -14
  18. zenml/config/base_settings.py +5 -6
  19. zenml/config/build_configuration.py +1 -1
  20. zenml/config/compiler.py +3 -3
  21. zenml/config/docker_settings.py +27 -28
  22. zenml/config/global_config.py +33 -37
  23. zenml/config/pipeline_configurations.py +8 -11
  24. zenml/config/pipeline_run_configuration.py +6 -2
  25. zenml/config/pipeline_spec.py +3 -4
  26. zenml/config/resource_settings.py +8 -9
  27. zenml/config/schedule.py +16 -20
  28. zenml/config/secret_reference_mixin.py +6 -3
  29. zenml/config/secrets_store_config.py +16 -23
  30. zenml/config/server_config.py +50 -46
  31. zenml/config/settings_resolver.py +1 -1
  32. zenml/config/source.py +45 -35
  33. zenml/config/step_configurations.py +53 -31
  34. zenml/config/step_run_info.py +3 -0
  35. zenml/config/store_config.py +20 -19
  36. zenml/config/strict_base_model.py +2 -6
  37. zenml/constants.py +26 -2
  38. zenml/container_registries/base_container_registry.py +3 -2
  39. zenml/container_registries/default_container_registry.py +3 -3
  40. zenml/event_hub/base_event_hub.py +1 -1
  41. zenml/event_sources/base_event_source.py +11 -16
  42. zenml/exceptions.py +4 -0
  43. zenml/integrations/airflow/__init__.py +2 -6
  44. zenml/integrations/airflow/flavors/airflow_orchestrator_flavor.py +6 -7
  45. zenml/integrations/airflow/orchestrators/airflow_orchestrator.py +13 -249
  46. zenml/integrations/airflow/orchestrators/dag_generator.py +5 -3
  47. zenml/integrations/argilla/flavors/argilla_annotator_flavor.py +5 -4
  48. zenml/integrations/aws/__init__.py +1 -1
  49. zenml/integrations/aws/flavors/aws_container_registry_flavor.py +3 -2
  50. zenml/integrations/aws/flavors/sagemaker_orchestrator_flavor.py +11 -5
  51. zenml/integrations/aws/flavors/sagemaker_step_operator_flavor.py +6 -2
  52. zenml/integrations/aws/service_connectors/aws_service_connector.py +5 -4
  53. zenml/integrations/aws/step_operators/sagemaker_step_operator.py +1 -1
  54. zenml/integrations/azure/flavors/azureml_step_operator_flavor.py +4 -4
  55. zenml/integrations/azure/service_connectors/azure_service_connector.py +4 -3
  56. zenml/integrations/azure/step_operators/azureml_step_operator.py +2 -1
  57. zenml/integrations/bentoml/steps/bentoml_deployer.py +1 -1
  58. zenml/integrations/bitbucket/plugins/event_sources/bitbucket_webhook_event_source.py +8 -12
  59. zenml/integrations/comet/flavors/comet_experiment_tracker_flavor.py +1 -1
  60. zenml/integrations/constants.py +0 -1
  61. zenml/integrations/deepchecks/__init__.py +1 -0
  62. zenml/integrations/evidently/__init__.py +5 -3
  63. zenml/integrations/evidently/column_mapping.py +11 -3
  64. zenml/integrations/evidently/data_validators/evidently_data_validator.py +21 -3
  65. zenml/integrations/evidently/metrics.py +5 -6
  66. zenml/integrations/evidently/tests.py +5 -6
  67. zenml/integrations/facets/models.py +2 -6
  68. zenml/integrations/feast/__init__.py +3 -1
  69. zenml/integrations/feast/feature_stores/feast_feature_store.py +0 -23
  70. zenml/integrations/gcp/__init__.py +1 -1
  71. zenml/integrations/gcp/flavors/vertex_orchestrator_flavor.py +1 -1
  72. zenml/integrations/gcp/flavors/vertex_step_operator_flavor.py +1 -1
  73. zenml/integrations/gcp/orchestrators/vertex_orchestrator.py +234 -103
  74. zenml/integrations/gcp/service_connectors/gcp_service_connector.py +57 -42
  75. zenml/integrations/gcp/step_operators/vertex_step_operator.py +1 -0
  76. zenml/integrations/github/code_repositories/github_code_repository.py +1 -1
  77. zenml/integrations/github/plugins/event_sources/github_webhook_event_source.py +9 -13
  78. zenml/integrations/great_expectations/__init__.py +1 -1
  79. zenml/integrations/great_expectations/data_validators/ge_data_validator.py +44 -44
  80. zenml/integrations/great_expectations/flavors/great_expectations_data_validator_flavor.py +35 -2
  81. zenml/integrations/great_expectations/ge_store_backend.py +24 -11
  82. zenml/integrations/great_expectations/materializers/ge_materializer.py +3 -3
  83. zenml/integrations/great_expectations/utils.py +5 -5
  84. zenml/integrations/huggingface/__init__.py +3 -0
  85. zenml/integrations/huggingface/flavors/huggingface_model_deployer_flavor.py +1 -1
  86. zenml/integrations/huggingface/steps/__init__.py +3 -0
  87. zenml/integrations/huggingface/steps/accelerate_runner.py +149 -0
  88. zenml/integrations/huggingface/steps/huggingface_deployer.py +2 -2
  89. zenml/integrations/hyperai/flavors/hyperai_orchestrator_flavor.py +1 -1
  90. zenml/integrations/hyperai/service_connectors/hyperai_service_connector.py +4 -3
  91. zenml/integrations/kubeflow/__init__.py +1 -1
  92. zenml/integrations/kubeflow/flavors/kubeflow_orchestrator_flavor.py +48 -81
  93. zenml/integrations/kubeflow/orchestrators/kubeflow_orchestrator.py +295 -245
  94. zenml/integrations/kubernetes/flavors/kubernetes_orchestrator_flavor.py +1 -1
  95. zenml/integrations/kubernetes/orchestrators/kubernetes_orchestrator_entrypoint.py +11 -2
  96. zenml/integrations/kubernetes/pod_settings.py +17 -31
  97. zenml/integrations/kubernetes/service_connectors/kubernetes_service_connector.py +8 -7
  98. zenml/integrations/label_studio/__init__.py +1 -3
  99. zenml/integrations/label_studio/annotators/label_studio_annotator.py +3 -4
  100. zenml/integrations/label_studio/flavors/label_studio_annotator_flavor.py +2 -2
  101. zenml/integrations/langchain/__init__.py +5 -1
  102. zenml/integrations/langchain/materializers/document_materializer.py +44 -8
  103. zenml/integrations/mlflow/__init__.py +9 -3
  104. zenml/integrations/mlflow/experiment_trackers/mlflow_experiment_tracker.py +1 -1
  105. zenml/integrations/mlflow/flavors/mlflow_experiment_tracker_flavor.py +29 -37
  106. zenml/integrations/mlflow/model_registries/mlflow_model_registry.py +4 -4
  107. zenml/integrations/mlflow/steps/mlflow_deployer.py +1 -1
  108. zenml/integrations/neptune/flavors/neptune_experiment_tracker_flavor.py +1 -1
  109. zenml/integrations/neural_prophet/__init__.py +5 -1
  110. zenml/integrations/pigeon/flavors/pigeon_annotator_flavor.py +1 -1
  111. zenml/integrations/s3/flavors/s3_artifact_store_flavor.py +9 -8
  112. zenml/integrations/seldon/seldon_client.py +52 -67
  113. zenml/integrations/seldon/services/seldon_deployment.py +3 -3
  114. zenml/integrations/seldon/steps/seldon_deployer.py +4 -4
  115. zenml/integrations/skypilot/flavors/skypilot_orchestrator_base_vm_config.py +15 -5
  116. zenml/integrations/skypilot_aws/__init__.py +1 -1
  117. zenml/integrations/skypilot_aws/flavors/skypilot_orchestrator_aws_vm_flavor.py +1 -1
  118. zenml/integrations/skypilot_azure/__init__.py +1 -1
  119. zenml/integrations/skypilot_azure/flavors/skypilot_orchestrator_azure_vm_flavor.py +1 -1
  120. zenml/integrations/skypilot_gcp/__init__.py +2 -1
  121. zenml/integrations/skypilot_gcp/flavors/skypilot_orchestrator_gcp_vm_flavor.py +1 -1
  122. zenml/integrations/skypilot_lambda/flavors/skypilot_orchestrator_lambda_vm_flavor.py +2 -2
  123. zenml/integrations/spark/flavors/spark_step_operator_flavor.py +1 -1
  124. zenml/integrations/spark/step_operators/spark_step_operator.py +2 -0
  125. zenml/integrations/tekton/__init__.py +1 -1
  126. zenml/integrations/tekton/flavors/tekton_orchestrator_flavor.py +66 -23
  127. zenml/integrations/tekton/orchestrators/tekton_orchestrator.py +547 -233
  128. zenml/integrations/tensorboard/__init__.py +1 -12
  129. zenml/integrations/tensorboard/services/tensorboard_service.py +3 -5
  130. zenml/integrations/tensorboard/visualizers/tensorboard_visualizer.py +6 -6
  131. zenml/integrations/tensorflow/__init__.py +2 -10
  132. zenml/integrations/tensorflow/materializers/keras_materializer.py +17 -9
  133. zenml/integrations/wandb/flavors/wandb_experiment_tracker_flavor.py +9 -14
  134. zenml/integrations/whylogs/flavors/whylogs_data_validator_flavor.py +1 -1
  135. zenml/lineage_graph/lineage_graph.py +1 -1
  136. zenml/logging/step_logging.py +15 -7
  137. zenml/materializers/built_in_materializer.py +3 -3
  138. zenml/materializers/pydantic_materializer.py +2 -2
  139. zenml/metadata/lazy_load.py +4 -4
  140. zenml/metadata/metadata_types.py +64 -4
  141. zenml/model/model.py +79 -54
  142. zenml/model_deployers/base_model_deployer.py +14 -12
  143. zenml/model_registries/base_model_registry.py +17 -15
  144. zenml/models/__init__.py +79 -206
  145. zenml/models/v2/base/base.py +54 -41
  146. zenml/models/v2/base/base_plugin_flavor.py +2 -6
  147. zenml/models/v2/base/filter.py +91 -76
  148. zenml/models/v2/base/page.py +2 -12
  149. zenml/models/v2/base/scoped.py +4 -7
  150. zenml/models/v2/core/api_key.py +22 -8
  151. zenml/models/v2/core/artifact.py +2 -2
  152. zenml/models/v2/core/artifact_version.py +74 -40
  153. zenml/models/v2/core/code_repository.py +37 -10
  154. zenml/models/v2/core/component.py +65 -16
  155. zenml/models/v2/core/device.py +14 -4
  156. zenml/models/v2/core/event_source.py +1 -2
  157. zenml/models/v2/core/flavor.py +74 -8
  158. zenml/models/v2/core/logs.py +68 -8
  159. zenml/models/v2/core/model.py +8 -4
  160. zenml/models/v2/core/model_version.py +25 -6
  161. zenml/models/v2/core/model_version_artifact.py +51 -21
  162. zenml/models/v2/core/model_version_pipeline_run.py +45 -13
  163. zenml/models/v2/core/pipeline.py +37 -72
  164. zenml/models/v2/core/pipeline_build.py +29 -17
  165. zenml/models/v2/core/pipeline_deployment.py +18 -6
  166. zenml/models/v2/core/pipeline_namespace.py +113 -0
  167. zenml/models/v2/core/pipeline_run.py +50 -22
  168. zenml/models/v2/core/run_metadata.py +59 -36
  169. zenml/models/v2/core/schedule.py +37 -24
  170. zenml/models/v2/core/secret.py +31 -12
  171. zenml/models/v2/core/service.py +64 -36
  172. zenml/models/v2/core/service_account.py +24 -11
  173. zenml/models/v2/core/service_connector.py +219 -44
  174. zenml/models/v2/core/stack.py +45 -17
  175. zenml/models/v2/core/step_run.py +28 -8
  176. zenml/models/v2/core/tag.py +8 -4
  177. zenml/models/v2/core/trigger.py +2 -2
  178. zenml/models/v2/core/trigger_execution.py +1 -0
  179. zenml/models/v2/core/user.py +18 -21
  180. zenml/models/v2/core/workspace.py +13 -3
  181. zenml/models/v2/misc/build_item.py +3 -3
  182. zenml/models/v2/misc/external_user.py +2 -6
  183. zenml/models/v2/misc/hub_plugin_models.py +9 -9
  184. zenml/models/v2/misc/loaded_visualization.py +2 -2
  185. zenml/models/v2/misc/service_connector_type.py +8 -17
  186. zenml/models/v2/misc/user_auth.py +7 -2
  187. zenml/new/pipelines/build_utils.py +3 -3
  188. zenml/new/pipelines/pipeline.py +17 -13
  189. zenml/new/pipelines/run_utils.py +103 -1
  190. zenml/orchestrators/base_orchestrator.py +10 -7
  191. zenml/orchestrators/local_docker/local_docker_orchestrator.py +1 -1
  192. zenml/orchestrators/step_launcher.py +28 -4
  193. zenml/orchestrators/step_runner.py +3 -6
  194. zenml/orchestrators/utils.py +1 -1
  195. zenml/plugins/base_plugin_flavor.py +6 -10
  196. zenml/plugins/plugin_flavor_registry.py +3 -7
  197. zenml/secret/base_secret.py +7 -8
  198. zenml/service_connectors/docker_service_connector.py +4 -3
  199. zenml/service_connectors/service_connector.py +5 -12
  200. zenml/service_connectors/service_connector_registry.py +2 -4
  201. zenml/services/container/container_service.py +1 -1
  202. zenml/services/container/container_service_endpoint.py +1 -1
  203. zenml/services/local/local_service.py +1 -1
  204. zenml/services/local/local_service_endpoint.py +1 -1
  205. zenml/services/service.py +16 -10
  206. zenml/services/service_type.py +4 -5
  207. zenml/services/terraform/terraform_service.py +1 -1
  208. zenml/stack/flavor.py +1 -5
  209. zenml/stack/flavor_registry.py +4 -4
  210. zenml/stack/stack.py +4 -1
  211. zenml/stack/stack_component.py +55 -31
  212. zenml/step_operators/step_operator_entrypoint_configuration.py +1 -0
  213. zenml/steps/base_step.py +34 -28
  214. zenml/steps/entrypoint_function_utils.py +3 -5
  215. zenml/steps/utils.py +12 -14
  216. zenml/utils/cuda_utils.py +50 -0
  217. zenml/utils/deprecation_utils.py +18 -20
  218. zenml/utils/dict_utils.py +1 -1
  219. zenml/utils/filesync_model.py +65 -28
  220. zenml/utils/function_utils.py +260 -0
  221. zenml/utils/json_utils.py +131 -0
  222. zenml/utils/mlstacks_utils.py +2 -2
  223. zenml/utils/pipeline_docker_image_builder.py +9 -0
  224. zenml/utils/pydantic_utils.py +270 -62
  225. zenml/utils/secret_utils.py +65 -12
  226. zenml/utils/source_utils.py +2 -2
  227. zenml/utils/typed_model.py +5 -3
  228. zenml/utils/typing_utils.py +243 -0
  229. zenml/utils/yaml_utils.py +1 -1
  230. zenml/zen_server/auth.py +2 -2
  231. zenml/zen_server/cloud_utils.py +6 -6
  232. zenml/zen_server/deploy/base_provider.py +1 -1
  233. zenml/zen_server/deploy/deployment.py +6 -8
  234. zenml/zen_server/deploy/docker/docker_zen_server.py +3 -4
  235. zenml/zen_server/deploy/local/local_provider.py +0 -1
  236. zenml/zen_server/deploy/local/local_zen_server.py +6 -6
  237. zenml/zen_server/deploy/terraform/terraform_zen_server.py +4 -6
  238. zenml/zen_server/exceptions.py +4 -1
  239. zenml/zen_server/feature_gate/zenml_cloud_feature_gate.py +1 -1
  240. zenml/zen_server/pipeline_deployment/utils.py +48 -68
  241. zenml/zen_server/rbac/models.py +2 -5
  242. zenml/zen_server/rbac/utils.py +11 -14
  243. zenml/zen_server/routers/auth_endpoints.py +2 -2
  244. zenml/zen_server/routers/pipeline_builds_endpoints.py +1 -1
  245. zenml/zen_server/routers/runs_endpoints.py +1 -1
  246. zenml/zen_server/routers/secrets_endpoints.py +3 -2
  247. zenml/zen_server/routers/server_endpoints.py +1 -1
  248. zenml/zen_server/routers/steps_endpoints.py +1 -1
  249. zenml/zen_server/routers/workspaces_endpoints.py +1 -1
  250. zenml/zen_stores/base_zen_store.py +46 -9
  251. zenml/zen_stores/migrations/utils.py +42 -46
  252. zenml/zen_stores/migrations/versions/0701da9951a0_added_service_table.py +1 -1
  253. zenml/zen_stores/migrations/versions/1041bc644e0d_remove_secrets_manager.py +5 -3
  254. zenml/zen_stores/migrations/versions/10a907dad202_delete_mlmd_tables.py +1 -1
  255. zenml/zen_stores/migrations/versions/26b776ad583e_redesign_artifacts.py +8 -10
  256. zenml/zen_stores/migrations/versions/37835ce041d2_optimizing_database.py +3 -3
  257. zenml/zen_stores/migrations/versions/46506f72f0ed_add_server_settings.py +10 -12
  258. zenml/zen_stores/migrations/versions/5994f9ad0489_introduce_role_permissions.py +3 -2
  259. zenml/zen_stores/migrations/versions/6917bce75069_add_pipeline_run_unique_constraint.py +4 -4
  260. zenml/zen_stores/migrations/versions/728c6369cfaa_add_name_column_to_input_artifact_pk.py +3 -2
  261. zenml/zen_stores/migrations/versions/743ec82b1b3c_update_size_of_build_images.py +2 -2
  262. zenml/zen_stores/migrations/versions/7500f434b71c_remove_shared_columns.py +3 -2
  263. zenml/zen_stores/migrations/versions/7834208cc3f6_artifact_project_scoping.py +8 -7
  264. zenml/zen_stores/migrations/versions/7b651bf6822e_track_secrets_in_db.py +6 -4
  265. zenml/zen_stores/migrations/versions/7e4a481d17f7_add_identity_table.py +2 -2
  266. zenml/zen_stores/migrations/versions/7f603e583dd7_fixed_migration.py +1 -1
  267. zenml/zen_stores/migrations/versions/a39c4184c8ce_remove_secrets_manager_flavors.py +2 -2
  268. zenml/zen_stores/migrations/versions/a91762e6be36_artifact_version_table.py +4 -4
  269. zenml/zen_stores/migrations/versions/alembic_start.py +1 -1
  270. zenml/zen_stores/migrations/versions/fbd7f18ced1e_increase_step_run_field_lengths.py +4 -4
  271. zenml/zen_stores/rest_zen_store.py +109 -49
  272. zenml/zen_stores/schemas/api_key_schemas.py +1 -1
  273. zenml/zen_stores/schemas/artifact_schemas.py +8 -8
  274. zenml/zen_stores/schemas/artifact_visualization_schemas.py +3 -3
  275. zenml/zen_stores/schemas/code_repository_schemas.py +1 -1
  276. zenml/zen_stores/schemas/component_schemas.py +8 -3
  277. zenml/zen_stores/schemas/device_schemas.py +8 -6
  278. zenml/zen_stores/schemas/event_source_schemas.py +3 -4
  279. zenml/zen_stores/schemas/flavor_schemas.py +5 -3
  280. zenml/zen_stores/schemas/model_schemas.py +26 -1
  281. zenml/zen_stores/schemas/pipeline_build_schemas.py +1 -1
  282. zenml/zen_stores/schemas/pipeline_deployment_schemas.py +4 -4
  283. zenml/zen_stores/schemas/pipeline_run_schemas.py +6 -6
  284. zenml/zen_stores/schemas/pipeline_schemas.py +5 -2
  285. zenml/zen_stores/schemas/run_metadata_schemas.py +2 -2
  286. zenml/zen_stores/schemas/secret_schemas.py +8 -5
  287. zenml/zen_stores/schemas/server_settings_schemas.py +3 -1
  288. zenml/zen_stores/schemas/service_connector_schemas.py +1 -1
  289. zenml/zen_stores/schemas/service_schemas.py +11 -2
  290. zenml/zen_stores/schemas/stack_schemas.py +1 -1
  291. zenml/zen_stores/schemas/step_run_schemas.py +11 -11
  292. zenml/zen_stores/schemas/tag_schemas.py +6 -2
  293. zenml/zen_stores/schemas/trigger_schemas.py +2 -2
  294. zenml/zen_stores/schemas/user_schemas.py +2 -2
  295. zenml/zen_stores/schemas/workspace_schemas.py +3 -1
  296. zenml/zen_stores/secrets_stores/aws_secrets_store.py +19 -20
  297. zenml/zen_stores/secrets_stores/azure_secrets_store.py +17 -20
  298. zenml/zen_stores/secrets_stores/base_secrets_store.py +79 -12
  299. zenml/zen_stores/secrets_stores/gcp_secrets_store.py +17 -20
  300. zenml/zen_stores/secrets_stores/hashicorp_secrets_store.py +4 -8
  301. zenml/zen_stores/secrets_stores/service_connector_secrets_store.py +10 -7
  302. zenml/zen_stores/secrets_stores/sql_secrets_store.py +5 -6
  303. zenml/zen_stores/sql_zen_store.py +196 -120
  304. zenml/zen_stores/zen_store_interface.py +33 -0
  305. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/METADATA +9 -7
  306. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/RECORD +309 -306
  307. zenml/integrations/kubeflow/utils.py +0 -95
  308. zenml/models/v2/base/internal.py +0 -37
  309. zenml/models/v2/base/update.py +0 -44
  310. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/LICENSE +0 -0
  311. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/WHEEL +0 -0
  312. {zenml_nightly-0.58.2.dev20240617.dist-info → zenml_nightly-0.58.2.dev20240619.dist-info}/entry_points.txt +0 -0
@@ -1,95 +0,0 @@
1
- # Copyright (c) ZenML GmbH 2022. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at:
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
- # or implied. See the License for the specific language governing
13
- # permissions and limitations under the License.
14
- """KFP utilities."""
15
-
16
- from typing import TYPE_CHECKING
17
-
18
- from zenml.integrations.kubernetes import serialization_utils
19
- from zenml.integrations.kubernetes.pod_settings import KubernetesPodSettings
20
- from zenml.logger import get_logger
21
-
22
- logger = get_logger(__name__)
23
-
24
- if TYPE_CHECKING:
25
- from kfp.dsl import ContainerOp
26
-
27
-
28
- def apply_pod_settings(
29
- container_op: "ContainerOp",
30
- settings: KubernetesPodSettings,
31
- ) -> None:
32
- """Applies Kubernetes Pod settings to a KFP container.
33
-
34
- Args:
35
- container_op: The container to which to apply the settings.
36
- settings: The settings to apply.
37
- """
38
- from kubernetes.client.models import (
39
- V1Affinity,
40
- V1Toleration,
41
- V1Volume,
42
- V1VolumeMount,
43
- )
44
-
45
- if settings.host_ipc:
46
- logger.warning(
47
- "Host IPC is set to `True` but not supported in this orchestrator. "
48
- "Ignoring..."
49
- )
50
-
51
- for key, value in settings.node_selectors.items():
52
- container_op.add_node_selector_constraint(label_name=key, value=value)
53
-
54
- if settings.affinity:
55
- affinity: V1Affinity = (
56
- serialization_utils.deserialize_kubernetes_model(
57
- settings.affinity, "V1Affinity"
58
- )
59
- )
60
- container_op.add_affinity(affinity)
61
-
62
- for toleration_dict in settings.tolerations:
63
- toleration: V1Toleration = (
64
- serialization_utils.deserialize_kubernetes_model(
65
- toleration_dict, "V1Toleration"
66
- )
67
- )
68
- container_op.add_toleration(toleration)
69
-
70
- if settings.volumes:
71
- for v in settings.volumes:
72
- volume: V1Volume = (
73
- serialization_utils.deserialize_kubernetes_model(v, "V1Volume")
74
- )
75
- container_op.add_volume(volume)
76
-
77
- if settings.volume_mounts:
78
- for v in settings.volume_mounts:
79
- volume_mount: V1VolumeMount = (
80
- serialization_utils.deserialize_kubernetes_model(
81
- v, "V1VolumeMount"
82
- )
83
- )
84
- container_op.container.add_volume_mount(volume_mount)
85
-
86
- resource_requests = settings.resources.get("requests") or {}
87
- for name, value in resource_requests.items():
88
- container_op.add_resource_request(name, value)
89
-
90
- resource_limits = settings.resources.get("limits") or {}
91
- for name, value in resource_limits.items():
92
- container_op.add_resource_limit(name, value)
93
-
94
- for name, value in settings.annotations.items():
95
- container_op.add_pod_annotation(name, value)
@@ -1,37 +0,0 @@
1
- # Copyright (c) ZenML GmbH 2023. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at:
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
- # or implied. See the License for the specific language governing
13
- # permissions and limitations under the License.
14
- """Utility methods for internal models."""
15
-
16
- from typing import Type, TypeVar
17
-
18
- from zenml.models.v2.base.base import BaseRequest
19
-
20
- T = TypeVar("T", bound="BaseRequest")
21
-
22
-
23
- def server_owned_request_model(_cls: Type[T]) -> Type[T]:
24
- """Convert a request model to a model which does not require a user ID.
25
-
26
- Args:
27
- _cls: The class to decorate
28
-
29
- Returns:
30
- The decorated class.
31
- """
32
- if user_field := _cls.__fields__.get("user", None):
33
- user_field.required = False
34
- user_field.allow_none = True
35
- user_field.default = None
36
-
37
- return _cls
@@ -1,44 +0,0 @@
1
- # Copyright (c) ZenML GmbH 2023. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at:
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
12
- # or implied. See the License for the specific language governing
13
- # permissions and limitations under the License.
14
- """Utility methods for base models."""
15
-
16
- from typing import TYPE_CHECKING, Type, TypeVar
17
-
18
- from pydantic.config import Extra
19
-
20
- if TYPE_CHECKING:
21
- from zenml.models.v2.base.base import BaseRequest
22
-
23
- T = TypeVar("T", bound=BaseRequest)
24
-
25
-
26
- def update_model(_cls: Type["T"]) -> Type["T"]:
27
- """Base update model.
28
-
29
- This is used as a decorator on top of request models to convert them
30
- into update models where the fields are optional and can be set to None.
31
-
32
- Args:
33
- _cls: The class to decorate
34
-
35
- Returns:
36
- The decorated class.
37
- """
38
- for _, value in _cls.__fields__.items():
39
- value.required = False
40
- value.allow_none = True
41
-
42
- _cls.__config__.extra = Extra.ignore
43
-
44
- return _cls