summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Moore <p.f.moore@gmail.com>2023-04-21 17:05:49 +0100
committerPaul Moore <p.f.moore@gmail.com>2023-04-21 17:05:49 +0100
commit7ba5a625bc95599e6f564285af84f39d24c109f8 (patch)
tree832460d2302f3e792b07b0ac9c7910bf9e20319b
parent87678eefec0ad4fc6083a5843e8080ad56e64196 (diff)
downloadpip-7ba5a625bc95599e6f564285af84f39d24c109f8.tar.gz
Revert "Merge pull request #11487 from pelson/feature/base-prefix-config"
This reverts commit 56e5fa3c0fd0544e7b5b9b89d9d7854b82d51242, reversing changes made to 2c09e9c760e67fd801b3e756357de3b3c82cd08d.
-rw-r--r--docs/html/topics/configuration.md21
-rw-r--r--src/pip/_internal/configuration.py18
-rw-r--r--tests/unit/test_configuration.py33
-rw-r--r--tests/unit/test_options.py2
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",