From 7ba5a625bc95599e6f564285af84f39d24c109f8 Mon Sep 17 00:00:00 2001 From: Paul Moore Date: Fri, 21 Apr 2023 17:05:49 +0100 Subject: Revert "Merge pull request #11487 from pelson/feature/base-prefix-config" This reverts commit 56e5fa3c0fd0544e7b5b9b89d9d7854b82d51242, reversing changes made to 2c09e9c760e67fd801b3e756357de3b3c82cd08d. --- docs/html/topics/configuration.md | 21 +++++---------------- src/pip/_internal/configuration.py | 18 +++--------------- tests/unit/test_configuration.py | 33 ++------------------------------- tests/unit/test_options.py | 2 +- 4 files changed, 11 insertions(+), 63 deletions(-) diff --git a/docs/html/topics/configuration.md b/docs/html/topics/configuration.md index 521bc9af4..e4aafcd2b 100644 --- a/docs/html/topics/configuration.md +++ b/docs/html/topics/configuration.md @@ -19,14 +19,13 @@ and how they are related to pip's various command line options. ## Configuration Files -Configuration files can change the default values for command line options. -They are written using standard INI style configuration files. +Configuration files can change the default values for command line option. +They are written using a standard INI style configuration files. -pip has 4 "levels" of configuration files: +pip has 3 "levels" of configuration files: -- `global`: system-wide configuration file, shared across all users. -- `user`: per-user configuration file, shared across all environments. -- `base` : per-base environment configuration file, shared across all virtualenvs with the same base. (available since pip 23.0) +- `global`: system-wide configuration file, shared across users. +- `user`: per-user configuration file. - `site`: per-environment configuration file; i.e. per-virtualenv. ### Location @@ -48,9 +47,6 @@ User The legacy "per-user" configuration file is also loaded, if it exists: {file}`$HOME/.pip/pip.conf`. -Base -: {file}`\{sys.base_prefix\}/pip.conf` - Site : {file}`$VIRTUAL_ENV/pip.conf` ``` @@ -67,9 +63,6 @@ User The legacy "per-user" configuration file is also loaded, if it exists: {file}`$HOME/.pip/pip.conf`. -Base -: {file}`\{sys.base_prefix\}/pip.conf` - Site : {file}`$VIRTUAL_ENV/pip.conf` ``` @@ -88,9 +81,6 @@ User The legacy "per-user" configuration file is also loaded, if it exists: {file}`%HOME%\\pip\\pip.ini` -Base -: {file}`\{sys.base_prefix\}\\pip.ini` - Site : {file}`%VIRTUAL_ENV%\\pip.ini` ``` @@ -112,7 +102,6 @@ order: - `PIP_CONFIG_FILE`, if given. - Global - User -- Base - Site Each file read overrides any values read from previous files, so if the diff --git a/src/pip/_internal/configuration.py b/src/pip/_internal/configuration.py index 6cce8bcbc..8fd46c9b8 100644 --- a/src/pip/_internal/configuration.py +++ b/src/pip/_internal/configuration.py @@ -36,20 +36,12 @@ ENV_NAMES_IGNORED = "version", "help" kinds = enum( USER="user", # User Specific GLOBAL="global", # System Wide - BASE="base", # Base environment specific (e.g. for all venvs with the same base) - SITE="site", # Environment Specific (e.g. per venv) + SITE="site", # [Virtual] Environment Specific ENV="env", # from PIP_CONFIG_FILE ENV_VAR="env-var", # from Environment Variables ) -OVERRIDE_ORDER = ( - kinds.GLOBAL, - kinds.USER, - kinds.BASE, - kinds.SITE, - kinds.ENV, - kinds.ENV_VAR, -) -VALID_LOAD_ONLY = kinds.USER, kinds.GLOBAL, kinds.BASE, kinds.SITE +OVERRIDE_ORDER = kinds.GLOBAL, kinds.USER, kinds.SITE, kinds.ENV, kinds.ENV_VAR +VALID_LOAD_ONLY = kinds.USER, kinds.GLOBAL, kinds.SITE logger = getLogger(__name__) @@ -78,7 +70,6 @@ def get_configuration_files() -> Dict[Kind, List[str]]: os.path.join(path, CONFIG_BASENAME) for path in appdirs.site_config_dirs("pip") ] - base_config_file = os.path.join(sys.base_prefix, CONFIG_BASENAME) site_config_file = os.path.join(sys.prefix, CONFIG_BASENAME) legacy_config_file = os.path.join( os.path.expanduser("~"), @@ -87,7 +78,6 @@ def get_configuration_files() -> Dict[Kind, List[str]]: ) new_config_file = os.path.join(appdirs.user_config_dir("pip"), CONFIG_BASENAME) return { - kinds.BASE: [base_config_file], kinds.GLOBAL: global_config_files, kinds.SITE: [site_config_file], kinds.USER: [legacy_config_file, new_config_file], @@ -354,8 +344,6 @@ class Configuration: # The legacy config file is overridden by the new config file yield kinds.USER, config_files[kinds.USER] - yield kinds.BASE, config_files[kinds.BASE] - # finally virtualenv configuration first trumping others yield kinds.SITE, config_files[kinds.SITE] diff --git a/tests/unit/test_configuration.py b/tests/unit/test_configuration.py index b0d655d8f..c6b44d45a 100644 --- a/tests/unit/test_configuration.py +++ b/tests/unit/test_configuration.py @@ -24,17 +24,11 @@ class TestConfigurationLoading(ConfigurationMixin): self.configuration.load() assert self.configuration.get_value("test.hello") == "2" - def test_base_loading(self) -> None: - self.patch_configuration(kinds.BASE, {"test.hello": "3"}) - - self.configuration.load() - assert self.configuration.get_value("test.hello") == "3" - def test_site_loading(self) -> None: - self.patch_configuration(kinds.SITE, {"test.hello": "4"}) + self.patch_configuration(kinds.SITE, {"test.hello": "3"}) self.configuration.load() - assert self.configuration.get_value("test.hello") == "4" + assert self.configuration.get_value("test.hello") == "3" def test_environment_config_loading(self, monkeypatch: pytest.MonkeyPatch) -> None: contents = """ @@ -113,15 +107,6 @@ class TestConfigurationLoading(ConfigurationMixin): with pytest.raises(ConfigurationError, match=pat): self.configuration.get_value("global.index-url") - def test_overrides_normalization(self) -> None: - # Check that normalized names are used in precedence calculations. - # Reminder: USER has higher precedence than GLOBAL. - self.patch_configuration(kinds.USER, {"test.hello-world": "1"}) - self.patch_configuration(kinds.GLOBAL, {"test.hello_world": "0"}) - self.configuration.load() - - assert self.configuration.get_value("test.hello_world") == "1" - class TestConfigurationPrecedence(ConfigurationMixin): # Tests for methods to that determine the order of precedence of @@ -148,13 +133,6 @@ class TestConfigurationPrecedence(ConfigurationMixin): assert self.configuration.get_value("test.hello") == "0" - def test_site_overides_base(self) -> None: - self.patch_configuration(kinds.BASE, {"test.hello": "2"}) - self.patch_configuration(kinds.SITE, {"test.hello": "1"}) - self.configuration.load() - - assert self.configuration.get_value("test.hello") == "1" - def test_site_overides_user(self) -> None: self.patch_configuration(kinds.USER, {"test.hello": "2"}) self.patch_configuration(kinds.SITE, {"test.hello": "1"}) @@ -169,13 +147,6 @@ class TestConfigurationPrecedence(ConfigurationMixin): assert self.configuration.get_value("test.hello") == "1" - def test_base_overides_user(self) -> None: - self.patch_configuration(kinds.USER, {"test.hello": "2"}) - self.patch_configuration(kinds.BASE, {"test.hello": "1"}) - self.configuration.load() - - assert self.configuration.get_value("test.hello") == "1" - def test_user_overides_global(self) -> None: self.patch_configuration(kinds.GLOBAL, {"test.hello": "3"}) self.patch_configuration(kinds.USER, {"test.hello": "2"}) diff --git a/tests/unit/test_options.py b/tests/unit/test_options.py index 9e3a0a5d6..43d5fdd3d 100644 --- a/tests/unit/test_options.py +++ b/tests/unit/test_options.py @@ -587,7 +587,7 @@ class TestOptionsConfigFiles: for _, val in cp.iter_config_files(): files.extend(val) - assert len(files) == 5 + assert len(files) == 4 @pytest.mark.parametrize( "args, expect", -- cgit v1.2.1