Skip to content

Commit

Permalink
Documentation update
Browse files Browse the repository at this point in the history
- Defaults List
- Packages
- Extending configs
- Configuring experiments
  • Loading branch information
omry committed Dec 31, 2020
1 parent c073796 commit 2bda47d
Show file tree
Hide file tree
Showing 44 changed files with 1,003 additions and 310 deletions.
@@ -0,0 +1,4 @@
defaults:
- db: mysql
- server: apache
- optional server_db: ${server}_${db}
@@ -0,0 +1 @@
name: mysql
@@ -0,0 +1 @@
name: sqlite
@@ -0,0 +1,2 @@
name: apache
workers: 10
@@ -0,0 +1 @@
name: nginx
@@ -0,0 +1,2 @@
# @package server
workers: 5
13 changes: 13 additions & 0 deletions examples/advanced/defaults_list_interpolation/my_app.py
@@ -0,0 +1,13 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
from omegaconf import DictConfig, OmegaConf

import hydra


@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))


if __name__ == "__main__":
my_app()
4 changes: 4 additions & 0 deletions examples/advanced/nested_defaults_list/conf/config.yaml
@@ -0,0 +1,4 @@
defaults:
- server/apache

debug: false
5 changes: 5 additions & 0 deletions examples/advanced/nested_defaults_list/conf/config2.yaml
@@ -0,0 +1,5 @@
defaults:
- server/apache
- override server/db: sqlite

debug: false
@@ -0,0 +1,4 @@
defaults:
- db: mysql

name: apache
@@ -0,0 +1 @@
name: mysql
@@ -0,0 +1 @@
name: sqlite
13 changes: 13 additions & 0 deletions examples/advanced/nested_defaults_list/my_app.py
@@ -0,0 +1,13 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
from omegaconf import DictConfig, OmegaConf

import hydra


@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))


if __name__ == "__main__":
my_app()
3 changes: 3 additions & 0 deletions examples/patterns/configuring_experiments/conf/config.yaml
@@ -0,0 +1,3 @@
defaults:
- db: mysql
- server: apache
@@ -0,0 +1 @@
name: mysql
@@ -0,0 +1 @@
name: sqlite
@@ -0,0 +1,7 @@
# @package _global_
defaults:
- override /db: sqlite


server:
port: 8080
@@ -0,0 +1,7 @@
# @package _global_
defaults:
- override /server: nginx
- override /db: sqlite

server:
port: 8080
@@ -0,0 +1,2 @@
name: apache
port: 80
@@ -0,0 +1,2 @@
name: nginx
port: 80
13 changes: 13 additions & 0 deletions examples/patterns/configuring_experiments/my_app.py
@@ -0,0 +1,13 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
from omegaconf import DictConfig, OmegaConf

import hydra


@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))


if __name__ == "__main__":
my_app()
2 changes: 2 additions & 0 deletions examples/patterns/extending_configs/conf/config.yaml
@@ -0,0 +1,2 @@
defaults:
- db: ???
4 changes: 4 additions & 0 deletions examples/patterns/extending_configs/conf/db/base_mysql.yaml
@@ -0,0 +1,4 @@
host: localhost
port: 3306
user: ???
password: ???
@@ -0,0 +1,7 @@
defaults:
- /db_schema/base_mysql@_here_

user: omry
password: secret
port: 3307
encoding: utf8
@@ -0,0 +1,7 @@
defaults:
- base_mysql

user: omry
password: secret
port: 3307
encoding: utf8
@@ -0,0 +1,4 @@
host: localhost
port: 3306
user: ???
password: ???
13 changes: 13 additions & 0 deletions examples/patterns/extending_configs/my_app.py
@@ -0,0 +1,13 @@
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
from omegaconf import DictConfig, OmegaConf

import hydra


@hydra.main(config_path="conf", config_name="config")
def my_app(cfg: DictConfig) -> None:
print(OmegaConf.to_yaml(cfg))


