$67 GRAYBYTE WORDPRESS FILE MANAGER $46

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils/

HOME
Current File : /opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils//virtualenv.py
import logging
import os
import re
import site
import sys
from typing import List, Optional

logger = logging.getLogger(__name__)
_INCLUDE_SYSTEM_SITE_PACKAGES_REGEX = re.compile(
    r"include-system-site-packages\s*=\s*(?P<value>true|false)"
)


def _running_under_venv() -> bool:
    """Checks if sys.base_prefix and sys.prefix match.

    This handles PEP 405 compliant virtual environments.
    """
    return sys.prefix != getattr(sys, "base_prefix", sys.prefix)


def _running_under_regular_virtualenv() -> bool:
    """Checks if sys.real_prefix is set.

    This handles virtual environments created with pypa's virtualenv.
    """
    # pypa/virtualenv case
    return hasattr(sys, "real_prefix")


def running_under_virtualenv() -> bool:
    """Return True if we're running inside a virtualenv, False otherwise."""
    return _running_under_venv() or _running_under_regular_virtualenv()


def _get_pyvenv_cfg_lines() -> Optional[List[str]]:
    """Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines

    Returns None, if it could not read/access the file.
    """
    pyvenv_cfg_file = os.path.join(sys.prefix, "pyvenv.cfg")
    try:
        # Although PEP 405 does not specify, the built-in venv module always
        # writes with UTF-8. (pypa/pip#8717)
        with open(pyvenv_cfg_file, encoding="utf-8") as f:
            return f.read().splitlines()  # avoids trailing newlines
    except OSError:
        return None


def _no_global_under_venv() -> bool:
    """Check `{sys.prefix}/pyvenv.cfg` for system site-packages inclusion

    PEP 405 specifies that when system site-packages are not supposed to be
    visible from a virtual environment, `pyvenv.cfg` must contain the following
    line:

        include-system-site-packages = false

    Additionally, log a warning if accessing the file fails.
    """
    cfg_lines = _get_pyvenv_cfg_lines()
    if cfg_lines is None:
        # We're not in a "sane" venv, so assume there is no system
        # site-packages access (since that's PEP 405's default state).
        logger.warning(
            "Could not access 'pyvenv.cfg' despite a virtual environment "
            "being active. Assuming global site-packages is not accessible "
            "in this environment."
        )
        return True

    for line in cfg_lines:
        match = _INCLUDE_SYSTEM_SITE_PACKAGES_REGEX.match(line)
        if match is not None and match.group("value") == "false":
            return True
    return False


def _no_global_under_regular_virtualenv() -> bool:
    """Check if "no-global-site-packages.txt" exists beside site.py

    This mirrors logic in pypa/virtualenv for determining whether system
    site-packages are visible in the virtual environment.
    """
    site_mod_dir = os.path.dirname(os.path.abspath(site.__file__))
    no_global_site_packages_file = os.path.join(
        site_mod_dir,
        "no-global-site-packages.txt",
    )
    return os.path.exists(no_global_site_packages_file)


def virtualenv_no_global() -> bool:
    """Returns a boolean, whether running in venv with no system site-packages."""
    # PEP 405 compliance needs to be checked first since virtualenv >=20 would
    # return True for both checks, but is only able to use the PEP 405 config.
    if _running_under_venv():
        return _no_global_under_venv()

    if _running_under_regular_virtualenv():
        return _no_global_under_regular_virtualenv()

    return False


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.49 PM
root / linksafe
0755
__pycache__
--
3 Mar 2024 10.49 PM
root / linksafe
0755
__init__.py
0 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
_log.py
0.991 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
appdirs.py
1.626 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
compat.py
1.84 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
compatibility_tags.py
5.251 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
datetime.py
0.236 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
deprecation.py
3.553 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
direct_url_helpers.py
3.131 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
distutils_args.py
1.089 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
egg_link.py
2.151 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
encoding.py
1.142 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
entrypoints.py
2.905 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
filesystem.py
5.002 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
filetypes.py
0.699 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
glibc.py
3.037 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
hashes.py
4.698 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
inject_securetransport.py
0.776 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
logging.py
11.359 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
misc.py
21.11 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
models.py
1.165 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
packaging.py
2.059 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
setuptools_build.py
5.52 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
subprocess.py
8.981 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
temp_dir.py
7.521 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
unpacking.py
8.614 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
urls.py
1.718 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
virtualenv.py
3.378 KB
13 Nov 2023 9.40 PM
root / linksafe
0644
wheel.py
4.442 KB
13 Nov 2023 9.40 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF