lerna 2.1.0__tar.gz → 2.2.0__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 (747) hide show
  1. {lerna-2.1.0 → lerna-2.2.0}/.gitignore +2 -0
  2. {lerna-2.1.0 → lerna-2.2.0}/Cargo.lock +13 -13
  3. {lerna-2.1.0 → lerna-2.2.0}/Cargo.toml +2 -2
  4. {lerna-2.1.0 → lerna-2.2.0}/PKG-INFO +92 -33
  5. {lerna-2.1.0 → lerna-2.2.0}/README.md +89 -30
  6. {lerna-2.1.0 → lerna-2.2.0}/lerna/__init__.py +17 -2
  7. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/config_loader_impl.py +156 -7
  8. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/config_repository.py +6 -38
  9. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/basic_launcher.py +10 -2
  10. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/defaults_list.py +151 -43
  11. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/deprecation_warning.py +2 -2
  12. lerna-2.2.0/lerna/_internal/execution_policy.py +1774 -0
  13. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/grammar/grammar_functions.py +45 -16
  14. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/hydra.py +51 -21
  15. lerna-2.2.0/lerna/_internal/instantiate/_instantiate2.py +1106 -0
  16. lerna-2.2.0/lerna/_internal/logging_config.py +366 -0
  17. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/utils.py +1 -1
  18. lerna-2.2.0/lerna/compose.py +85 -0
  19. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/default_element.py +2 -30
  20. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/override_parser/overrides_parser.py +7 -0
  21. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/override_parser/types.py +36 -31
  22. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/plugins.py +59 -12
  23. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/utils.py +221 -19
  24. {lerna-2.1.0 → lerna-2.2.0}/lerna/errors.py +4 -0
  25. {lerna-2.1.0 → lerna-2.2.0}/lerna/experimental/callbacks.py +9 -11
  26. {lerna-2.1.0 → lerna-2.2.0}/lerna/initialize.py +2 -21
  27. lerna-2.2.0/lerna/lerna.abi3.so +0 -0
  28. {lerna-2.1.0 → lerna-2.2.0}/lerna/main.py +32 -46
  29. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/config_source.py +2 -10
  30. lerna-2.2.0/lerna/provenance.py +351 -0
  31. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/completion.py +1 -1
  32. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/example_app.py +1 -1
  33. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/launcher_common_tests.py +44 -1
  34. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/test_utils.py +4 -3
  35. lerna-2.2.0/lerna/tests/defaults_list/data/conflicting_keywords.yaml +5 -0
  36. lerna-2.2.0/lerna/tests/defaults_list/data/conflicting_keywords_reversed.yaml +5 -0
  37. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/test_defaults_list.py +25 -133
  38. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/test_defaults_tree.py +7 -198
  39. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/__init__.py +0 -7
  40. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/test_instantiate.py +21 -88
  41. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/jupyter/a_module.py +3 -3
  42. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/initialization_test_app/initialization_test_app/main.py +5 -6
  43. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/namespace_test/test_namespace.py +1 -1
  44. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_can_fail/my_app.py +1 -1
  45. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_change_dir/my_app.py +1 -1
  46. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_exception/my_app.py +1 -1
  47. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/my_app.py +1 -1
  48. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback/my_app.py +4 -2
  49. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/custom_callback/my_app.py +4 -2
  50. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/on_job_start_accepts_task_function/my_app.py +4 -2
  51. {lerna-2.1.0/lerna/tests/test_apps/app_with_custom_launcher → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg}/my_app.py +1 -1
  52. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_decorated/my_app.py +1 -1
  53. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/my_app.py +1 -1
  54. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/my_app_with_runtime_choices_print.py +1 -1
  55. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_1 → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_groups_no_header}/my_app.py +1 -1
  56. {lerna-2.1.0/lerna/tests/test_apps/app_with_split_cfg → lerna-2.2.0/lerna/tests/test_apps/app_with_config_with_free_group}/my_app.py +1 -1
  57. {lerna-2.1.0/lerna/tests/test_apps/app_with_no_chdir_override → lerna-2.2.0/lerna/tests/test_apps/app_with_custom_launcher}/my_app.py +1 -1
  58. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/my_app.py +1 -1
  59. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_pickle_job_info_callback/my_app.py +4 -2
  60. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_runtime_config_error/my_app.py +1 -1
  61. lerna-2.2.0/lerna/tests/test_apps/app_with_split_cfg/my_app.py +13 -0
  62. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_unicode_in_config/my_app.py +1 -1
  63. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_without_config/my_app.py +1 -1
  64. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/custom_env_defaults/my_app.py +1 -1
  65. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_in_schema_missing/my_app.py +1 -1
  66. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_pkg_with_dot/my_app.py +1 -1
  67. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/deprecation_warning/my_app.py +1 -1
  68. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/glob_searchpath/my_app.py +1 -1
  69. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_main_rerun/my_app.py +1 -1
  70. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_resolver_in_output_dir/my_app.py +1 -1
  71. {lerna-2.1.0/lerna/tests/test_apps/simple_interpolation → lerna-2.2.0/lerna/tests/test_apps/hydra_to_cfg_interpolation}/my_app.py +1 -1
  72. lerna-2.2.0/lerna/tests/test_apps/hydra_verbose/my_app.py +13 -0
  73. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/init_in_app_without_module/main.py +4 -4
  74. lerna-2.2.0/lerna/tests/test_apps/interpolating_dir_hydra_to_app/my_app.py +13 -0
  75. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/multirun_structured_conflict/my_app.py +1 -1
  76. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/passes_callable_class_to_hydra_main/my_app.py +1 -1
  77. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_3/module → lerna-2.2.0/lerna/tests/test_apps/run_as_module_1}/my_app.py +1 -1
  78. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_2/my_app.py +1 -1
  79. lerna-2.2.0/lerna/tests/test_apps/run_as_module_3/module/my_app.py +13 -0
  80. lerna-2.2.0/lerna/tests/test_apps/run_as_module_4/module/my_app.py +13 -0
  81. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_dir_test/my_app.py +1 -1
  82. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/schema_overrides_hydra/my_app.py +1 -1
  83. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/setting_env/my_app.py +1 -1
  84. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/simple_app/my_app.py +1 -1
  85. {lerna-2.1.0/lerna/tests/test_apps/hydra_to_cfg_interpolation → lerna-2.2.0/lerna/tests/test_apps/simple_interpolation}/my_app.py +1 -1
  86. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/structured_with_none_list/my_app.py +1 -1
  87. lerna-2.2.0/lerna/tests/test_apps/sweep_complex_defaults/my_app.py +13 -0
  88. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sys_exit/my_app.py +1 -1
  89. lerna-2.2.0/lerna/tests/test_apps/user-config-dir/my_app.py +13 -0
  90. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_callbacks.py +28 -27
  91. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_compose.py +136 -176
  92. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_config_loader.py +0 -18
  93. lerna-2.2.0/lerna/tests/test_core_utils.py +236 -0
  94. lerna-2.2.0/lerna/tests/test_execution_policy.py +54 -0
  95. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_hydra.py +114 -44
  96. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_hydra_bugfixes.py +236 -12
  97. lerna-2.2.0/lerna/tests/test_list_operations.py +446 -0
  98. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_logging_config.py +2 -1
  99. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_overrides_parser.py +37 -22
  100. lerna-2.2.0/lerna/tests/test_plugin_interface.py +142 -0
  101. {lerna-2.1.0 → lerna-2.2.0}/lerna/types.py +1 -25
  102. {lerna-2.1.0 → lerna-2.2.0}/lerna/utils.py +4 -0
  103. lerna-2.2.0/lerna/version.py +82 -0
  104. {lerna-2.1.0 → lerna-2.2.0}/pyproject.toml +7 -6
  105. {lerna-2.1.0 → lerna-2.2.0}/rust/Cargo.lock +16 -16
  106. {lerna-2.1.0 → lerna-2.2.0}/rust/Cargo.toml +1 -1
  107. lerna-2.2.0/rust/coverage +12861 -0
  108. {lerna-2.1.0 → lerna-2.2.0}/rust/python/parser/mod.rs +5 -0
  109. {lerna-2.1.0 → lerna-2.2.0}/rust/src/core/override_types.rs +14 -0
  110. {lerna-2.1.0 → lerna-2.2.0}/rust/src/parser/mod.rs +127 -9
  111. lerna-2.1.0/lerna/_internal/instantiate/_instantiate2.py +0 -579
  112. lerna-2.1.0/lerna/_internal/logging_config.py +0 -221
  113. lerna-2.1.0/lerna/_internal/target_policy.py +0 -593
  114. lerna-2.1.0/lerna/compose.py +0 -62
  115. lerna-2.1.0/lerna/experimental/__init__.py +0 -10
  116. lerna-2.1.0/lerna/experimental/compose.py +0 -30
  117. lerna-2.1.0/lerna/experimental/initialize.py +0 -125
  118. lerna-2.1.0/lerna/lerna.abi3.so +0 -0
  119. lerna-2.1.0/lerna/tests/test_apps/app_with_cfg/my_app.py +0 -13
  120. lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_groups_no_header/my_app.py +0 -13
  121. lerna-2.1.0/lerna/tests/test_apps/app_with_config_with_free_group/my_app.py +0 -13
  122. lerna-2.1.0/lerna/tests/test_apps/app_with_log_jobreturn_callback/config.yaml +0 -6
  123. lerna-2.1.0/lerna/tests/test_apps/app_with_log_jobreturn_callback/my_app.py +0 -14
  124. lerna-2.1.0/lerna/tests/test_apps/hydra_verbose/my_app.py +0 -13
  125. lerna-2.1.0/lerna/tests/test_apps/interpolating_dir_hydra_to_app/my_app.py +0 -13
  126. lerna-2.1.0/lerna/tests/test_apps/run_as_module_4/module/my_app.py +0 -13
  127. lerna-2.1.0/lerna/tests/test_apps/sweep_complex_defaults/my_app.py +0 -13
  128. lerna-2.1.0/lerna/tests/test_apps/user-config-dir/my_app.py +0 -13
  129. lerna-2.1.0/lerna/tests/test_apps/user-config-dir/user-dir/dataset/__init__.py +0 -0
  130. lerna-2.1.0/lerna/tests/test_core_utils.py +0 -53
  131. lerna-2.1.0/lerna/tests/test_list_operations.py +0 -249
  132. lerna-2.1.0/lerna/tests/test_plugin_interface.py +0 -51
  133. lerna-2.1.0/lerna/version.py +0 -82
  134. lerna-2.1.0/rust/coverage +0 -12737
  135. {lerna-2.1.0 → lerna-2.2.0}/LICENSE +0 -0
  136. {lerna-2.1.0 → lerna-2.2.0}/NOTICE +0 -0
  137. {lerna-2.1.0 → lerna-2.2.0}/hydra_plugins/lerna/__init__.py +0 -0
  138. {lerna-2.1.0 → lerna-2.2.0}/hydra_plugins/lerna/searchpath.py +0 -0
  139. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/__init__.py +0 -0
  140. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/callbacks.py +0 -0
  141. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/config_search_path_impl.py +0 -0
  142. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/__init__.py +0 -0
  143. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/bash_completion.py +0 -0
  144. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/basic_sweeper.py +0 -0
  145. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/file_config_source.py +0 -0
  146. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/fish_completion.py +0 -0
  147. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/importlib_resources_config_source.py +0 -0
  148. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/pkg_helper.py +0 -0
  149. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/structured_config_source.py +0 -0
  150. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/structured_helper.py +0 -0
  151. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/core_plugins/zsh_completion.py +0 -0
  152. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/grammar/__init__.py +0 -0
  153. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/grammar/functions.py +0 -0
  154. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/grammar/utils.py +0 -0
  155. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/instantiate/__init__.py +0 -0
  156. {lerna-2.1.0 → lerna-2.2.0}/lerna/_internal/sources_registry.py +0 -0
  157. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/__init__.py +0 -0
  158. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/env/default.yaml +0 -0
  159. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/help/default.yaml +0 -0
  160. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/hydra_help/default.yaml +0 -0
  161. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/hydra_logging/default.yaml +0 -0
  162. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/hydra_logging/disabled.yaml +0 -0
  163. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/hydra_logging/hydra_debug.yaml +0 -0
  164. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/hydra_logging/none.yaml +0 -0
  165. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/job_logging/default.yaml +0 -0
  166. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/job_logging/disabled.yaml +0 -0
  167. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/job_logging/none.yaml +0 -0
  168. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/job_logging/stdout.yaml +0 -0
  169. {lerna-2.1.0 → lerna-2.2.0}/lerna/conf/hydra/output/default.yaml +0 -0
  170. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/__init__.py +0 -0
  171. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/config_loader.py +0 -0
  172. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/config_search_path.py +0 -0
  173. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/config_store.py +0 -0
  174. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/global_hydra.py +0 -0
  175. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/hydra_config.py +0 -0
  176. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/object_type.py +0 -0
  177. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/override_parser/__init__.py +0 -0
  178. {lerna-2.1.0 → lerna-2.2.0}/lerna/core/singleton.py +0 -0
  179. {lerna-2.1.0/lerna/plugins → lerna-2.2.0/lerna/experimental}/__init__.py +0 -0
  180. {lerna-2.1.0 → lerna-2.2.0}/lerna/experimental/callback.py +0 -0
  181. {lerna-2.1.0 → lerna-2.2.0}/lerna/extra/pytest_plugin.py +0 -0
  182. {lerna-2.1.0/lerna/test_utils → lerna-2.2.0/lerna/plugins}/__init__.py +0 -0
  183. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/completion_plugin.py +0 -0
  184. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/launcher.py +0 -0
  185. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/plugin.py +0 -0
  186. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/search_path_plugin.py +0 -0
  187. {lerna-2.1.0 → lerna-2.2.0}/lerna/plugins/sweeper.py +0 -0
  188. {lerna-2.1.0 → lerna-2.2.0}/lerna/py.typed +0 -0
  189. {lerna-2.1.0/lerna/test_utils/configs → lerna-2.2.0/lerna/test_utils}/__init__.py +0 -0
  190. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/a_module.py +0 -0
  191. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/config_source_common_tests.py +0 -0
  192. {lerna-2.1.0/lerna/test_utils/configs/completion_test_additional_package → lerna-2.2.0/lerna/test_utils/configs}/__init__.py +0 -0
  193. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/accessing_hydra_config.yaml +0 -0
  194. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/additional_searchpath.yaml +0 -0
  195. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/config.yaml +0 -0
  196. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/group/dict.yaml +0 -0
  197. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/group/list.yaml +0 -0
  198. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/hydra/launcher/fairtask.yaml +0 -0
  199. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/missing_default.yaml +0 -0
  200. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test/test_hydra/launcher/fairtask.yaml +0 -0
  201. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test_additional_file/additional_group/file_opt_additional.yaml +0 -0
  202. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test_additional_file/group/file_opt.yaml +0 -0
  203. {lerna-2.1.0/lerna/test_utils/configs/package_tests → lerna-2.2.0/lerna/test_utils/configs/completion_test_additional_package}/__init__.py +0 -0
  204. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test_additional_package/additional_group/pkg_opt_additional.yaml +0 -0
  205. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/completion_test_additional_package/group/pkg_opt.yaml +0 -0
  206. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/compose.yaml +0 -0
  207. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/conf.zip +0 -0
  208. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/config.yaml +0 -0
  209. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/config.yml +0 -0
  210. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/custom_resolver.yaml +0 -0
  211. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/db/mysql.yaml +0 -0
  212. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/db/postgresql.yaml +0 -0
  213. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/db/validated_mysql.yaml +0 -0
  214. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/db/validated_postgresql.yaml +0 -0
  215. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/db_conf.yaml +0 -0
  216. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/defaults_not_list.yaml +0 -0
  217. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/group1/abc.cde.yaml +0 -0
  218. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/group1/file1.yaml +0 -0
  219. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/group1/file2.yaml +0 -0
  220. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/group2/file1.yaml +0 -0
  221. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/group2/file2.yaml +0 -0
  222. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/missing-default.yaml +0 -0
  223. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/missing-optional-default.yaml +0 -0
  224. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/missing_init_py/.gitignore +0 -0
  225. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/missing_init_py/test.yaml +0 -0
  226. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/optional-default.yaml +0 -0
  227. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/overriding_output_dir.yaml +0 -0
  228. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/overriding_run_dir.yaml +0 -0
  229. {lerna-2.1.0/lerna/tests → lerna-2.2.0/lerna/test_utils/configs/package_tests}/__init__.py +0 -0
  230. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/group1/option1.yaml +0 -0
  231. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/group1/option2.yaml +0 -0
  232. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/group2/option1.yaml +0 -0
  233. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/group2/option2.yaml +0 -0
  234. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/pkg_override.yaml +0 -0
  235. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/package_tests/two_packages_one_group.yaml +0 -0
  236. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/schema_key_error.yaml +0 -0
  237. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/schema_validation_error.yaml +0 -0
  238. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/some_config.yaml +0 -0
  239. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/top_level_list/file1.yaml +0 -0
  240. {lerna-2.1.0 → lerna-2.2.0}/lerna/test_utils/configs/unspecified_mandatory_default.yaml +0 -0
  241. {lerna-2.1.0/lerna/tests/fake_package/fake_package → lerna-2.2.0/lerna/tests}/__init__.py +0 -0
  242. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/benchmark.py +0 -0
  243. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/benchmark_rust_vs_python.py +0 -0
  244. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/conftest.py +0 -0
  245. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/data.py +0 -0
  246. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/__init__.py +0 -0
  247. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/config_default.yaml +0 -0
  248. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/config_default_pkg1.yaml +0 -0
  249. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/config_with_same_name_as_group/item.yaml +0 -0
  250. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/config_with_same_name_as_group.yaml +0 -0
  251. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/db/base_db.yaml +0 -0
  252. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/defaults_with_override_only.yaml +0 -0
  253. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/deprecated_headers/group.yaml +0 -0
  254. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/deprecated_headers/group_foo.yaml +0 -0
  255. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/deprecated_headers/group_name.yaml +0 -0
  256. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/deprecated_headers/name.yaml +0 -0
  257. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/duplicate_self.yaml +0 -0
  258. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/empty.yaml +0 -0
  259. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/empty_group.yaml +0 -0
  260. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/error_changing_group.yaml +0 -0
  261. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/error_duplicate_group.yaml +0 -0
  262. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/error_duplicate_group_nested.yaml +0 -0
  263. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/error_invalid_override.yaml +0 -0
  264. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/error_self_pkg1.yaml +0 -0
  265. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/error_override_without_abs_and_header.yaml +0 -0
  266. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/error_override_without_global.yaml +0 -0
  267. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/include_absolute_config.yaml +0 -0
  268. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/override_config_group.yaml +0 -0
  269. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/override_hydra.yaml +0 -0
  270. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/override_with_global_default.yaml +0 -0
  271. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/experiment/override_with_global_default2.yaml +0 -0
  272. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/base_db.yaml +0 -0
  273. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/external.yaml +0 -0
  274. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/here.yaml +0 -0
  275. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/nested/base_db.yaml +0 -0
  276. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/nested.yaml +0 -0
  277. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/extend/nested_here_keyword.yaml +0 -0
  278. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/config_item.yaml +0 -0
  279. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/config_item_global_.yaml +0 -0
  280. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/config_item_name_.yaml +0 -0
  281. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/config_item_pkg2.yaml +0 -0
  282. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/file1.yaml +0 -0
  283. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/file2.yaml +0 -0
  284. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/file3.yaml +0 -0
  285. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/file_with_global_header.yaml +0 -0
  286. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/file_with_group_header.yaml +0 -0
  287. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/file1.yaml +0 -0
  288. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/file1_pkg_header_foo.yaml +0 -0
  289. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/file2.yaml +0 -0
  290. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/file3.yaml +0 -0
  291. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/file_with_group_header.yaml +0 -0
  292. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group2/interpolation_ext.yaml +0 -0
  293. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1.yaml +0 -0
  294. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_global_.yaml +0 -0
  295. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_global_foo.yaml +0 -0
  296. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_name_.yaml +0 -0
  297. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_pkg2.yaml +0 -0
  298. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_pkg_header_foo.yaml +0 -0
  299. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item1_with_pkg_header_foo.yaml +0 -0
  300. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item2.yaml +0 -0
  301. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item2_pkg_header_bar.yaml +0 -0
  302. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/group_item2_pkg_header_foo.yaml +0 -0
  303. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/interpolation.yaml +0 -0
  304. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/override_invalid.yaml +0 -0
  305. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/override_invalid2.yaml +0 -0
  306. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/override_same_level.yaml +0 -0
  307. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/placeholder.yaml +0 -0
  308. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/resolver.yaml +0 -0
  309. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/select_multi.yaml +0 -0
  310. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/select_multi_pkg.yaml +0 -0
  311. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/with_missing.yaml +0 -0
  312. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1/with_missing_at_foo.yaml +0 -0
  313. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/empty1.yaml +0 -0
  314. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/empty2.yaml +0 -0
  315. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file1_file1.yaml +0 -0
  316. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file1_file1_defaults_with_override.yaml +0 -0
  317. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file1_file1_with_defaults_list.yaml +0 -0
  318. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file1_file2.yaml +0 -0
  319. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file1_file2_with_defaults_list.yaml +0 -0
  320. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/file2_file2.yaml +0 -0
  321. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/foo_file1.yaml +0 -0
  322. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group1_group2/foo_file2.yaml +0 -0
  323. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group2/file1.yaml +0 -0
  324. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group2/file2.yaml +0 -0
  325. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group_default.yaml +0 -0
  326. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group_default_at_global.yaml +0 -0
  327. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group_default_global.yaml +0 -0
  328. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group_default_pkg1.yaml +0 -0
  329. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/group_default_with_explicit_experiment.yaml +0 -0
  330. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/config.yaml +0 -0
  331. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/help/custom1.yaml +0 -0
  332. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/help/custom2.yaml +0 -0
  333. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/help/default.yaml +0 -0
  334. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/output/default.yaml +0 -0
  335. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/output/disabled.yaml +0 -0
  336. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/hydra/run/custom1.yaml +0 -0
  337. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_group_with_same_name_as_config.yaml +0 -0
  338. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_config_item.yaml +0 -0
  339. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_config_item_global.yaml +0 -0
  340. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_config_item_name_.yaml +0 -0
  341. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_config_item_pkg2.yaml +0 -0
  342. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group.yaml +0 -0
  343. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_global_.yaml +0 -0
  344. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_global_foo.yaml +0 -0
  345. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_name_.yaml +0 -0
  346. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_pkg2.yaml +0 -0
  347. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_pkg_header_foo.yaml +0 -0
  348. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_nested_group_pkg_header_foo_override_pkg_bar.yaml +0 -0
  349. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/include_override_same_level.yaml +0 -0
  350. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_bad_key.yaml +0 -0
  351. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_config_default.yaml +0 -0
  352. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_forward.yaml +0 -0
  353. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_in_nested.yaml +0 -0
  354. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_legacy_with_self.yaml +0 -0
  355. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_legacy_without_self.yaml +0 -0
  356. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_nested.yaml +0 -0
  357. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_resolver_in_nested.yaml +0 -0
  358. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_simple.yaml +0 -0
  359. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_with_nested_defaults_list.yaml +0 -0
  360. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_with_nested_defaults_list_with_override.yaml +0 -0
  361. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/interpolation_with_package_override.yaml +0 -0
  362. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/invalid_override_in_defaults.yaml +0 -0
  363. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/keyword_as_groups.yaml +0 -0
  364. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/keyword_optional_optional.yaml +0 -0
  365. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/keyword_override_override.yaml +0 -0
  366. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/legacy_override_hydra.yaml +0 -0
  367. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/legacy_override_hydra2.yaml +0 -0
  368. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/legacy_override_hydra_wrong_order.yaml +0 -0
  369. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/missing_optional_default.yaml +0 -0
  370. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/nested_placeholder.yaml +0 -0
  371. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/optional/file1.yaml +0 -0
  372. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/optional/file2.yaml +0 -0
  373. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/optional.yaml +0 -0
  374. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/optional_deprecated.yaml +0 -0
  375. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override/file1.yaml +0 -0
  376. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override/file2.yaml +0 -0
  377. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_hydra1.yaml +0 -0
  378. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_hydra2.yaml +0 -0
  379. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_hydra3.yaml +0 -0
  380. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_hydra4.yaml +0 -0
  381. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_hydra_wrong_order.yaml +0 -0
  382. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_list.yaml +0 -0
  383. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_nested_group_item.yaml +0 -0
  384. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_nested_to_null.yaml +0 -0
  385. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_same_level.yaml +0 -0
  386. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/override_wrong_order.yaml +0 -0
  387. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/placeholder.yaml +0 -0
  388. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/primary_pkg_header_foo.yaml +0 -0
  389. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/select_multi.yaml +0 -0
  390. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/select_multi_interpolation.yaml +0 -0
  391. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/select_multi_optional.yaml +0 -0
  392. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/select_multi_override.yaml +0 -0
  393. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/select_multi_pkg.yaml +0 -0
  394. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/self_leading.yaml +0 -0
  395. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/self_trailing.yaml +0 -0
  396. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/test_extend_from_config_with_same_name_as_group.yaml +0 -0
  397. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/test_extend_from_external_group.yaml +0 -0
  398. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/test_extend_from_group_with_same_name_as_config.yaml +0 -0
  399. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/test_extend_from_nested_group.yaml +0 -0
  400. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/test_extend_same_group.yaml +0 -0
  401. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/two_config_items.yaml +0 -0
  402. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/two_group_defaults_different_pkgs.yaml +0 -0
  403. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/two_group_defaults_different_pkgs_global.yaml +0 -0
  404. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/unknown_keyword.yaml +0 -0
  405. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/whitespace_group.yaml +0 -0
  406. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/with_missing.yaml +0 -0
  407. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/with_missing_at_foo.yaml +0 -0
  408. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/defaults_list/data/with_missing_at_global.yaml +0 -0
  409. {lerna-2.1.0/lerna/tests/fake_package2/fake_package2 → lerna-2.2.0/lerna/tests/fake_package/fake_package}/__init__.py +0 -0
  410. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/fake_package/fake_package/hydra/.gitkeep +0 -0
  411. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/fake_package/fake_package/plugin.py +0 -0
  412. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/fake_package/pyproject.toml +0 -0
  413. {lerna-2.1.0/lerna/tests/standalone_apps/discovery_test_plugin/hydra_plugins/discovery_test → lerna-2.2.0/lerna/tests/fake_package2/fake_package2}/__init__.py +0 -0
  414. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/fake_package2/fake_package2/hydra/.gitkeep +0 -0
  415. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/fake_package2/pyproject.toml +0 -0
  416. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/import_error.py +0 -0
  417. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/module_shadowed_by_function.py +0 -0
  418. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/positional_only.py +0 -0
  419. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/test_helpers.py +0 -0
  420. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/test_positional.py +0 -0
  421. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/instantiate/test_positional_only_arguments.py +0 -0
  422. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/jupyter/%run_test.ipynb +0 -0
  423. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/jupyter/test_initialize_in_module.ipynb +0 -0
  424. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/scripts/test_bash_completion_non_hydra.bash +0 -0
  425. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/scripts/test_bash_dot_in_path.bash +0 -0
  426. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/scripts/test_bash_install_uninstall.sh +0 -0
  427. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/scripts/test_fish_install_uninstall.fish +0 -0
  428. {lerna-2.1.0/lerna/tests/standalone_apps/discovery_test_plugin/tests → lerna-2.2.0/lerna/tests/standalone_apps/discovery_test_plugin/hydra_plugins/discovery_test}/__init__.py +0 -0
  429. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/discovery_test_plugin/hydra_plugins/discovery_test/__not_hidden_plugin.py +0 -0
  430. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/discovery_test_plugin/hydra_plugins/discovery_test/_hidden_plugin.py +0 -0
  431. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/discovery_test_plugin/hydra_plugins/discovery_test/discovery_test.py +0 -0
  432. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/discovery_test_plugin/setup.py +0 -0
  433. {lerna-2.1.0/lerna/tests/standalone_apps/initialization_test_app → lerna-2.2.0/lerna/tests/standalone_apps/discovery_test_plugin/tests}/__init__.py +0 -0
  434. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/discovery_test_plugin/tests/test_discovery.py +0 -0
  435. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/initialization_test_app/MANIFEST.in +0 -0
  436. {lerna-2.1.0/lerna/tests/standalone_apps/initialization_test_app → lerna-2.2.0/lerna/tests/standalone_apps}/initialization_test_app/__init__.py +0 -0
  437. {lerna-2.1.0/lerna/tests/standalone_apps/initialization_test_app/initialization_test_app/conf → lerna-2.2.0/lerna/tests/standalone_apps/initialization_test_app/initialization_test_app}/__init__.py +0 -0
  438. {lerna-2.1.0/lerna/tests/standalone_apps/initialization_test_app/tests → lerna-2.2.0/lerna/tests/standalone_apps/initialization_test_app/initialization_test_app/conf}/__init__.py +0 -0
  439. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/initialization_test_app/initialization_test_app/conf/config.yaml +0 -0
  440. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/initialization_test_app/setup.py +0 -0
  441. {lerna-2.1.0/lerna/tests/standalone_apps/namespace_pkg_config_source_test/namespace_test → lerna-2.2.0/lerna/tests/standalone_apps/initialization_test_app/tests}/__init__.py +0 -0
  442. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/initialization_test_app/tests/test_app.py +0 -0
  443. {lerna-2.1.0/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir → lerna-2.2.0/lerna/tests/standalone_apps/namespace_pkg_config_source_test/namespace_test}/__init__.py +0 -0
  444. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/setup.py +0 -0
  445. {lerna-2.1.0/lerna/tests/test_apps/app_can_fail → lerna-2.2.0/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir}/__init__.py +0 -0
  446. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/config_with_defaults_list.yaml +0 -0
  447. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/config_with_unicode.yaml +0 -0
  448. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/config_without_group.yaml +0 -0
  449. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/configs_with_defaults_list/global_package.yaml +0 -0
  450. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/configs_with_defaults_list/group_package.yaml +0 -0
  451. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/configs_with_defaults_list/no_package.yaml +0 -0
  452. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/dataset/cifar10.yaml +0 -0
  453. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/dataset/imagenet.yaml +0 -0
  454. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/dataset.yaml +0 -0
  455. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/level1/level2/nested1.yaml +0 -0
  456. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/level1/level2/nested2.yaml +0 -0
  457. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/optimizer/adam.yaml +0 -0
  458. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/optimizer/nesterov.yaml +0 -0
  459. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/explicit.yaml +0 -0
  460. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/global.yaml +0 -0
  461. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/group.yaml +0 -0
  462. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/group_name.yaml +0 -0
  463. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/name.yaml +0 -0
  464. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/package_test/none.yaml +0 -0
  465. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/primary_config.yaml +0 -0
  466. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/standalone_apps/namespace_pkg_config_source_test/some_namespace/namespace_test/dir/primary_config_with_non_global_package.yaml +0 -0
  467. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/__init__.py +0 -0
  468. {lerna-2.1.0/lerna/tests/test_apps/app_exception → lerna-2.2.0/lerna/tests/test_apps/app_can_fail}/__init__.py +0 -0
  469. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_change_dir/__init__.py +0 -0
  470. {lerna-2.1.0/lerna/tests/test_apps/app_print_hydra_mode → lerna-2.2.0/lerna/tests/test_apps/app_exception}/__init__.py +0 -0
  471. {lerna-2.1.0/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback → lerna-2.2.0/lerna/tests/test_apps/app_print_hydra_mode}/__init__.py +0 -0
  472. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/conf/__init__.py +0 -0
  473. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/conf/config.yaml +0 -0
  474. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/conf/hydra/__init__.py +0 -0
  475. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/conf/hydra/sweeper/__init__.py +0 -0
  476. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_print_hydra_mode/conf/hydra/sweeper/test.yaml +0 -0
  477. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/__init__.py +0 -0
  478. {lerna-2.1.0/lerna/tests/test_apps/app_with_callbacks/custom_callback → lerna-2.2.0/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback}/__init__.py +0 -0
  479. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback/config.yaml +0 -0
  480. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback/group/__init__.py +0 -0
  481. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/app_with_log_compose_callback/group/a.yaml +0 -0
  482. {lerna-2.1.0/lerna/tests/test_apps/app_with_callbacks/keyboard_interrupt → lerna-2.2.0/lerna/tests/test_apps/app_with_callbacks/custom_callback}/__init__.py +0 -0
  483. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/custom_callback/config.yaml +0 -0
  484. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/custom_callback/config_with_two_callbacks.yaml +0 -0
  485. {lerna-2.1.0/lerna/tests/test_apps/app_with_callbacks/on_job_start_accepts_task_function → lerna-2.2.0/lerna/tests/test_apps/app_with_callbacks/keyboard_interrupt}/__init__.py +0 -0
  486. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/keyboard_interrupt/config.yaml +0 -0
  487. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/keyboard_interrupt/my_app.py +0 -0
  488. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg → lerna-2.2.0/lerna/tests/test_apps/app_with_callbacks/on_job_start_accepts_task_function}/__init__.py +0 -0
  489. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_callbacks/on_job_start_accepts_task_function/config.yaml +0 -0
  490. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_decorated → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg}/__init__.py +0 -0
  491. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg/config.yaml +0 -0
  492. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_decorated/decorators → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_decorated}/__init__.py +0 -0
  493. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_decorated/config.yaml +0 -0
  494. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_groups → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_decorated/decorators}/__init__.py +0 -0
  495. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_decorated/decorators/inner_decorator.py +0 -0
  496. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_decorated/decorators/outer_decorator.py +0 -0
  497. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_groups/conf → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_groups}/__init__.py +0 -0
  498. {lerna-2.1.0/lerna/tests/test_apps/app_with_cfg_groups_no_header → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_groups}/conf/__init__.py +0 -0
  499. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/config.yaml +0 -0
  500. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/config_with_runtime_option.yaml +0 -0
  501. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/dataset/__init__.py +0 -0
  502. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/dataset/imagenet.yaml +0 -0
  503. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/missing_default.yaml +0 -0
  504. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/optimizer/__init__.py +0 -0
  505. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/optimizer/adam.yaml +0 -0
  506. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups/conf/optimizer/nesterov.yaml +0 -0
  507. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups_no_header/__init__.py +0 -0
  508. {lerna-2.1.0/lerna/tests/test_apps/app_with_config_with_free_group → lerna-2.2.0/lerna/tests/test_apps/app_with_cfg_groups_no_header/conf}/__init__.py +0 -0
  509. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups_no_header/conf/config.yaml +0 -0
  510. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups_no_header/conf/optimizer/__init__.py +0 -0
  511. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_cfg_groups_no_header/conf/optimizer/nesterov.yaml +0 -0
  512. {lerna-2.1.0/lerna/tests/test_apps/app_with_config_with_free_group/conf → lerna-2.2.0/lerna/tests/test_apps/app_with_config_with_free_group}/__init__.py +0 -0
  513. {lerna-2.1.0/lerna/tests/test_apps/app_with_custom_launcher → lerna-2.2.0/lerna/tests/test_apps/app_with_config_with_free_group/conf}/__init__.py +0 -0
  514. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/config.yaml +0 -0
  515. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/free_group/__init__.py +0 -0
  516. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/free_group/opt1.yaml +0 -0
  517. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/free_group/opt2.yaml +0 -0
  518. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/group/__init__.py +0 -0
  519. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/group/opt1.yaml +0 -0
  520. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_config_with_free_group/conf/group/opt2.yaml +0 -0
  521. {lerna-2.1.0/lerna/tests/test_apps/app_with_log_jobreturn_callback → lerna-2.2.0/lerna/tests/test_apps/app_with_custom_launcher}/__init__.py +0 -0
  522. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_custom_launcher/config.yaml +0 -0
  523. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/__init__.py +0 -0
  524. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir1/__init__.py +0 -0
  525. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir1/cfg1.yaml +0 -0
  526. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir1/cfg2.yaml +0 -0
  527. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir2/__init__.py +0 -0
  528. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir2/cfg1.yaml +0 -0
  529. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_multiple_config_dirs/dir2/cfg2.yaml +0 -0
  530. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_pickle_job_info_callback/__init__.py +0 -0
  531. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_pickle_job_info_callback/config.yaml +0 -0
  532. {lerna-2.1.0/lerna/tests/test_apps/app_with_no_chdir_override → lerna-2.2.0/lerna/tests/test_apps/app_with_runtime_config_error}/__init__.py +0 -0
  533. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_runtime_config_error/config.yaml +0 -0
  534. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_split_cfg/__init__.py +0 -0
  535. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_split_cfg/config.yaml +0 -0
  536. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_split_cfg/imagenet.yaml +0 -0
  537. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_split_cfg/nesterov.yaml +0 -0
  538. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_unicode_in_config/__init__.py +0 -0
  539. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_with_unicode_in_config/config.yaml +0 -0
  540. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/app_without_config/__init__.py +0 -0
  541. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/__init__.py +0 -0
  542. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/__init__.py +0 -0
  543. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/config_with_defaults_list.yaml +0 -0
  544. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/config_with_unicode.yaml +0 -0
  545. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/config_without_group.yaml +0 -0
  546. {lerna-2.1.0/lerna/tests/test_apps/app_with_runtime_config_error → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/configs_with_defaults_list}/__init__.py +0 -0
  547. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/configs_with_defaults_list/global_package.yaml +0 -0
  548. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/configs_with_defaults_list/group_package.yaml +0 -0
  549. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/configs_with_defaults_list/no_package.yaml +0 -0
  550. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/configs_with_defaults_list → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/dataset}/__init__.py +0 -0
  551. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/dataset/cifar10.yaml +0 -0
  552. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/dataset/imagenet.yaml +0 -0
  553. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/dataset.yaml +0 -0
  554. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/dataset → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/level1}/__init__.py +0 -0
  555. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/level1 → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/level1/level2}/__init__.py +0 -0
  556. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/level1/level2/nested1.yaml +0 -0
  557. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/level1/level2/nested2.yaml +0 -0
  558. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/level1/level2 → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/optimizer}/__init__.py +0 -0
  559. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/optimizer/adam.yaml +0 -0
  560. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/optimizer/nesterov.yaml +0 -0
  561. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/optimizer → lerna-2.2.0/lerna/tests/test_apps/config_source_test/dir/package_test}/__init__.py +0 -0
  562. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/explicit.yaml +0 -0
  563. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/global.yaml +0 -0
  564. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/group.yaml +0 -0
  565. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/group_name.yaml +0 -0
  566. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/name.yaml +0 -0
  567. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/package_test/none.yaml +0 -0
  568. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/primary_config.yaml +0 -0
  569. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/dir/primary_config_with_non_global_package.yaml +0 -0
  570. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/config_source_test/structured.py +0 -0
  571. {lerna-2.1.0/lerna/tests/test_apps/config_source_test/dir/package_test → lerna-2.2.0/lerna/tests/test_apps/custom_env_defaults}/__init__.py +0 -0
  572. {lerna-2.1.0/lerna/tests/test_apps/custom_env_defaults → lerna-2.2.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins}/__init__.py +0 -0
  573. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/__init__.py +0 -0
  574. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/__init__.py +0 -0
  575. {lerna-2.1.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins → lerna-2.2.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/hydra}/__init__.py +0 -0
  576. {lerna-2.1.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/hydra → lerna-2.2.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/hydra/env}/__init__.py +0 -0
  577. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/hydra/env/default.yaml +0 -0
  578. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/env_defaults.py +0 -0
  579. {lerna-2.1.0/lerna/tests/test_apps/custom_env_defaults/hydra_plugins/env_defaults/conf/hydra/env → lerna-2.2.0/lerna/tests/test_apps/defaults_in_schema_missing}/__init__.py +0 -0
  580. {lerna-2.1.0/lerna/tests/test_apps/defaults_in_schema_missing → lerna-2.2.0/lerna/tests/test_apps/defaults_in_schema_missing/conf}/__init__.py +0 -0
  581. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_in_schema_missing/conf/config.yaml +0 -0
  582. {lerna-2.1.0/lerna/tests/test_apps/defaults_in_schema_missing/conf → lerna-2.2.0/lerna/tests/test_apps/defaults_in_schema_missing/conf/db}/__init__.py +0 -0
  583. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_in_schema_missing/conf/db/mysql.yaml +0 -0
  584. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_pkg_with_dot/__init__.py +0 -0
  585. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_pkg_with_dot/config.yaml +0 -0
  586. {lerna-2.1.0/lerna/tests/test_apps/defaults_in_schema_missing/conf/db → lerna-2.2.0/lerna/tests/test_apps/defaults_pkg_with_dot/dataset}/__init__.py +0 -0
  587. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/defaults_pkg_with_dot/dataset/imagenet.yaml +0 -0
  588. {lerna-2.1.0/lerna/tests/test_apps/defaults_pkg_with_dot/dataset → lerna-2.2.0/lerna/tests/test_apps/deprecation_warning}/__init__.py +0 -0
  589. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/glob_searchpath/__init__.py +0 -0
  590. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/glob_searchpath/conf/__init__.py +0 -0
  591. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/glob_searchpath/conf/config.yaml +0 -0
  592. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_main_rerun/__init__.py +0 -0
  593. {lerna-2.1.0/lerna/tests/test_apps/deprecation_warning → lerna-2.2.0/lerna/tests/test_apps/hydra_main_without_config_path}/__init__.py +0 -0
  594. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_main_without_config_path/my_app.py +0 -0
  595. {lerna-2.1.0/lerna/tests/test_apps/hydra_main_without_config_path → lerna-2.2.0/lerna/tests/test_apps/hydra_resolver_in_output_dir}/__init__.py +0 -0
  596. {lerna-2.1.0/lerna/tests/test_apps/hydra_resolver_in_output_dir → lerna-2.2.0/lerna/tests/test_apps/hydra_to_cfg_interpolation}/__init__.py +0 -0
  597. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_to_cfg_interpolation/config.yaml +0 -0
  598. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_verbose/__init__.py +0 -0
  599. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/hydra_verbose/config.yaml +0 -0
  600. {lerna-2.1.0/lerna/tests/test_apps/hydra_to_cfg_interpolation → lerna-2.2.0/lerna/tests/test_apps/init_in_app_without_module}/__init__.py +0 -0
  601. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/init_in_app_without_module/config.yaml +0 -0
  602. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/interpolating_dir_hydra_to_app/__init__.py +0 -0
  603. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/interpolating_dir_hydra_to_app/config.yaml +0 -0
  604. {lerna-2.1.0/lerna/tests/test_apps/init_in_app_without_module → lerna-2.2.0/lerna/tests/test_apps/multirun_structured_conflict}/__init__.py +0 -0
  605. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/multirun_structured_conflict/config.yaml +0 -0
  606. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/passes_callable_class_to_hydra_main/__init__.py +0 -0
  607. {lerna-2.1.0/lerna/tests/test_apps/multirun_structured_conflict → lerna-2.2.0/lerna/tests/test_apps/run_as_module_1}/__init__.py +0 -0
  608. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_1/config.yaml +0 -0
  609. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_1 → lerna-2.2.0/lerna/tests/test_apps/run_as_module_2}/__init__.py +0 -0
  610. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_2/conf/__init__.py +0 -0
  611. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_2/conf/config.yaml +0 -0
  612. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_2 → lerna-2.2.0/lerna/tests/test_apps/run_as_module_3}/__init__.py +0 -0
  613. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_3/module/__init__.py +0 -0
  614. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_3/module/conf/__init__.py +0 -0
  615. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_3/module/config.yaml +0 -0
  616. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_3 → lerna-2.2.0/lerna/tests/test_apps/run_as_module_4}/__init__.py +0 -0
  617. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_4/module/__init__.py +0 -0
  618. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_4/module/conf/__init__.py +0 -0
  619. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_as_module_4/module/conf/config.yaml +0 -0
  620. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/run_dir_test/__init__.py +0 -0
  621. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/schema_overrides_hydra/__init__.py +0 -0
  622. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/schema_overrides_hydra/config.yaml +0 -0
  623. {lerna-2.1.0/lerna/tests/test_apps/run_as_module_4 → lerna-2.2.0/lerna/tests/test_apps/schema_overrides_hydra/group}/__init__.py +0 -0
  624. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/schema_overrides_hydra/group/a.yaml +0 -0
  625. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/setting_env/__init__.py +0 -0
  626. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/setting_env/config.yaml +0 -0
  627. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/simple_app/__init__.py +0 -0
  628. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/simple_app/interp_to_hydra.yaml +0 -0
  629. {lerna-2.1.0/lerna/tests/test_apps/schema_overrides_hydra/group → lerna-2.2.0/lerna/tests/test_apps/simple_interpolation}/__init__.py +0 -0
  630. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/simple_interpolation/config.yaml +0 -0
  631. {lerna-2.1.0/lerna/tests/test_apps/simple_interpolation → lerna-2.2.0/lerna/tests/test_apps/structured_with_none_list}/__init__.py +0 -0
  632. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/__init__.py +0 -0
  633. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/__init__.py +0 -0
  634. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/config.yaml +0 -0
  635. {lerna-2.1.0/lerna/tests/test_apps/structured_with_none_list → lerna-2.2.0/lerna/tests/test_apps/sweep_complex_defaults/conf/dataset}/__init__.py +0 -0
  636. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/dataset/imagenet.yaml +0 -0
  637. {lerna-2.1.0/lerna/tests/test_apps/sweep_complex_defaults/conf/dataset → lerna-2.2.0/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer}/__init__.py +0 -0
  638. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer/adam.yaml +0 -0
  639. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer/nesterov.yaml +0 -0
  640. {lerna-2.1.0/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer → lerna-2.2.0/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer_dataset}/__init__.py +0 -0
  641. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer_dataset/adam_imagenet.yaml +0 -0
  642. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer_dataset/nesterov_imagenet.yaml +0 -0
  643. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/sys_exit/__init__.py +0 -0
  644. {lerna-2.1.0/lerna/tests/test_apps/sweep_complex_defaults/conf/optimizer_dataset → lerna-2.2.0/lerna/tests/test_apps/user-config-dir}/__init__.py +0 -0
  645. {lerna-2.1.0/lerna/tests/test_apps/user-config-dir → lerna-2.2.0/lerna/tests/test_apps/user-config-dir/conf}/__init__.py +0 -0
  646. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/user-config-dir/conf/config.yaml +0 -0
  647. {lerna-2.1.0/lerna/tests/test_apps/user-config-dir/conf → lerna-2.2.0/lerna/tests/test_apps/user-config-dir/conf/dataset}/__init__.py +0 -0
  648. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/user-config-dir/conf/dataset/imagenet.yaml +0 -0
  649. {lerna-2.1.0/lerna/tests/test_apps/user-config-dir/conf/dataset → lerna-2.2.0/lerna/tests/test_apps/user-config-dir/user-dir}/__init__.py +0 -0
  650. {lerna-2.1.0/lerna/tests/test_apps/user-config-dir/user-dir → lerna-2.2.0/lerna/tests/test_apps/user-config-dir/user-dir/dataset}/__init__.py +0 -0
  651. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_apps/user-config-dir/user-dir/dataset/cifar10.yaml +0 -0
  652. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_basic_launcher.py +0 -0
  653. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_basic_sweeper.py +0 -0
  654. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_completion.py +0 -0
  655. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_config_repository.py +0 -0
  656. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_config_search_path.py +0 -0
  657. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_config_source.py +0 -0
  658. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_discover.py +0 -0
  659. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_env_defaults.py +0 -0
  660. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_errors.py +0 -0
  661. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/__init__.py +0 -0
  662. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_advanced_config_search_path.py +0 -0
  663. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_advanced_package_overrides.py +0 -0
  664. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_basic_sweep.py +0 -0
  665. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_configure_hydra.py +0 -0
  666. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_experimental.py +0 -0
  667. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_instantiate_examples.py +0 -0
  668. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_patterns.py +0 -0
  669. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_structured_configs_tutorial.py +0 -0
  670. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_examples/test_tutorials_basic.py +0 -0
  671. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_hydra_cli_errors.py +0 -0
  672. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_hydra_context_warnings.py +0 -0
  673. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_internal_utils.py +0 -0
  674. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_launcher.py +0 -0
  675. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_callback.py +0 -0
  676. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_config_repository.py +0 -0
  677. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_defaults_list.py +0 -0
  678. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_hybrid_repo.py +0 -0
  679. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_integration.py +0 -0
  680. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_rust_omegaconf.py +0 -0
  681. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_sweeper.py +0 -0
  682. {lerna-2.1.0 → lerna-2.2.0}/lerna/tests/test_utils.py +0 -0
  683. {lerna-2.1.0 → lerna-2.2.0}/rust/.config/nextest.toml +0 -0
  684. {lerna-2.1.0 → lerna-2.2.0}/rust/python/callback/mod.rs +0 -0
  685. {lerna-2.1.0 → lerna-2.2.0}/rust/python/config/mod.rs +0 -0
  686. {lerna-2.1.0 → lerna-2.2.0}/rust/python/config_path/mod.rs +0 -0
  687. {lerna-2.1.0 → lerna-2.2.0}/rust/python/config_source/mod.rs +0 -0
  688. {lerna-2.1.0 → lerna-2.2.0}/rust/python/config_store/mod.rs +0 -0
  689. {lerna-2.1.0 → lerna-2.2.0}/rust/python/core/mod.rs +0 -0
  690. {lerna-2.1.0 → lerna-2.2.0}/rust/python/defaults/mod.rs +0 -0
  691. {lerna-2.1.0 → lerna-2.2.0}/rust/python/defaults_list/mod.rs +0 -0
  692. {lerna-2.1.0 → lerna-2.2.0}/rust/python/env/mod.rs +0 -0
  693. {lerna-2.1.0 → lerna-2.2.0}/rust/python/glob/mod.rs +0 -0
  694. {lerna-2.1.0 → lerna-2.2.0}/rust/python/interpolation/mod.rs +0 -0
  695. {lerna-2.1.0 → lerna-2.2.0}/rust/python/job/mod.rs +0 -0
  696. {lerna-2.1.0 → lerna-2.2.0}/rust/python/job_runner/mod.rs +0 -0
  697. {lerna-2.1.0 → lerna-2.2.0}/rust/python/launcher/mod.rs +0 -0
  698. {lerna-2.1.0 → lerna-2.2.0}/rust/python/lib.rs +0 -0
  699. {lerna-2.1.0 → lerna-2.2.0}/rust/python/merge/mod.rs +0 -0
  700. {lerna-2.1.0 → lerna-2.2.0}/rust/python/omegaconf/context.rs +0 -0
  701. {lerna-2.1.0 → lerna-2.2.0}/rust/python/omegaconf/dictconfig.rs +0 -0
  702. {lerna-2.1.0 → lerna-2.2.0}/rust/python/omegaconf/listconfig.rs +0 -0
  703. {lerna-2.1.0 → lerna-2.2.0}/rust/python/omegaconf/mod.rs +0 -0
  704. {lerna-2.1.0 → lerna-2.2.0}/rust/python/omegaconf/omegaconf.rs +0 -0
  705. {lerna-2.1.0 → lerna-2.2.0}/rust/python/override_types/mod.rs +0 -0
  706. {lerna-2.1.0 → lerna-2.2.0}/rust/python/package/mod.rs +0 -0
  707. {lerna-2.1.0 → lerna-2.2.0}/rust/python/search_path/mod.rs +0 -0
  708. {lerna-2.1.0 → lerna-2.2.0}/rust/python/sweep/mod.rs +0 -0
  709. {lerna-2.1.0 → lerna-2.2.0}/rust/python/sweeper/mod.rs +0 -0
  710. {lerna-2.1.0 → lerna-2.2.0}/rust/python/utils/mod.rs +0 -0
  711. {lerna-2.1.0 → lerna-2.2.0}/rust/python/validation/mod.rs +0 -0
  712. {lerna-2.1.0 → lerna-2.2.0}/rust/src/callback.rs +0 -0
  713. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/interpolation.rs +0 -0
  714. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/loader.rs +0 -0
  715. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/mod.rs +0 -0
  716. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/parser.rs +0 -0
  717. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/repository.rs +0 -0
  718. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/source.rs +0 -0
  719. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config/value.rs +0 -0
  720. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config_path.rs +0 -0
  721. {lerna-2.1.0 → lerna-2.2.0}/rust/src/config_store.rs +0 -0
  722. {lerna-2.1.0 → lerna-2.2.0}/rust/src/core/mod.rs +0 -0
  723. {lerna-2.1.0 → lerna-2.2.0}/rust/src/core/object_type.rs +0 -0
  724. {lerna-2.1.0 → lerna-2.2.0}/rust/src/defaults.rs +0 -0
  725. {lerna-2.1.0 → lerna-2.2.0}/rust/src/defaults_list.rs +0 -0
  726. {lerna-2.1.0 → lerna-2.2.0}/rust/src/env.rs +0 -0
  727. {lerna-2.1.0 → lerna-2.2.0}/rust/src/glob.rs +0 -0
  728. {lerna-2.1.0 → lerna-2.2.0}/rust/src/interpolation.rs +0 -0
  729. {lerna-2.1.0 → lerna-2.2.0}/rust/src/job.rs +0 -0
  730. {lerna-2.1.0 → lerna-2.2.0}/rust/src/job_runner.rs +0 -0
  731. {lerna-2.1.0 → lerna-2.2.0}/rust/src/launcher.rs +0 -0
  732. {lerna-2.1.0 → lerna-2.2.0}/rust/src/lib.rs +0 -0
  733. {lerna-2.1.0 → lerna-2.2.0}/rust/src/merge.rs +0 -0
  734. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/base.rs +0 -0
  735. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/dictconfig.rs +0 -0
  736. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/errors.rs +0 -0
  737. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/flags.rs +0 -0
  738. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/listconfig.rs +0 -0
  739. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/mod.rs +0 -0
  740. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/nodes.rs +0 -0
  741. {lerna-2.1.0 → lerna-2.2.0}/rust/src/omegaconf/omegaconf.rs +0 -0
  742. {lerna-2.1.0 → lerna-2.2.0}/rust/src/package.rs +0 -0
  743. {lerna-2.1.0 → lerna-2.2.0}/rust/src/search_path.rs +0 -0
  744. {lerna-2.1.0 → lerna-2.2.0}/rust/src/sweep.rs +0 -0
  745. {lerna-2.1.0 → lerna-2.2.0}/rust/src/sweeper.rs +0 -0
  746. {lerna-2.1.0 → lerna-2.2.0}/rust/src/utils.rs +0 -0
  747. {lerna-2.1.0 → lerna-2.2.0}/rust/src/validation.rs +0 -0
