polyaxon 2.0.0rc49__py3-none-any.whl → 2.4.0rc1__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/cleaner.py +8 -3
- polyaxon/_auxiliaries/init.py +7 -2
- polyaxon/_auxiliaries/notifier.py +8 -2
- polyaxon/_auxiliaries/sidecar.py +30 -2
- polyaxon/_cli/artifacts.py +96 -11
- polyaxon/_cli/components.py +96 -11
- polyaxon/_cli/config.py +118 -22
- polyaxon/_cli/dashboard.py +15 -2
- polyaxon/_cli/init.py +1 -1
- polyaxon/_cli/models.py +96 -11
- polyaxon/_cli/operations.py +267 -90
- polyaxon/_cli/project_versions.py +139 -6
- polyaxon/_cli/projects.py +23 -9
- polyaxon/_cli/run.py +37 -9
- polyaxon/_cli/services/agent.py +2 -2
- polyaxon/_cli/services/clean_artifacts.py +1 -1
- polyaxon/_cli/services/sidecar.py +8 -1
- polyaxon/_client/client.py +17 -0
- polyaxon/_client/mixin.py +39 -0
- polyaxon/_client/project.py +218 -23
- polyaxon/_client/run.py +131 -33
- polyaxon/_compiler/contexts/contexts.py +2 -2
- polyaxon/_compiler/contexts/ray_job.py +4 -2
- polyaxon/_compiler/resolver/agent.py +12 -2
- polyaxon/_compiler/resolver/runtime.py +2 -2
- polyaxon/_contexts/paths.py +4 -7
- polyaxon/_deploy/operators/compose.py +1 -27
- polyaxon/_deploy/schemas/deployment.py +4 -1
- polyaxon/_deploy/schemas/intervals.py +0 -7
- polyaxon/_deploy/schemas/proxy.py +1 -0
- polyaxon/_deploy/schemas/service.py +11 -1
- polyaxon/_docker/converter/base/base.py +8 -0
- polyaxon/_docker/executor.py +10 -4
- 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 +7 -1
- polyaxon/_flow/__init__.py +2 -0
- polyaxon/_flow/builds/__init__.py +19 -6
- polyaxon/_flow/component/base.py +1 -0
- polyaxon/_flow/component/component.py +14 -0
- polyaxon/_flow/environment/__init__.py +8 -8
- polyaxon/_flow/hooks/__init__.py +19 -6
- polyaxon/_flow/init/__init__.py +6 -6
- polyaxon/_flow/matrix/iterative.py +0 -1
- polyaxon/_flow/matrix/tuner.py +18 -6
- polyaxon/_flow/operations/operation.py +44 -17
- polyaxon/_flow/plugins/__init__.py +6 -0
- polyaxon/_flow/run/__init__.py +2 -2
- polyaxon/_flow/run/dag.py +2 -2
- polyaxon/_flow/run/dask/dask.py +0 -1
- polyaxon/_flow/run/dask/replica.py +3 -3
- polyaxon/_flow/run/enums.py +5 -0
- polyaxon/_flow/run/job.py +4 -4
- polyaxon/_flow/run/kubeflow/mpi_job.py +1 -2
- polyaxon/_flow/run/kubeflow/mx_job.py +1 -2
- polyaxon/_flow/run/kubeflow/paddle_job.py +35 -4
- polyaxon/_flow/run/kubeflow/pytorch_job.py +51 -5
- polyaxon/_flow/run/kubeflow/replica.py +4 -4
- polyaxon/_flow/run/kubeflow/scheduling_policy.py +12 -0
- polyaxon/_flow/run/kubeflow/tf_job.py +3 -3
- polyaxon/_flow/run/kubeflow/xgboost_job.py +1 -2
- polyaxon/_flow/run/ray/ray.py +2 -3
- polyaxon/_flow/run/ray/replica.py +3 -3
- polyaxon/_flow/run/service.py +4 -4
- polyaxon/_fs/fs.py +7 -2
- polyaxon/_fs/utils.py +3 -2
- polyaxon/_k8s/converter/base/base.py +2 -1
- polyaxon/_k8s/converter/base/main.py +1 -0
- polyaxon/_k8s/converter/base/sidecar.py +16 -1
- polyaxon/_k8s/converter/common/accelerators.py +7 -4
- polyaxon/_k8s/converter/converters/job.py +1 -1
- polyaxon/_k8s/converter/converters/kubeflow/paddle_job.py +1 -0
- polyaxon/_k8s/converter/converters/kubeflow/pytroch_job.py +2 -0
- polyaxon/_k8s/converter/converters/kubeflow/tf_job.py +1 -0
- 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/kubeflow/paddle_job.py +10 -1
- polyaxon/_k8s/custom_resources/kubeflow/pytorch_job.py +14 -1
- polyaxon/_k8s/custom_resources/kubeflow/tf_job.py +4 -0
- 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/executor/base.py +23 -6
- polyaxon/_k8s/logging/async_monitor.py +150 -5
- polyaxon/_k8s/manager/async_manager.py +96 -23
- polyaxon/_k8s/manager/base.py +4 -0
- polyaxon/_k8s/manager/manager.py +282 -134
- 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 +69 -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 +39 -0
- polyaxon/_managers/agent.py +2 -0
- polyaxon/_managers/home.py +2 -1
- polyaxon/_operations/tuner.py +1 -0
- polyaxon/_polyaxonfile/check.py +2 -0
- polyaxon/_polyaxonfile/manager/operations.py +3 -0
- polyaxon/_polyaxonfile/manager/workflows.py +2 -0
- polyaxon/_polyaxonfile/specs/compiled_operation.py +1 -0
- polyaxon/_polyaxonfile/specs/operation.py +1 -0
- polyaxon/_polyaxonfile/specs/sections.py +3 -0
- polyaxon/_pql/manager.py +1 -1
- polyaxon/_runner/agent/async_agent.py +97 -21
- polyaxon/_runner/agent/base_agent.py +27 -9
- polyaxon/_runner/agent/client.py +15 -1
- polyaxon/_runner/agent/sync_agent.py +85 -20
- polyaxon/_runner/converter/converter.py +6 -2
- polyaxon/_runner/executor.py +13 -7
- polyaxon/_schemas/agent.py +27 -1
- polyaxon/_schemas/client.py +30 -3
- polyaxon/_schemas/installation.py +4 -3
- polyaxon/_schemas/lifecycle.py +10 -5
- polyaxon/_schemas/log_handler.py +2 -3
- polyaxon/_schemas/types/artifacts.py +3 -3
- polyaxon/_schemas/types/dockerfile.py +3 -3
- polyaxon/_schemas/types/file.py +3 -3
- polyaxon/_schemas/types/git.py +3 -3
- polyaxon/_schemas/types/tensorboard.py +3 -3
- polyaxon/_sdk/api/agents_v1_api.py +1076 -73
- polyaxon/_sdk/api/organizations_v1_api.py +371 -10
- polyaxon/_sdk/api/project_dashboards_v1_api.py +12 -12
- polyaxon/_sdk/api/project_searches_v1_api.py +12 -12
- polyaxon/_sdk/api/projects_v1_api.py +221 -44
- polyaxon/_sdk/api/runs_v1_api.py +917 -445
- polyaxon/_sdk/api/service_accounts_v1_api.py +16 -16
- polyaxon/_sdk/api/teams_v1_api.py +2827 -375
- polyaxon/_sdk/api/users_v1_api.py +231 -55
- polyaxon/_sdk/async_client/api_client.py +4 -0
- polyaxon/_sdk/schemas/__init__.py +10 -2
- polyaxon/_sdk/schemas/v1_agent.py +2 -1
- polyaxon/_sdk/schemas/v1_agent_reconcile_body_request.py +14 -0
- polyaxon/_sdk/schemas/v1_artifact_tree.py +1 -1
- polyaxon/_sdk/schemas/v1_dashboard_spec.py +4 -0
- polyaxon/_sdk/schemas/v1_events_response.py +4 -0
- polyaxon/_sdk/schemas/v1_organization.py +1 -0
- polyaxon/_sdk/schemas/v1_preset.py +8 -0
- polyaxon/_sdk/schemas/v1_project.py +1 -0
- polyaxon/_sdk/schemas/v1_project_settings.py +4 -2
- polyaxon/_sdk/schemas/v1_run.py +2 -2
- polyaxon/_sdk/schemas/v1_run_edge_lineage.py +14 -0
- polyaxon/_sdk/schemas/v1_run_edges_graph.py +9 -0
- polyaxon/_sdk/schemas/v1_section_spec.py +7 -2
- polyaxon/_sdk/schemas/v1_settings_catalog.py +1 -0
- polyaxon/_sdk/schemas/v1_team.py +3 -0
- polyaxon/_sdk/schemas/v1_user.py +1 -2
- polyaxon/_sdk/schemas/v1_user_access.py +17 -0
- polyaxon/_services/values.py +1 -0
- polyaxon/_sidecar/container/__init__.py +39 -18
- polyaxon/_sidecar/container/monitors/__init__.py +1 -0
- polyaxon/_sidecar/container/monitors/logs.py +10 -13
- polyaxon/_sidecar/container/monitors/spec.py +24 -0
- polyaxon/_sidecar/ignore.py +0 -1
- polyaxon/_utils/fqn_utils.py +25 -2
- polyaxon/client.py +1 -1
- polyaxon/pkg.py +1 -1
- polyaxon/schemas.py +8 -1
- polyaxon/settings.py +6 -0
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/METADATA +43 -43
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/RECORD +176 -155
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/WHEEL +1 -1
- polyaxon/_sdk/schemas/v1_project_user_access.py +0 -10
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/LICENSE +0 -0
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/entry_points.txt +0 -0
- {polyaxon-2.0.0rc49.dist-info → polyaxon-2.4.0rc1.dist-info}/top_level.txt +0 -0
polyaxon/_auxiliaries/cleaner.py
CHANGED
@@ -3,6 +3,7 @@ import os
|
|
3
3
|
from typing import List, Optional
|
4
4
|
|
5
5
|
from clipped.utils.enums import get_enum_value
|
6
|
+
from clipped.utils.versions import clean_version_post_suffix
|
6
7
|
|
7
8
|
from polyaxon import pkg
|
8
9
|
from polyaxon._connections import V1Connection
|
@@ -158,7 +159,11 @@ class V1PolyaxonCleaner(BaseServiceConfig):
|
|
158
159
|
|
159
160
|
def get_image(self) -> str:
|
160
161
|
image = self.image or "polyaxon/polyaxon-init"
|
161
|
-
image_tag =
|
162
|
+
image_tag = (
|
163
|
+
self.image_tag
|
164
|
+
if self.image_tag is not None
|
165
|
+
else clean_version_post_suffix(pkg.VERSION)
|
166
|
+
)
|
162
167
|
return "{}:{}".format(image, image_tag) if image_tag else image
|
163
168
|
|
164
169
|
def get_resources(self) -> k8s_schemas.V1ResourceRequirements:
|
@@ -180,7 +185,7 @@ def get_default_cleaner_container(
|
|
180
185
|
run_uuid, get_enum_value(run_kind)
|
181
186
|
)
|
182
187
|
image = "polyaxon/polyaxon-init"
|
183
|
-
image_tag = pkg.VERSION
|
188
|
+
image_tag = clean_version_post_suffix(pkg.VERSION)
|
184
189
|
image_pull_policy = PullPolicy.IF_NOT_PRESENT.value
|
185
190
|
resources = get_cleaner_resources()
|
186
191
|
if cleaner:
|
@@ -210,7 +215,7 @@ def get_batch_cleaner_container(
|
|
210
215
|
store.kind.replace("_", "-"), store.name, subpaths
|
211
216
|
)
|
212
217
|
image = "polyaxon/polyaxon-init"
|
213
|
-
image_tag = pkg.VERSION
|
218
|
+
image_tag = clean_version_post_suffix(pkg.VERSION)
|
214
219
|
image_pull_policy = PullPolicy.IF_NOT_PRESENT.value
|
215
220
|
resources = get_cleaner_resources()
|
216
221
|
if cleaner:
|
polyaxon/_auxiliaries/init.py
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
from typing import Dict, Optional, Union
|
2
2
|
|
3
3
|
from clipped.compact.pydantic import Field, StrictStr, validator
|
4
|
+
from clipped.utils.versions import clean_version_post_suffix
|
4
5
|
|
5
6
|
from polyaxon import pkg
|
6
7
|
from polyaxon._containers.pull_policy import PullPolicy
|
@@ -103,7 +104,11 @@ class V1PolyaxonInitContainer(BaseSchemaModel):
|
|
103
104
|
|
104
105
|
def get_image(self) -> str:
|
105
106
|
image = self.image or "polyaxon/polyaxon-init"
|
106
|
-
image_tag =
|
107
|
+
image_tag = (
|
108
|
+
self.image_tag
|
109
|
+
if self.image_tag is not None
|
110
|
+
else clean_version_post_suffix(pkg.VERSION)
|
111
|
+
)
|
107
112
|
return "{}:{}".format(image, image_tag) if image_tag else image
|
108
113
|
|
109
114
|
def get_resources(self) -> k8s_schemas.V1ResourceRequirements:
|
@@ -115,7 +120,7 @@ def get_default_init_container(
|
|
115
120
|
) -> Union[Dict, V1PolyaxonInitContainer]:
|
116
121
|
default = {
|
117
122
|
"image": "polyaxon/polyaxon-init",
|
118
|
-
"imageTag": pkg.VERSION,
|
123
|
+
"imageTag": clean_version_post_suffix(pkg.VERSION),
|
119
124
|
"imagePullPolicy": PullPolicy.IF_NOT_PRESENT.value,
|
120
125
|
"resources": {
|
121
126
|
"limits": {"cpu": "1", "memory": "500Mi"},
|
@@ -1,5 +1,7 @@
|
|
1
1
|
from typing import Optional
|
2
2
|
|
3
|
+
from clipped.utils.versions import clean_version_post_suffix
|
4
|
+
|
3
5
|
from polyaxon import pkg
|
4
6
|
from polyaxon._containers.names import MAIN_JOB_CONTAINER
|
5
7
|
from polyaxon._containers.pull_policy import PullPolicy
|
@@ -154,7 +156,11 @@ class V1PolyaxonNotifier(BaseServiceConfig):
|
|
154
156
|
|
155
157
|
def get_image(self) -> str:
|
156
158
|
image = self.image or "polyaxon/polyaxon-events-handlers"
|
157
|
-
image_tag =
|
159
|
+
image_tag = (
|
160
|
+
self.image_tag
|
161
|
+
if self.image_tag is not None
|
162
|
+
else clean_version_post_suffix(pkg.VERSION)
|
163
|
+
)
|
158
164
|
return "{}:{}".format(image, image_tag) if image_tag else image
|
159
165
|
|
160
166
|
def get_resources(self) -> k8s_schemas.V1ResourceRequirements:
|
@@ -165,7 +171,7 @@ def get_default_notification_container(
|
|
165
171
|
notifier: Optional[V1PolyaxonNotifier] = None,
|
166
172
|
) -> k8s_schemas.V1Container:
|
167
173
|
image = "polyaxon/polyaxon-events-handlers"
|
168
|
-
image_tag = pkg.VERSION
|
174
|
+
image_tag = clean_version_post_suffix(pkg.VERSION)
|
169
175
|
image_pull_policy = PullPolicy.IF_NOT_PRESENT.value
|
170
176
|
resources = get_notifier_resources()
|
171
177
|
if notifier:
|
polyaxon/_auxiliaries/sidecar.py
CHANGED
@@ -2,6 +2,7 @@ from typing import Any, Dict, Optional, Union
|
|
2
2
|
|
3
3
|
from clipped.compact.pydantic import Field, StrictStr
|
4
4
|
from clipped.types.ref_or_obj import BoolOrRef, IntOrRef, RefField
|
5
|
+
from clipped.utils.versions import clean_version_post_suffix
|
5
6
|
|
6
7
|
from polyaxon import pkg
|
7
8
|
from polyaxon._containers.pull_policy import PullPolicy
|
@@ -31,6 +32,8 @@ class V1PolyaxonSidecarContainer(BaseSchemaModel):
|
|
31
32
|
resources: V1ResourceRequirements, optional.
|
32
33
|
sleep_interval: int, optional.
|
33
34
|
sync_interval: int, optional.
|
35
|
+
monitor_logs: bool, optional.
|
36
|
+
monitor_spec: bool, optional.
|
34
37
|
|
35
38
|
## YAML usage
|
36
39
|
|
@@ -45,6 +48,8 @@ class V1PolyaxonSidecarContainer(BaseSchemaModel):
|
|
45
48
|
>>> cpu: "50m"
|
46
49
|
>>> sleepInterval: 5
|
47
50
|
>>> syncInterval: 60
|
51
|
+
>>> monitorLogs: true
|
52
|
+
>>> monitorSpec: true
|
48
53
|
```
|
49
54
|
|
50
55
|
## Fields
|
@@ -120,6 +125,24 @@ class V1PolyaxonSidecarContainer(BaseSchemaModel):
|
|
120
125
|
>>> sidecar:
|
121
126
|
>>> syncInterval: 5
|
122
127
|
```
|
128
|
+
|
129
|
+
### monitorLogs
|
130
|
+
|
131
|
+
Whether or not to monitor the logs, default `true`.
|
132
|
+
|
133
|
+
```yaml
|
134
|
+
>>> sidecar:
|
135
|
+
>>> monitorLogs: true
|
136
|
+
```
|
137
|
+
|
138
|
+
### monitorSpec
|
139
|
+
|
140
|
+
Whether or not to monitor the spec, default `true`.
|
141
|
+
|
142
|
+
```yaml
|
143
|
+
>>> sidecar:
|
144
|
+
>>> monitorSpec: true
|
145
|
+
```
|
123
146
|
"""
|
124
147
|
|
125
148
|
_IDENTIFIER = "polyaxon_sidecar"
|
@@ -130,11 +153,16 @@ class V1PolyaxonSidecarContainer(BaseSchemaModel):
|
|
130
153
|
sleep_interval: Optional[IntOrRef] = Field(alias="sleepInterval")
|
131
154
|
sync_interval: Optional[IntOrRef] = Field(alias="syncInterval")
|
132
155
|
monitor_logs: Optional[BoolOrRef] = Field(alias="monitorLogs")
|
156
|
+
monitor_spec: Optional[BoolOrRef] = Field(alias="monitorSpec")
|
133
157
|
resources: Optional[Union[Dict[str, Any], RefField]]
|
134
158
|
|
135
159
|
def get_image(self):
|
136
160
|
image = self.image or "polyaxon/polyaxon-sidecar"
|
137
|
-
image_tag =
|
161
|
+
image_tag = (
|
162
|
+
self.image_tag
|
163
|
+
if self.image_tag is not None
|
164
|
+
else clean_version_post_suffix(pkg.VERSION)
|
165
|
+
)
|
138
166
|
return "{}:{}".format(image, image_tag) if image_tag else image
|
139
167
|
|
140
168
|
def get_resources(self):
|
@@ -146,7 +174,7 @@ def get_default_sidecar_container(
|
|
146
174
|
) -> Union[Dict, V1PolyaxonSidecarContainer]:
|
147
175
|
default = {
|
148
176
|
"image": "polyaxon/polyaxon-sidecar",
|
149
|
-
"imageTag": pkg.VERSION,
|
177
|
+
"imageTag": clean_version_post_suffix(pkg.VERSION),
|
150
178
|
"imagePullPolicy": PullPolicy.IF_NOT_PRESENT.value,
|
151
179
|
"resources": {
|
152
180
|
"limits": {"cpu": "1", "memory": "500Mi"},
|
polyaxon/_cli/artifacts.py
CHANGED
@@ -15,6 +15,7 @@ from polyaxon._cli.project_versions import (
|
|
15
15
|
list_project_versions,
|
16
16
|
open_project_version_dashboard,
|
17
17
|
pull_one_or_many_project_versions,
|
18
|
+
push_one_or_many_project_versions,
|
18
19
|
register_project_version,
|
19
20
|
stage_project_version,
|
20
21
|
transfer_project_version,
|
@@ -72,7 +73,7 @@ def ls(ctx, project, query, sort, limit, offset):
|
|
72
73
|
\b
|
73
74
|
$ polyaxon artifacts ls --project=acme/data-versioning
|
74
75
|
"""
|
75
|
-
owner, project_name = get_project_or_local(
|
76
|
+
owner, _, project_name = get_project_or_local(
|
76
77
|
project or ctx.obj.get("project"), is_cli=True
|
77
78
|
)
|
78
79
|
list_project_versions(
|
@@ -145,11 +146,12 @@ def register(
|
|
145
146
|
$ polyaxon artifacts register -p owner/name -ver v1 --tags="tag1,tag2"
|
146
147
|
"""
|
147
148
|
version = version or ctx.obj.get("version")
|
148
|
-
owner, project_name = get_project_or_local(
|
149
|
+
owner, team, project_name = get_project_or_local(
|
149
150
|
project or ctx.obj.get("project"), is_cli=True
|
150
151
|
)
|
151
152
|
register_project_version(
|
152
153
|
owner=owner,
|
154
|
+
team=team,
|
153
155
|
project_name=project_name,
|
154
156
|
version=version,
|
155
157
|
kind=V1ProjectVersionKind.ARTIFACT,
|
@@ -227,11 +229,12 @@ def copy(
|
|
227
229
|
$ polyaxon artifacts copy -p owner/name -ver v1 --tags="tag1,tag2" --name new-v1
|
228
230
|
"""
|
229
231
|
version = version or ctx.obj.get("version")
|
230
|
-
owner, project_name = get_project_or_local(
|
232
|
+
owner, team, project_name = get_project_or_local(
|
231
233
|
project or ctx.obj.get("project"), is_cli=True
|
232
234
|
)
|
233
235
|
copy_project_version(
|
234
236
|
owner=owner,
|
237
|
+
team=team,
|
235
238
|
project_name=project_name,
|
236
239
|
version=version,
|
237
240
|
kind=V1ProjectVersionKind.ARTIFACT,
|
@@ -265,11 +268,12 @@ def get(ctx, project, version):
|
|
265
268
|
$ polyaxon artifacts get -p owner/data-versioning -ver rc1
|
266
269
|
"""
|
267
270
|
version = version or ctx.obj.get("version") or "latest"
|
268
|
-
owner, project_name = get_project_or_local(
|
271
|
+
owner, team, project_name = get_project_or_local(
|
269
272
|
project or ctx.obj.get("project"), is_cli=True
|
270
273
|
)
|
271
274
|
get_project_version(
|
272
275
|
owner=owner,
|
276
|
+
team=team,
|
273
277
|
project_name=project_name,
|
274
278
|
kind=V1ProjectVersionKind.ARTIFACT,
|
275
279
|
version=version,
|
@@ -296,7 +300,7 @@ def stages(ctx, project, version):
|
|
296
300
|
$ polyaxon artifacts stages -p owner/my-project -ver rc12
|
297
301
|
"""
|
298
302
|
version = version or ctx.obj.get("version") or "latest"
|
299
|
-
owner, project_name = get_project_or_local(
|
303
|
+
owner, _, project_name = get_project_or_local(
|
300
304
|
project or ctx.obj.get("project"), is_cli=True
|
301
305
|
)
|
302
306
|
get_project_version_stages(
|
@@ -332,7 +336,7 @@ def delete(ctx, project, version, yes):
|
|
332
336
|
$ polyaxon artifacts get -p owner/my-project -ver rc12
|
333
337
|
"""
|
334
338
|
version = version or ctx.obj.get("version") or "latest"
|
335
|
-
owner, project_name = get_project_or_local(
|
339
|
+
owner, _, project_name = get_project_or_local(
|
336
340
|
project or ctx.obj.get("project"), is_cli=True
|
337
341
|
)
|
338
342
|
delete_project_version(
|
@@ -375,7 +379,7 @@ def update(ctx, project, version, name, description, tags):
|
|
375
379
|
$ polyaxon artifacts update --tags="foo, bar"
|
376
380
|
"""
|
377
381
|
version = version or ctx.obj.get("version") or "latest"
|
378
|
-
owner, project_name = get_project_or_local(
|
382
|
+
owner, _, project_name = get_project_or_local(
|
379
383
|
project or ctx.obj.get("project"), is_cli=True
|
380
384
|
)
|
381
385
|
update_project_version(
|
@@ -423,7 +427,7 @@ def stage(ctx, project, version, to, reason, message):
|
|
423
427
|
$ polyaxon artifacts stage -p acme/foobar -ver rc12 --to=staging --reason GithubAction --message="Use carefully!"
|
424
428
|
"""
|
425
429
|
version = version or ctx.obj.get("version") or "latest"
|
426
|
-
owner, project_name = get_project_or_local(
|
430
|
+
owner, _, project_name = get_project_or_local(
|
427
431
|
project or ctx.obj.get("project"), is_cli=True
|
428
432
|
)
|
429
433
|
stage_project_version(
|
@@ -461,7 +465,7 @@ def transfer(ctx, project, version, to_project):
|
|
461
465
|
$ polyaxon artifacts transfer -p acme/foobar -ver rc12 --to-project=dest-project
|
462
466
|
"""
|
463
467
|
version = version or ctx.obj.get("version") or "latest"
|
464
|
-
owner, project_name = get_project_or_local(
|
468
|
+
owner, _, project_name = get_project_or_local(
|
465
469
|
project or ctx.obj.get("project"), is_cli=True
|
466
470
|
)
|
467
471
|
transfer_project_version(
|
@@ -530,7 +534,7 @@ def pull(
|
|
530
534
|
\b
|
531
535
|
$ polyaxon artifacts pull -p acme/foobar -a --path /tmp/versions
|
532
536
|
"""
|
533
|
-
owner, project_name = get_project_or_local(
|
537
|
+
owner, _, project_name = get_project_or_local(
|
534
538
|
project or ctx.obj.get("project"), is_cli=True
|
535
539
|
)
|
536
540
|
pull_one_or_many_project_versions(
|
@@ -547,6 +551,86 @@ def pull(
|
|
547
551
|
)
|
548
552
|
|
549
553
|
|
554
|
+
@artifacts.command()
|
555
|
+
@click.option(*OPTIONS_PROJECT["args"], **OPTIONS_PROJECT["kwargs"])
|
556
|
+
@click.option(*OPTIONS_ARTIFACT_VERSION["args"], **OPTIONS_ARTIFACT_VERSION["kwargs"])
|
557
|
+
@click.option(
|
558
|
+
"--all-versions",
|
559
|
+
"-a",
|
560
|
+
is_flag=True,
|
561
|
+
default=False,
|
562
|
+
help="To push all versions.",
|
563
|
+
)
|
564
|
+
@click.option(
|
565
|
+
"--clean",
|
566
|
+
"-c",
|
567
|
+
is_flag=True,
|
568
|
+
default=False,
|
569
|
+
help="To clean the version(s) local data after syncing.",
|
570
|
+
)
|
571
|
+
@click.option(
|
572
|
+
"--path",
|
573
|
+
"--path-from",
|
574
|
+
type=click.Path(exists=False),
|
575
|
+
help="Optional path where the artifact versions are persisted, "
|
576
|
+
"default value is taken from the env var: `POLYAXON_OFFLINE_ROOT`.",
|
577
|
+
)
|
578
|
+
@click.option(
|
579
|
+
"--reset-project",
|
580
|
+
is_flag=True,
|
581
|
+
default=False,
|
582
|
+
help="Optional, to ignore the owner/project of the local "
|
583
|
+
"version and use the owner/project provided or resolved from the current project.",
|
584
|
+
)
|
585
|
+
@click.option(
|
586
|
+
"--force",
|
587
|
+
is_flag=True,
|
588
|
+
default=False,
|
589
|
+
help="Flag to force register if the version already exists.",
|
590
|
+
)
|
591
|
+
@click.pass_context
|
592
|
+
@clean_outputs
|
593
|
+
def push(
|
594
|
+
ctx,
|
595
|
+
project,
|
596
|
+
version,
|
597
|
+
all_versions,
|
598
|
+
clean,
|
599
|
+
path,
|
600
|
+
reset_project,
|
601
|
+
force,
|
602
|
+
):
|
603
|
+
"""Push local packaged artifact version or multiple artifact versions to a remove server.
|
604
|
+
|
605
|
+
Uses /docs/core/cli/#caching
|
606
|
+
|
607
|
+
Examples:
|
608
|
+
|
609
|
+
\b
|
610
|
+
$ polyaxon artifacts push -ver rc12
|
611
|
+
|
612
|
+
\b
|
613
|
+
$ polyaxon artifacts push -p acme/foobar --path /tmp/versions
|
614
|
+
|
615
|
+
\b
|
616
|
+
$ polyaxon artifacts pull -p acme/foobar -a --path /tmp/versions
|
617
|
+
"""
|
618
|
+
owner, _, project_name = get_project_or_local(
|
619
|
+
project or ctx.obj.get("project"), is_cli=True
|
620
|
+
)
|
621
|
+
push_one_or_many_project_versions(
|
622
|
+
owner=owner,
|
623
|
+
project_name=project_name,
|
624
|
+
kind=V1ProjectVersionKind.ARTIFACT,
|
625
|
+
version=version,
|
626
|
+
all_versions=all_versions,
|
627
|
+
path=path,
|
628
|
+
clean=clean,
|
629
|
+
force=force,
|
630
|
+
reset_project=reset_project,
|
631
|
+
)
|
632
|
+
|
633
|
+
|
550
634
|
@artifacts.command()
|
551
635
|
@click.option(*OPTIONS_PROJECT["args"], **OPTIONS_PROJECT["kwargs"])
|
552
636
|
@click.option(*OPTIONS_ARTIFACT_VERSION["args"], **OPTIONS_ARTIFACT_VERSION["kwargs"])
|
@@ -569,11 +653,12 @@ def pull(
|
|
569
653
|
def dashboard(ctx, project, version, yes, url):
|
570
654
|
"""Open this artifact version's dashboard details in browser."""
|
571
655
|
version = version or ctx.obj.get("version") or "latest"
|
572
|
-
owner, project_name = get_project_or_local(
|
656
|
+
owner, team, project_name = get_project_or_local(
|
573
657
|
project or ctx.obj.get("project"), is_cli=True
|
574
658
|
)
|
575
659
|
open_project_version_dashboard(
|
576
660
|
owner=owner,
|
661
|
+
team=team,
|
577
662
|
project_name=project_name,
|
578
663
|
kind=V1ProjectVersionKind.ARTIFACT,
|
579
664
|
version=version,
|
polyaxon/_cli/components.py
CHANGED
@@ -21,6 +21,7 @@ from polyaxon._cli.project_versions import (
|
|
21
21
|
list_project_versions,
|
22
22
|
open_project_version_dashboard,
|
23
23
|
pull_one_or_many_project_versions,
|
24
|
+
push_one_or_many_project_versions,
|
24
25
|
register_project_version,
|
25
26
|
stage_project_version,
|
26
27
|
transfer_project_version,
|
@@ -113,7 +114,7 @@ def ls(ctx, project, query, sort, limit, offset):
|
|
113
114
|
\b
|
114
115
|
$ polyaxon components ls -p=acme/kaniko
|
115
116
|
"""
|
116
|
-
owner, project_name = get_project_or_local(
|
117
|
+
owner, _, project_name = get_project_or_local(
|
117
118
|
project or ctx.obj.get("project"), is_cli=True
|
118
119
|
)
|
119
120
|
polyaxon_client = get_current_or_public_client()
|
@@ -169,7 +170,7 @@ def register(ctx, polyaxonfile, project, version, description, tags, force):
|
|
169
170
|
$ polyaxon components register -f polyaxonfile.yaml -p owner/name -ver v1 --tags="tag1,tag2"
|
170
171
|
"""
|
171
172
|
version = version or ctx.obj.get("version")
|
172
|
-
owner, project_name = get_project_or_local(
|
173
|
+
owner, team, project_name = get_project_or_local(
|
173
174
|
project or ctx.obj.get("project"), is_cli=True
|
174
175
|
)
|
175
176
|
|
@@ -187,6 +188,7 @@ def register(ctx, polyaxonfile, project, version, description, tags, force):
|
|
187
188
|
|
188
189
|
register_project_version(
|
189
190
|
owner=owner,
|
191
|
+
team=team,
|
190
192
|
project_name=project_name,
|
191
193
|
version=version,
|
192
194
|
kind=V1ProjectVersionKind.COMPONENT,
|
@@ -255,11 +257,12 @@ def copy(
|
|
255
257
|
$ polyaxon components copy -p owner/name -ver v1 --tags="tag1,tag2" --name new-v1
|
256
258
|
"""
|
257
259
|
version = version or ctx.obj.get("version")
|
258
|
-
owner, project_name = get_project_or_local(
|
260
|
+
owner, team, project_name = get_project_or_local(
|
259
261
|
project or ctx.obj.get("project"), is_cli=True
|
260
262
|
)
|
261
263
|
copy_project_version(
|
262
264
|
owner=owner,
|
265
|
+
team=team,
|
263
266
|
project_name=project_name,
|
264
267
|
version=version,
|
265
268
|
kind=V1ProjectVersionKind.COMPONENT,
|
@@ -291,13 +294,14 @@ def get(ctx, project, version):
|
|
291
294
|
$ polyaxon components get -p owner/my-project -ver rc12
|
292
295
|
"""
|
293
296
|
version = version or ctx.obj.get("version") or "latest"
|
294
|
-
owner, project_name = get_project_or_local(
|
297
|
+
owner, team, project_name = get_project_or_local(
|
295
298
|
project or ctx.obj.get("project"), is_cli=True
|
296
299
|
)
|
297
300
|
polyaxon_client = get_current_or_public_client()
|
298
301
|
|
299
302
|
get_project_version(
|
300
303
|
owner=owner,
|
304
|
+
team=team,
|
301
305
|
project_name=project_name,
|
302
306
|
kind=V1ProjectVersionKind.COMPONENT,
|
303
307
|
version=version,
|
@@ -326,7 +330,7 @@ def stages(ctx, project, version):
|
|
326
330
|
$ polyaxon components stages -p owner/my-project -ver rc12
|
327
331
|
"""
|
328
332
|
version = version or ctx.obj.get("version") or "latest"
|
329
|
-
owner, project_name = get_project_or_local(
|
333
|
+
owner, _, project_name = get_project_or_local(
|
330
334
|
project or ctx.obj.get("project"), is_cli=True
|
331
335
|
)
|
332
336
|
polyaxon_client = get_current_or_public_client()
|
@@ -368,7 +372,7 @@ def delete(ctx, project, version, yes):
|
|
368
372
|
$ polyaxon components get -p owner/my-project -ver rc12
|
369
373
|
"""
|
370
374
|
version = version or ctx.obj.get("version") or "latest"
|
371
|
-
owner, project_name = get_project_or_local(
|
375
|
+
owner, _, project_name = get_project_or_local(
|
372
376
|
project or ctx.obj.get("project"), is_cli=True
|
373
377
|
)
|
374
378
|
delete_project_version(
|
@@ -411,7 +415,7 @@ def update(ctx, project, version, name, description, tags):
|
|
411
415
|
$ polyaxon components update --tags="foo, bar"
|
412
416
|
"""
|
413
417
|
version = version or ctx.obj.get("version") or "latest"
|
414
|
-
owner, project_name = get_project_or_local(
|
418
|
+
owner, _, project_name = get_project_or_local(
|
415
419
|
project or ctx.obj.get("project"), is_cli=True
|
416
420
|
)
|
417
421
|
update_project_version(
|
@@ -460,7 +464,7 @@ def stage(ctx, project, version, to, reason, message):
|
|
460
464
|
$ polyaxon components stage -p acme/foobar -ver rc12 --to=staging --reason GithubAction --message="Use carefully!"
|
461
465
|
"""
|
462
466
|
version = version or ctx.obj.get("version") or "latest"
|
463
|
-
owner, project_name = get_project_or_local(
|
467
|
+
owner, _, project_name = get_project_or_local(
|
464
468
|
project or ctx.obj.get("project"), is_cli=True
|
465
469
|
)
|
466
470
|
stage_project_version(
|
@@ -498,7 +502,7 @@ def transfer(ctx, project, version, to_project):
|
|
498
502
|
$ polyaxon components transfer -p acme/foobar -ver rc12 --to-project=dest-project
|
499
503
|
"""
|
500
504
|
version = version or ctx.obj.get("version") or "latest"
|
501
|
-
owner, project_name = get_project_or_local(
|
505
|
+
owner, _, project_name = get_project_or_local(
|
502
506
|
project or ctx.obj.get("project"), is_cli=True
|
503
507
|
)
|
504
508
|
transfer_project_version(
|
@@ -559,7 +563,7 @@ def pull(
|
|
559
563
|
\b
|
560
564
|
$ polyaxon components pull -p acme/foobar -a --path /tmp/versions
|
561
565
|
"""
|
562
|
-
owner, project_name = get_project_or_local(
|
566
|
+
owner, _, project_name = get_project_or_local(
|
563
567
|
project or ctx.obj.get("project"), is_cli=True
|
564
568
|
)
|
565
569
|
pull_one_or_many_project_versions(
|
@@ -576,6 +580,86 @@ def pull(
|
|
576
580
|
)
|
577
581
|
|
578
582
|
|
583
|
+
@components.command()
|
584
|
+
@click.option(*OPTIONS_PROJECT["args"], **OPTIONS_PROJECT["kwargs"])
|
585
|
+
@click.option(*OPTIONS_COMPONENT_VERSION["args"], **OPTIONS_COMPONENT_VERSION["kwargs"])
|
586
|
+
@click.option(
|
587
|
+
"--all-versions",
|
588
|
+
"-a",
|
589
|
+
is_flag=True,
|
590
|
+
default=False,
|
591
|
+
help="To push all versions.",
|
592
|
+
)
|
593
|
+
@click.option(
|
594
|
+
"--clean",
|
595
|
+
"-c",
|
596
|
+
is_flag=True,
|
597
|
+
default=False,
|
598
|
+
help="To clean the version(s) local data after syncing.",
|
599
|
+
)
|
600
|
+
@click.option(
|
601
|
+
"--path",
|
602
|
+
"--path-from",
|
603
|
+
type=click.Path(exists=False),
|
604
|
+
help="Optional path where the component versions are persisted, "
|
605
|
+
"default value is taken from the env var: `POLYAXON_OFFLINE_ROOT`.",
|
606
|
+
)
|
607
|
+
@click.option(
|
608
|
+
"--reset-project",
|
609
|
+
is_flag=True,
|
610
|
+
default=False,
|
611
|
+
help="Optional, to ignore the owner/project of the local "
|
612
|
+
"version and use the owner/project provided or resolved from the current project.",
|
613
|
+
)
|
614
|
+
@click.option(
|
615
|
+
"--force",
|
616
|
+
is_flag=True,
|
617
|
+
default=False,
|
618
|
+
help="Flag to force register if the version already exists.",
|
619
|
+
)
|
620
|
+
@click.pass_context
|
621
|
+
@clean_outputs
|
622
|
+
def push(
|
623
|
+
ctx,
|
624
|
+
project,
|
625
|
+
version,
|
626
|
+
all_versions,
|
627
|
+
clean,
|
628
|
+
path,
|
629
|
+
reset_project,
|
630
|
+
force,
|
631
|
+
):
|
632
|
+
"""Push local packaged component version or multiple component versions to a remove server.
|
633
|
+
|
634
|
+
Uses /docs/core/cli/#caching
|
635
|
+
|
636
|
+
Examples:
|
637
|
+
|
638
|
+
\b
|
639
|
+
$ polyaxon components push -ver rc12
|
640
|
+
|
641
|
+
\b
|
642
|
+
$ polyaxon components push -p acme/foobar --path /tmp/versions
|
643
|
+
|
644
|
+
\b
|
645
|
+
$ polyaxon components pull -p acme/foobar -a --path /tmp/versions
|
646
|
+
"""
|
647
|
+
owner, _, project_name = get_project_or_local(
|
648
|
+
project or ctx.obj.get("project"), is_cli=True
|
649
|
+
)
|
650
|
+
push_one_or_many_project_versions(
|
651
|
+
owner=owner,
|
652
|
+
project_name=project_name,
|
653
|
+
kind=V1ProjectVersionKind.COMPONENT,
|
654
|
+
version=version,
|
655
|
+
all_versions=all_versions,
|
656
|
+
path=path,
|
657
|
+
clean=clean,
|
658
|
+
force=force,
|
659
|
+
reset_project=reset_project,
|
660
|
+
)
|
661
|
+
|
662
|
+
|
579
663
|
@components.command()
|
580
664
|
@click.option(*OPTIONS_PROJECT["args"], **OPTIONS_PROJECT["kwargs"])
|
581
665
|
@click.option(*OPTIONS_COMPONENT_VERSION["args"], **OPTIONS_COMPONENT_VERSION["kwargs"])
|
@@ -598,11 +682,12 @@ def pull(
|
|
598
682
|
def dashboard(ctx, project, version, yes, url):
|
599
683
|
"""Open this component version's dashboard details in browser."""
|
600
684
|
version = version or ctx.obj.get("version") or "latest"
|
601
|
-
owner, project_name = get_project_or_local(
|
685
|
+
owner, team, project_name = get_project_or_local(
|
602
686
|
project or ctx.obj.get("project"), is_cli=True
|
603
687
|
)
|
604
688
|
open_project_version_dashboard(
|
605
689
|
owner=owner,
|
690
|
+
team=team,
|
606
691
|
project_name=project_name,
|
607
692
|
kind=V1ProjectVersionKind.COMPONENT,
|
608
693
|
version=version,
|