= 
 = 
    """Checks if sys.base_prefix and sys.prefix match.
    This handles PEP 405 compliant virtual environments.
    """
    return  != 
    """Checks if sys.real_prefix is set.
    This handles virtual environments created with pypa's virtualenv.
    """
    # pypa/virtualenv case
    return 
    """True if we're running inside a virtual environment, False otherwise."""
    return  or 
    """Reads {sys.prefix}/pyvenv.cfg and returns its contents as list of lines
    Returns None, if it could not read/access the file.
    """
     = 
    
        # Although PEP 405 does not specify, the built-in venv module always
        # writes with UTF-8. (pypa/pip#8717)
        
            return   # avoids trailing newlines
    
        return None
    """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.
    """
     = 
    
        # We're not in a "sane" venv, so assume there is no system
        # site-packages access (since that's PEP 405's default state).
        
        return True
    
         = 
        
            return True
    return False
    """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.
    """
     = 
     = 
    return 
    """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.
    
        return 
    
        return 
    return False