polyaxon 2.1.0rc9__py3-none-any.whl → 2.6.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.
- polyaxon/_auxiliaries/default_scheduling.py +17 -7
- polyaxon/_auxiliaries/init.py +14 -6
- polyaxon/_auxiliaries/sidecar.py +10 -8
- polyaxon/_cli/artifacts.py +96 -11
- polyaxon/_cli/components.py +96 -11
- polyaxon/_cli/config.py +31 -0
- polyaxon/_cli/dashboard.py +12 -2
- polyaxon/_cli/init.py +1 -1
- polyaxon/_cli/models.py +96 -11
- polyaxon/_cli/operations.py +133 -58
- polyaxon/_cli/project_versions.py +139 -6
- polyaxon/_cli/projects.py +23 -9
- polyaxon/_cli/run.py +43 -9
- polyaxon/_cli/services/agent.py +2 -2
- polyaxon/_cli/version.py +4 -1
- polyaxon/_client/mixin.py +39 -0
- polyaxon/_client/project.py +218 -23
- polyaxon/_client/run.py +84 -27
- polyaxon/_compiler/contexts/contexts.py +4 -0
- polyaxon/_compiler/contexts/ray_job.py +4 -2
- polyaxon/_compiler/resolver/agent.py +22 -10
- polyaxon/_compiler/resolver/runtime.py +7 -3
- polyaxon/_constants/metadata.py +1 -0
- polyaxon/_contexts/keys.py +1 -0
- polyaxon/_contexts/paths.py +1 -1
- polyaxon/_deploy/operators/compose.py +1 -27
- polyaxon/_deploy/schemas/auth.py +3 -3
- polyaxon/_deploy/schemas/celery.py +10 -8
- polyaxon/_deploy/schemas/deployment.py +148 -115
- polyaxon/_deploy/schemas/email.py +8 -8
- polyaxon/_deploy/schemas/ingress.py +7 -7
- polyaxon/_deploy/schemas/intervals.py +2 -7
- polyaxon/_deploy/schemas/operators.py +8 -8
- polyaxon/_deploy/schemas/proxy.py +9 -8
- polyaxon/_deploy/schemas/rbac.py +1 -1
- polyaxon/_deploy/schemas/root_user.py +5 -5
- polyaxon/_deploy/schemas/security_context.py +25 -15
- polyaxon/_deploy/schemas/service.py +75 -66
- polyaxon/_deploy/schemas/ssl.py +3 -3
- polyaxon/_deploy/schemas/ui.py +10 -6
- polyaxon/_docker/builder/builder.py +4 -1
- polyaxon/_docker/converter/base/containers.py +4 -7
- polyaxon/_docker/converter/base/env_vars.py +5 -5
- polyaxon/_docker/converter/base/mounts.py +2 -2
- polyaxon/_docker/docker_types.py +57 -30
- polyaxon/_env_vars/getters/owner_entity.py +4 -2
- polyaxon/_env_vars/getters/project.py +4 -2
- polyaxon/_env_vars/getters/run.py +5 -2
- polyaxon/_env_vars/keys.py +3 -0
- polyaxon/_flow/__init__.py +3 -2
- polyaxon/_flow/builds/__init__.py +8 -8
- polyaxon/_flow/cache/__init__.py +4 -4
- polyaxon/_flow/component/base.py +25 -18
- polyaxon/_flow/component/component.py +4 -3
- polyaxon/_flow/early_stopping/__init__.py +1 -1
- polyaxon/_flow/early_stopping/policies.py +12 -10
- polyaxon/_flow/environment/__init__.py +43 -25
- polyaxon/_flow/events/__init__.py +1 -1
- polyaxon/_flow/hooks/__init__.py +11 -11
- polyaxon/_flow/init/__init__.py +41 -25
- polyaxon/_flow/io/io.py +57 -47
- polyaxon/_flow/joins/__init__.py +5 -5
- polyaxon/_flow/matrix/bayes.py +23 -17
- polyaxon/_flow/matrix/grid_search.py +16 -7
- polyaxon/_flow/matrix/hyperband.py +10 -10
- polyaxon/_flow/matrix/hyperopt.py +14 -9
- polyaxon/_flow/matrix/iterative.py +14 -8
- polyaxon/_flow/matrix/mapping.py +4 -4
- polyaxon/_flow/matrix/params.py +138 -77
- polyaxon/_flow/matrix/random_search.py +10 -5
- polyaxon/_flow/matrix/tuner.py +4 -4
- polyaxon/_flow/mounts/artifacts_mounts.py +1 -1
- polyaxon/_flow/notifications/__init__.py +1 -1
- polyaxon/_flow/operations/base.py +10 -8
- polyaxon/_flow/operations/compiled_operation.py +5 -4
- polyaxon/_flow/operations/operation.py +57 -41
- polyaxon/_flow/optimization/__init__.py +2 -2
- polyaxon/_flow/params/params.py +10 -9
- polyaxon/_flow/plugins/__init__.py +19 -13
- polyaxon/_flow/run/dag.py +12 -9
- polyaxon/_flow/run/dask/dask.py +4 -4
- polyaxon/_flow/run/dask/replica.py +17 -11
- polyaxon/_flow/run/job.py +17 -11
- polyaxon/_flow/run/kubeflow/mpi_job.py +10 -5
- polyaxon/_flow/run/kubeflow/mx_job.py +25 -9
- polyaxon/_flow/run/kubeflow/paddle_job.py +16 -9
- polyaxon/_flow/run/kubeflow/pytorch_job.py +24 -17
- polyaxon/_flow/run/kubeflow/replica.py +17 -11
- polyaxon/_flow/run/kubeflow/scheduling_policy.py +7 -5
- polyaxon/_flow/run/kubeflow/tf_job.py +15 -8
- polyaxon/_flow/run/kubeflow/xgboost_job.py +9 -4
- polyaxon/_flow/run/ray/ray.py +9 -6
- polyaxon/_flow/run/ray/replica.py +25 -16
- polyaxon/_flow/run/resources.py +14 -13
- polyaxon/_flow/run/service.py +4 -4
- polyaxon/_flow/schedules/cron.py +4 -4
- polyaxon/_flow/schedules/interval.py +4 -4
- polyaxon/_flow/templates/__init__.py +3 -3
- polyaxon/_flow/termination/__init__.py +3 -3
- polyaxon/_fs/async_manager.py +1 -1
- polyaxon/_fs/fs.py +1 -1
- polyaxon/_fs/watcher.py +26 -27
- polyaxon/_k8s/converter/base/base.py +2 -1
- polyaxon/_k8s/converter/base/main.py +1 -0
- polyaxon/_k8s/converter/common/accelerators.py +7 -4
- polyaxon/_k8s/converter/converters/ray_job.py +4 -2
- polyaxon/_k8s/custom_resources/dask_job.py +3 -0
- polyaxon/_k8s/custom_resources/kubeflow/common.py +4 -1
- polyaxon/_k8s/custom_resources/ray_job.py +3 -0
- polyaxon/_k8s/custom_resources/setter.py +1 -1
- polyaxon/_k8s/executor/async_executor.py +2 -0
- polyaxon/_k8s/k8s_validation.py +1 -1
- polyaxon/_k8s/logging/async_monitor.py +82 -11
- polyaxon/_k8s/manager/async_manager.py +15 -0
- polyaxon/_k8s/manager/manager.py +16 -1
- polyaxon/_local_process/__init__.py +0 -0
- polyaxon/_local_process/agent.py +6 -0
- polyaxon/_local_process/converter/__init__.py +1 -0
- polyaxon/_local_process/converter/base/__init__.py +1 -0
- polyaxon/_local_process/converter/base/base.py +140 -0
- polyaxon/_local_process/converter/base/containers.py +66 -0
- polyaxon/_local_process/converter/base/env_vars.py +253 -0
- polyaxon/_local_process/converter/base/init.py +414 -0
- polyaxon/_local_process/converter/base/main.py +74 -0
- polyaxon/_local_process/converter/base/mounts.py +82 -0
- polyaxon/_local_process/converter/converters/__init__.py +8 -0
- polyaxon/_local_process/converter/converters/job.py +40 -0
- polyaxon/_local_process/converter/converters/service.py +41 -0
- polyaxon/_local_process/converter/mixins.py +38 -0
- polyaxon/_local_process/executor.py +132 -0
- polyaxon/_local_process/process_types.py +42 -0
- polyaxon/_polyaxonfile/specs/compiled_operation.py +1 -1
- polyaxon/_polyaxonfile/specs/libs/parser.py +1 -1
- polyaxon/_polyaxonfile/specs/libs/validator.py +1 -1
- polyaxon/_polyaxonfile/specs/operation.py +1 -1
- polyaxon/_polyaxonfile/specs/sections.py +8 -0
- polyaxon/_pql/manager.py +1 -1
- polyaxon/_runner/agent/async_agent.py +25 -11
- polyaxon/_runner/agent/base_agent.py +19 -10
- polyaxon/_runner/agent/sync_agent.py +24 -10
- polyaxon/_runner/converter/converter.py +12 -4
- polyaxon/_runner/executor.py +1 -1
- polyaxon/_schemas/agent.py +69 -37
- polyaxon/_schemas/authentication.py +4 -4
- polyaxon/_schemas/base.py +26 -2
- polyaxon/_schemas/checks.py +3 -3
- polyaxon/_schemas/cli.py +4 -6
- polyaxon/_schemas/client.py +20 -18
- polyaxon/_schemas/compatibility.py +4 -4
- polyaxon/_schemas/container_resources.py +1 -1
- polyaxon/_schemas/home.py +3 -3
- polyaxon/_schemas/installation.py +13 -9
- polyaxon/_schemas/lifecycle.py +23 -23
- polyaxon/_schemas/log_handler.py +2 -2
- polyaxon/_schemas/services.py +26 -14
- polyaxon/_schemas/types/artifacts.py +3 -3
- polyaxon/_schemas/types/dockerfile.py +14 -12
- polyaxon/_schemas/types/event.py +2 -2
- polyaxon/_schemas/types/file.py +3 -3
- polyaxon/_schemas/types/git.py +12 -4
- polyaxon/_schemas/types/tensorboard.py +14 -8
- polyaxon/_schemas/user.py +3 -3
- polyaxon/_schemas/version.py +2 -2
- polyaxon/_sdk/api/agents_v1_api.py +222 -43
- polyaxon/_sdk/api/artifacts_stores_v1_api.py +3 -3
- polyaxon/_sdk/api/auth_v1_api.py +13 -13
- polyaxon/_sdk/api/connections_v1_api.py +15 -15
- polyaxon/_sdk/api/dashboards_v1_api.py +15 -15
- polyaxon/_sdk/api/organizations_v1_api.py +85 -85
- polyaxon/_sdk/api/presets_v1_api.py +15 -15
- polyaxon/_sdk/api/project_dashboards_v1_api.py +29 -29
- polyaxon/_sdk/api/project_searches_v1_api.py +29 -29
- polyaxon/_sdk/api/projects_v1_api.py +284 -107
- polyaxon/_sdk/api/queues_v1_api.py +19 -19
- polyaxon/_sdk/api/runs_v1_api.py +313 -359
- polyaxon/_sdk/api/searches_v1_api.py +15 -15
- polyaxon/_sdk/api/service_accounts_v1_api.py +31 -31
- polyaxon/_sdk/api/tags_v1_api.py +17 -17
- polyaxon/_sdk/api/teams_v1_api.py +2854 -402
- polyaxon/_sdk/api/users_v1_api.py +254 -78
- polyaxon/_sdk/api/versions_v1_api.py +7 -7
- polyaxon/_sdk/async_client/api_client.py +4 -0
- polyaxon/_sdk/schemas/__init__.py +1 -1
- polyaxon/_sdk/schemas/v1_activity.py +8 -8
- polyaxon/_sdk/schemas/v1_agent.py +18 -16
- polyaxon/_sdk/schemas/v1_agent_state_response.py +4 -4
- polyaxon/_sdk/schemas/v1_agent_state_response_agent_state.py +10 -10
- polyaxon/_sdk/schemas/v1_agent_status_body_request.py +3 -3
- polyaxon/_sdk/schemas/v1_analytics_spec.py +4 -4
- polyaxon/_sdk/schemas/v1_artifact_tree.py +3 -3
- polyaxon/_sdk/schemas/v1_auth.py +1 -1
- polyaxon/_sdk/schemas/v1_cloning.py +3 -3
- polyaxon/_sdk/schemas/v1_connection_response.py +9 -9
- polyaxon/_sdk/schemas/v1_dashboard.py +9 -9
- polyaxon/_sdk/schemas/v1_dashboard_spec.py +5 -1
- polyaxon/_sdk/schemas/v1_entities_tags.py +2 -2
- polyaxon/_sdk/schemas/v1_entities_transfer.py +2 -2
- polyaxon/_sdk/schemas/v1_entity_notification_body.py +7 -7
- polyaxon/_sdk/schemas/v1_entity_stage_body_request.py +5 -5
- polyaxon/_sdk/schemas/v1_entity_status_body_request.py +5 -5
- polyaxon/_sdk/schemas/v1_events_response.py +2 -2
- polyaxon/_sdk/schemas/v1_list_activities_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_agents_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_bookmarks_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_connections_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_dashboards_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_organization_members_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_organizations_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_presets_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_project_versions_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_projects_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_queues_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_run_artifacts_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_run_connections_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_run_edges_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_runs_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_searches_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_service_accounts_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_tags_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_team_members_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_teams_response.py +4 -4
- polyaxon/_sdk/schemas/v1_list_token_response.py +4 -4
- polyaxon/_sdk/schemas/v1_operation_body.py +8 -8
- polyaxon/_sdk/schemas/v1_organization.py +16 -16
- polyaxon/_sdk/schemas/v1_organization_member.py +6 -6
- polyaxon/_sdk/schemas/v1_password_change.py +3 -3
- polyaxon/_sdk/schemas/v1_pipeline.py +3 -3
- polyaxon/_sdk/schemas/v1_preset.py +16 -9
- polyaxon/_sdk/schemas/v1_project.py +17 -17
- polyaxon/_sdk/schemas/v1_project_settings.py +12 -10
- polyaxon/_sdk/schemas/v1_project_version.py +20 -20
- polyaxon/_sdk/schemas/v1_queue.py +12 -12
- polyaxon/_sdk/schemas/v1_run.py +38 -38
- polyaxon/_sdk/schemas/v1_run_connection.py +3 -3
- polyaxon/_sdk/schemas/v1_run_edge.py +5 -5
- polyaxon/_sdk/schemas/v1_run_edge_lineage.py +3 -3
- polyaxon/_sdk/schemas/v1_run_edges_graph.py +1 -1
- polyaxon/_sdk/schemas/v1_run_reference_catalog.py +4 -4
- polyaxon/_sdk/schemas/v1_run_settings.py +9 -9
- polyaxon/_sdk/schemas/v1_search.py +10 -10
- polyaxon/_sdk/schemas/v1_search_spec.py +14 -14
- polyaxon/_sdk/schemas/v1_section_spec.py +12 -7
- polyaxon/_sdk/schemas/v1_service_account.py +9 -9
- polyaxon/_sdk/schemas/v1_settings_catalog.py +4 -3
- polyaxon/_sdk/schemas/v1_tag.py +6 -6
- polyaxon/_sdk/schemas/v1_team.py +11 -8
- polyaxon/_sdk/schemas/v1_team_member.py +6 -6
- polyaxon/_sdk/schemas/v1_team_settings.py +2 -2
- polyaxon/_sdk/schemas/v1_token.py +10 -10
- polyaxon/_sdk/schemas/v1_trial_start.py +6 -6
- polyaxon/_sdk/schemas/v1_user.py +6 -7
- polyaxon/_sdk/schemas/v1_user_access.py +17 -0
- polyaxon/_sdk/schemas/v1_user_email.py +1 -1
- polyaxon/_sdk/schemas/v1_user_singup.py +5 -5
- polyaxon/_sdk/schemas/v1_uuids.py +1 -1
- polyaxon/_sidecar/container/__init__.py +39 -20
- polyaxon/_sidecar/container/monitors/logs.py +10 -13
- polyaxon/_sidecar/ignore.py +0 -1
- polyaxon/_utils/cli_constants.py +2 -0
- polyaxon/_utils/fqn_utils.py +25 -2
- polyaxon/_utils/test_utils.py +2 -1
- polyaxon/pkg.py +1 -1
- polyaxon/schemas.py +1 -1
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/METADATA +43 -43
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/RECORD +269 -252
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/WHEEL +1 -1
- polyaxon/_sdk/schemas/v1_project_user_access.py +0 -10
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/LICENSE +0 -0
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/entry_points.txt +0 -0
- {polyaxon-2.1.0rc9.dist-info → polyaxon-2.6.0.dist-info}/top_level.txt +0 -0
polyaxon/_flow/__init__.py
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
from clipped.compact.pydantic import model_rebuild
|
2
|
+
|
1
3
|
from polyaxon._flow.builds import V1Build
|
2
4
|
from polyaxon._flow.cache import V1Cache
|
3
5
|
from polyaxon._flow.component import V1Component
|
@@ -106,5 +108,4 @@ from polyaxon._flow.termination import V1Termination
|
|
106
108
|
from polyaxon._flow.trigger_policies import V1TriggerPolicy
|
107
109
|
|
108
110
|
# Forward references for operations and components
|
109
|
-
V1Dag
|
110
|
-
V1Dag.update_forward_refs(V1Component=V1Component)
|
111
|
+
model_rebuild(V1Dag, V1Operation=V1Operation, V1Component=V1Component)
|
@@ -222,13 +222,13 @@ class V1Build(BaseSchemaModel):
|
|
222
222
|
|
223
223
|
_IDENTIFIER = "build"
|
224
224
|
hub_ref: StrictStr = Field(alias="hubRef")
|
225
|
-
connection: Optional[StrictStr]
|
226
|
-
presets: Optional[Union[List[StrictStr], RefField]]
|
227
|
-
queue: Optional[StrictStr]
|
228
|
-
namespace: Optional[StrictStr]
|
229
|
-
cache: Optional[Union[V1Cache, RefField]]
|
230
|
-
params: Optional[Dict[str, Union[V1Param, RefField]]]
|
231
|
-
run_patch: Optional[Dict[str, Any]] = Field(alias="runPatch")
|
225
|
+
connection: Optional[StrictStr] = None
|
226
|
+
presets: Optional[Union[List[StrictStr], RefField]] = None
|
227
|
+
queue: Optional[StrictStr] = None
|
228
|
+
namespace: Optional[StrictStr] = None
|
229
|
+
cache: Optional[Union[V1Cache, RefField]] = None
|
230
|
+
params: Optional[Dict[str, Union[V1Param, RefField]]] = None
|
231
|
+
run_patch: Optional[Dict[str, Any]] = Field(alias="runPatch", default=None)
|
232
232
|
patch_strategy: Optional[Union[PatchStrategy, RefField]] = Field(
|
233
|
-
alias="patchStrategy"
|
233
|
+
alias="patchStrategy", default=None
|
234
234
|
)
|
polyaxon/_flow/cache/__init__.py
CHANGED
@@ -99,7 +99,7 @@ class V1Cache(BaseSchemaModel):
|
|
99
99
|
|
100
100
|
_IDENTIFIER = "cache"
|
101
101
|
|
102
|
-
disable: Optional[BoolOrRef]
|
103
|
-
ttl: Optional[IntOrRef]
|
104
|
-
io: Optional[Union[List[StrictStr], RefField]]
|
105
|
-
sections: Optional[Union[List[CacheSection], RefField]]
|
102
|
+
disable: Optional[BoolOrRef] = None
|
103
|
+
ttl: Optional[IntOrRef] = None
|
104
|
+
io: Optional[Union[List[StrictStr], RefField]] = None
|
105
|
+
sections: Optional[Union[List[CacheSection], RefField]] = None
|
polyaxon/_flow/component/base.py
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
from typing import List, Optional, Union
|
2
2
|
|
3
|
-
from clipped.compact.pydantic import
|
3
|
+
from clipped.compact.pydantic import (
|
4
|
+
NAME_REGEX,
|
5
|
+
Field,
|
6
|
+
StrictStr,
|
7
|
+
field_validator,
|
8
|
+
patter_constr,
|
9
|
+
validation_before,
|
10
|
+
)
|
4
11
|
from clipped.types.ref_or_obj import BoolOrRef, FloatOrRef, RefField
|
5
12
|
from clipped.utils.lists import to_list
|
6
13
|
|
@@ -9,27 +16,27 @@ from polyaxon._flow.cache import V1Cache
|
|
9
16
|
from polyaxon._flow.hooks import V1Hook
|
10
17
|
from polyaxon._flow.plugins import V1Plugins
|
11
18
|
from polyaxon._flow.termination import V1Termination
|
12
|
-
from polyaxon._schemas.base import
|
19
|
+
from polyaxon._schemas.base import BaseSchemaModel
|
13
20
|
|
14
21
|
|
15
22
|
class BaseComponent(BaseSchemaModel):
|
16
|
-
version: Optional[float]
|
17
|
-
kind: Optional[StrictStr]
|
18
|
-
name: Optional[Union[
|
19
|
-
description: Optional[StrictStr]
|
20
|
-
tags: Optional[List[StrictStr]]
|
21
|
-
presets: Optional[List[StrictStr]]
|
22
|
-
queue: Optional[StrictStr]
|
23
|
-
namespace: Optional[StrictStr]
|
24
|
-
cache: Optional[Union[V1Cache, RefField]]
|
25
|
-
termination: Optional[Union[V1Termination, RefField]]
|
26
|
-
plugins: Optional[Union[V1Plugins, RefField]]
|
27
|
-
build: Optional[Union[V1Build, RefField]]
|
28
|
-
hooks: Optional[Union[List[V1Hook], RefField]]
|
29
|
-
is_approved: Optional[BoolOrRef] = Field(alias="isApproved")
|
30
|
-
cost: Optional[FloatOrRef]
|
23
|
+
version: Optional[float] = None
|
24
|
+
kind: Optional[StrictStr] = None
|
25
|
+
name: Optional[Union[patter_constr(pattern=NAME_REGEX), RefField]] = None
|
26
|
+
description: Optional[StrictStr] = None
|
27
|
+
tags: Optional[List[StrictStr]] = None
|
28
|
+
presets: Optional[List[StrictStr]] = None
|
29
|
+
queue: Optional[StrictStr] = None
|
30
|
+
namespace: Optional[StrictStr] = None
|
31
|
+
cache: Optional[Union[V1Cache, RefField]] = None
|
32
|
+
termination: Optional[Union[V1Termination, RefField]] = None
|
33
|
+
plugins: Optional[Union[V1Plugins, RefField]] = None
|
34
|
+
build: Optional[Union[V1Build, RefField]] = None
|
35
|
+
hooks: Optional[Union[List[V1Hook], RefField]] = None
|
36
|
+
is_approved: Optional[BoolOrRef] = Field(alias="isApproved", default=None)
|
37
|
+
cost: Optional[FloatOrRef] = None
|
31
38
|
|
32
|
-
@
|
39
|
+
@field_validator("tags", "presets", **validation_before)
|
33
40
|
def validate_str_list(cls, v):
|
34
41
|
if isinstance(v, str):
|
35
42
|
return to_list(v, check_str=True)
|
@@ -375,12 +375,13 @@ class V1Component(
|
|
375
375
|
"""
|
376
376
|
|
377
377
|
_IDENTIFIER = "component"
|
378
|
+
_CUSTOM_DUMP_FIELDS = {"run"}
|
378
379
|
|
379
380
|
kind: Literal[_IDENTIFIER] = _IDENTIFIER
|
380
|
-
inputs: Optional[List[V1IO]]
|
381
|
-
outputs: Optional[List[V1IO]]
|
381
|
+
inputs: Optional[List[V1IO]] = None
|
382
|
+
outputs: Optional[List[V1IO]] = None
|
382
383
|
run: Union[V1Runtime]
|
383
|
-
template: Optional[V1Template]
|
384
|
+
template: Optional[V1Template] = None
|
384
385
|
|
385
386
|
def get_run_kind(self):
|
386
387
|
return self.run.kind if self.run else None
|
@@ -13,9 +13,9 @@ class V1MedianStoppingPolicy(BaseSchemaModel):
|
|
13
13
|
_USE_DISCRIMINATOR = True
|
14
14
|
|
15
15
|
kind: Literal[_IDENTIFIER] = _IDENTIFIER
|
16
|
-
evaluation_interval: IntOrRef = Field(alias="evaluationInterval")
|
17
|
-
min_interval: Optional[IntOrRef] = Field(alias="minInterval")
|
18
|
-
min_samples: Optional[IntOrRef] = Field(alias="minSamples")
|
16
|
+
evaluation_interval: IntOrRef = Field(alias="evaluationInterval", default=None)
|
17
|
+
min_interval: Optional[IntOrRef] = Field(alias="minInterval", default=None)
|
18
|
+
min_samples: Optional[IntOrRef] = Field(alias="minSamples", default=None)
|
19
19
|
|
20
20
|
|
21
21
|
class V1TruncationStoppingPolicy(BaseSchemaModel):
|
@@ -24,9 +24,11 @@ class V1TruncationStoppingPolicy(BaseSchemaModel):
|
|
24
24
|
kind: Literal[_IDENTIFIER] = _IDENTIFIER
|
25
25
|
percent: FloatOrRef
|
26
26
|
evaluation_interval: IntOrRef = Field(alias="evaluationInterval")
|
27
|
-
min_interval: Optional[IntOrRef] = Field(alias="minInterval")
|
28
|
-
min_samples: Optional[IntOrRef] = Field(alias="minSamples")
|
29
|
-
include_succeeded: Optional[BoolOrRef] = Field(
|
27
|
+
min_interval: Optional[IntOrRef] = Field(alias="minInterval", default=None)
|
28
|
+
min_samples: Optional[IntOrRef] = Field(alias="minSamples", default=None)
|
29
|
+
include_succeeded: Optional[BoolOrRef] = Field(
|
30
|
+
alias="includeSucceeded", default=None
|
31
|
+
)
|
30
32
|
|
31
33
|
|
32
34
|
class V1DiffStoppingPolicy(BaseSchemaModel):
|
@@ -35,13 +37,13 @@ class V1DiffStoppingPolicy(BaseSchemaModel):
|
|
35
37
|
kind: Literal[_IDENTIFIER] = _IDENTIFIER
|
36
38
|
percent: FloatOrRef
|
37
39
|
evaluation_interval: IntOrRef = Field(alias="evaluationInterval")
|
38
|
-
min_interval: Optional[IntOrRef] = Field(alias="minInterval")
|
39
|
-
min_samples: Optional[IntOrRef] = Field(alias="minSamples")
|
40
|
+
min_interval: Optional[IntOrRef] = Field(alias="minInterval", default=None)
|
41
|
+
min_samples: Optional[IntOrRef] = Field(alias="minSamples", default=None)
|
40
42
|
|
41
43
|
|
42
44
|
V1EarlyStoppingPolicy = Annotated[
|
43
45
|
Union[V1MedianStoppingPolicy, V1TruncationStoppingPolicy, V1DiffStoppingPolicy],
|
44
|
-
Field(discriminator="kind"
|
46
|
+
Field(discriminator="kind"),
|
45
47
|
]
|
46
48
|
|
47
49
|
|
@@ -150,7 +152,7 @@ class V1MetricEarlyStopping(BaseSchemaModel):
|
|
150
152
|
metric: StrictStr
|
151
153
|
value: FloatOrRef
|
152
154
|
optimization: Union[StrictFloat, V1Optimization]
|
153
|
-
policy: Optional[V1EarlyStoppingPolicy]
|
155
|
+
policy: Optional[V1EarlyStoppingPolicy] = None
|
154
156
|
|
155
157
|
|
156
158
|
class V1FailureEarlyStopping(BaseSchemaModel):
|
@@ -1,7 +1,13 @@
|
|
1
1
|
from typing import Dict, List, Optional, Union
|
2
2
|
from typing_extensions import Literal
|
3
3
|
|
4
|
-
from clipped.compact.pydantic import
|
4
|
+
from clipped.compact.pydantic import (
|
5
|
+
Field,
|
6
|
+
StrictStr,
|
7
|
+
field_validator,
|
8
|
+
validation_always,
|
9
|
+
validation_before,
|
10
|
+
)
|
5
11
|
|
6
12
|
from polyaxon._k8s import k8s_schemas, k8s_validation
|
7
13
|
from polyaxon._schemas.base import BaseSchemaModel
|
@@ -389,52 +395,64 @@ class V1Environment(BaseSchemaModel):
|
|
389
395
|
"dnsConfig",
|
390
396
|
]
|
391
397
|
|
392
|
-
labels: Optional[Dict[StrictStr, StrictStr]]
|
393
|
-
annotations: Optional[Dict[StrictStr, StrictStr]]
|
394
|
-
node_selector: Optional[Dict[StrictStr, StrictStr]] = Field(
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
398
|
+
labels: Optional[Dict[StrictStr, StrictStr]] = None
|
399
|
+
annotations: Optional[Dict[StrictStr, StrictStr]] = None
|
400
|
+
node_selector: Optional[Dict[StrictStr, StrictStr]] = Field(
|
401
|
+
alias="nodeSelector", default=None
|
402
|
+
)
|
403
|
+
affinity: Optional[Union[k8s_schemas.V1Affinity, Dict]] = None
|
404
|
+
tolerations: Optional[List[Union[k8s_schemas.V1Toleration, Dict]]] = None
|
405
|
+
node_name: Optional[StrictStr] = Field(alias="nodeName", default=None)
|
406
|
+
service_account_name: Optional[StrictStr] = Field(
|
407
|
+
alias="serviceAccountName", default=None
|
408
|
+
)
|
409
|
+
host_aliases: Optional[List[k8s_schemas.V1HostAlias]] = Field(
|
410
|
+
alias="hostAliases", default=None
|
411
|
+
)
|
400
412
|
security_context: Optional[Union[k8s_schemas.V1SecurityContext, Dict]] = Field(
|
401
|
-
alias="securityContext"
|
413
|
+
alias="securityContext", default=None
|
414
|
+
)
|
415
|
+
image_pull_secrets: Optional[List[StrictStr]] = Field(
|
416
|
+
alias="imagePullSecrets", default=None
|
417
|
+
)
|
418
|
+
host_network: Optional[bool] = Field(alias="hostNetwork", default=None)
|
419
|
+
host_pid: Optional[bool] = Field(alias="hostPID", default=None)
|
420
|
+
dns_policy: Optional[StrictStr] = Field(alias="dnsPolicy", default=None)
|
421
|
+
dns_config: Optional[k8s_schemas.V1PodDNSConfig] = Field(
|
422
|
+
alias="dnsConfig", default=None
|
402
423
|
)
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
dns_policy: Optional[StrictStr] = Field(alias="dnsPolicy")
|
407
|
-
dns_config: Optional[k8s_schemas.V1PodDNSConfig] = Field(alias="dnsConfig")
|
408
|
-
scheduler_name: Optional[StrictStr] = Field(alias="schedulerName")
|
409
|
-
priority_class_name: Optional[StrictStr] = Field(alias="priorityClassName")
|
410
|
-
priority: Optional[int]
|
411
|
-
restart_policy: Optional[Literal["Always", "OnFailure", "Never"]] = Field(
|
412
|
-
alias="restartPolicy"
|
424
|
+
scheduler_name: Optional[StrictStr] = Field(alias="schedulerName", default=None)
|
425
|
+
priority_class_name: Optional[StrictStr] = Field(
|
426
|
+
alias="priorityClassName", default=None
|
413
427
|
)
|
428
|
+
priority: Optional[int] = None
|
429
|
+
restart_policy: Optional[
|
430
|
+
Literal["Always", "OnFailure", "Never", "ExitCode"]
|
431
|
+
] = Field(alias="restartPolicy", default=None)
|
414
432
|
|
415
|
-
@
|
433
|
+
@field_validator("affinity", **validation_always, **validation_before)
|
416
434
|
def validate_affinity(cls, v):
|
417
435
|
return k8s_validation.validate_k8s_affinity(v)
|
418
436
|
|
419
|
-
@
|
437
|
+
@field_validator("tolerations", **validation_always, **validation_before)
|
420
438
|
def validate_tolerations(cls, v):
|
421
439
|
if not v:
|
422
440
|
return v
|
423
441
|
return [k8s_validation.validate_k8s_toleration(vi) for vi in v]
|
424
442
|
|
425
|
-
@
|
443
|
+
@field_validator("host_aliases", **validation_always, **validation_before)
|
426
444
|
def validate_host_aliases(cls, v):
|
427
445
|
if not v:
|
428
446
|
return v
|
429
447
|
return [k8s_validation.validate_k8s_host_alias(vi) for vi in v]
|
430
448
|
|
431
|
-
@
|
449
|
+
@field_validator("security_context", **validation_always, **validation_before)
|
432
450
|
def validate_security_context(cls, v):
|
433
451
|
if not v:
|
434
452
|
return v
|
435
453
|
return k8s_validation.validate_k8s_security_context(v)
|
436
454
|
|
437
|
-
@
|
455
|
+
@field_validator("dns_config", **validation_always, **validation_before)
|
438
456
|
def validate_dns_config(cls, v):
|
439
457
|
if not v:
|
440
458
|
return v
|
polyaxon/_flow/hooks/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from typing import Dict, List, Optional, Union
|
2
2
|
|
3
|
-
from clipped.compact.pydantic import Field, StrictStr,
|
3
|
+
from clipped.compact.pydantic import Field, StrictStr, field_validator
|
4
4
|
from clipped.types.ref_or_obj import BoolOrRef, RefField
|
5
5
|
|
6
6
|
from polyaxon._flow.params import V1Param
|
@@ -208,16 +208,16 @@ class V1Hook(BaseSchemaModel):
|
|
208
208
|
_IDENTIFIER = "hook"
|
209
209
|
|
210
210
|
hub_ref: StrictStr = Field(alias="hubRef")
|
211
|
-
connection: Optional[StrictStr]
|
212
|
-
trigger: Optional[V1Statuses]
|
213
|
-
conditions: Optional[StrictStr]
|
214
|
-
presets: Optional[List[StrictStr]]
|
215
|
-
queue: Optional[StrictStr]
|
216
|
-
namespace: Optional[StrictStr]
|
217
|
-
params: Optional[Union[Dict[str, V1Param], RefField]]
|
218
|
-
disable_defaults: Optional[BoolOrRef] = Field(alias="disableDefaults")
|
219
|
-
|
220
|
-
@
|
211
|
+
connection: Optional[StrictStr] = None
|
212
|
+
trigger: Optional[V1Statuses] = None
|
213
|
+
conditions: Optional[StrictStr] = None
|
214
|
+
presets: Optional[List[StrictStr]] = None
|
215
|
+
queue: Optional[StrictStr] = None
|
216
|
+
namespace: Optional[StrictStr] = None
|
217
|
+
params: Optional[Union[Dict[str, V1Param], RefField]] = None
|
218
|
+
disable_defaults: Optional[BoolOrRef] = Field(alias="disableDefaults", default=None)
|
219
|
+
|
220
|
+
@field_validator("trigger")
|
221
221
|
def validate_trigger(cls, v):
|
222
222
|
if v and v not in V1Statuses.get_allowable_hook_values():
|
223
223
|
raise ValueError(
|
polyaxon/_flow/init/__init__.py
CHANGED
@@ -1,6 +1,14 @@
|
|
1
1
|
from typing import List, Optional, Union
|
2
2
|
|
3
|
-
from clipped.compact.pydantic import
|
3
|
+
from clipped.compact.pydantic import (
|
4
|
+
Field,
|
5
|
+
StrictStr,
|
6
|
+
field_validator,
|
7
|
+
model_validator,
|
8
|
+
validation_after,
|
9
|
+
validation_always,
|
10
|
+
validation_before,
|
11
|
+
)
|
4
12
|
from clipped.config.schema import skip_partial
|
5
13
|
from clipped.types.ref_or_obj import RefField
|
6
14
|
|
@@ -202,32 +210,40 @@ class V1Init(BaseSchemaModel):
|
|
202
210
|
_IDENTIFIER = "init"
|
203
211
|
_SWAGGER_FIELDS = ["container"]
|
204
212
|
|
205
|
-
artifacts: Optional[Union[V1ArtifactsType, RefField]]
|
206
|
-
paths: Optional[
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
213
|
+
artifacts: Optional[Union[V1ArtifactsType, RefField]] = None
|
214
|
+
paths: Optional[
|
215
|
+
Union[List[Union[List[StrictStr], StrictStr]], StrictStr, RefField]
|
216
|
+
] = None
|
217
|
+
git: Optional[Union[V1GitType, RefField]] = None
|
218
|
+
dockerfile: Optional[Union[V1DockerfileType, RefField]] = None
|
219
|
+
file: Optional[Union[V1FileType, RefField]] = None
|
220
|
+
tensorboard: Optional[Union[V1TensorboardType, RefField]] = None
|
221
|
+
lineage_ref: Optional[Union[StrictStr, RefField]] = Field(
|
222
|
+
alias="lineageRef", default=None
|
223
|
+
)
|
224
|
+
model_ref: Optional[Union[StrictStr, RefField]] = Field(
|
225
|
+
alias="modelRef", default=None
|
226
|
+
)
|
227
|
+
artifact_ref: Optional[Union[StrictStr, RefField]] = Field(
|
228
|
+
alias="artifactRef", default=None
|
229
|
+
)
|
230
|
+
connection: Optional[StrictStr] = None
|
231
|
+
path: Optional[StrictStr] = None
|
232
|
+
container: Optional[Union[k8s_schemas.V1Container, RefField]] = None
|
217
233
|
|
218
|
-
@
|
234
|
+
@model_validator(**validation_after)
|
219
235
|
@skip_partial
|
220
236
|
def validate_init(cls, values):
|
221
|
-
artifacts =
|
222
|
-
paths =
|
223
|
-
git =
|
224
|
-
dockerfile =
|
225
|
-
file =
|
226
|
-
tensorboard =
|
227
|
-
lineage_ref =
|
228
|
-
model_ref =
|
229
|
-
artifact_ref =
|
230
|
-
connection =
|
237
|
+
artifacts = cls.get_value_for_key("artifacts", values)
|
238
|
+
paths = cls.get_value_for_key("paths", values)
|
239
|
+
git = cls.get_value_for_key("git", values)
|
240
|
+
dockerfile = cls.get_value_for_key("dockerfile", values)
|
241
|
+
file = cls.get_value_for_key("file", values)
|
242
|
+
tensorboard = cls.get_value_for_key("tensorboard", values)
|
243
|
+
lineage_ref = cls.get_value_for_key("lineage_ref", values)
|
244
|
+
model_ref = cls.get_value_for_key("model_ref", values)
|
245
|
+
artifact_ref = cls.get_value_for_key("artifact_ref", values)
|
246
|
+
connection = cls.get_value_for_key("connection", values)
|
231
247
|
schemas = 0
|
232
248
|
if artifacts:
|
233
249
|
schemas += 1
|
@@ -258,7 +274,7 @@ class V1Init(BaseSchemaModel):
|
|
258
274
|
)
|
259
275
|
return values
|
260
276
|
|
261
|
-
@
|
277
|
+
@field_validator("container", **validation_always, **validation_before)
|
262
278
|
def validate_container(cls, v):
|
263
279
|
return k8s_validation.validate_k8s_container(v)
|
264
280
|
|
polyaxon/_flow/io/io.py
CHANGED
@@ -2,7 +2,15 @@ import re
|
|
2
2
|
|
3
3
|
from typing import Any, Dict, List, Optional, Union
|
4
4
|
|
5
|
-
from clipped.compact.pydantic import
|
5
|
+
from clipped.compact.pydantic import (
|
6
|
+
Field,
|
7
|
+
StrictStr,
|
8
|
+
field_validator,
|
9
|
+
model_validator,
|
10
|
+
validation_after,
|
11
|
+
validation_always,
|
12
|
+
validation_before,
|
13
|
+
)
|
6
14
|
from clipped.config.schema import skip_partial
|
7
15
|
from clipped.types.numbers import StrictIntOrFloat
|
8
16
|
from clipped.types.ref_or_obj import BoolOrRef, IntOrRef, RefField
|
@@ -86,7 +94,7 @@ def validate_io(
|
|
86
94
|
)
|
87
95
|
|
88
96
|
if is_flag and type != "bool":
|
89
|
-
raise
|
97
|
+
raise ValueError(
|
90
98
|
"IO type `{}` cannot be a flag, it must be of type `{}`".format(
|
91
99
|
type, "bool"
|
92
100
|
)
|
@@ -241,29 +249,31 @@ class V1Validation(BaseSchemaModel):
|
|
241
249
|
* maxItems - maximum number of items
|
242
250
|
"""
|
243
251
|
|
244
|
-
delay: Optional[BoolOrRef]
|
245
|
-
gt: Optional[Union[StrictIntOrFloat, RefField]]
|
246
|
-
ge: Optional[Union[StrictIntOrFloat, RefField]]
|
247
|
-
lt: Optional[Union[StrictIntOrFloat, RefField]]
|
248
|
-
le: Optional[Union[StrictIntOrFloat, RefField]]
|
249
|
-
multiple_of: Optional[Union[StrictIntOrFloat, RefField]] = Field(
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
252
|
+
delay: Optional[BoolOrRef] = None
|
253
|
+
gt: Optional[Union[StrictIntOrFloat, RefField]] = None
|
254
|
+
ge: Optional[Union[StrictIntOrFloat, RefField]] = None
|
255
|
+
lt: Optional[Union[StrictIntOrFloat, RefField]] = None
|
256
|
+
le: Optional[Union[StrictIntOrFloat, RefField]] = None
|
257
|
+
multiple_of: Optional[Union[StrictIntOrFloat, RefField]] = Field(
|
258
|
+
alias="multipleOf", default=None
|
259
|
+
)
|
260
|
+
min_digits: Optional[IntOrRef] = Field(alias="minDigits", default=None)
|
261
|
+
max_digits: Optional[IntOrRef] = Field(alias="maxDigits", default=None)
|
262
|
+
decimal_places: Optional[IntOrRef] = Field(alias="decimalPlaces", default=None)
|
263
|
+
regex: Optional[StrictStr] = None
|
264
|
+
min_length: Optional[IntOrRef] = Field(alias="minLength", default=None)
|
265
|
+
max_length: Optional[IntOrRef] = Field(alias="maxLength", default=None)
|
266
|
+
contains: Optional[Any] = None
|
267
|
+
excludes: Optional[Any] = None
|
268
|
+
options: Optional[Any] = None
|
269
|
+
min_items: Optional[IntOrRef] = Field(alias="minItems", default=None)
|
270
|
+
max_items: Optional[IntOrRef] = Field(alias="maxItems", default=None)
|
271
|
+
keys: Optional[Union[List[StrictStr], RefField]] = None
|
262
272
|
contains_keys: Optional[Union[List[StrictStr], RefField]] = Field(
|
263
|
-
alias="containsKeys"
|
273
|
+
alias="containsKeys", default=None
|
264
274
|
)
|
265
275
|
excludes_keys: Optional[Union[List[StrictStr], RefField]] = Field(
|
266
|
-
alias="excludesKeys"
|
276
|
+
alias="excludesKeys", default=None
|
267
277
|
)
|
268
278
|
|
269
279
|
def _validate_gt(self, value):
|
@@ -891,27 +901,27 @@ class V1IO(BaseSchemaModel):
|
|
891
901
|
_IDENTIFIER = "io"
|
892
902
|
|
893
903
|
name: StrictStr
|
894
|
-
description: Optional[StrictStr]
|
895
|
-
type: Optional[StrictStr]
|
896
|
-
is_optional: Optional[bool] = Field(alias="isOptional")
|
897
|
-
is_list: Optional[bool] = Field(alias="isList")
|
898
|
-
is_flag: Optional[bool] = Field(alias="isFlag")
|
899
|
-
arg_format: Optional[StrictStr] = Field(alias="argFormat")
|
900
|
-
connection: Optional[StrictStr]
|
901
|
-
to_init: Optional[bool] = Field(alias="toInit")
|
902
|
-
to_env: Optional[StrictStr] = Field(alias="toEnv")
|
903
|
-
value: Optional[Any]
|
904
|
-
validation: Optional[V1Validation]
|
905
|
-
delay_validation: Optional[bool] = Field(alias="delayValidation")
|
906
|
-
options: Optional[Any]
|
907
|
-
|
908
|
-
@
|
904
|
+
description: Optional[StrictStr] = None
|
905
|
+
type: Optional[StrictStr] = None
|
906
|
+
is_optional: Optional[bool] = Field(alias="isOptional", default=None)
|
907
|
+
is_list: Optional[bool] = Field(alias="isList", default=None)
|
908
|
+
is_flag: Optional[bool] = Field(alias="isFlag", default=None)
|
909
|
+
arg_format: Optional[StrictStr] = Field(alias="argFormat", default=None)
|
910
|
+
connection: Optional[StrictStr] = None
|
911
|
+
to_init: Optional[bool] = Field(alias="toInit", default=None)
|
912
|
+
to_env: Optional[StrictStr] = Field(alias="toEnv", default=None)
|
913
|
+
value: Optional[Any] = None
|
914
|
+
validation: Optional[V1Validation] = None
|
915
|
+
delay_validation: Optional[bool] = Field(alias="delayValidation", default=None)
|
916
|
+
options: Optional[Any] = None
|
917
|
+
|
918
|
+
@field_validator("name", **validation_always)
|
909
919
|
def validate_name(cls, v):
|
910
920
|
if v in IO_NAME_BLACK_LIST:
|
911
921
|
raise ValueError(IO_NAME_ERROR)
|
912
922
|
return v
|
913
923
|
|
914
|
-
@
|
924
|
+
@model_validator(**validation_before)
|
915
925
|
def handle_validation(cls, values):
|
916
926
|
validation = values.get("validation")
|
917
927
|
if not validation and (
|
@@ -926,20 +936,20 @@ class V1IO(BaseSchemaModel):
|
|
926
936
|
if values.get("delay_validation") is not None:
|
927
937
|
validation.delay = values.pop("delay_validation")
|
928
938
|
if validation:
|
929
|
-
values["validation"] = validation
|
939
|
+
values["validation"] = validation.to_dict()
|
930
940
|
return values
|
931
941
|
|
932
|
-
@
|
942
|
+
@model_validator(**validation_after)
|
933
943
|
@skip_partial
|
934
944
|
def validate_io(cls, values):
|
935
945
|
validate_io(
|
936
|
-
name=
|
937
|
-
type=
|
938
|
-
value=
|
939
|
-
is_list=
|
940
|
-
is_optional=
|
941
|
-
is_flag=
|
942
|
-
validation=
|
946
|
+
name=cls.get_value_for_key("name", values),
|
947
|
+
type=cls.get_value_for_key("type", values),
|
948
|
+
value=cls.get_value_for_key("value", values),
|
949
|
+
is_list=cls.get_value_for_key("is_list", values),
|
950
|
+
is_optional=cls.get_value_for_key("is_optional", values),
|
951
|
+
is_flag=cls.get_value_for_key("is_flag", values),
|
952
|
+
validation=cls.get_value_for_key("validation", values),
|
943
953
|
)
|
944
954
|
return values
|
945
955
|
|
polyaxon/_flow/joins/__init__.py
CHANGED
@@ -205,9 +205,9 @@ class V1Join(BaseSchemaModel):
|
|
205
205
|
|
206
206
|
_IDENTIFIER = "join"
|
207
207
|
|
208
|
-
ref: Optional[StrictStr]
|
208
|
+
ref: Optional[StrictStr] = None
|
209
209
|
query: StrictStr
|
210
|
-
sort: Optional[StrictStr]
|
211
|
-
limit: Optional[IntOrRef]
|
212
|
-
offset: Optional[IntOrRef]
|
213
|
-
params: Optional[Union[Dict[str, V1JoinParam], RefField]]
|
210
|
+
sort: Optional[StrictStr] = None
|
211
|
+
limit: Optional[IntOrRef] = None
|
212
|
+
offset: Optional[IntOrRef] = None
|
213
|
+
params: Optional[Union[Dict[str, V1JoinParam], RefField]] = None
|