hydraflow 0.3.4__py3-none-any.whl → 0.3.6__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/__init__.py +3 -0
- hydraflow/config.py +38 -0
- hydraflow/run_collection.py +17 -6
- hydraflow/utils.py +1 -1
- {hydraflow-0.3.4.dist-info → hydraflow-0.3.6.dist-info}/METADATA +1 -1
- {hydraflow-0.3.4.dist-info → hydraflow-0.3.6.dist-info}/RECORD +8 -8
- {hydraflow-0.3.4.dist-info → hydraflow-0.3.6.dist-info}/WHEEL +0 -0
- {hydraflow-0.3.4.dist-info → hydraflow-0.3.6.dist-info}/licenses/LICENSE +0 -0
hydraflow/__init__.py
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
"""Integrate Hydra and MLflow to manage and track machine learning experiments."""
|
2
2
|
|
3
|
+
from .config import select_config, select_overrides
|
3
4
|
from .context import chdir_artifact, chdir_hydra_output, log_run, start_run, watch
|
4
5
|
from .mlflow import list_runs, search_runs, set_experiment
|
5
6
|
from .progress import multi_tasks_progress, parallel_progress
|
@@ -26,6 +27,8 @@ __all__ = [
|
|
26
27
|
"multi_tasks_progress",
|
27
28
|
"parallel_progress",
|
28
29
|
"search_runs",
|
30
|
+
"select_config",
|
31
|
+
"select_overrides",
|
29
32
|
"set_experiment",
|
30
33
|
"start_run",
|
31
34
|
"watch",
|
hydraflow/config.py
CHANGED
@@ -6,6 +6,8 @@ from typing import TYPE_CHECKING
|
|
6
6
|
|
7
7
|
from omegaconf import DictConfig, ListConfig, OmegaConf
|
8
8
|
|
9
|
+
from hydraflow.utils import get_overrides
|
10
|
+
|
9
11
|
if TYPE_CHECKING:
|
10
12
|
from collections.abc import Iterator
|
11
13
|
from typing import Any
|
@@ -99,3 +101,39 @@ def _convert(value: Any) -> Any:
|
|
99
101
|
return list(value)
|
100
102
|
|
101
103
|
return value
|
104
|
+
|
105
|
+
|
106
|
+
def select_config(config: object, names: list[str]) -> dict[str, Any]:
|
107
|
+
"""Select the given parameters from the configuration object.
|
108
|
+
|
109
|
+
This function selects the given parameters from the configuration object
|
110
|
+
and returns a new configuration object containing only the selected parameters.
|
111
|
+
|
112
|
+
Args:
|
113
|
+
config (object): The configuration object to select parameters from.
|
114
|
+
names (list[str]): The names of the parameters to select.
|
115
|
+
|
116
|
+
Returns:
|
117
|
+
DictConfig: A new configuration object containing only the selected parameters.
|
118
|
+
|
119
|
+
"""
|
120
|
+
if not isinstance(config, DictConfig):
|
121
|
+
config = OmegaConf.structured(config)
|
122
|
+
|
123
|
+
return {name: _get(config, name) for name in names} # type: ignore
|
124
|
+
|
125
|
+
|
126
|
+
def _get(config: DictConfig, name: str) -> Any:
|
127
|
+
"""Get the value of the given parameter from the configuration object."""
|
128
|
+
if "." not in name:
|
129
|
+
return config.get(name)
|
130
|
+
|
131
|
+
prefix, name = name.split(".", 1)
|
132
|
+
return _get(config.get(prefix), name)
|
133
|
+
|
134
|
+
|
135
|
+
def select_overrides(config: object) -> dict[str, Any]:
|
136
|
+
"""Select the given overrides from the configuration object."""
|
137
|
+
overrides = get_overrides()
|
138
|
+
names = [override.split("=")[0].strip() for override in overrides]
|
139
|
+
return select_config(config, names)
|
hydraflow/run_collection.py
CHANGED
@@ -26,7 +26,7 @@ from typing import TYPE_CHECKING, Any, Concatenate, ParamSpec, TypeVar, overload
|
|
26
26
|
from mlflow.entities import RunStatus
|
27
27
|
|
28
28
|
import hydraflow.param
|
29
|
-
from hydraflow.config import iter_params
|
29
|
+
from hydraflow.config import iter_params, select_config, select_overrides
|
30
30
|
from hydraflow.run_data import RunCollectionData
|
31
31
|
from hydraflow.run_info import RunCollectionInfo
|
32
32
|
from hydraflow.utils import load_config
|
@@ -616,6 +616,8 @@ def filter_runs(
|
|
616
616
|
runs: list[Run],
|
617
617
|
config: object | None = None,
|
618
618
|
*,
|
619
|
+
override: bool = False,
|
620
|
+
select: list[str] | None = None,
|
619
621
|
status: str | list[str] | int | list[int] | None = None,
|
620
622
|
**kwargs,
|
621
623
|
) -> list[Run]:
|
@@ -636,17 +638,26 @@ def filter_runs(
|
|
636
638
|
|
637
639
|
Args:
|
638
640
|
runs (list[Run]): The list of runs to filter.
|
639
|
-
config (object | None): The configuration object to filter the
|
640
|
-
This can be any object that provides key-value pairs through
|
641
|
-
`iter_params` function.
|
642
|
-
|
643
|
-
the
|
641
|
+
config (object | None, optional): The configuration object to filter the
|
642
|
+
runs. This can be any object that provides key-value pairs through
|
643
|
+
the `iter_params` function. Defaults to None.
|
644
|
+
override (bool, optional): If True, filter the runs based on
|
645
|
+
the overrides. Defaults to False.
|
646
|
+
select (list[str] | None, optional): The list of parameters to select.
|
647
|
+
Defaults to None.
|
648
|
+
status (str | list[str] | RunStatus | list[RunStatus] | None, optional): The
|
649
|
+
status of the runs to filter. Defaults to None.
|
644
650
|
**kwargs: Additional key-value pairs to filter the runs.
|
645
651
|
|
646
652
|
Returns:
|
647
653
|
A list of runs that match the specified configuration and key-value pairs.
|
648
654
|
|
649
655
|
"""
|
656
|
+
if override:
|
657
|
+
config = select_overrides(config)
|
658
|
+
elif select:
|
659
|
+
config = select_config(config, select)
|
660
|
+
|
650
661
|
for key, value in chain(iter_params(config), kwargs.items()):
|
651
662
|
runs = [run for run in runs if _param_matches(run, key, value)]
|
652
663
|
if not runs:
|
hydraflow/utils.py
CHANGED
@@ -90,7 +90,7 @@ def load_config(run: Run) -> DictConfig:
|
|
90
90
|
|
91
91
|
def get_overrides() -> list[str]:
|
92
92
|
"""Retrieve the overrides for the current run."""
|
93
|
-
return HydraConfig.get().overrides.task
|
93
|
+
return list(HydraConfig.get().overrides.task) # ListConifg -> list
|
94
94
|
|
95
95
|
|
96
96
|
def load_overrides(run: Run) -> list[str]:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: hydraflow
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.6
|
4
4
|
Summary: Hydraflow integrates Hydra and MLflow to manage and track machine learning experiments.
|
5
5
|
Project-URL: Documentation, https://github.com/daizutabi/hydraflow
|
6
6
|
Project-URL: Source, https://github.com/daizutabi/hydraflow
|
@@ -1,16 +1,16 @@
|
|
1
|
-
hydraflow/__init__.py,sha256=
|
1
|
+
hydraflow/__init__.py,sha256=VbrHKs2Cg93QJ8K9WHYxkXmzOpb8o9ugiwV-mXDT0JE,908
|
2
2
|
hydraflow/asyncio.py,sha256=-i1C8KAmNDImrjHnk92Csaa1mpjdK8Vp4ZVaQV-l94s,6634
|
3
|
-
hydraflow/config.py,sha256=
|
3
|
+
hydraflow/config.py,sha256=MNX9da5bPVDcjnpji7Cm9ndK6ura92pt361m4PRh6_E,4326
|
4
4
|
hydraflow/context.py,sha256=p1UYHvSCPrp10cBn9TUI9mXMv0h_I0Eou24Wp1rZZ0k,8740
|
5
5
|
hydraflow/mlflow.py,sha256=JELqXFCJ9MsEJaQWT5dyleTFk8BHL7cQwW_gzhkPoIg,8729
|
6
6
|
hydraflow/param.py,sha256=CO-6PRlnHo-7hlY_P6j_cGlC7vPY6t-Rr7p3OqeqDyU,1995
|
7
7
|
hydraflow/progress.py,sha256=zvKX1HCN8_xDOsgYOEcLLhkhdPdep-U8vHrc0XZ-6SQ,6163
|
8
8
|
hydraflow/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
|
-
hydraflow/run_collection.py,sha256=
|
9
|
+
hydraflow/run_collection.py,sha256=qz74Ct97Fa1FTFM742NlcWGW6NjxuDs5sQitJ8ijEJY,25294
|
10
10
|
hydraflow/run_data.py,sha256=qeFX1iRvNAorXA9QQIjzr0o2_82TI44eZKp7llKG8GI,1549
|
11
11
|
hydraflow/run_info.py,sha256=sMXOo20ClaRIommMEzuAbO_OrcXx7M1Yt4FMV7spxz0,998
|
12
|
-
hydraflow/utils.py,sha256=
|
13
|
-
hydraflow-0.3.
|
14
|
-
hydraflow-0.3.
|
15
|
-
hydraflow-0.3.
|
16
|
-
hydraflow-0.3.
|
12
|
+
hydraflow/utils.py,sha256=gNI0Ln2VBHfMBzNB9SNxJfjCLf14irYt0EBeeMXMeyk,3528
|
13
|
+
hydraflow-0.3.6.dist-info/METADATA,sha256=Vn7lEY8dSfvK5V7q0-TVx7cM1AJo2mZCc4UyE3uOElo,3840
|
14
|
+
hydraflow-0.3.6.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
15
|
+
hydraflow-0.3.6.dist-info/licenses/LICENSE,sha256=IGdDrBPqz1O0v_UwCW-NJlbX9Hy9b3uJ11t28y2srmY,1062
|
16
|
+
hydraflow-0.3.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|