CoolFace
Apppublic

Aluode/PerceptionLabPortable

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
__init__.py118 linesDownload Raw Back to _vendor
1"""2pip._vendor is for vendoring dependencies of pip to prevent needing pip to3depend on something external.4 5Files inside of pip._vendor should be considered immutable and should only be6updated to versions from upstream.7"""8from __future__ import absolute_import9 10import glob11import os.path12import sys13 14# Downstream redistributors which have debundled our dependencies should also15# patch this value to be true. This will trigger the additional patching16# to cause things like "six" to be available as pip.17DEBUNDLED = False18 19# By default, look in this directory for a bunch of .whl files which we will20# add to the beginning of sys.path before attempting to import anything. This21# is done to support downstream re-distributors like Debian and Fedora who22# wish to create their own Wheels for our dependencies to aid in debundling.23WHEEL_DIR = os.path.abspath(os.path.dirname(__file__))24 25 26# Define a small helper function to alias our vendored modules to the real ones27# if the vendored ones do not exist. This idea of this was taken from28# https://github.com/kennethreitz/requests/pull/2567.29def vendored(modulename):30    vendored_name = "{0}.{1}".format(__name__, modulename)31 32    try:33        __import__(modulename, globals(), locals(), level=0)34    except ImportError:35        # We can just silently allow import failures to pass here. If we36        # got to this point it means that ``import pip._vendor.whatever``37        # failed and so did ``import whatever``. Since we're importing this38        # upfront in an attempt to alias imports, not erroring here will39        # just mean we get a regular import error whenever pip *actually*40        # tries to import one of these modules to use it, which actually41        # gives us a better error message than we would have otherwise42        # gotten.43        pass44    else:45        sys.modules[vendored_name] = sys.modules[modulename]46        base, head = vendored_name.rsplit(".", 1)47        setattr(sys.modules[base], head, sys.modules[modulename])48 49 50# If we're operating in a debundled setup, then we want to go ahead and trigger51# the aliasing of our vendored libraries as well as looking for wheels to add52# to our sys.path. This will cause all of this code to be a no-op typically53# however downstream redistributors can enable it in a consistent way across54# all platforms.55if DEBUNDLED:56    # Actually look inside of WHEEL_DIR to find .whl files and add them to the57    # front of our sys.path.58    sys.path[:] = glob.glob(os.path.join(WHEEL_DIR, "*.whl")) + sys.path59 60    # Actually alias all of our vendored dependencies.61    vendored("cachecontrol")62    vendored("certifi")63    vendored("dependency-groups")64    vendored("distlib")65    vendored("distro")66    vendored("packaging")67    vendored("packaging.version")68    vendored("packaging.specifiers")69    vendored("pkg_resources")70    vendored("platformdirs")71    vendored("progress")72    vendored("pyproject_hooks")73    vendored("requests")74    vendored("requests.exceptions")75    vendored("requests.packages")76    vendored("requests.packages.urllib3")77    vendored("requests.packages.urllib3._collections")78    vendored("requests.packages.urllib3.connection")79    vendored("requests.packages.urllib3.connectionpool")80    vendored("requests.packages.urllib3.contrib")81    vendored("requests.packages.urllib3.contrib.ntlmpool")82    vendored("requests.packages.urllib3.contrib.pyopenssl")83    vendored("requests.packages.urllib3.exceptions")84    vendored("requests.packages.urllib3.fields")85    vendored("requests.packages.urllib3.filepost")86    vendored("requests.packages.urllib3.packages")87    vendored("requests.packages.urllib3.packages.ordered_dict")88    vendored("requests.packages.urllib3.packages.six")89    vendored("requests.packages.urllib3.packages.ssl_match_hostname")90    vendored("requests.packages.urllib3.packages.ssl_match_hostname."91             "_implementation")92    vendored("requests.packages.urllib3.poolmanager")93    vendored("requests.packages.urllib3.request")94    vendored("requests.packages.urllib3.response")95    vendored("requests.packages.urllib3.util")96    vendored("requests.packages.urllib3.util.connection")97    vendored("requests.packages.urllib3.util.request")98    vendored("requests.packages.urllib3.util.response")99    vendored("requests.packages.urllib3.util.retry")100    vendored("requests.packages.urllib3.util.ssl_")101    vendored("requests.packages.urllib3.util.timeout")102    vendored("requests.packages.urllib3.util.url")103    vendored("resolvelib")104    vendored("rich")105    vendored("rich.console")106    vendored("rich.highlighter")107    vendored("rich.logging")108    vendored("rich.markup")109    vendored("rich.progress")110    vendored("rich.segment")111    vendored("rich.style")112    vendored("rich.text")113    vendored("rich.traceback")114    if sys.version_info < (3, 11):115        vendored("tomli")116    vendored("truststore")117    vendored("urllib3")118 
Aluode/PerceptionLabPortable · CoolFace