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"
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"
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
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
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=[])
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}
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
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
# 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"
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))
# 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"