if __name__ == "__main__":
my_app()
2 changes: 1 addition & 1 deletion hydra/_internal/defaults_list.py
Expand Up @@ -383,7 +383,7 @@ def _update_overrides(
if legacy_hydra_override:
# DEPRECATED: remove in 1.2
d.override = True
url = "https://hydra.cc/docs/next/upgrades/1.0_to_1.1/default_list_override"
url = "https://hydra.cc/docs/next/upgrades/1.0_to_1.1/defaults_list_override"
msg = dedent(
f"""\
In {parent.get_config_path()}: Invalid overriding of {d.group}:
Expand Down
44 changes: 13 additions & 31 deletions hydra/conf/__init__.py
Expand Up @@ -6,23 +6,6 @@

from hydra.core.config_store import ConfigStore

hydra_defaults = [
# Hydra's logging config
{"hydra/hydra_logging": "default"},
# Job's logging config
{"hydra/job_logging": "default"},
# Launcher config
{"hydra/launcher": "basic"},
# Sweeper config
{"hydra/sweeper": "basic"},
# Output directory
{"hydra/output": "default"},
# --help template
{"hydra/help": "default"},
# --hydra-help template
{"hydra/hydra_help": "default"},
]


@dataclass
class HelpConf:
Expand Down Expand Up @@ -106,8 +89,17 @@ class RuntimeConf:

@dataclass
class HydraConf:

defaults: List[Any] = field(default_factory=lambda: hydra_defaults.copy())
defaults: List[Any] = field(
default_factory=lambda: [
{"output": "default"},
{"launcher": "basic"},
{"sweeper": "basic"},
{"help": "default"},
{"hydra_help": "default"},
{"hydra_logging": "default"},
{"job_logging": "default"},
]
)

# Normal run output configuration
run: RunDir = RunDir()
Expand Down Expand Up @@ -152,7 +144,7 @@ class HydraConf:
# Typical command lines to manipulate hydra.verbose:
# hydra.verbose=true
# hydra.verbose=[hydra,__main__]
# TODO: good use case for Union support in OmegaConf
# TODO: good use ca se for Union support in OmegaConf
verbose: Any = False

# Composition choices dictionary
Expand All @@ -171,16 +163,6 @@ class HydraConf:
cs.store(
group="hydra",
name="config",
node=HydraConf(
defaults=[
{"hydra_logging": "default"},
{"job_logging": "default"},
{"launcher": "basic"},
{"sweeper": "basic"},
{"output": "default"},
{"help": "default"},
{"hydra_help": "default"},
]
),
node=HydraConf(),
provider="hydra",
)
2 changes: 1 addition & 1 deletion plugins/hydra_ray_launcher/tests/test_ray_launcher.py
@@ -1,4 +1,4 @@
# # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
# Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
import sys

import pytest
Expand Down
2 changes: 1 addition & 1 deletion tests/defaults_list/test_defaults_tree.py
Expand Up @@ -752,7 +752,7 @@ def test_legacy_hydra_overrides_from_primary_config(
"""\
Invalid overriding of hydra/help:
Default list overrides requires 'override' keyword.
See https://hydra.cc/docs/next/upgrades/1.0_to_1.1/default_list_override for more information."""
See https://hydra.cc/docs/next/upgrades/1.0_to_1.1/defaults_list_override for more information."""
)
with warns(expected_warning=UserWarning, match=re.escape(msg)):
_test_defaults_tree_impl(
Expand Down
60 changes: 30 additions & 30 deletions tests/test_config_loader.py
Expand Up @@ -44,15 +44,8 @@ class TopLevelConfig:

hydra_load_list: List[LoadTrace] = [
LoadTrace(
config_path="hydra/hydra_logging/default",
package="hydra.hydra_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/job_logging/default",
package="hydra.job_logging",
config_path="hydra/output/default",
package="hydra",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
Expand All @@ -72,22 +65,29 @@ class TopLevelConfig:
provider="hydra",
),
LoadTrace(
config_path="hydra/output/default",
package="hydra",
config_path="hydra/help/default",
package="hydra.help",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/help/default",
package="hydra.help",
config_path="hydra/hydra_help/default",
package="hydra.hydra_help",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/hydra_help/default",
package="hydra.hydra_help",
config_path="hydra/hydra_logging/default",
package="hydra.hydra_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/job_logging/default",
package="hydra.job_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
Expand Down Expand Up @@ -600,15 +600,8 @@ def test_override_hydra_config_group_from_config_file() -> None:
)
expected = [
LoadTrace(
config_path="hydra/hydra_logging/hydra_debug",
package="hydra.hydra_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/job_logging/disabled",
package="hydra.job_logging",
config_path="hydra/output/default",
package="hydra",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
Expand All @@ -628,22 +621,29 @@ def test_override_hydra_config_group_from_config_file() -> None:
provider="hydra",
),
LoadTrace(
config_path="hydra/output/default",
package="hydra",
config_path="hydra/help/default",
package="hydra.help",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/help/default",
package="hydra.help",
config_path="hydra/hydra_help/default",
package="hydra.hydra_help",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/hydra_help/default",
package="hydra.hydra_help",
config_path="hydra/hydra_logging/hydra_debug",
package="hydra.hydra_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
),
LoadTrace(
config_path="hydra/job_logging/disabled",
package="hydra.job_logging",
parent="hydra/config",
search_path="pkg://hydra.conf",
provider="hydra",
Expand Down

0 comments on commit 2bda47d

Please sign in to comment.