@@ -160,5 +160,7 @@ emsdk
160
160
  # AI
161
161
  ROADMAP.md
162
162
  AGENTS.md
163
+ CHANGES.md
164
+ /hydra/
163
165
  .github/hooks/sdlc.json
164
166
  .superpowers
@@ -10,9 +10,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
10
10
 
11
11
  [[package]]
12
12
  name = "cfg-if"
13
- version = "1.0.4"
13
+ version = "1.0.5"
14
14
  source = "registry+https://github.com/rust-lang/crates.io-index"
15
- checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
15
+ checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
16
16
 
17
17
  [[package]]
18
18
  name = "getrandom"
@@ -59,7 +59,7 @@ dependencies = [
59
59
 
60
60
  [[package]]
61
61
  name = "lerna"
62
- version = "2.1.0"
62
+ version = "2.2.0"
63
63
  dependencies = [
64
64
  "rand",
65
65
  "serde",
@@ -68,7 +68,7 @@ dependencies = [
68
68
 
69
69
  [[package]]
70
70
  name = "lerna_py"
71
- version = "2.1.0"
71
+ version = "2.2.0"
72
72
  dependencies = [
73
73
  "lerna",
74
74
  "pyo3",
@@ -256,7 +256,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
256
256
  dependencies = [
257
257
  "proc-macro2",
258
258
  "quote",
259
- "syn 3.0.4",
259
+ "syn 3.0.6",
260
260
  ]
261
261
 
262
262
  [[package]]
@@ -284,9 +284,9 @@ dependencies = [
284
284
 
285
285
  [[package]]
286
286
  name = "syn"
287
- version = "3.0.4"
287
+ version = "3.0.6"
288
288
  source = "registry+https://github.com/rust-lang/crates.io-index"
289
- checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f"
289
+ checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"
290
290
  dependencies = [
291
291
  "proc-macro2",
292
292
  "quote",
@@ -301,9 +301,9 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
301
301
 
302
302
  [[package]]
303
303
  name = "unicode-ident"
304
- version = "1.0.24"
304
+ version = "1.0.26"
305
305
  source = "registry+https://github.com/rust-lang/crates.io-index"
306
- checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
306
+ checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"
307
307
 
308
308
  [[package]]
309
309
  name = "wasip2"
@@ -331,18 +331,18 @@ dependencies = [
331
331
 
332
332
  [[package]]
333
333
  name = "zerocopy"
334
- version = "0.8.56"
334
+ version = "0.8.57"
335
335
  source = "registry+https://github.com/rust-lang/crates.io-index"
336
- checksum = "556764e583adb45a9f8d413c2a147fa7e8d821e48e12b14fd560b607998b75eb"
336
+ checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873"
337
337
  dependencies = [
338
338
  "zerocopy-derive",
339
339
  ]
340
340
 
341
341
  [[package]]
342
342
  name = "zerocopy-derive"
343
- version = "0.8.56"
343
+ version = "0.8.57"
344
344
  source = "registry+https://github.com/rust-lang/crates.io-index"
345
- checksum = "f2ab42fc20575779bd240faa45f94a74256f755c0fa9e89f0ede20d91d0cdfc1"
345
+ checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc"
346
346
  dependencies = [
347
347
  "proc-macro2",
348
348
  "quote",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "lerna_py"
3
- version = "2.1.0"
3
+ version = "2.2.0"
4
4
  edition = "2021"
5
5
  publish = false
6
6
 
@@ -11,7 +11,7 @@ crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
13
  lerna = { path = "./rust", version = "*" }
14
- pyo3 = { version = "0.29.0", features = ["abi3", "extension-module", "multiple-pymethods"] }
14
+ pyo3 = { version = "0.29.2", features = ["abi3", "extension-module", "multiple-pymethods"] }
15
15
 
16
16
  [profile.release]
17
17
  panic = 'abort'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: lerna
3
- Version: 2.1.0
3
+ Version: 2.2.0
4
4
  Summary: Lerna is a framework for elegantly configuring complex applications
5
5
  Project-URL: Repository, https://github.com/1kbgz/lerna
6
6
  Project-URL: Homepage, https://github.com/1kbgz/lerna
@@ -19,8 +19,7 @@ Classifier: Programming Language :: Python :: Implementation :: CPython
19
19
  Classifier: Programming Language :: Python :: Implementation :: PyPy
20
20
  Classifier: Programming Language :: Rust
21
21
  Requires-Python: >=3.10
22
- Requires-Dist: omegaconf<2.4,>=2.2.3
23
- Requires-Dist: packaging
22
+ Requires-Dist: omegaconf<3,>=2.2.3
24
23
  Provides-Extra: develop
25
24
  Requires-Dist: build; extra == 'develop'
26
25
  Requires-Dist: bump-my-version; extra == 'develop'
@@ -32,6 +31,7 @@ Requires-Dist: hatchling; extra == 'develop'
32
31
  Requires-Dist: hydra-core; extra == 'develop'
33
32
  Requires-Dist: mdformat; extra == 'develop'
34
33
  Requires-Dist: mdformat-tables>=1; extra == 'develop'
34
+ Requires-Dist: packaging; extra == 'develop'
35
35
  Requires-Dist: pytest; extra == 'develop'
36
36
  Requires-Dist: pytest-cov; extra == 'develop'
37
37
  Requires-Dist: ruff; extra == 'develop'
@@ -163,25 +163,37 @@ python app.py 'tags=prepend(first)'
163
163
  # Insert at specific index
164
164
  python app.py 'tags=insert(0,first_item)'
165
165
 
166
+ # Extend from another config list
167
+ python app.py 'tags=extend(${defaults.tags})'
168
+
166
169
  # Remove by index
167
- python app.py 'tags=remove_at(0)' # Remove first
168
- python app.py 'tags=remove_at(-1)' # Remove last
170
+ python app.py 'tags=pop(0)' # Remove first
171
+ python app.py 'tags=pop(-1)' # Remove last
169
172
 
170
173
  # Remove by value
171
- python app.py 'tags=remove_value(old_tag)'
174
+ python app.py 'tags=remove(old_tag)'
175
+
176
+ # Delete a slice (equivalent to del tags[1:3])
177
+ python app.py 'tags=delete_slice(1,3)'
172
178
 
173
179
  # Clear entire list
174
- python app.py 'tags=list_clear()'
180
+ python app.py 'tags=clear()'
175
181
  ```
176
182
 
177
- | Function | Description | Example Result |
178
- | ------------------- | ---------------------- | ---------------------- |
179
- | `append(...)` | Add items to end | `[a, b]` → `[a, b, c]` |
180
- | `prepend(...)` | Add items to beginning | `[b, c]` → `[a, b, c]` |
181
- | `insert(idx, val)` | Insert at index | `[a, c]` → `[a, b, c]` |
182
- | `remove_at(idx)` | Remove by index | `[a, b, c]` → `[b, c]` |
183
- | `remove_value(val)` | Remove first match | `[a, b, c]` → `[a, c]` |
184
- | `list_clear()` | Clear all items | `[a, b, c]` → `[]` |
183
+ | Function | Description | Example result |
184
+ | ---------------------------- | --------------------------------------- | ---------------------- |
185
+ | `append(value)` | Add value to end | `[a, b]` → `[a, b, c]` |
186
+ | `extend(${path})` | Add items from another config list | `[a]` → `[a, b, c]` |
187
+ | `insert(index, value)` | Insert value at index | `[a, c]` → `[a, b, c]` |
188
+ | `pop(index)` | Remove item at index | `[a, b, c]` → `[b, c]` |
189
+ | `remove(value)` | Remove first matching value | `[a, b, c]` → `[a, c]` |
190
+ | `clear()` | Remove all items | `[a, b, c]` → `[]` |
191
+ | `prepend(...)` | Add values to beginning | `[b, c]` → `[a, b, c]` |
192
+ | `append_unique(...)` | Append values not already present | `[a, b]` → `[a, b, c]` |
193
+ | `remove_all(...)` | Remove every match | `[a, b, a]` → `[b]` |
194
+ | `delete_slice(start, stop?)` | Delete a range using Python slice rules | `[a, b, c]` → `[a]` |
195
+
196
+ `remove_at`, `remove_value`, `list_clear`, and `extend_from` remain available as compatibility aliases for `pop`, `remove`, `clear`, and `extend`, respectively.
185
197
 
186
198
  These functions use shell-safe syntax (quote the entire override) and work on bash, zsh, fish, PowerShell, and cmd.
187
199
 
@@ -266,8 +278,8 @@ defaults:
266
278
  - _patch_:
267
279
  - ~unwanted_key # delete a key
268
280
  - ~status=deprecated # delete key only if value matches
269
- - items=remove_value(stale) # remove a list item by value
270
- - items=remove_at(0) # remove a list item by index
281
+ - items=remove(stale) # remove a list item by value
282
+ - items=pop(0) # remove a list item by index
271
283
  - +new_key=injected # add a new key
272
284
  - setting=new_value # change a value
273
285
  ```
@@ -283,21 +295,47 @@ defaults:
283
295
 
284
296
  For root-level configs (no `@` package), bare keys and `_here_` are equivalent since the parent package is empty.
285
297
 
286
- **Supported operations** (uses lerna's full override syntax):
287
-
288
- | Operation | Syntax | Description |
289
- | -------------------- | --------------------- | ---------------------------------------- |
290
- | Delete key | `~key` | Remove key from config |
291
- | Conditional delete | `~key=value` | Remove key only if current value matches |
292
- | Change value | `key=value` | Set key to new value |
293
- | Add key | `+key=value` | Add new key (error if exists) |
294
- | Force-add key | `++key=value` | Set key (create if missing) |
295
- | List append | `key=append(v)` | Add item to end of list |
296
- | List prepend | `key=prepend(v)` | Add item to start of list |
297
- | List insert | `key=insert(i,v)` | Insert item at index |
298
- | List remove by index | `key=remove_at(i)` | Remove item at index |
299
- | List remove by value | `key=remove_value(v)` | Remove first matching item |
300
- | List clear | `key=list_clear()` | Remove all list items |
298
+ Patch entries accept the existing override string syntax or a structured mapping. Both forms execute in sequence and use the same package-scoping rules.
299
+
300
+ | Operation | String entry | Structured entry |
301
+ | -------------------- | ----------------------------- | --------------------------------------------------- |
302
+ | Change value | `key=value` | `{op: change, path: key, value: value}` |
303
+ | Add key | `+key=value` | `{op: add, path: key, value: value}` |
304
+ | Force-add key | `++key=value` | `{op: force_add, path: key, value: value}` |
305
+ | Delete key | `~key` | `{op: delete, path: key}` |
306
+ | Conditional delete | `~key=value` | `{op: delete, path: key, value: value}` |
307
+ | List append | `key=append(a,b)` | `{op: append, path: key, values: [a, b]}` |
308
+ | List extend | `key=extend(${source.items})` | `{op: extend, path: key, value: "${source.items}"}` |
309
+ | List prepend | `key=prepend(a,b)` | `{op: prepend, path: key, values: [a, b]}` |
310
+ | List insert | `key=insert(1,a,b)` | `{op: insert, path: key, index: 1, values: [a, b]}` |
311
+ | Remove first match | `key=remove(a)` | `{op: remove, path: key, value: a}` |
312
+ | Remove by index | `key=pop(1)` | `{op: pop, path: key, index: 1}` |
313
+ | Clear list | `key=clear()` | `{op: clear, path: key}` |
314
+ | Append unique values | `key=append_unique(a,b)` | `{op: append_unique, path: key, values: [a, b]}` |
315
+ | Remove all matches | `key=remove_all(a,b)` | `{op: remove_all, path: key, values: [a, b]}` |
316
+ | Delete slice | `key=delete_slice(1,3)` | `{op: delete_slice, path: key, start: 1, stop: 3}` |
317
+
318
+ In `delete_slice(start, stop?)`, omitting `stop` deletes from `start` through the end. Negative and out-of-range indexes follow Python slice behavior.
319
+
320
+ Structured `value` and `values` fields preserve YAML mappings, lists, booleans, nulls, and interpolations without serializing them through the override grammar. A mapping or list in `values` is one item. `extend()` is the operation that splices the selected source list into the destination; nested lists inside the source remain nested.
321
+
322
+ ```yaml
323
+ defaults:
324
+ - _patch_@gateway:
325
+ - op: append
326
+ path: modules
327
+ values:
328
+ - /modules/rest
329
+ - /modules/outputs
330
+ - op: change
331
+ path: settings
332
+ value:
333
+ enabled: true
334
+ retries: 3
335
+ label: null
336
+ ```
337
+
338
+ `append_unique()` resolves values for structural comparison but preserves the unresolved value when it appends it. Existing duplicates remain. `remove_all()` removes every occurrence of each argument. `extend()` snapshots its source before copying, so extending a list from itself is well-defined.
301
339
 
302
340
  **Example with packaged config:**
303
341
 
@@ -308,7 +346,7 @@ defaults:
308
346
  - _self_
309
347
  - _patch_@vendor:
310
348
  - ~debug_mode # bare key → targets vendor.debug_mode
311
- - items=remove_value(x) # bare key → targets vendor.items
349
+ - items=remove(x) # bare key → targets vendor.items
312
350
 
313
351
  # Multiple scoped patches can target different packages:
314
352
  # - _patch_@db:
@@ -319,6 +357,27 @@ defaults:
319
357
 
320
358
  **Nested patches:** `_patch_` directives in sub-configs accumulate naturally. If `lib/refined.yaml` has its own `_patch_` that removes `beta`, and your root config adds `_patch_@lib:` to remove `gamma`, both patches apply — `beta` and `gamma` are both removed from the final config.
321
359
 
360
+ #### Composition provenance
361
+
362
+ `compose_with_provenance()` returns a `CompositionResult` containing the unresolved composed config and its composition metadata. Consumers such as [csp-gateway](https://github.com/Point72/csp-gateway) and [ccflow](https://github.com/Point72/ccflow) can build configuration explanations without importing from `lerna._internal`, patching YAML loaders, or disabling Rust YAML parsing.
363
+
364
+ ```python
365
+ from lerna import compose_with_provenance, initialize_config_dir
366
+
367
+ with initialize_config_dir(config_dir="conf"):
368
+ result = compose_with_provenance("config", overrides=["gateway.modules=append(metrics)"])
369
+
370
+ print(result.config) # unresolved DictConfig
371
+ print(result.resolved_copy()) # independently resolved copy
372
+ print(result.selected_defaults) # composition order and sources
373
+ print(result.available_options["gateway"]) # options seen for the group
374
+ print(result.provenance("gateway.modules[0]"))
375
+ print(result.patch_operations) # config-authored operations
376
+ print(result.cli_overrides) # command-line operations
377
+ ```
378
+
379
+ Node provenance includes the source identifier, source config, package, source key, origin, and operation index. List-item provenance follows surviving items as list operations move their indexes. Patch history retains removed items and their provenance.
380
+
322
381
  #### Relative Path in Defaults Fix ([#2878](https://github.com/facebookresearch/hydra/issues/2878))
323
382
 
324
383
  Hydra produces empty string keys when using `..` in defaults list paths:
@@ -120,25 +120,37 @@ python app.py 'tags=prepend(first)'
120
120
  # Insert at specific index
121
121
  python app.py 'tags=insert(0,first_item)'
122
122
 
123
+ # Extend from another config list
124
+ python app.py 'tags=extend(${defaults.tags})'
125
+
123
126
  # Remove by index
124
- python app.py 'tags=remove_at(0)' # Remove first
125
- python app.py 'tags=remove_at(-1)' # Remove last
127
+ python app.py 'tags=pop(0)' # Remove first
128
+ python app.py 'tags=pop(-1)' # Remove last
126
129
 
127
130
  # Remove by value
128
- python app.py 'tags=remove_value(old_tag)'
131
+ python app.py 'tags=remove(old_tag)'
132
+
133
+ # Delete a slice (equivalent to del tags[1:3])
134
+ python app.py 'tags=delete_slice(1,3)'
129
135
 
130
136
  # Clear entire list
131
- python app.py 'tags=list_clear()'
137
+ python app.py 'tags=clear()'
132
138
  ```
133
139
 
134
- | Function | Description | Example Result |
135
- | ------------------- | ---------------------- | ---------------------- |
136
- | `append(...)` | Add items to end | `[a, b]` → `[a, b, c]` |
137
- | `prepend(...)` | Add items to beginning | `[b, c]` → `[a, b, c]` |
138
- | `insert(idx, val)` | Insert at index | `[a, c]` → `[a, b, c]` |
139
- | `remove_at(idx)` | Remove by index | `[a, b, c]` → `[b, c]` |
140
- | `remove_value(val)` | Remove first match | `[a, b, c]` → `[a, c]` |
141
- | `list_clear()` | Clear all items | `[a, b, c]` → `[]` |
140
+ | Function | Description | Example result |
141
+ | ---------------------------- | --------------------------------------- | ---------------------- |
142
+ | `append(value)` | Add value to end | `[a, b]` → `[a, b, c]` |
143
+ | `extend(${path})` | Add items from another config list | `[a]` → `[a, b, c]` |
144
+ | `insert(index, value)` | Insert value at index | `[a, c]` → `[a, b, c]` |
145
+ | `pop(index)` | Remove item at index | `[a, b, c]` → `[b, c]` |
146
+ | `remove(value)` | Remove first matching value | `[a, b, c]` → `[a, c]` |
147
+ | `clear()` | Remove all items | `[a, b, c]` → `[]` |
148
+ | `prepend(...)` | Add values to beginning | `[b, c]` → `[a, b, c]` |
149
+ | `append_unique(...)` | Append values not already present | `[a, b]` → `[a, b, c]` |
150
+ | `remove_all(...)` | Remove every match | `[a, b, a]` → `[b]` |
151
+ | `delete_slice(start, stop?)` | Delete a range using Python slice rules | `[a, b, c]` → `[a]` |
152
+
153
+ `remove_at`, `remove_value`, `list_clear`, and `extend_from` remain available as compatibility aliases for `pop`, `remove`, `clear`, and `extend`, respectively.
142
154
 
143
155
  These functions use shell-safe syntax (quote the entire override) and work on bash, zsh, fish, PowerShell, and cmd.
144
156
 
@@ -223,8 +235,8 @@ defaults:
223
235
  - _patch_:
224
236
  - ~unwanted_key # delete a key
225
237
  - ~status=deprecated # delete key only if value matches
226
- - items=remove_value(stale) # remove a list item by value
227
- - items=remove_at(0) # remove a list item by index
238
+ - items=remove(stale) # remove a list item by value
239
+ - items=pop(0) # remove a list item by index
228
240
  - +new_key=injected # add a new key
229
241
  - setting=new_value # change a value
230
242
  ```
@@ -240,21 +252,47 @@ defaults:
240
252
 
241
253
  For root-level configs (no `@` package), bare keys and `_here_` are equivalent since the parent package is empty.
242
254
 
243
- **Supported operations** (uses lerna's full override syntax):
244
-
245
- | Operation | Syntax | Description |
246
- | -------------------- | --------------------- | ---------------------------------------- |
247
- | Delete key | `~key` | Remove key from config |
248
- | Conditional delete | `~key=value` | Remove key only if current value matches |
249
- | Change value | `key=value` | Set key to new value |
250
- | Add key | `+key=value` | Add new key (error if exists) |
251
- | Force-add key | `++key=value` | Set key (create if missing) |
252
- | List append | `key=append(v)` | Add item to end of list |
253
- | List prepend | `key=prepend(v)` | Add item to start of list |
254
- | List insert | `key=insert(i,v)` | Insert item at index |
255
- | List remove by index | `key=remove_at(i)` | Remove item at index |
256
- | List remove by value | `key=remove_value(v)` | Remove first matching item |
257
- | List clear | `key=list_clear()` | Remove all list items |
255
+ Patch entries accept the existing override string syntax or a structured mapping. Both forms execute in sequence and use the same package-scoping rules.
256
+
257
+ | Operation | String entry | Structured entry |
258
+ | -------------------- | ----------------------------- | --------------------------------------------------- |
259
+ | Change value | `key=value` | `{op: change, path: key, value: value}` |
260
+ | Add key | `+key=value` | `{op: add, path: key, value: value}` |
261
+ | Force-add key | `++key=value` | `{op: force_add, path: key, value: value}` |
262
+ | Delete key | `~key` | `{op: delete, path: key}` |
263
+ | Conditional delete | `~key=value` | `{op: delete, path: key, value: value}` |
264
+ | List append | `key=append(a,b)` | `{op: append, path: key, values: [a, b]}` |
265
+ | List extend | `key=extend(${source.items})` | `{op: extend, path: key, value: "${source.items}"}` |
266
+ | List prepend | `key=prepend(a,b)` | `{op: prepend, path: key, values: [a, b]}` |
267
+ | List insert | `key=insert(1,a,b)` | `{op: insert, path: key, index: 1, values: [a, b]}` |
268
+ | Remove first match | `key=remove(a)` | `{op: remove, path: key, value: a}` |
269
+ | Remove by index | `key=pop(1)` | `{op: pop, path: key, index: 1}` |
270
+ | Clear list | `key=clear()` | `{op: clear, path: key}` |
271
+ | Append unique values | `key=append_unique(a,b)` | `{op: append_unique, path: key, values: [a, b]}` |
272
+ | Remove all matches | `key=remove_all(a,b)` | `{op: remove_all, path: key, values: [a, b]}` |
273
+ | Delete slice | `key=delete_slice(1,3)` | `{op: delete_slice, path: key, start: 1, stop: 3}` |
274
+
275
+ In `delete_slice(start, stop?)`, omitting `stop` deletes from `start` through the end. Negative and out-of-range indexes follow Python slice behavior.
276
+
277
+ Structured `value` and `values` fields preserve YAML mappings, lists, booleans, nulls, and interpolations without serializing them through the override grammar. A mapping or list in `values` is one item. `extend()` is the operation that splices the selected source list into the destination; nested lists inside the source remain nested.
278
+
279
+ ```yaml
280
+ defaults:
281
+ - _patch_@gateway:
282
+ - op: append
283
+ path: modules
284
+ values:
285
+ - /modules/rest
286
+ - /modules/outputs
287
+ - op: change
288
+ path: settings
289
+ value:
290
+ enabled: true
291
+ retries: 3
292
+ label: null
293
+ ```
294
+
295
+ `append_unique()` resolves values for structural comparison but preserves the unresolved value when it appends it. Existing duplicates remain. `remove_all()` removes every occurrence of each argument. `extend()` snapshots its source before copying, so extending a list from itself is well-defined.
258
296
 
259
297
  **Example with packaged config:**
260
298
 
@@ -265,7 +303,7 @@ defaults:
265
303
  - _self_
266
304
  - _patch_@vendor:
267
305
  - ~debug_mode # bare key → targets vendor.debug_mode
268
- - items=remove_value(x) # bare key → targets vendor.items
306
+ - items=remove(x) # bare key → targets vendor.items
269
307
 
270
308
  # Multiple scoped patches can target different packages:
271
309
  # - _patch_@db:
@@ -276,6 +314,27 @@ defaults:
276
314
 
277
315
  **Nested patches:** `_patch_` directives in sub-configs accumulate naturally. If `lib/refined.yaml` has its own `_patch_` that removes `beta`, and your root config adds `_patch_@lib:` to remove `gamma`, both patches apply — `beta` and `gamma` are both removed from the final config.
278
316
 
317
+ #### Composition provenance
318
+
319
+ `compose_with_provenance()` returns a `CompositionResult` containing the unresolved composed config and its composition metadata. Consumers such as [csp-gateway](https://github.com/Point72/csp-gateway) and [ccflow](https://github.com/Point72/ccflow) can build configuration explanations without importing from `lerna._internal`, patching YAML loaders, or disabling Rust YAML parsing.
320
+
321
+ ```python
322
+ from lerna import compose_with_provenance, initialize_config_dir
323
+
324
+ with initialize_config_dir(config_dir="conf"):
325
+ result = compose_with_provenance("config", overrides=["gateway.modules=append(metrics)"])
326
+
327
+ print(result.config) # unresolved DictConfig
328
+ print(result.resolved_copy()) # independently resolved copy
329
+ print(result.selected_defaults) # composition order and sources
330
+ print(result.available_options["gateway"]) # options seen for the group
331
+ print(result.provenance("gateway.modules[0]"))
332
+ print(result.patch_operations) # config-authored operations
333
+ print(result.cli_overrides) # command-line operations
334
+ ```
335
+
336
+ Node provenance includes the source identifier, source config, package, source key, origin, and operation index. List-item provenance follows surviving items as list operations move their indexes. Patch history retains removed items and their provenance.
337
+
279
338
  #### Relative Path in Defaults Fix ([#2878](https://github.com/facebookresearch/hydra/issues/2878))
280
339
 
281
340
  Hydra produces empty string keys when using `..` in defaults list paths:
@@ -1,7 +1,7 @@
1
1
  # Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved
2
2
 
3
3
  # Source of truth for Lerna's version (Hydra-compatible API)
4
- __version__ = "2.1.0"
4
+ __version__ = "2.2.0"
5
5
 
6
6
  # Callback support from Rust
7
7
  from lerna import lerna as _rust, utils
@@ -9,8 +9,16 @@ from lerna.errors import MissingConfigException
9
9
  from lerna.main import main
10
10
  from lerna.types import TaskFunction
11
11
 
12
- from .compose import compose
12
+ from .compose import compose, compose_with_provenance
13
13
  from .initialize import initialize, initialize_config_dir, initialize_config_module
14
+ from .provenance import (
15
+ CompositionOperation,
16
+ CompositionResult,
17
+ CompositionSource,
18
+ NodeProvenance,
19
+ RemovedItem,
20
+ SelectedDefault,
21
+ )
14
22
 
15
23
  CallbackManager = _rust.CallbackManager
16
24
  JobReturn = _rust.JobReturn
@@ -30,18 +38,25 @@ SweeperManager = _rust.SweeperManager
30
38
 
31
39
  __all__ = [
32
40
  "CallbackManager",
41
+ "CompositionOperation",
42
+ "CompositionResult",
43
+ "CompositionSource",
33
44
  "ConfigResult",
34
45
  "ConfigSourceManager",
35
46
  "JobReturn",
36
47
  "LauncherManager",
37
48
  "MissingConfigException",
49
+ "NodeProvenance",
50
+ "RemovedItem",
38
51
  "RustBasicLauncher",
39
52
  "RustBasicSweeper",
40
53
  "RustFileConfigSource",
54
+ "SelectedDefault",
41
55
  "SweeperManager",
42
56
  "TaskFunction",
43
57
  "__version__",
44
58
  "compose",
59
+ "compose_with_provenance",
45
60
  "initialize",
46
61
  "initialize_config_dir",
47
62
  "initialize_config_module",