hydra-core 1.4.0.dev6__tar.gz → 1.4.0.dev9__tar.gz

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.
Files changed (189) hide show
  1. {hydra_core-1.4.0.dev6/hydra_core.egg-info → hydra_core-1.4.0.dev9}/PKG-INFO +26 -16
  2. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/README.md +22 -12
  3. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/__init__.py +1 -1
  4. hydra_core-1.4.0.dev9/hydra/_internal/_locate.py +58 -0
  5. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/callbacks.py +2 -46
  6. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/config_loader_impl.py +2 -67
  7. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/config_repository.py +16 -39
  8. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/basic_launcher.py +10 -2
  9. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/defaults_list.py +294 -108
  10. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/deprecation_warning.py +5 -2
  11. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/grammar/grammar_functions.py +8 -1
  12. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/hydra.py +7 -16
  13. hydra_core-1.4.0.dev9/hydra/_internal/instantiate/_instantiate2.py +985 -0
  14. hydra_core-1.4.0.dev9/hydra/_internal/logging_config.py +345 -0
  15. hydra_core-1.4.0.dev9/hydra/_internal/target_policy.py +1131 -0
  16. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/utils.py +35 -90
  17. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/compose.py +1 -19
  18. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/__init__.py +1 -2
  19. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/config_store.py +3 -0
  20. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/default_element.py +31 -53
  21. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/override_parser/overrides_parser.py +0 -1
  22. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/override_parser/overrides_visitor.py +7 -0
  23. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/override_parser/types.py +0 -13
  24. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/plugins.py +1 -1
  25. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/utils.py +46 -29
  26. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/errors.py +8 -0
  27. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/experimental/callback.py +1 -13
  28. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/experimental/callbacks.py +2 -47
  29. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/initialize.py +4 -24
  30. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/main.py +28 -39
  31. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/config_source.py +5 -8
  32. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/sweeper.py +6 -12
  33. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/completion.py +1 -3
  34. hydra_core-1.4.0.dev9/hydra/test_utils/configs/package_tests/__init__.py +1 -0
  35. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/example_app.py +1 -1
  36. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/launcher_common_tests.py +2 -1
  37. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/test_utils.py +4 -7
  38. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/types.py +1 -25
  39. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/utils.py +23 -17
  40. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/version.py +25 -34
  41. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9/hydra_core.egg-info}/PKG-INFO +26 -16
  42. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra_core.egg-info/SOURCES.txt +4 -2
  43. hydra_core-1.4.0.dev9/hydra_core.egg-info/requires.txt +1 -0
  44. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/pyproject.toml +2 -2
  45. hydra_core-1.4.0.dev9/requirements/requirements.txt +1 -0
  46. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/setup.py +2 -2
  47. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_basic_sweeper.py +33 -2
  48. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_callbacks.py +0 -19
  49. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_compose.py +109 -169
  50. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_config_loader.py +29 -32
  51. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_config_repository.py +47 -1
  52. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_core_utils.py +30 -2
  53. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_hydra.py +67 -58
  54. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_hydra_cli_errors.py +0 -4
  55. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_hydra_context_warnings.py +1 -11
  56. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_internal_utils.py +50 -1
  57. hydra_core-1.4.0.dev9/tests/test_logging_config.py +590 -0
  58. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_overrides_parser.py +41 -35
  59. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_utils.py +79 -8
  60. hydra_core-1.4.0.dev6/hydra/_internal/instantiate/_instantiate2.py +0 -803
  61. hydra_core-1.4.0.dev6/hydra/experimental/__init__.py +0 -10
  62. hydra_core-1.4.0.dev6/hydra/experimental/compose.py +0 -31
  63. hydra_core-1.4.0.dev6/hydra/experimental/initialize.py +0 -134
  64. hydra_core-1.4.0.dev6/hydra_core.egg-info/requires.txt +0 -1
  65. hydra_core-1.4.0.dev6/requirements/requirements.txt +0 -1
  66. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/LICENSE +0 -0
  67. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/MANIFEST.in +0 -0
  68. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/build_helpers/__init__.py +0 -0
  69. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/build_helpers/bin/__init__.py +0 -0
  70. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/build_helpers/bin/antlr-4.11.1-complete.jar +0 -0
  71. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/build_helpers/build_helpers.py +0 -0
  72. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/build_helpers/test_helpers.py +0 -0
  73. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/__init__.py +0 -0
  74. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/config_search_path_impl.py +0 -0
  75. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/__init__.py +0 -0
  76. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/bash_completion.py +0 -0
  77. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/basic_sweeper.py +0 -0
  78. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/file_config_source.py +0 -0
  79. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/fish_completion.py +0 -0
  80. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/importlib_resources_config_source.py +0 -0
  81. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/structured_config_source.py +0 -0
  82. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/core_plugins/zsh_completion.py +0 -0
  83. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/grammar/__init__.py +0 -0
  84. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/grammar/functions.py +0 -0
  85. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/grammar/utils.py +0 -0
  86. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/instantiate/__init__.py +0 -0
  87. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/_internal/sources_registry.py +0 -0
  88. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/env/default.yaml +0 -0
  89. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/help/default.yaml +0 -0
  90. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/hydra_help/default.yaml +0 -0
  91. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/hydra_logging/default.yaml +0 -0
  92. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/hydra_logging/disabled.yaml +0 -0
  93. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/hydra_logging/hydra_debug.yaml +0 -0
  94. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/hydra_logging/none.yaml +0 -0
  95. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/job_logging/default.yaml +0 -0
  96. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/job_logging/disabled.yaml +0 -0
  97. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/job_logging/none.yaml +0 -0
  98. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/job_logging/stdout.yaml +0 -0
  99. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/conf/hydra/output/default.yaml +0 -0
  100. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/__init__.py +0 -0
  101. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/config_loader.py +0 -0
  102. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/config_search_path.py +0 -0
  103. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/global_hydra.py +0 -0
  104. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/hydra_config.py +0 -0
  105. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/object_type.py +0 -0
  106. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/override_parser/__init__.py +0 -0
  107. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/core/singleton.py +0 -0
  108. {hydra_core-1.4.0.dev6/hydra/grammar → hydra_core-1.4.0.dev9/hydra/experimental}/__init__.py +0 -0
  109. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/extra/pytest_plugin.py +0 -0
  110. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/.gitignore +0 -0
  111. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/OverrideLexer.g4 +0 -0
  112. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/OverrideParser.g4 +0 -0
  113. {hydra_core-1.4.0.dev6/hydra/plugins → hydra_core-1.4.0.dev9/hydra/grammar}/__init__.py +0 -0
  114. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/.gitignore +0 -0
  115. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideLexer.interp +0 -0
  116. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideLexer.py +0 -0
  117. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideLexer.tokens +0 -0
  118. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideParser.interp +0 -0
  119. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideParser.py +0 -0
  120. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideParser.tokens +0 -0
  121. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideParserListener.py +0 -0
  122. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/grammar/gen/OverrideParserVisitor.py +0 -0
  123. {hydra_core-1.4.0.dev6/hydra/test_utils → hydra_core-1.4.0.dev9/hydra/plugins}/__init__.py +0 -0
  124. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/completion_plugin.py +0 -0
  125. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/launcher.py +0 -0
  126. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/plugin.py +0 -0
  127. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/plugins/search_path_plugin.py +0 -0
  128. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/py.typed +0 -0
  129. {hydra_core-1.4.0.dev6/hydra/test_utils/configs → hydra_core-1.4.0.dev9/hydra/test_utils}/__init__.py +0 -0
  130. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/a_module.py +0 -0
  131. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/config_source_common_tests.py +0 -0
  132. {hydra_core-1.4.0.dev6/hydra/test_utils/configs/completion_test_additional_package → hydra_core-1.4.0.dev9/hydra/test_utils/configs}/__init__.py +0 -0
  133. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/accessing_hydra_config.yaml +0 -0
  134. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/additional_searchpath.yaml +0 -0
  135. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/config.yaml +0 -0
  136. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/group/dict.yaml +0 -0
  137. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/group/list.yaml +0 -0
  138. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/hydra/launcher/fairtask.yaml +0 -0
  139. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/missing_default.yaml +0 -0
  140. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test/test_hydra/launcher/fairtask.yaml +0 -0
  141. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test_additional_file/additional_group/file_opt_additional.yaml +0 -0
  142. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test_additional_file/group/file_opt.yaml +0 -0
  143. {hydra_core-1.4.0.dev6/hydra/test_utils/configs/package_tests → hydra_core-1.4.0.dev9/hydra/test_utils/configs/completion_test_additional_package}/__init__.py +0 -0
  144. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test_additional_package/additional_group/pkg_opt_additional.yaml +0 -0
  145. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/completion_test_additional_package/group/pkg_opt.yaml +0 -0
  146. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/compose.yaml +0 -0
  147. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/conf.zip +0 -0
  148. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/config.yaml +0 -0
  149. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/config.yml +0 -0
  150. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/custom_resolver.yaml +0 -0
  151. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/db/mysql.yaml +0 -0
  152. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/db/postgresql.yaml +0 -0
  153. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/db/validated_mysql.yaml +0 -0
  154. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/db/validated_postgresql.yaml +0 -0
  155. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/db_conf.yaml +0 -0
  156. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/defaults_not_list.yaml +0 -0
  157. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/group1/abc.cde.yaml +0 -0
  158. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/group1/file1.yaml +0 -0
  159. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/group1/file2.yaml +0 -0
  160. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/group2/file1.yaml +0 -0
  161. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/group2/file2.yaml +0 -0
  162. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/missing-default.yaml +0 -0
  163. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/missing-optional-default.yaml +0 -0
  164. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/missing_init_py/.gitignore +0 -0
  165. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/missing_init_py/test.yaml +0 -0
  166. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/optional-default.yaml +0 -0
  167. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/overriding_output_dir.yaml +0 -0
  168. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/overriding_run_dir.yaml +0 -0
  169. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/group1/option1.yaml +0 -0
  170. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/group1/option2.yaml +0 -0
  171. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/group2/option1.yaml +0 -0
  172. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/group2/option2.yaml +0 -0
  173. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/pkg_override.yaml +0 -0
  174. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/package_tests/two_packages_one_group.yaml +0 -0
  175. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/schema_key_error.yaml +0 -0
  176. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/schema_validation_error.yaml +0 -0
  177. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/some_config.yaml +0 -0
  178. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/top_level_list/file1.yaml +0 -0
  179. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra/test_utils/configs/unspecified_mandatory_default.yaml +0 -0
  180. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra_core.egg-info/dependency_links.txt +0 -0
  181. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra_core.egg-info/entry_points.txt +0 -0
  182. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/hydra_core.egg-info/top_level.txt +0 -0
  183. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/setup.cfg +0 -0
  184. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_basic_launcher.py +0 -0
  185. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_completion.py +0 -0
  186. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_config_search_path.py +0 -0
  187. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_env_defaults.py +0 -0
  188. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_errors.py +0 -0
  189. {hydra_core-1.4.0.dev6 → hydra_core-1.4.0.dev9}/tests/test_plugin_interface.py +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hydra-core
