hydraflow 0.14.1__py3-none-any.whl → 0.14.3__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.
hydraflow/cli.py CHANGED
@@ -94,9 +94,8 @@ def submit(job: Job, args: list[str], *, dry_run: bool) -> None:
94
94
  result = submit(args, iter_batches(job), dry_run=dry_run)
95
95
 
96
96
  if dry_run and isinstance(result, tuple):
97
- for line in result[1].splitlines():
98
- args = shlex.split(line)
99
- typer.echo(shlex.join([*result[0][:-1], *args]))
97
+ typer.echo(shlex.join(result[0]))
98
+ typer.echo(result[1])
100
99
 
101
100
 
102
101
  @app.command()
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hydraflow
3
- Version: 0.14.1
4
- Summary: Hydraflow integrates Hydra and MLflow to manage and track machine learning experiments.
3
+ Version: 0.14.3
4
+ Summary: HydraFlow seamlessly integrates Hydra and MLflow to streamline ML experiment management. It combines Hydra's configuration management with MLflow's tracking capabilities, offering automated experiment tracking, versioning, and a rich CLI interface. Perfect for ML researchers and teams who need reproducibility while scaling experiments.
5
5
  Project-URL: Documentation, https://daizutabi.github.io/hydraflow/
6
6
  Project-URL: Source, https://github.com/daizutabi/hydraflow
7
7
  Project-URL: Issues, https://github.com/daizutabi/hydraflow/issues
@@ -28,13 +28,20 @@ License: MIT License
28
28
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
29
29
  SOFTWARE.
30
30
  License-File: LICENSE
31
+ Keywords: ai,data-science,deep-learning,experiment-tracking,hydra,machine-learning,mlflow,mlops,research
31
32
  Classifier: Development Status :: 4 - Beta
33
+ Classifier: Environment :: Console
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: Intended Audience :: Science/Research
32
36
  Classifier: License :: OSI Approved :: MIT License
37
+ Classifier: Operating System :: OS Independent
33
38
  Classifier: Programming Language :: Python
34
39
  Classifier: Programming Language :: Python :: 3.10
35
40
  Classifier: Programming Language :: Python :: 3.11
36
41
  Classifier: Programming Language :: Python :: 3.12
37
42
  Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
44
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
38
45
  Requires-Python: >=3.10
39
46
  Requires-Dist: hydra-core>=1.3
40
47
  Requires-Dist: mlflow>=2.15
@@ -50,6 +57,7 @@ Description-Content-Type: text/markdown
50
57
  [![Python Version][python-v-image]][python-v-link]
51
58
  [![Build Status][GHAction-image]][GHAction-link]
52
59
  [![Coverage Status][codecov-image]][codecov-link]
60
+ [![Documentation Status][docs-image]][docs-link]
53
61
 
54
62
  <!-- Badges -->
55
63
  [pypi-v-image]: https://img.shields.io/pypi/v/hydraflow.svg
@@ -60,6 +68,8 @@ Description-Content-Type: text/markdown
60
68
  [GHAction-link]: https://github.com/daizutabi/hydraflow/actions?query=event%3Apush+branch%3Amain
61
69
  [codecov-image]: https://codecov.io/github/daizutabi/hydraflow/coverage.svg?branch=main
62
70
  [codecov-link]: https://codecov.io/github/daizutabi/hydraflow?branch=main
71
+ [docs-image]: https://readthedocs.org/projects/hydraflow/badge/?version=latest
72
+ [docs-link]: https://daizutabi.github.io/hydraflow/
63
73
 
64
74
  ## Overview
65
75
 
@@ -80,6 +90,8 @@ machine learning workflows.
80
90
  checkpoints and configuration files, with MLflow.
81
91
  - **Seamless Integration**: Easily integrate Hydra and MLflow in your machine learning
82
92
  projects with minimal setup.
93
+ - **Rich CLI Interface**: Command-line tools for managing experiments and viewing results.
94
+ - **Cross-Platform Support**: Works consistently across different operating systems.
83
95
 
84
96
  ## Installation
85
97
 
@@ -89,7 +101,7 @@ You can install Hydraflow via pip:
89
101
  pip install hydraflow
