torchx-nightly 2025.8.5__py3-none-any.whl → 2026.1.11__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.
- torchx/{schedulers/ray/__init__.py → _version.py} +3 -1
- torchx/cli/cmd_delete.py +30 -0
- torchx/cli/cmd_list.py +1 -2
- torchx/cli/cmd_run.py +202 -28
- torchx/cli/cmd_tracker.py +1 -1
- torchx/cli/main.py +2 -0
- torchx/components/__init__.py +1 -8
- torchx/components/dist.py +9 -3
- torchx/components/integration_tests/component_provider.py +2 -2
- torchx/components/utils.py +1 -1
- torchx/distributed/__init__.py +1 -1
- torchx/runner/api.py +102 -81
- torchx/runner/config.py +3 -1
- torchx/runner/events/__init__.py +20 -10
- torchx/runner/events/api.py +1 -1
- torchx/schedulers/__init__.py +7 -10
- torchx/schedulers/api.py +66 -25
- torchx/schedulers/aws_batch_scheduler.py +47 -6
- torchx/schedulers/aws_sagemaker_scheduler.py +1 -1
- torchx/schedulers/docker_scheduler.py +4 -3
- torchx/schedulers/ids.py +27 -23
- torchx/schedulers/kubernetes_mcad_scheduler.py +1 -4
- torchx/schedulers/kubernetes_scheduler.py +355 -36
- torchx/schedulers/local_scheduler.py +2 -1
- torchx/schedulers/lsf_scheduler.py +1 -1
- torchx/schedulers/slurm_scheduler.py +102 -27
- torchx/specs/__init__.py +40 -9
- torchx/specs/api.py +222 -12
- torchx/specs/builders.py +109 -28
- torchx/specs/file_linter.py +117 -53
- torchx/specs/finder.py +25 -37
- torchx/specs/named_resources_aws.py +13 -2
- torchx/specs/overlays.py +106 -0
- torchx/tracker/__init__.py +2 -2
- torchx/tracker/api.py +1 -1
- torchx/util/entrypoints.py +1 -6
- torchx/util/strings.py +1 -1
- torchx/util/types.py +12 -1
- torchx/version.py +2 -2
- torchx/workspace/api.py +102 -5
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info}/METADATA +35 -49
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info}/RECORD +46 -56
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info}/WHEEL +1 -1
- torchx/examples/pipelines/__init__.py +0 -0
- torchx/examples/pipelines/kfp/__init__.py +0 -0
- torchx/examples/pipelines/kfp/advanced_pipeline.py +0 -289
- torchx/examples/pipelines/kfp/dist_pipeline.py +0 -71
- torchx/examples/pipelines/kfp/intro_pipeline.py +0 -83
- torchx/pipelines/kfp/__init__.py +0 -30
- torchx/pipelines/kfp/adapter.py +0 -274
- torchx/pipelines/kfp/version.py +0 -19
- torchx/schedulers/gcp_batch_scheduler.py +0 -497
- torchx/schedulers/ray/ray_common.py +0 -22
- torchx/schedulers/ray/ray_driver.py +0 -307
- torchx/schedulers/ray_scheduler.py +0 -454
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info}/entry_points.txt +0 -0
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info/licenses}/LICENSE +0 -0
- {torchx_nightly-2025.8.5.dist-info → torchx_nightly-2026.1.11.dist-info}/top_level.txt +0 -0
torchx/workspace/api.py
CHANGED
|
@@ -8,11 +8,16 @@
|
|
|
8
8
|
|
|
9
9
|
import abc
|
|
10
10
|
import fnmatch
|
|
11
|
+
import logging
|
|
11
12
|
import posixpath
|
|
13
|
+
import tempfile
|
|
14
|
+
import warnings
|
|
12
15
|
from dataclasses import dataclass
|
|
13
16
|
from typing import Any, Dict, Generic, Iterable, Mapping, Tuple, TYPE_CHECKING, TypeVar
|
|
14
17
|
|
|
15
|
-
from torchx.specs import AppDef, CfgVal, Role, runopts
|
|
18
|
+
from torchx.specs import AppDef, CfgVal, Role, runopts, Workspace
|
|
19
|
+
|
|
20
|
+
logger: logging.Logger = logging.getLogger(__name__)
|
|
16
21
|
|
|
17
22
|
if TYPE_CHECKING:
|
|
18
23
|
from fsspec import AbstractFileSystem
|
|
@@ -35,11 +40,33 @@ class PkgInfo(Generic[PackageType]):
|
|
|
35
40
|
lazy_overrides: Dict[str, Any]
|
|
36
41
|
metadata: PackageType
|
|
37
42
|
|
|
43
|
+
def __post_init__(self) -> None:
|
|
44
|
+
msg = (
|
|
45
|
+
f"{self.__class__.__name__} is deprecated and will be removed in the future."
|
|
46
|
+
" Consider forking this class if your project depends on it."
|
|
47
|
+
)
|
|
48
|
+
warnings.warn(
|
|
49
|
+
msg,
|
|
50
|
+
FutureWarning,
|
|
51
|
+
stacklevel=2,
|
|
52
|
+
)
|
|
53
|
+
|
|
38
54
|
|
|
39
55
|
@dataclass
|
|
40
56
|
class WorkspaceBuilder(Generic[PackageType, WorkspaceConfigType]):
|
|
41
57
|
cfg: WorkspaceConfigType
|
|
42
58
|
|
|
59
|
+
def __post_init__(self) -> None:
|
|
60
|
+
msg = (
|
|
61
|
+
f"{self.__class__.__name__} is deprecated and will be removed in the future."
|
|
62
|
+
" Consider forking this class if your project depends on it."
|
|
63
|
+
)
|
|
64
|
+
warnings.warn(
|
|
65
|
+
msg,
|
|
66
|
+
FutureWarning,
|
|
67
|
+
stacklevel=2,
|
|
68
|
+
)
|
|
69
|
+
|
|
43
70
|
@abc.abstractmethod
|
|
44
71
|
def build_workspace(self, sync: bool = True) -> PkgInfo[PackageType]:
|
|
45
72
|
"""
|
|
@@ -77,11 +104,82 @@ class WorkspaceMixin(abc.ABC, Generic[T]):
|
|
|
77
104
|
"""
|
|
78
105
|
return runopts()
|
|
79
106
|
|
|
80
|
-
|
|
107
|
+
def build_workspaces(self, roles: list[Role], cfg: Mapping[str, CfgVal]) -> None:
|
|
108
|
+
"""
|
|
109
|
+
NOTE: this method MUTATES the passed roles!
|
|
110
|
+
|
|
111
|
+
Builds the workspaces (if any) for each role and updates the role to reflect the built workspace.
|
|
112
|
+
Typically ``role.image`` is updated with the newly built image that reflects the local workspace.
|
|
113
|
+
Some workspace implementations may add extra environment variables to make it easier for other
|
|
114
|
+
parts of the program to access the workspace. For example a ``WORKSPACE_DIR`` env var may be added
|
|
115
|
+
to ``role.env`` that scripts can use to refert to the workspace directory in the container.
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
build_cache: dict[object, object] = {}
|
|
119
|
+
|
|
120
|
+
for i, role in enumerate(roles):
|
|
121
|
+
if role.workspace:
|
|
122
|
+
old_img = role.image
|
|
123
|
+
self.caching_build_workspace_and_update_role(role, cfg, build_cache)
|
|
124
|
+
|
|
125
|
+
if old_img != role.image:
|
|
126
|
+
logger.info(
|
|
127
|
+
"role[%d]=%s updated with new image to include workspace changes",
|
|
128
|
+
i,
|
|
129
|
+
role.name,
|
|
130
|
+
)
|
|
131
|
+
|
|
132
|
+
def caching_build_workspace_and_update_role(
|
|
133
|
+
self,
|
|
134
|
+
role: Role,
|
|
135
|
+
cfg: Mapping[str, CfgVal],
|
|
136
|
+
build_cache: dict[object, object],
|
|
137
|
+
) -> None:
|
|
138
|
+
"""
|
|
139
|
+
Same as :py:meth:`build_workspace_and_update_role` but takes
|
|
140
|
+
a ``build_cache`` that can be used to cache pointers to build artifacts
|
|
141
|
+
between building workspace for each role.
|
|
142
|
+
|
|
143
|
+
This is useful when an appdef has multiple roles where the image and workspace
|
|
144
|
+
of the roles are the same but other attributes such as entrypoint or args are different.
|
|
145
|
+
|
|
146
|
+
NOTE: ``build_cache``'s lifetime is within :py:meth:`build_workspace_and_update_roles`
|
|
147
|
+
NOTE: the workspace implementation decides what to cache
|
|
148
|
+
|
|
149
|
+
Workspace subclasses should prefer implementing this method over
|
|
150
|
+
:py:meth:`build_workspace_and_update_role`.
|
|
151
|
+
|
|
152
|
+
The default implementation of this method simply calls the (deprecated) non-caching
|
|
153
|
+
:py:meth:`build_workspace_and_update_role` and deals with multi-dir workspaces by
|
|
154
|
+
merging them into a single tmpdir before passing it down.
|
|
155
|
+
|
|
156
|
+
"""
|
|
157
|
+
|
|
158
|
+
workspace = role.workspace
|
|
159
|
+
|
|
160
|
+
if not workspace:
|
|
161
|
+
return
|
|
162
|
+
|
|
163
|
+
if workspace.is_unmapped_single_project():
|
|
164
|
+
# single-dir workspace with no target map; no need to copy to a tmp dir
|
|
165
|
+
self.build_workspace_and_update_role(role, str(workspace), cfg)
|
|
166
|
+
else:
|
|
167
|
+
# multi-dirs or single-dir with a target map;
|
|
168
|
+
# copy all dirs to a tmp dir and treat the tmp dir as a single-dir workspace
|
|
169
|
+
with tempfile.TemporaryDirectory(suffix="torchx_workspace_") as outdir:
|
|
170
|
+
workspace.merge_into(outdir)
|
|
171
|
+
self.build_workspace_and_update_role(role, outdir, cfg)
|
|
172
|
+
|
|
81
173
|
def build_workspace_and_update_role(
|
|
82
|
-
self,
|
|
174
|
+
self,
|
|
175
|
+
role: Role,
|
|
176
|
+
workspace: str,
|
|
177
|
+
cfg: Mapping[str, CfgVal],
|
|
83
178
|
) -> None:
|
|
84
179
|
"""
|
|
180
|
+
.. note:: DEPRECATED: Workspace subclasses should implement
|
|
181
|
+
:py:meth:`caching_build_workspace_and_update_role` over this method.
|
|
182
|
+
|
|
85
183
|
Builds the specified ``workspace`` with respect to ``img``
|
|
86
184
|
and updates the ``role`` to reflect the built workspace artifacts.
|
|
87
185
|
In the simplest case, this method builds a new image and updates
|
|
@@ -90,7 +188,7 @@ class WorkspaceMixin(abc.ABC, Generic[T]):
|
|
|
90
188
|
|
|
91
189
|
Note: this method mutates the passed ``role``.
|
|
92
190
|
"""
|
|
93
|
-
|
|
191
|
+
raise NotImplementedError("implement `caching_build_workspace_and_update_role`")
|
|
94
192
|
|
|
95
193
|
def dryrun_push_images(self, app: AppDef, cfg: Mapping[str, CfgVal]) -> T:
|
|
96
194
|
"""
|
|
@@ -133,7 +231,6 @@ def walk_workspace(
|
|
|
133
231
|
walk_workspace walks the filesystem path and applies the ignore rules
|
|
134
232
|
specified via ``ignore_name``.
|
|
135
233
|
This follows the rules for ``.dockerignore``.
|
|
136
|
-
https://docs.docker.com/engine/reference/builder/#dockerignore-file
|
|
137
234
|
"""
|
|
138
235
|
ignore_patterns = []
|
|
139
236
|
ignore_path = posixpath.join(path, ignore_name)
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: torchx-nightly
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2026.1.11
|
|
4
4
|
Summary: TorchX SDK and Components
|
|
5
|
-
Home-page: https://github.com/pytorch/torchx
|
|
5
|
+
Home-page: https://github.com/meta-pytorch/torchx
|
|
6
6
|
Author: TorchX Devs
|
|
7
7
|
Author-email: torchx@fb.com
|
|
8
8
|
License: BSD-3
|
|
@@ -22,10 +22,11 @@ Requires-Dist: pyyaml
|
|
|
22
22
|
Requires-Dist: docker
|
|
23
23
|
Requires-Dist: filelock
|
|
24
24
|
Requires-Dist: fsspec>=2023.10.0
|
|
25
|
-
Requires-Dist: urllib3<1.27,>=1.21.1
|
|
26
25
|
Requires-Dist: tabulate
|
|
27
|
-
Provides-Extra:
|
|
26
|
+
Provides-Extra: aws-batch
|
|
28
27
|
Requires-Dist: boto3; extra == "aws-batch"
|
|
28
|
+
Provides-Extra: kubernetes
|
|
29
|
+
Requires-Dist: kubernetes>=11; extra == "kubernetes"
|
|
29
30
|
Provides-Extra: dev
|
|
30
31
|
Requires-Dist: aiobotocore==2.20.0; extra == "dev"
|
|
31
32
|
Requires-Dist: ax-platform[mysql]==0.2.3; extra == "dev"
|
|
@@ -36,13 +37,8 @@ Requires-Dist: kubernetes==25.3.0; extra == "dev"
|
|
|
36
37
|
Requires-Dist: flake8==3.9.0; extra == "dev"
|
|
37
38
|
Requires-Dist: fsspec==2024.3.1; extra == "dev"
|
|
38
39
|
Requires-Dist: s3fs==2024.3.1; extra == "dev"
|
|
39
|
-
Requires-Dist: google-cloud-batch==0.17.14; extra == "dev"
|
|
40
|
-
Requires-Dist: google-cloud-logging==3.10.0; extra == "dev"
|
|
41
|
-
Requires-Dist: google-cloud-runtimeconfig==0.34.0; extra == "dev"
|
|
42
40
|
Requires-Dist: hydra-core; extra == "dev"
|
|
43
41
|
Requires-Dist: ipython; extra == "dev"
|
|
44
|
-
Requires-Dist: kfp==1.8.22; extra == "dev"
|
|
45
|
-
Requires-Dist: protobuf==3.20.3; extra == "dev"
|
|
46
42
|
Requires-Dist: mlflow-skinny; extra == "dev"
|
|
47
43
|
Requires-Dist: moto~=5.0.8; extra == "dev"
|
|
48
44
|
Requires-Dist: pyre-extensions; extra == "dev"
|
|
@@ -51,38 +47,36 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
51
47
|
Requires-Dist: pytest-cov; extra == "dev"
|
|
52
48
|
Requires-Dist: pytorch-lightning==2.5.0; extra == "dev"
|
|
53
49
|
Requires-Dist: tensorboard==2.14.0; extra == "dev"
|
|
54
|
-
Requires-Dist: sagemaker==2.
|
|
50
|
+
Requires-Dist: sagemaker==2.237.3; extra == "dev"
|
|
55
51
|
Requires-Dist: torch-model-archiver>=0.4.2; extra == "dev"
|
|
56
|
-
Requires-Dist: torch
|
|
52
|
+
Requires-Dist: torch; extra == "dev"
|
|
57
53
|
Requires-Dist: torchmetrics==1.6.3; extra == "dev"
|
|
58
54
|
Requires-Dist: torchserve>=0.10.0; extra == "dev"
|
|
59
|
-
Requires-Dist: torchtext
|
|
60
|
-
Requires-Dist: torchvision
|
|
55
|
+
Requires-Dist: torchtext; extra == "dev"
|
|
56
|
+
Requires-Dist: torchvision; extra == "dev"
|
|
61
57
|
Requires-Dist: typing-extensions; extra == "dev"
|
|
62
58
|
Requires-Dist: ts==0.5.1; extra == "dev"
|
|
63
|
-
Requires-Dist: ray[default]; extra == "dev"
|
|
64
59
|
Requires-Dist: wheel; extra == "dev"
|
|
65
60
|
Requires-Dist: lintrunner; extra == "dev"
|
|
66
61
|
Requires-Dist: lintrunner-adapters; extra == "dev"
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
Requires-Dist: ray>=1.12.1; extra == "ray"
|
|
62
|
+
Dynamic: author
|
|
63
|
+
Dynamic: author-email
|
|
64
|
+
Dynamic: classifier
|
|
65
|
+
Dynamic: description
|
|
66
|
+
Dynamic: description-content-type
|
|
67
|
+
Dynamic: home-page
|
|
68
|
+
Dynamic: keywords
|
|
69
|
+
Dynamic: license
|
|
70
|
+
Dynamic: license-file
|
|
71
|
+
Dynamic: provides-extra
|
|
72
|
+
Dynamic: requires-dist
|
|
73
|
+
Dynamic: requires-python
|
|
74
|
+
Dynamic: summary
|
|
81
75
|
|
|
82
76
|
[](https://pypi.org/project/torchx/)
|
|
83
|
-
[](https://github.com/pytorch/torchx/blob/main/LICENSE)
|
|
84
|
-

|
|
85
|
-

|
|
77
|
+
[](https://github.com/meta-pytorch/torchx/blob/main/LICENSE)
|
|
78
|
+

|
|
79
|
+

|
|
86
80
|
[](https://codecov.io/gh/pytorch/torchx)
|
|
87
81
|
|
|
88
82
|
|
|
@@ -100,19 +94,17 @@ TorchX currently supports:
|
|
|
100
94
|
* AWS Batch
|
|
101
95
|
* Docker
|
|
102
96
|
* Local
|
|
103
|
-
* Ray (prototype)
|
|
104
|
-
* GCP Batch (prototype)
|
|
105
97
|
|
|
106
|
-
Need a scheduler not listed? [Let us know!](https://github.com/pytorch/torchx/issues?q=is%3Aopen+is%3Aissue+label%3Ascheduler-request)
|
|
98
|
+
Need a scheduler not listed? [Let us know!](https://github.com/meta-pytorch/torchx/issues?q=is%3Aopen+is%3Aissue+label%3Ascheduler-request)
|
|
107
99
|
|
|
108
100
|
## Quickstart
|
|
109
101
|
|
|
110
|
-
See the [quickstart guide](https://pytorch.org/torchx/latest/quickstart.html).
|
|
102
|
+
See the [quickstart guide](https://meta-pytorch.org/torchx/latest/quickstart.html).
|
|
111
103
|
|
|
112
104
|
## Documentation
|
|
113
105
|
|
|
114
|
-
* [Stable Documentation](https://pytorch.org/torchx/latest/)
|
|
115
|
-
* [Nightly Documentation](https://pytorch.org/torchx/main/)
|
|
106
|
+
* [Stable Documentation](https://meta-pytorch.org/torchx/latest/)
|
|
107
|
+
* [Nightly Documentation](https://meta-pytorch.org/torchx/main/)
|
|
116
108
|
|
|
117
109
|
## Requirements
|
|
118
110
|
|
|
@@ -136,15 +128,9 @@ pip install torchx
|
|
|
136
128
|
# install torchx sdk and CLI -- all dependencies
|
|
137
129
|
pip install "torchx[dev]"
|
|
138
130
|
|
|
139
|
-
# install torchx kubeflow pipelines (kfp) support
|
|
140
|
-
pip install "torchx[kfp]"
|
|
141
|
-
|
|
142
131
|
# install torchx Kubernetes / Volcano support
|
|
143
132
|
pip install "torchx[kubernetes]"
|
|
144
133
|
|
|
145
|
-
# install torchx Ray support
|
|
146
|
-
pip install "torchx[ray]"
|
|
147
|
-
|
|
148
134
|
# install torchx GCP Batch support
|
|
149
135
|
pip install "torchx[gcp_batch]"
|
|
150
136
|
```
|
|
@@ -160,22 +146,22 @@ pip install torchx-nightly[dev]
|
|
|
160
146
|
|
|
161
147
|
```bash
|
|
162
148
|
# install torchx sdk and CLI from source
|
|
163
|
-
$ pip install -e git+https://github.com/pytorch/torchx.git#egg=torchx
|
|
149
|
+
$ pip install -e git+https://github.com/meta-pytorch/torchx.git#egg=torchx
|
|
164
150
|
|
|
165
151
|
# install extra dependencies
|
|
166
|
-
$ pip install -e git+https://github.com/pytorch/torchx.git#egg=torchx[dev]
|
|
152
|
+
$ pip install -e git+https://github.com/meta-pytorch/torchx.git#egg=torchx[dev]
|
|
167
153
|
```
|
|
168
154
|
|
|
169
155
|
### Docker
|
|
170
156
|
|
|
171
157
|
TorchX provides a docker container for using as as part of a TorchX role.
|
|
172
158
|
|
|
173
|
-
See: https://github.com/pytorch/torchx/pkgs/container/torchx
|
|
159
|
+
See: https://github.com/meta-pytorch/torchx/pkgs/container/torchx
|
|
174
160
|
|
|
175
161
|
## Contributing
|
|
176
162
|
|
|
177
|
-
We welcome PRs! See the [CONTRIBUTING](https://github.com/pytorch/torchx/blob/main/CONTRIBUTING.md) file.
|
|
163
|
+
We welcome PRs! See the [CONTRIBUTING](https://github.com/meta-pytorch/torchx/blob/main/CONTRIBUTING.md) file.
|
|
178
164
|
|
|
179
165
|
## License
|
|
180
166
|
|
|
181
|
-
TorchX is BSD licensed, as found in the [LICENSE](https://github.com/pytorch/torchx/blob/main/LICENSE) file.
|
|
167
|
+
TorchX is BSD licensed, as found in the [LICENSE](https://github.com/meta-pytorch/torchx/blob/main/LICENSE) file.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
torchx/__init__.py,sha256=QFDTdJacncWYWHL-2QyWdY5MUck3jVfSPRRGdvedcKc,355
|
|
2
|
+
torchx/_version.py,sha256=TzDuXIviDldFbXAhGe33redQcoP33jIsVR_hMyqSgdc,250
|
|
2
3
|
torchx/notebook.py,sha256=Rc6XUMzSq7NXtsYdtVluE6T89LpEhcba-3ANxuaLCCU,1008
|
|
3
|
-
torchx/version.py,sha256=
|
|
4
|
+
torchx/version.py,sha256=YcE66UkBxYHMQMtjVts4jF3l6Qeaj1gK_LzxU77l8Bo,975
|
|
4
5
|
torchx/apps/__init__.py,sha256=fE0IHi1JJpxsNVBNzWNee2thrNXFFRhY94c80RxNSIE,231
|
|
5
6
|
torchx/apps/serve/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
|
|
6
7
|
torchx/apps/serve/serve.py,sha256=u_h8agld1TwIPq5GRosHL3uxhkljNfS65McLB77O0OE,4386
|
|
@@ -13,28 +14,29 @@ torchx/cli/argparse_util.py,sha256=kZb1ubEHDrBsmrxpySFRQCW7wmHuRHD8eAInuEZjlsI,3
|
|
|
13
14
|
torchx/cli/cmd_base.py,sha256=SdqMtqi04CEqnzcgcS35DbDbsBeMxSgEhfynfpIkMGk,790
|
|
14
15
|
torchx/cli/cmd_cancel.py,sha256=NKfOCu_44Lch9vliGSQ0Uv6BVqpUqj7Tob652TI-ua4,835
|
|
15
16
|
torchx/cli/cmd_configure.py,sha256=1kTv0qbsbV44So74plAySwWu56pQrqjhfW_kbfdC3Rw,1722
|
|
17
|
+
torchx/cli/cmd_delete.py,sha256=US1f6Jvyhz4R_0Q0a8GeNTDMrhzo8WE_ECcdOf0MjKE,835
|
|
16
18
|
torchx/cli/cmd_describe.py,sha256=E5disbHoKTsqYKp2s3DaFW9GDLCCOgdOc3pQoHKoyCs,1283
|
|
17
|
-
torchx/cli/cmd_list.py,sha256=
|
|
19
|
+
torchx/cli/cmd_list.py,sha256=alkS9aIaDI8lX3W8uj8Vtr3IU3G2VeCuokKSd3zOFug,1409
|
|
18
20
|
torchx/cli/cmd_log.py,sha256=v-EZYUDOcG95rEgTnrsmPJMUyxM9Mk8YFAJtUxtgViE,5475
|
|
19
|
-
torchx/cli/cmd_run.py,sha256=
|
|
21
|
+
torchx/cli/cmd_run.py,sha256=z8wS-M2W9hHZfLkA6DFiV6Y0LFS9KfEBc_NTwAwdviQ,18780
|
|
20
22
|
torchx/cli/cmd_runopts.py,sha256=NWZiP8XpQjfTDJgays2c6MgL_8wxFoeDge6NstaZdKk,1302
|
|
21
23
|
torchx/cli/cmd_status.py,sha256=22IAEmKs0qkG6kJi83u9dRX2Q-ntT7yehVx7FxtY-vQ,2114
|
|
22
|
-
torchx/cli/cmd_tracker.py,sha256=
|
|
24
|
+
torchx/cli/cmd_tracker.py,sha256=9gmOmYi-89qQRGQfSrXCTto7ve54_JKFqs_wa7oRUA8,5223
|
|
23
25
|
torchx/cli/colors.py,sha256=yLMes7e_UoLAfhxE0W6edhc58t83UHAlnCN2ANPeuXw,568
|
|
24
|
-
torchx/cli/main.py,sha256=
|
|
25
|
-
torchx/components/__init__.py,sha256=
|
|
26
|
+
torchx/cli/main.py,sha256=1DJTmKdvPW_7hod8OUVT3Br2uwsZVEDU-2bTE0NJ0zY,3559
|
|
27
|
+
torchx/components/__init__.py,sha256=JaVte0j9Gqi6IrjZKudJ2Kr3gkdHsvlCdRTo-zYpSRo,11815
|
|
26
28
|
torchx/components/component_test_base.py,sha256=22iNSdVa_qTW3SMM30Pw5UEWlK4DZVw0C03EqYiaLOI,4150
|
|
27
|
-
torchx/components/dist.py,sha256=
|
|
29
|
+
torchx/components/dist.py,sha256=6DNPEvHVqEifmM8g1L7HVY169cQv_7tSfSlh3o6lTp4,14930
|
|
28
30
|
torchx/components/interpret.py,sha256=g8gkKdDJvsBfX1ZrpVT7n2bMEtmwRV_1AqDyAnnQ_aA,697
|
|
29
31
|
torchx/components/metrics.py,sha256=1gbp8BfzZWGa7PD1db5vRADlONzmae4qSBUUdCWayr0,2814
|
|
30
32
|
torchx/components/serve.py,sha256=uxIC5gU2ecg0EJIPX_oEPzNNOXRAre4j2eXusrgwGAI,2156
|
|
31
33
|
torchx/components/structured_arg.py,sha256=8jMcd0rtUmzCKEQKJ_JYzxSkMMK9q0fYjkwAs6wo78E,9595
|
|
32
34
|
torchx/components/train.py,sha256=vtrQXRcD7bIcbb3lSeyD9BBlIe1mv1WNW6rnLK9R0Mw,1259
|
|
33
|
-
torchx/components/utils.py,sha256=
|
|
35
|
+
torchx/components/utils.py,sha256=IMjihhgs7nO67YtTetUBjN_CRpyIyyQsaJBkp7mpHfk,9368
|
|
34
36
|
torchx/components/integration_tests/__init__.py,sha256=Md3cCHD7Ano9kV15PqGbicgUO-RMdh4aVy1yKiDt_xE,208
|
|
35
|
-
torchx/components/integration_tests/component_provider.py,sha256=
|
|
37
|
+
torchx/components/integration_tests/component_provider.py,sha256=g-4ig1vtd5Vzgug0VAKRAFUt6KAV3TgQrBCrwRSJ7ZY,3981
|
|
36
38
|
torchx/components/integration_tests/integ_tests.py,sha256=O8jd8Jq5O0mns7xzIFsHexBDHkIIAIfELQkWCzNPzRw,5165
|
|
37
|
-
torchx/distributed/__init__.py,sha256=
|
|
39
|
+
torchx/distributed/__init__.py,sha256=kh9YzDwWX7zFJJ8StR9qhMM2V3-66INs9i3ztDF-1ho,10252
|
|
38
40
|
torchx/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
39
41
|
torchx/examples/torchx_out_of_sync_training.py,sha256=sXiI1G8aGsfuvxRdBszDgM8pSplqhgfXjRnAcgRwNGM,397
|
|
40
42
|
torchx/examples/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -46,78 +48,66 @@ torchx/examples/apps/lightning/interpret.py,sha256=Hd3kE5a6FyhxCmJBfTzb4Tlj518zh
|
|
|
46
48
|
torchx/examples/apps/lightning/model.py,sha256=4CgObWfANqDN9emYSdmCpbRe_V_Lef_Hd3M-yayDbZE,4045
|
|
47
49
|
torchx/examples/apps/lightning/profiler.py,sha256=SSSihnwjeUTkBoz0E3qn1b-wbkfUIowscx2ND_37zyw,1915
|
|
48
50
|
torchx/examples/apps/lightning/train.py,sha256=0wvvshGHvZowePB4LfclXwn40X7i9euM0ReETWBcPSo,6253
|
|
49
|
-
torchx/examples/pipelines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
torchx/examples/pipelines/kfp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
-
torchx/examples/pipelines/kfp/advanced_pipeline.py,sha256=U5N_XmpxbuEIh-hDayjJ5Lnk2lYvmgr7oznFnsKUk5g,8431
|
|
52
|
-
torchx/examples/pipelines/kfp/dist_pipeline.py,sha256=xFn59P1S22o2zOJ2LhlIkhjYH3le0zp2sLPNj5idTnE,2203
|
|
53
|
-
torchx/examples/pipelines/kfp/intro_pipeline.py,sha256=oWdMHPLWf5nKRm0hS7psF0yUp8Tf7tfR-Sm3YuUCmWk,2776
|
|
54
51
|
torchx/pipelines/__init__.py,sha256=2MbRVk5xwRjg-d2qPemeXpEhDsocMQumPQ53lsesZAI,606
|
|
55
|
-
torchx/pipelines/kfp/__init__.py,sha256=8iJ8lql_fxwuk9VCYSxXnX6tPL228fB5mDZpOs-kpn4,736
|
|
56
|
-
torchx/pipelines/kfp/adapter.py,sha256=5GeHULjb1kxG6wJtYVLpNkgdzUi4iYEaR42VFOwT6fY,9045
|
|
57
|
-
torchx/pipelines/kfp/version.py,sha256=mYBxd6bm4MeR34D--xo-JLQ9wHeAl_ZQLwbItCf9tr0,539
|
|
58
52
|
torchx/runner/__init__.py,sha256=x8Sz7s_tLxPgJgvWIhK4ju9BNZU61uBFywGwDY6CqJs,315
|
|
59
|
-
torchx/runner/api.py,sha256=
|
|
60
|
-
torchx/runner/config.py,sha256=
|
|
61
|
-
torchx/runner/events/__init__.py,sha256=
|
|
62
|
-
torchx/runner/events/api.py,sha256=
|
|
53
|
+
torchx/runner/api.py,sha256=Qi12Kjkr_zpQBesbLuCtgKET8JhHnQk22MV7Czi4l1A,30832
|
|
54
|
+
torchx/runner/config.py,sha256=SaKOB50d79WaMFPWK8CC4as6UaNFaRGhrBkfajq3KC4,18311
|
|
55
|
+
torchx/runner/events/__init__.py,sha256=cMiNjnr4eUNQ2Nxxtu4nsvN5lu56b-a6nJ-ct3i7DQk,5536
|
|
56
|
+
torchx/runner/events/api.py,sha256=bvxKBAYK8LzbrBNaNLgL1x0aivtfANmWo1EMGOrSR8k,2668
|
|
63
57
|
torchx/runner/events/handlers.py,sha256=ThHCIJW21BfBgB7b6ftyjASJmD1KdizpjuTtsyqnvJs,522
|
|
64
58
|
torchx/runtime/__init__.py,sha256=Wxje2BryzeQneFu5r6P9JJiEKG-_C9W1CcZ_JNrKT6g,593
|
|
65
59
|
torchx/runtime/tracking/__init__.py,sha256=dYnAPnrXYREfPXkpHhdOFkcYIODWEbA13PdD-wLQYBo,3055
|
|
66
60
|
torchx/runtime/tracking/api.py,sha256=SmUQyUKZqG3KlAhT7CJOGqRz1O274E4m63wQeOVq3CU,5472
|
|
67
|
-
torchx/schedulers/__init__.py,sha256=
|
|
68
|
-
torchx/schedulers/api.py,sha256=
|
|
69
|
-
torchx/schedulers/aws_batch_scheduler.py,sha256=
|
|
70
|
-
torchx/schedulers/aws_sagemaker_scheduler.py,sha256=
|
|
61
|
+
torchx/schedulers/__init__.py,sha256=FQN9boQM4mwOD3sK9LZ3GBgw-gJ7Vx4MFj6z6ATQIrc,2211
|
|
62
|
+
torchx/schedulers/api.py,sha256=wT9H_ZTmpTHHweevDJbkV7NKXfwileHrt1bbhhCgj3c,16488
|
|
63
|
+
torchx/schedulers/aws_batch_scheduler.py,sha256=b6xC4BQKb7zagOGS6_z3_6fmOLsSEOxSprkGUE-yfJE,29412
|
|
64
|
+
torchx/schedulers/aws_sagemaker_scheduler.py,sha256=DnNF6huHGZLSUGWqKml4qGiWvmyDzX0i45tjsRfkedg,20881
|
|
71
65
|
torchx/schedulers/devices.py,sha256=RjVcu22ZRl_9OKtOtmA1A3vNXgu2qD6A9ST0L0Hsg4I,1734
|
|
72
|
-
torchx/schedulers/docker_scheduler.py,sha256=
|
|
73
|
-
torchx/schedulers/
|
|
74
|
-
torchx/schedulers/
|
|
75
|
-
torchx/schedulers/
|
|
76
|
-
torchx/schedulers/
|
|
77
|
-
torchx/schedulers/
|
|
78
|
-
torchx/schedulers/
|
|
79
|
-
torchx/schedulers/ray_scheduler.py,sha256=T-jsGSOa8O-h1kTUU7Q7Fk1RILL1Yzvuos_WFSQF8Fo,15795
|
|
80
|
-
torchx/schedulers/slurm_scheduler.py,sha256=GlHGZBIklIyvBxxzw2CtFvCBmLQGCy_o8kf5lf411Ng,28592
|
|
66
|
+
torchx/schedulers/docker_scheduler.py,sha256=Kud3AIzQtMekgjlqcg1eNDb8kk29aPbGYOMAvPTZdhM,16840
|
|
67
|
+
torchx/schedulers/ids.py,sha256=8Qhf1Xqh845mwL-RXnWZXqIILNvml3z8udEXPFpyO7U,2247
|
|
68
|
+
torchx/schedulers/kubernetes_mcad_scheduler.py,sha256=FclJEdBdlgtBqKDbgd95oAk5Ya5XNTrwysfX7GS80GY,42896
|
|
69
|
+
torchx/schedulers/kubernetes_scheduler.py,sha256=kYO08hqVlZtNe_FZQP_e8WQk1P8-8SVkXZuY3Zm_Znk,39640
|
|
70
|
+
torchx/schedulers/local_scheduler.py,sha256=xGQbI02BNWGF91g00So6hCcYvR90bUAZ7fPzqnm3Ww8,41892
|
|
71
|
+
torchx/schedulers/lsf_scheduler.py,sha256=vUvEJb02u7WI6y7DsWJxJFXNylRucU7FqkBX7xwLTak,17638
|
|
72
|
+
torchx/schedulers/slurm_scheduler.py,sha256=ipDVDtgfqgL6c35NyoJgSPuQFt8-AeXVXAnXJVvmzrc,32032
|
|
81
73
|
torchx/schedulers/streams.py,sha256=8_SLezgnWgfv_zXUsJCUM34-h2dtv25NmZuxEwkzmxw,2007
|
|
82
|
-
torchx/
|
|
83
|
-
torchx/
|
|
84
|
-
torchx/
|
|
85
|
-
torchx/specs/
|
|
86
|
-
torchx/specs/
|
|
87
|
-
torchx/specs/
|
|
88
|
-
torchx/specs/file_linter.py,sha256=QCwob5STTBuy8RsxaevTI-Dk6R8siDJn81LyaOwazes,12333
|
|
89
|
-
torchx/specs/finder.py,sha256=lMCS1hUR-x7j4sAjfJZnKFeS1RlkFTeJtit4EL_ErIo,18182
|
|
90
|
-
torchx/specs/named_resources_aws.py,sha256=ISjHtifRJqB8u7PeAMiyLyO_S0WCaZiK-CFF3qe6JDU,11415
|
|
74
|
+
torchx/specs/__init__.py,sha256=TaC0AveTebkCMo5hmdY1wGpo09vFDqzWnsT166ionTw,7108
|
|
75
|
+
torchx/specs/api.py,sha256=7FdLFfadNWqXTLJ_EtP5t1uVS2Vc_4Gj5GLFoI628oE,49338
|
|
76
|
+
torchx/specs/builders.py,sha256=Ye3of4MupJ-da8vLaX6_-nzGo_FRw1BFpYsX6dAZCNk,13730
|
|
77
|
+
torchx/specs/file_linter.py,sha256=z0c4mKJv47BWiPaWCdUM0A8kHwnj4b1s7oTmESuD9Tc,14407
|
|
78
|
+
torchx/specs/finder.py,sha256=gWQNEFrLYqrZoI0gMMhQ70YAC4sxqS0ZFpoWAmcVi44,17438
|
|
79
|
+
torchx/specs/named_resources_aws.py,sha256=ZNAbw6lD8NUlMfcJ-LpX14dMSaHO7m4Yt9iHwAF44yg,11674
|
|
91
80
|
torchx/specs/named_resources_generic.py,sha256=Sg4tAdqiiWDrDz2Lj_pnfsjzGIXKTou73wPseh6j55w,2646
|
|
81
|
+
torchx/specs/overlays.py,sha256=HmY2yzC8ejgihviNWFT4rbYmP-gTcqpxVZTP6qBiIYM,3778
|
|
92
82
|
torchx/specs/test/components/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
|
|
93
83
|
torchx/specs/test/components/a/__init__.py,sha256=kdxEgnI8QBSBiuTjaB4qDD7JX84hWowyPWU4B2Cqe9A,561
|
|
94
84
|
torchx/specs/test/components/a/b/__init__.py,sha256=J8qjUOysmcMAek2KFN13mViOXZxTYc5vCrF02t3VuFU,223
|
|
95
85
|
torchx/specs/test/components/a/b/c.py,sha256=FhixafzNqpS5zvggtWIWLxRd6HIxsOmct-d1Hs-rDoc,554
|
|
96
86
|
torchx/specs/test/components/c/__init__.py,sha256=5CBMckkpqJUdxBQBYHGSsItqq1gj2V0UiCw02Qfq6MM,246
|
|
97
87
|
torchx/specs/test/components/c/d.py,sha256=2AjE-FmQXJTw3hws66O83ToQPmjOEZLDf-jDAKrrUkQ,546
|
|
98
|
-
torchx/tracker/__init__.py,sha256=
|
|
99
|
-
torchx/tracker/api.py,sha256=
|
|
88
|
+
torchx/tracker/__init__.py,sha256=qo39aOa0Dz9zt4TtFkqPeIaH7MNqdAkFlGaOFiDLXTI,4375
|
|
89
|
+
torchx/tracker/api.py,sha256=WZ7TYdbSVx_5h5MlX9EwQLRpxmIf0oKdiQwQ0zvkO3o,11262
|
|
100
90
|
torchx/tracker/mlflow.py,sha256=poeoIXVPzr2sxgi515fMGRH83KAFNL6XFILMh0EQ2Dw,14487
|
|
101
91
|
torchx/tracker/backend/__init__.py,sha256=fE0IHi1JJpxsNVBNzWNee2thrNXFFRhY94c80RxNSIE,231
|
|
102
92
|
torchx/tracker/backend/fsspec.py,sha256=528xKryBE27Rm_OHD7r2R6fmVAclknBtoy1s034Ny6c,10440
|
|
103
93
|
torchx/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
104
94
|
torchx/util/cuda.py,sha256=-ZTa1WCLnY2WtSWAdWufLQqZSDCZfZsloBuiS84LIkU,1099
|
|
105
95
|
torchx/util/datetime.py,sha256=hV6Sg0u5KTBe68yrmy_RGCC5su0i4Tb_mAYphWamiXI,405
|
|
106
|
-
torchx/util/entrypoints.py,sha256=
|
|
96
|
+
torchx/util/entrypoints.py,sha256=YUv7F-Vr4uuY4_82IBPdrz5vrch_qsx_dIr6e08kSD4,3800
|
|
107
97
|
torchx/util/io.py,sha256=HNpWLcFUX0WTAP3CsdamHz--FR5A4kSdLCPfNqa2UkA,1807
|
|
108
98
|
torchx/util/log_tee_helpers.py,sha256=wPyozmh9BOt_2d3Gxa0iNogwnjzwFitIIMBJOJ1arIw,6330
|
|
109
99
|
torchx/util/modules.py,sha256=o4y_d07gTpJ4nIVBcoUVJ0JtXIHEsEC5kbgBM6NGpgA,2135
|
|
110
100
|
torchx/util/session.py,sha256=r6M_nyzXgcbk1GgYGZ324F_ehRGCqjjdVk4YgKxMj8M,1214
|
|
111
101
|
torchx/util/shlex.py,sha256=eXEKu8KC3zIcd8tEy9_s8Ds5oma8BORr-0VGWNpG2dk,463
|
|
112
|
-
torchx/util/strings.py,sha256=
|
|
113
|
-
torchx/util/types.py,sha256=
|
|
102
|
+
torchx/util/strings.py,sha256=7Ef1loz2IYMrzeJ6Lewywi5cBIc3X3g7lSPbT1Tn_z4,664
|
|
103
|
+
torchx/util/types.py,sha256=E9dxAWQnsJkIDuHtg-poeOJ4etucSI_xP_Z5kNJX8uI,9229
|
|
114
104
|
torchx/workspace/__init__.py,sha256=FqN8AN4VhR1C_SBY10MggQvNZmyanbbuPuE-JCjkyUY,798
|
|
115
|
-
torchx/workspace/api.py,sha256=
|
|
105
|
+
torchx/workspace/api.py,sha256=UESQ4qgxXjsb6Y1wP9OGv2ixaFgaTs3SqghmNuOJIZM,10235
|
|
116
106
|
torchx/workspace/dir_workspace.py,sha256=npNW_IjUZm_yS5r-8hrRkH46ndDd9a_eApT64m1S1T4,2268
|
|
117
107
|
torchx/workspace/docker_workspace.py,sha256=PFu2KQNVC-0p2aKJ-W_BKA9ZOmXdCY2ABEkCExp3udQ,10269
|
|
118
|
-
torchx_nightly-
|
|
119
|
-
torchx_nightly-
|
|
120
|
-
torchx_nightly-
|
|
121
|
-
torchx_nightly-
|
|
122
|
-
torchx_nightly-
|
|
123
|
-
torchx_nightly-
|
|
108
|
+
torchx_nightly-2026.1.11.dist-info/licenses/LICENSE,sha256=WVHfXhFC0Ia8LTKt_nJVYobdqTJVg_4J3Crrfm2A8KQ,1721
|
|
109
|
+
torchx_nightly-2026.1.11.dist-info/METADATA,sha256=VzSwxPN0aaQV3U3gNuMZMvhXiVRwO3W51DLXH1jaEr0,5323
|
|
110
|
+
torchx_nightly-2026.1.11.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
|
|
111
|
+
torchx_nightly-2026.1.11.dist-info/entry_points.txt,sha256=T328AMXeKI3JZnnxfkEew2ZcMN1oQDtkXjMz7lkV-P4,169
|
|
112
|
+
torchx_nightly-2026.1.11.dist-info/top_level.txt,sha256=pxew3bc2gsiViS0zADs0jb6kC5v8o_Yy_85fhHj_J1A,7
|
|
113
|
+
torchx_nightly-2026.1.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|