3
- Version: 1.4.0.dev6
3
+ Version: 1.4.0.dev9
4
4
  Summary: A framework for elegantly configuring complex applications
5
- Home-page: https://github.com/facebookresearch/hydra
5
+ Home-page: https://github.com/hydra-ecosystem/hydra
6
6
  Author: Omry Yadan
7
- Author-email: omry@fb.com
7
+ Author-email: omry@yadan.net
8
8
  License: MIT
9
9
  Keywords: command-line configuration yaml tab-completion
10
10
  Classifier: Development Status :: 4 - Beta
@@ -19,7 +19,7 @@ Classifier: Operating System :: Microsoft :: Windows
19
19
  Requires-Python: >=3.10
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
- Requires-Dist: omegaconf>=2.4.0.dev13
22
+ Requires-Dist: omegaconf>=2.4.0.dev15
23
23
  Dynamic: author
24
24
  Dynamic: author-email
25
25
  Dynamic: classifier
@@ -33,17 +33,19 @@ Dynamic: requires-dist
33
33
  Dynamic: requires-python
34
34
  Dynamic: summary
35
35
 
36
- <p align="center"><img src="https://raw.githubusercontent.com/facebookresearch/hydra/main/website/static/img/Hydra-Readme-logo2.svg" alt="logo" width="70%" /></p>
36
+ <p align="center"><img src="https://raw.githubusercontent.com/hydra-ecosystem/hydra/main/website/static/img/Hydra-Readme-logo2.svg" alt="logo" width="70%" /></p>
37
37
 