90
102
  ```
91
103
 
92
- ## Getting Started
104
+ ## Quick Start
93
105
 
94
106
  Here is a simple example to get you started with Hydraflow:
95
107
 
@@ -100,6 +112,7 @@ from dataclasses import dataclass
100
112
  from typing import TYPE_CHECKING
101
113
 
102
114
  import hydraflow
115
+ import mlflow
103
116
 
104
117
  if TYPE_CHECKING:
105
118
  from mlflow.entities import Run
@@ -107,15 +120,73 @@ if TYPE_CHECKING:
107
120
 
108
121
  @dataclass
109
122
  class Config:
110
- count: int = 1
111
- name: str = "a"
123
+ """Configuration for the ML training experiment."""
124
+ # Training hyperparameters
125
+ learning_rate: float = 0.001
126
+ batch_size: int = 32
127
+ epochs: int = 10
128
+
129
+ # Model architecture parameters
130
+ hidden_size: int = 128
131
+ dropout: float = 0.1
132
+
133
+ # Dataset parameters
134
+ train_size: float = 0.8
135
+ random_seed: int = 42
112
136
 
113
137
 
114
138
  @hydraflow.main(Config)
115
139
  def app(run: Run, cfg: Config):
116
- """Your app code here."""
140
+ """Train a model with the given configuration.
141
+
142
+ This example demonstrates how to:
143
+
144
+ 1. Define a configuration using dataclasses
145
+ 2. Use Hydraflow to integrate with MLflow
146
+ 3. Track metrics and parameters automatically
147
+
148
+ Args:
149
+ run: MLflow run for the experiment corresponding to the Hydra app.
150
+ This `Run` instance is automatically created by Hydraflow.
151
+ cfg: Configuration for the experiment's run.
152
+ This `Config` instance is originally defined by Hydra, and then
153
+ automatically passed to the app by Hydraflow.
154
+ """
155
+ # Training loop
156
+ for epoch in range(cfg.epochs):
157
+ # Simulate training and validation
158
+ train_loss = 1.0 / (epoch + 1)
159
+ val_loss = 1.1 / (epoch + 1)
160
+
161
+ # Log metrics to MLflow
162
+ mlflow.log_metrics({
163
+ "train_loss": train_loss,
164
+ "val_loss": val_loss
165
+ }, step=epoch)
166
+
167
+ print(f"Epoch {epoch}: train_loss={train_loss:.4f}, val_loss={val_loss:.4f}")
117
168
 
118
169
 
119
170
  if __name__ == "__main__":
120
171
  app()
121
172
  ```
173
+
174
+ This example demonstrates:
175
+
176
+ - Configuration management with Hydra
177
+ - Automatic experiment tracking with MLflow
178
+ - Parameter logging and metric tracking
179
+ - Type-safe configuration with dataclasses
180
+
181
+ ## Documentation
182
+
183
+ For detailed documentation, including advanced usage examples and API reference,
184
+ visit our [documentation site](https://daizutabi.github.io/hydraflow/).
185
+
186
+ ## Contributing
187
+
188
+ We welcome contributions! Please see our [contributing guide](CONTRIBUTING.md) for details.
189
+
190
+ ## License
191
+
192
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -1,5 +1,5 @@
1
1
  hydraflow/__init__.py,sha256=f2KO2iF7um-nNmayNyEr7TWG4UICOXy7YAN1d3qu0OY,936
2
- hydraflow/cli.py,sha256=qzeK6D9yJvtVHvBLf93HJPv19ODv8raLrtNLfDa7IOE,3205
2
+ hydraflow/cli.py,sha256=3rGr___wwp8KazjLGQ7JO_IgAMqLyMlcVSs_QJK7g0Y,3135
3
3
  hydraflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  hydraflow/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  hydraflow/core/config.py,sha256=SJzjgsO_kzB78_whJ3lmy7GlZvTvwZONH1BJBn8zCuI,3817
@@ -18,8 +18,8 @@ hydraflow/executor/conf.py,sha256=icGbLDh86KgkyiGXwDoEkmZpgAP3X8Jmu_PYqJoTooY,42
18
18
  hydraflow/executor/io.py,sha256=yZMcBVmAbPZZ82cAXhgiJfj9p8WvHmzOCMBg_vtEVek,1509
19
19
  hydraflow/executor/job.py,sha256=JX6xX9ffvHB7IiAVIfzVRjjnWKaPDxBgqdZf4ZO14CY,4651
20
20
  hydraflow/executor/parser.py,sha256=_Rfund3FDgrXitTt_znsTpgEtMDqZ_ICynaB_Zje14Q,14561
21
- hydraflow-0.14.1.dist-info/METADATA,sha256=6qrGuJ9JgAyzMdJ7p1WUTMvJBc7XKoi42ZCCXz__2BE,4566
22
- hydraflow-0.14.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
- hydraflow-0.14.1.dist-info/entry_points.txt,sha256=XI0khPbpCIUo9UPqkNEpgh-kqK3Jy8T7L2VCWOdkbSM,48
24
- hydraflow-0.14.1.dist-info/licenses/LICENSE,sha256=IGdDrBPqz1O0v_UwCW-NJlbX9Hy9b3uJ11t28y2srmY,1062
25
- hydraflow-0.14.1.dist-info/RECORD,,
21
+ hydraflow-0.14.3.dist-info/METADATA,sha256=Y5fO4HFC2fgqhQnkB5k4mwITsCrq3DCFCSKNJcpa1y4,7460
22
+ hydraflow-0.14.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
23
+ hydraflow-0.14.3.dist-info/entry_points.txt,sha256=XI0khPbpCIUo9UPqkNEpgh-kqK3Jy8T7L2VCWOdkbSM,48
24
+ hydraflow-0.14.3.dist-info/licenses/LICENSE,sha256=IGdDrBPqz1O0v_UwCW-NJlbX9Hy9b3uJ11t28y2srmY,1062
25
+ hydraflow-0.14.3.dist-info/RECORD,,