This repository has been archived on 2025-09-03. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Employee-Management-Portal/Lib/site-packages/pipenv/vendor/pip_shims/shims.py
Alicja Cięciwa cb8886666c login page
2020-10-27 12:57:58 +01:00

76 lines
1.9 KiB
Python

# -*- coding=utf-8 -*-
"""
Main module with magic self-replacement mechanisms to handle import speedups.
"""
from __future__ import absolute_import
import sys
import types
from packaging.version import parse as parse_version
from .models import (
ShimmedPathCollection,
get_package_finder,
import_pip,
lookup_current_pip_version,
)
class _shims(types.ModuleType):
CURRENT_PIP_VERSION = str(lookup_current_pip_version())
@classmethod
def parse_version(cls, version):
return parse_version(version)
def __dir__(self):
result = list(self._locations.keys()) + list(self.__dict__.keys())
result.extend(
(
"__file__",
"__doc__",
"__all__",
"__docformat__",
"__name__",
"__path__",
"__package__",
"__version__",
)
)
return result
@classmethod
def _new(cls):
return cls()
@property
def __all__(self):
return list(self._locations.keys())
def __init__(self):
self.pip = import_pip()
self._locations = ShimmedPathCollection.get_registry()
self._locations["get_package_finder"] = get_package_finder
self.pip_version = str(lookup_current_pip_version())
self.parsed_pip_version = lookup_current_pip_version()
def __getattr__(self, *args, **kwargs):
locations = super(_shims, self).__getattribute__("_locations")
if args[0] in locations:
return locations[args[0]].shim()
return super(_shims, self).__getattribute__(*args, **kwargs)
old_module = sys.modules[__name__] if __name__ in sys.modules else None
module = sys.modules[__name__] = _shims()
module.__dict__.update(
{
"__file__": __file__,
"__package__": __package__,
"__doc__": __doc__,
"__all__": module.__all__,
"__name__": __name__,
}
)