38
38
  <p align="center">
39
39
  <a href="https://pypi.org/project/hydra-core/"><img src="https://img.shields.io/pypi/v/hydra-core" alt="PyPI" /></a>
40
40
  <a href="#"><img src="https://img.shields.io/pypi/pyversions/hydra-core" alt="PyPI - Python Version" /></a>
41
- <a href="https://github.com/facebookresearch/hydra/actions/workflows/core_tests.yml"><img src="https://github.com/facebookresearch/hydra/actions/workflows/core_tests.yml/badge.svg?branch=main" alt="GitHub Actions build" /></a>
41
+ <a href="https://github.com/hydra-ecosystem/hydra/actions/workflows/core_tests.yml"><img src="https://github.com/hydra-ecosystem/hydra/actions/workflows/core_tests.yml/badge.svg?branch=main" alt="GitHub Actions build" /></a>
42
42
  <a href="https://www.pepy.tech/projects/hydra-core?versions=0.11.*&versions=1.0.*&versions=1.1.*&versions=1.2.*&versions=1.3.*&versions=1.4.*"><img src="https://pepy.tech/badge/hydra-core/month" alt="Downloads" /></a>
43
+ <a href="https://hydra.cc"><img src="https://hydra.cc/img/hydra-config-badge.svg" alt="Config: Hydra" /></a>
44
+ <a href="https://cli.dev"><img src="https://cli.dev/img/badges/cli-dev-ecosystem.svg" alt="ecosystem: cli.dev" /></a>
43
45
  </p>
44
46
 
45
47
  <p align="center">
46
- <a href="https://github.com/facebookresearch/hydra/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/hydra-core" alt="PyPI - License" /></a>
48
+ <a href="https://github.com/hydra-ecosystem/hydra/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/hydra-core" alt="PyPI - License" /></a>
47
49
  <a href="https://hydra-framework.zulipchat.com/"><img src="https://img.shields.io/badge/zulip-join_chat-brightgreen.svg" alt="Zulip chat" /></a>
