예제 #1
0
def main() -> None:
    with initialize(config_path="conf"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "main"

    with initialize(config_path="conf", job_name="test_job"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"

    abs_config_dir = os.path.abspath("initialization_test_app/conf")
    with initialize_config_dir(config_dir=abs_config_dir):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "app"

    with initialize_config_dir(config_dir=abs_config_dir, job_name="test_job"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"

    # Those tests can only work if the module is installed
    if len(sys.argv) > 1 and sys.argv[1] == "module_installed":
        with initialize_config_module(config_module="initialization_test_app.conf"):
            cfg = compose(config_name="config", return_hydra_config=True)
            assert cfg.config == {"hello": "world"}
            assert cfg.hydra.job.name == "app"

        with initialize_config_module(
            config_module="initialization_test_app.conf", job_name="test_job"
        ):
            cfg = compose(config_name="config", return_hydra_config=True)
            assert cfg.config == {"hello": "world"}
            assert cfg.hydra.job.name == "test_job"
예제 #2
0
def test_jobname_override_initialize_config_dir_ctx(
    hydra_restore_singletons: Any, tmpdir: Any
) -> None:
    with initialize_config_dir(
        config_dir=str(tmpdir), version_base=None, job_name="test_job"
    ):
        ret = compose(return_hydra_config=True)
        assert ret.hydra.job.name == "test_job"
예제 #3
0
 def from_config(cls, overrides: List[str] = []):
     config_dir = Path(__file__).parent.parent.parent / 'train_configs'
     overrides.append('train.batch_size=1')
     overrides = cls.fix_overrides(overrides)
     with initialize_config_dir(config_dir=str(config_dir)):
         cfg = compose(config_name='config', overrides=overrides)
         dm = hydra.utils.instantiate(cfg.dataset)
     dm.prepare_data()
     dm.setup('fit')
     return dm
예제 #4
0
def load_config(config_path: Optional[str] = None,
                config_name="default") -> Any:
    setup_config()
    if config_path is not None:
        config_path = os.path.abspath(config_path)
        config_dir, config_file = os.path.split(config_path)
        try:
            with initialize_config_dir(config_dir):
                _config = compose(config_name=config_file)
        except ValueError as e:
            _config = compose(config_name=config_file)
    else:
        config_dir = os.path.abspath(os.getcwd())
        try:
            with initialize_config_dir(config_dir):
                _config = compose(config_name=config_name)
        except ValueError as e:
            _config = compose(config_name=config_name)
    return _config
예제 #5
0
def test_missing_bad_config_dir_error(hydra_restore_singletons: Any) -> None:
    expected = (
        "Primary config directory not found."
        "\nCheck that the config directory '/no_way_in_hell_1234567890' exists and readable"
    )

    with raises(Exception, match=re.escape(expected)):
        with initialize_config_dir(config_dir="/no_way_in_hell_1234567890"):
            hydra = GlobalHydra.instance().hydra
            assert hydra is not None
            compose(config_name="test.yaml", overrides=[])
예제 #6
0
def test_initialize_config_dir_ctx_with_absolute_dir(
        hydra_restore_singletons: Any, tmpdir: Any) -> None:
    tmpdir = Path(tmpdir)
    (tmpdir / "test_group").mkdir(parents=True)
    cfg = OmegaConf.create({"foo": "bar"})

    cfg_file = tmpdir / "test_group" / "test.yaml"
    with open(str(cfg_file), "w") as f:
        OmegaConf.save(cfg, f)

    with initialize_config_dir(config_dir=str(tmpdir)):
        ret = compose(overrides=["+test_group=test"])
        assert ret == {"test_group": cfg}
예제 #7
0
 def test_initialize_config_dir_ctx_with_relative_dir(
     self, config_file: str, overrides: List[str], expected: Any
 ) -> None:
     with raises(
         HydraException,
         match=re.escape(
             "initialize_config_dir() requires an absolute config_dir as input"
         ),
     ):
         with initialize_config_dir(
             config_dir="../examples/jupyter_notebooks/cloud_app/conf",
             job_name="job_name",
         ):
             ret = compose(config_file, overrides)
             assert ret == expected
예제 #8
0
def initialize_config(overrides: List[str] = [],
                      config_dir_name: str = "conf",
                      config_path: Union[str, PosixPath] = None,
                      config_name: str = "config") -> DictConfig:
    """Initialise Hydra config when work in jupyter notebook.

    Args:
        overrides (List[str], optional): List of overrides. Defaults to [].
        config_dir_name (str, optional): Name of directory with config structure.
            Defaults to "conf".
        config_path (Union[str, PosixPath], optional): Path to look for config dir.
            Defaults to None, take it from experiment_utils lib.
        config_name (str, optional): Name for config file. Defaults to "config".

    Returns:
        DictConfig: Initialized DictConfig.
    """
    if config_path is None:
        config_path = Path(experiment_utils_path)
    with initialize_config_dir(config_dir=str(config_path / config_dir_name)):
        cfg = compose(config_name=config_name, overrides=overrides)
    return cfg
예제 #9
0
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
import os

from hydra import compose, initialize, initialize_config_dir

if __name__ == "__main__":
    with initialize(config_path="."):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "main"

    with initialize(config_path=".", job_name="test_job"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"

    abs_config__dir = os.path.abspath("")
    with initialize_config_dir(config_dir=abs_config__dir):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "app"

    with initialize_config_dir(config_dir=abs_config__dir, job_name="test_job"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"
예제 #10
0
def hydra_initialize_config_dir() -> None:
    abs_conf_dir = Path.cwd() / "../../hydra/test_utils/configs"
    initialize_config_dir(version_base=None, config_dir=str(abs_conf_dir))
예제 #11
0
파일: main.py 프로젝트: Jasha10/hydra
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
import os

from hydra import compose, initialize, initialize_config_dir

if __name__ == "__main__":
    with initialize(version_base=None, config_path="."):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "main"

    with initialize(version_base=None, config_path=".", job_name="test_job"):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"

    abs_config__dir = os.path.abspath("")
    with initialize_config_dir(version_base=None, config_dir=abs_config__dir):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "app"

    with initialize_config_dir(
        version_base=None, config_dir=abs_config__dir, job_name="test_job"
    ):
        cfg = compose(config_name="config", return_hydra_config=True)
        assert cfg.config == {"hello": "world"}
        assert cfg.hydra.job.name == "test_job"