/usr/lib/python2.7/site-packages/pip/utils
NameSizeModeActions
appdirs.py88110644editdlrm
appdirs.pyc86070644editdlrm
appdirs.pyo86070644editdlrm
build.py13120644editdlrm
build.pyc17190644editdlrm
build.pyo17190644editdlrm
deprecation.py22320644editdlrm
deprecation.pyc23170644editdlrm
deprecation.pyo23170644editdlrm
encoding.py9710644editdlrm
encoding.pyc12820644editdlrm
encoding.pyo12820644editdlrm
filesystem.py8990644editdlrm
filesystem.pyc7800644editdlrm
filesystem.pyo7800644editdlrm
glibc.py29390644editdlrm
glibc.pyc18260644editdlrm
glibc.pyo18260644editdlrm
hashes.py28660644editdlrm
hashes.pyc39610644editdlrm
hashes.pyo39610644editdlrm
logging.py33270644editdlrm
logging.pyc48420644editdlrm
logging.pyo48420644editdlrm
outdated.py59890644editdlrm
outdated.pyc56800644editdlrm
outdated.pyo56800644editdlrm
packaging.py20800644editdlrm
packaging.pyc24610644editdlrm
packaging.pyo24610644editdlrm
setuptools_build.py2780644editdlrm
setuptools_build.pyc3470644editdlrm
setuptools_build.pyo3470644editdlrm
ui.py115970644editdlrm
ui.pyc116830644editdlrm
ui.pyo116130644editdlrm
__init__.py271870644editdlrm
__init__.pyc277250644editdlrm
__init__.pyo276660644editdlrm
Edit: /usr/lib/python2.7/site-packages/pip/utils/packaging.py (2080B)
from __future__ import absolute_import from email.parser import FeedParser import logging import sys from pip._vendor.packaging import specifiers from pip._vendor.packaging import version from pip._vendor import pkg_resources from pip import exceptions logger = logging.getLogger(__name__) def check_requires_python(requires_python): """ Check if the python version in use match the `requires_python` specifier. Returns `True` if the version of python in use matches the requirement. Returns `False` if the version of python in use does not matches the requirement. Raises an InvalidSpecifier if `requires_python` have an invalid format. """ if requires_python is None: # The package provides no information return True requires_python_specifier = specifiers.SpecifierSet(requires_python) # We only use major.minor.micro python_version = version.parse('.'.join(map(str, sys.version_info[:3]))) return python_version in requires_python_specifier def get_metadata(dist): if (isinstance(dist, pkg_resources.DistInfoDistribution) and dist.has_metadata('METADATA')): return dist.get_metadata('METADATA') elif dist.has_metadata('PKG-INFO'): return dist.get_metadata('PKG-INFO') def check_dist_requires_python(dist): metadata = get_metadata(dist) feed_parser = FeedParser() feed_parser.feed(metadata) pkg_info_dict = feed_parser.close() requires_python = pkg_info_dict.get('Requires-Python') try: if not check_requires_python(requires_python): raise exceptions.UnsupportedPythonVersion( "%s requires Python '%s' but the running Python is %s" % ( dist.project_name, requires_python, '.'.join(map(str, sys.version_info[:3])),) ) except specifiers.InvalidSpecifier as e: logger.warning( "Package %s has an invalid Requires-Python entry %s - %s" % ( dist.project_name, requires_python, e)) return