48
50
  <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/badge/code%20style-ruff-261230.svg" alt="Code style: Ruff" /></a>
49
51
  </p>
@@ -57,6 +59,16 @@ Dynamic: summary
57
59
 
58
60
  ----------------------
59
61
 
62
+ > [!IMPORTANT]
63
+ > **Hydra project transition:** Hydra moved from the `facebookresearch`
64
+ > GitHub organization to
65
+ > [`hydra-ecosystem`](https://github.com/hydra-ecosystem). The repository moved
66
+ > with its history, issues, and pull requests intact. Hydra remains MIT-licensed.
67
+ > No action is required from Hydra users at this time. Contributors should
68
+ > review the current guidance in [CONTRIBUTING.md](CONTRIBUTING.md). Read
69
+ > [Hydra's next chapter: independent stewardship](https://hydra.cc/blog/2026/08/13/independent-stewardship/)
70
+ > for more about the transition.
71
+
60
72
  ### Releases
61
73
 
62
74
  #### Development
@@ -79,16 +91,14 @@ See the [NEWS.md](NEWS.md) file for a summary of recent changes to Hydra.
79
91
  ### License
80
92
  Hydra is licensed under [MIT License](LICENSE).
81
93
 
82
- ## Hydra Ecosystem
94
+ ## Hydra Landscape
83
95
 
84
- #### Check out these third-party libraries that build on Hydra's functionality:
85
- * [hydra-zen](https://github.com/mit-ll-responsible-ai/hydra-zen): Pythonic utilities for working with Hydra. Dynamic config generation capabilities, enhanced config store features, a Python API for launching Hydra jobs, and more.
86
- * [lightning-hydra-template](https://github.com/ashleve/lightning-hydra-template): user-friendly template combining Hydra with [Pytorch-Lightning](https://github.com/Lightning-AI/lightning) for ML experimentation.
87
- * [hydra-torch](https://github.com/pytorch/hydra-torch): [configen](https://github.com/facebookresearch/hydra/tree/main/tools/configen)-generated configuration classes enabling type-safe PyTorch configuration for Hydra apps.
88
- * NVIDIA's DeepLearningExamples repository contains a Hydra Launcher plugin, the [distributed_launcher](https://github.com/NVIDIA/DeepLearningExamples/tree/9c34e35c218514b8607d7cf381d8a982a01175e9/Tools/PyTorch/TimeSeriesPredictionPlatform/distributed_launcher), which makes use of the pytorch [distributed.launch](https://pytorch.org/docs/stable/distributed.html#launch-utility) API.
96
+ See the [Hydra Landscape](https://hydra.cc/docs/landscape/) for
97
+ third-party libraries, templates, plugins, and projects that use or extend
98
+ Hydra.
89
99
 
90
- #### Ask questions in Github Discussions or StackOverflow (Use the tag #fb-hydra or #omegaconf):
91
- * [Github Discussions](https://github.com/facebookresearch/hydra/discussions)
100
+ #### Ask questions in GitHub Discussions or StackOverflow (Use the tag #fb-hydra or #omegaconf):
101
+ * [GitHub Discussions](https://github.com/hydra-ecosystem/hydra/discussions)
92
102
  * [StackOverflow](https://stackexchange.com/filters/391828/hydra-questions)
93
103
  * [X](https://twitter.com/Hydra_Framework)
94
104
 
@@ -102,6 +112,6 @@ If you use Hydra in your research please use the following BibTeX entry:
102
112
  title = {Hydra - A framework for elegantly configuring complex applications},
103
113
  howpublished = {Github},
104
114
  year = {2019},
105
- url = {https://github.com/facebookresearch/hydra}
115
+ url = {https://github.com/hydra-ecosystem/hydra}
106
116
  }
107
117
  ```
@@ -1,14 +1,16 @@
1
- <p align="center"><img src="https://raw.githubusercontent.com/facebookresearch/hydra/main/website/static/img/Hydra-Readme-logo2.svg" alt="logo" width="70%" /></p>
1
+ <p align="center"><img src="https://raw.githubusercontent.com/hydra-ecosystem/hydra/main/website/static/img/Hydra-Readme-logo2.svg" alt="logo" width="70%" /></p>
2
2
 
3
3
  <p align="center">
4
4
  <a href="https://pypi.org/project/hydra-core/"><img src="https://img.shields.io/pypi/v/hydra-core" alt="PyPI" /></a>
5
5
  <a href="#"><img src="https://img.shields.io/pypi/pyversions/hydra-core" alt="PyPI - Python Version" /></a>
6
- <a href="https://github.com/facebookresearch/hydra/actions/workflows/core_tests.yml"><img src="https://github.com/facebookresearch/hydra/actions/workflows/core_tests.yml/badge.svg?branch=main" alt="GitHub Actions build" /></a>
6
+ <a href="https://github.com/hydra-ecosystem/hydra/actions/workflows/core_tests.yml"><img src="https://github.com/hydra-ecosystem/hydra/actions/workflows/core_tests.yml/badge.svg?branch=main" alt="GitHub Actions build" /></a>
7
7
  <a href="https://www.pepy.tech/projects/hydra-core?versions=0.11.*&versions=1.0.*&versions=1.1.*&versions=1.2.*&versions=1.3.*&versions=1.4.*"><img src="https://pepy.tech/badge/hydra-core/month" alt="Downloads" /></a>
8
+ <a href="https://hydra.cc"><img src="https://hydra.cc/img/hydra-config-badge.svg" alt="Config: Hydra" /></a>
9
+ <a href="https://cli.dev"><img src="https://cli.dev/img/badges/cli-dev-ecosystem.svg" alt="ecosystem: cli.dev" /></a>
8
10
  </p>
9
11
 
10
12
  <p align="center">
11
- <a href="https://github.com/facebookresearch/hydra/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/hydra-core" alt="PyPI - License" /></a>
13
+ <a href="https://github.com/hydra-ecosystem/hydra/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/hydra-core" alt="PyPI - License" /></a>
12
14
  <a href="https://hydra-framework.zulipchat.com/"><img src="https://img.shields.io/badge/zulip-join_chat-brightgreen.svg" alt="Zulip chat" /></a>
13
15
  <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/badge/code%20style-ruff-261230.svg" alt="Code style: Ruff" /></a>
14
16
  </p>
@@ -22,6 +24,16 @@
22
24
 
23
25
  ----------------------
24
26
 
27
+ > [!IMPORTANT]
28
+ > **Hydra project transition:** Hydra moved from the `facebookresearch`
29
+ > GitHub organization to
30
+ > [`hydra-ecosystem`](https://github.com/hydra-ecosystem). The repository moved
31
+ > with its history, issues, and pull requests intact. Hydra remains MIT-licensed.
32
+ > No action is required from Hydra users at this time. Contributors should
33
+ > review the current guidance in [CONTRIBUTING.md](CONTRIBUTING.md). Read
34
+ > [Hydra's next chapter: independent stewardship](https://hydra.cc/blog/2026/08/13/independent-stewardship/)
35
+ > for more about the transition.
36
+
25
37
  ### Releases
26
38
 
27
39
  #### Development
@@ -44,16 +56,14 @@ See the [NEWS.md](NEWS.md) file for a summary of recent changes to Hydra.
44
56
  ### License
45
57
  Hydra is licensed under [MIT License](LICENSE).
46
58
 
47
- ## Hydra Ecosystem
59
+ ## Hydra Landscape
48
60
 
49
- #### Check out these third-party libraries that build on Hydra's functionality:
50
- * [hydra-zen](https://github.com/mit-ll-responsible-ai/hydra-zen): Pythonic utilities for working with Hydra. Dynamic config generation capabilities, enhanced config store features, a Python API for launching Hydra jobs, and more.
51
- * [lightning-hydra-template](https://github.com/ashleve/lightning-hydra-template): user-friendly template combining Hydra with [Pytorch-Lightning](https://github.com/Lightning-AI/lightning) for ML experimentation.
52
- * [hydra-torch](https://github.com/pytorch/hydra-torch): [configen](https://github.com/facebookresearch/hydra/tree/main/tools/configen)-generated configuration classes enabling type-safe PyTorch configuration for Hydra apps.
53
- * NVIDIA's DeepLearningExamples repository contains a Hydra Launcher plugin, the [distributed_launcher](https://github.com/NVIDIA/DeepLearningExamples/tree/9c34e35c218514b8607d7cf381d8a982a01175e9/Tools/PyTorch/TimeSeriesPredictionPlatform/distributed_launcher), which makes use of the pytorch [distributed.launch](https://pytorch.org/docs/stable/distributed.html#launch-utility) API.
61
+ See the [Hydra Landscape](https://hydra.cc/docs/landscape/) for
62
+ third-party libraries, templates, plugins, and projects that use or extend
63
+ Hydra.
54
64
 
55
- #### Ask questions in Github Discussions or StackOverflow (Use the tag #fb-hydra or #omegaconf):
56
- * [Github Discussions](https://github.com/facebookresearch/hydra/discussions)
65
+ #### Ask questions in GitHub Discussions or StackOverflow (Use the tag #fb-hydra or #omegaconf):
66
+ * [GitHub Discussions](https://github.com/hydra-ecosystem/hydra/discussions)
57
67
  * [StackOverflow](https://stackexchange.com/filters/391828/hydra-questions)
58
68
  * [X](https://twitter.com/Hydra_Framework)
59
69
 
@@ -67,6 +77,6 @@ If you use Hydra in your research please use the following BibTeX entry:
67
77
  title = {Hydra - A framework for elegantly configuring complex applications},
68
78
  howpublished = {Github},
69
79
  year = {2019},
70
- url = {https://github.com/facebookresearch/hydra}
80
+ url = {https://github.com/hydra-ecosystem/hydra}
71
81
  }
72
82
  ```
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
2
2
 
3
3
  # Source of truth for Hydra's version
4
- __version__ = "1.4.0.dev6"
4
+ __version__ = "1.4.0.dev9"
5
5
  from hydra import utils
6
6
  from hydra.errors import MissingConfigException
7
7
  from hydra.main import main
@@ -0,0 +1,58 @@
1
+ # SPDX-FileCopyrightText: Contributors to Hydra
2
+ # SPDX-License-Identifier: MIT
3
+
4
+ from importlib import import_module
5
+ from types import ModuleType
6
+ from typing import Any
7
+
8
+
9
+ def _locate(path: str) -> Any:
10
+ """
11
+ Locate an object by name or dotted path, importing as necessary.
12
+ This is similar to the pydoc function `locate`, except that it checks for
13
+ the module from the given path from back to front.
14
+ """
15
+ if path == "":
16
+ raise ImportError("Empty path")
17
+
18
+ parts = [part for part in path.split(".")]
19
+ for part in parts:
20
+ if not len(part):
21
+ raise ValueError(
22
+ f"Error loading '{path}': invalid dotstring."
23
+ + "\nRelative imports are not supported."
24
+ )
25
+ assert len(parts) > 0
26
+ part0 = parts[0]
27
+ try:
28
+ obj = import_module(part0)
29
+ except Exception as exc_import:
30
+ raise ImportError(
31
+ f"Error loading '{path}':\n{repr(exc_import)}"
32
+ + f"\nAre you sure that module '{part0}' is installed?"
33
+ ) from exc_import
34
+ for m in range(1, len(parts)):
35
+ part = parts[m]
36
+ try:
37
+ obj = getattr(obj, part)
38
+ except AttributeError as exc_attr:
39
+ parent_dotpath = ".".join(parts[:m])
40
+ if isinstance(obj, ModuleType):
41
+ mod = ".".join(parts[: m + 1])
42
+ try:
43
+ obj = import_module(mod)
44
+ continue
45
+ except ModuleNotFoundError as exc_import:
46
+ raise ImportError(
47
+ f"Error loading '{path}':\n{repr(exc_import)}"
48
+ + f"\nAre you sure that '{part}' is importable from module '{parent_dotpath}'?"
49
+ ) from exc_import
50
+ except Exception as exc_import:
51
+ raise ImportError(
52
+ f"Error loading '{path}':\n{repr(exc_import)}"
53
+ ) from exc_import
54
+ raise ImportError(
55
+ f"Error loading '{path}':\n{repr(exc_attr)}"
56
+ + f"\nAre you sure that '{part}' is an attribute of '{parent_dotpath}'?"
57
+ ) from exc_attr
58
+ return obj
@@ -1,54 +1,23 @@
1
1
  # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
2
2
  import warnings
3
- from typing import TYPE_CHECKING, Any, Dict, List, Optional
3
+ from typing import TYPE_CHECKING, Any, Optional
4
4
 
5
5
  from omegaconf import DictConfig, OmegaConf
6
6
 
7
- from hydra.core.singleton import Singleton
8
7
  from hydra.types import TaskFunction
9
8
 
10
9
  if TYPE_CHECKING:
11
10
  from hydra.core.utils import JobReturn
12
11
 
13
12
 
14
- class CallbacksCache(metaclass=Singleton):
15
- """
16
- A singleton class to cache callbacks so they are not reinstantiated during
17
- compose config and start run.
18
- """
19
-
20
- @staticmethod
21
- def instance() -> "CallbacksCache":
22
- return Singleton.instance(CallbacksCache) # type: ignore
23
-
24
- cache: Dict[int, "Callbacks"]
25
-
26
- def __init__(self) -> None:
27
- self.cache = {}
28
-
29
-
30
13
  class Callbacks:
31
- callbacks: List[Any]
32
-
33
- def __init__(
34
- self, config: Optional[DictConfig] = None, check_cache: bool = True
35
- ) -> None:
36
- if config is None:
37
- return
38
- cache = CallbacksCache.instance().cache
39
- if check_cache:
40
- cached_callback = cache.get(id(config))
41
- if cached_callback is not None:
42
- self.callbacks = cached_callback.callbacks
43
- return
44
-
14
+ def __init__(self, config: Optional[DictConfig] = None) -> None:
45
15
  self.callbacks = []
46
16
  from hydra.utils import instantiate
47
17
 
48
18
  if config is not None and OmegaConf.select(config, "hydra.callbacks"):
49
19
  for params in config.hydra.callbacks.values():
50
20
  self.callbacks.append(instantiate(params))
51
- cache[id(config)] = self
52
21
 
53
22
  def _notify(self, function_name: str, reverse: bool = False, **kwargs: Any) -> None:
54
23
  callbacks = reversed(self.callbacks) if reverse else self.callbacks
@@ -94,16 +63,3 @@ class Callbacks:
94
63
  reverse=True,
95
64
  **kwargs,
96
65
  )
97
-
98
- def on_compose_config(
99
- self,
100
- config: DictConfig,
101
- config_name: Optional[str],
102
- overrides: List[str],
103
- ) -> None:
104
- self._notify(
105
- function_name="on_compose_config",
106
- config=config,
107
- config_name=config_name,
108
- overrides=overrides,
109
- )
@@ -36,11 +36,9 @@ from hydra.core.override_parser.overrides_parser import OverridesParser
36
36
  from hydra.core.override_parser.types import Override, ValueType
37
37
  from hydra.core.utils import JobRuntime
38
38
  from hydra.errors import ConfigCompositionException, MissingConfigException
39
- from hydra.plugins.config_source import ConfigLoadError, ConfigResult, ConfigSource
39
+ from hydra.plugins.config_source import ConfigResult, ConfigSource
40
40
  from hydra.types import RunMode
41
41
 
42
- from .deprecation_warning import deprecation_warning
43
-
44
42
 
45
43
  class ConfigLoaderImpl(ConfigLoader):
46
44
  """
@@ -315,7 +313,7 @@ class ConfigLoaderImpl(ConfigLoader):
315
313
  # The Hydra node should not be read-only even if the root config is read-only.
316
314
  OmegaConf.set_readonly(cfg.hydra, False)
317
315
 
318
- # Apply command line overrides after enabling strict flag
316
+ # Apply command line overrides after enabling struct mode
319
317
  ConfigLoaderImpl._apply_overrides_to_config(config_overrides, cfg)
320
318
  for override in parsed_overrides:
321
319
  if override.is_hydra_override():
@@ -528,69 +526,6 @@ class ConfigLoaderImpl(ConfigLoader):
528
526
  f" {type(ret.config).__name__}"
529
527
  )
530
528
 
531
- if not ret.is_schema_source:
532
- schema = None
533
- try:
534
- schema_source = repo.get_schema_source()
535
- cname = ConfigSource._normalize_file_name(filename=config_path)
536
- schema = schema_source.load_config(cname)
537
- except ConfigLoadError:
538
- # schema not found, ignore
539
- pass
540
-
541
- if schema is not None:
542
- try:
543
- url = "https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/automatic_schema_matching"
544
- if "defaults" in schema.config:
545
- raise ConfigCompositionException(
546
- dedent(f"""\
547
- '{config_path}' is validated against ConfigStore schema with the same name.
548
- This behavior is deprecated in Hydra 1.1 and will be removed in Hydra 1.2.
549
- In addition, the automatically matched schema contains a defaults list.
550
- This combination is no longer supported.
551
- See {url} for migration instructions.""")
552
- )
553
- else:
554
- deprecation_warning(
555
- dedent(f"""\
556
-
557
- '{config_path}' is validated against ConfigStore schema with the same name.
558
- This behavior is deprecated in Hydra 1.1 and will be removed in Hydra 1.2.
559
- See {url} for migration instructions."""),
560
- stacklevel=11,
561
- )
562
-
563
- # if primary config has a hydra node, remove it during validation and add it back.
564
- # This allows overriding Hydra's configuration without declaring it's node
565
- # in the schema of every primary config
566
- hydra = None
567
- hydra_config_group = (
568
- default.config_path is not None
569
- and default.config_path.startswith("hydra/")
570
- )
571
- config = ret.config
572
- if (
573
- default.primary
574
- and isinstance(config, DictConfig)
575
- and "hydra" in config
576
- and not hydra_config_group
577
- ):
578
- hydra = config.pop("hydra")
579
-
580
- merged = OmegaConf.merge(schema.config, config)
581
- assert isinstance(merged, DictConfig)
582
-
583
- if hydra is not None:
584
- with open_dict(merged):
585
- merged.hydra = hydra
586
- ret.config = merged
587
- except OmegaConfBaseException as e:
588
- raise ConfigCompositionException(
589
- f"Error merging '{config_path}' with schema"
590
- ) from e
591
-
592
- assert isinstance(merged, DictConfig)
593
-
594
529
  res = self._embed_result_config(ret, default.package)
595
530
  if (
596
531
  not default.primary
@@ -2,7 +2,6 @@
2
2
  import copy
3
3
  from abc import ABC, abstractmethod
4
4
  from dataclasses import dataclass
5
- from textwrap import dedent
6
5
  from typing import Dict, List, Optional, Tuple
7
6
 
8
7
  from omegaconf import (
@@ -15,13 +14,11 @@ from omegaconf import (
15
14
  read_write,
16
15
  )
17
16
 
18
- from hydra import version
19
17
  from hydra.core.config_search_path import ConfigSearchPath
20
18
  from hydra.core.object_type import ObjectType
21
19
  from hydra.plugins.config_source import ConfigResult, ConfigSource
22
20
 
23
21
  from ..core.default_element import ConfigDefault, GroupDefault, InputDefault
24
- from .deprecation_warning import deprecation_warning
25
22
  from .sources_registry import SourcesRegistry
26
23
 
27
24
 
@@ -170,24 +167,10 @@ class ConfigRepository(IConfigRepository):
170
167
  config_path: str,
171
168
  defaults: ListConfig,
172
169
  ) -> List[InputDefault]:
173
- def issue_deprecated_name_warning() -> None:
174
- # DEPRECATED: remove in 1.2
175
- url = "https://hydra.cc/docs/1.2/upgrades/1.0_to_1.1/changes_to_package_header"
176
- deprecation_warning(
177
- message=dedent(f"""\
178
- In {config_path}: Defaults List contains deprecated keyword _name_, see {url}
179
- """),
180
- )
181
-
182
170
  res: List[InputDefault] = []
183
171
  for item in defaults._iter_ex(resolve=False):
184
172
  default: InputDefault
185
173
  if isinstance(item, DictConfig):
186
- old_optional = None
187
- if not version.base_at_least("1.2"):
188
- if len(item) > 1:
189
- if "optional" in item:
190
- old_optional = item.pop("optional")
191
174
  keys = list(item.keys())
192
175
 
193
176
  if len(keys) > 1:
@@ -205,25 +188,10 @@ class ConfigRepository(IConfigRepository):
205
188
  config_path, config_group, keywords
206
189
  )
207
190
 
208
- if not version.base_at_least("1.2"):
209
- if not keywords.optional and old_optional is not None:
210
- keywords.optional = old_optional
211
-
212
191
  node = item._get_node(key)
213
192
  assert node is not None and isinstance(node, Node)
214
193
  config_value = node._value()
215
194
 
216
- if not version.base_at_least("1.2"):
217
- if old_optional is not None:
218
- msg = dedent(
219
- f"""
220
- In {config_path}: 'optional: true' is deprecated.
221
- Use 'optional {key}: {config_value}' instead.
222
- Support for the old style is removed for Hydra version_base >= 1.2"""
223
- )
224
-
225
- deprecation_warning(msg)
226
-
227
195
  if config_value is not None and not isinstance(
228
196
  config_value, (str, list)
229
197
  ):
@@ -244,9 +212,20 @@ class ConfigRepository(IConfigRepository):
244
212
  options.append(vv)
245
213
  config_value = options
246
214
 
247
- if not version.base_at_least("1.2"):
248
- if package is not None and "_name_" in package:
249
- issue_deprecated_name_warning()
215
+ normalized_shorthand = False
216
+ original_group = None
217
+ if (
218
+ isinstance(config_value, str)
219
+ and "/" in config_value
220
+ and ".." not in config_value.split("/")
221
+ and "${" not in config_value
222
+ and config_value != "???"
223
+ ):
224
+ original_group = keywords.group
225
+ group_suffix, option_name = config_value.rsplit("/", 1)
226
+ keywords.group = f"{keywords.group}/{group_suffix}"
227
+ config_value = option_name
228
+ normalized_shorthand = True
250
229
 
251
230
  default = GroupDefault(
252
231
  group=keywords.group,
@@ -255,13 +234,11 @@ class ConfigRepository(IConfigRepository):
255
234
  optional=keywords.optional,
256
235
  override=keywords.override,
257
236
  )
237
+ default.normalized_shorthand = normalized_shorthand
238
+ default.original_group = original_group
258
239
 
259
240
  elif isinstance(item, str):
260
241
  path, package, _package2 = self._split_group(item)
261
- if not version.base_at_least("1.2"):
262
- if package is not None and "_name_" in package:
263
- issue_deprecated_name_warning()
264
-
265
242
  default = ConfigDefault(path=path, package=package)
266
243
  else:
267
244
  raise ValueError(
@@ -56,7 +56,11 @@ class BasicLauncher(Launcher):
56
56
  assert self.config is not None
57
57
  assert self.task_function is not None
58
58
 
59
- configure_log(self.config.hydra.hydra_logging, self.config.hydra.verbose)
59
+ configure_log(
60
+ self.config.hydra.hydra_logging,
61
+ self.config.hydra.verbose,
62
+ execution_whitelist=self.hydra_context.execution_whitelist,
63
+ )
60
64
  sweep_dir = self.config.hydra.sweep.dir
61
65
  Path(str(sweep_dir)).mkdir(parents=True, exist_ok=True)
62
66
  log.info(f"Launching {len(job_overrides)} jobs locally")
@@ -79,5 +83,9 @@ class BasicLauncher(Launcher):
79
83
  job_subdir_key="hydra.sweep.subdir",
80
84
  )
81
85
  runs.append(ret)
82
- configure_log(self.config.hydra.hydra_logging, self.config.hydra.verbose)
86
+ configure_log(
87
+ self.config.hydra.hydra_logging,
88
+ self.config.hydra.verbose,
89
+ execution_whitelist=self.hydra_context.execution_whitelist,
90
+ )
83
91
  return runs