D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
lib
/
python3.6
/
site-packages
/
pip
/
utils
/
Filename :
packaging.py
back
Copy
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
Name
Size
Last Modified
Owner
Permissions
Actions
__pycache__
Dir
May 29 2024 3:41:23
root
0755
__init__.py
27.106
KB
April 06 2024 1:40:45
root
0644
appdirs.py
8.604
KB
April 06 2024 1:40:45
root
0644
build.py
1.281
KB
April 06 2024 1:40:45
root
0644
deprecation.py
2.18
KB
April 06 2024 1:40:45
root
0644
encoding.py
0.948
KB
April 06 2024 1:40:45
root
0644
filesystem.py
0.878
KB
April 06 2024 1:40:45
root
0644
glibc.py
2.87
KB
April 06 2024 1:40:45
root
0644
hashes.py
2.799
KB
April 06 2024 1:40:45
root
0644
logging.py
3.249
KB
April 06 2024 1:40:45
root
0644
outdated.py
5.849
KB
April 06 2024 1:40:45
root
0644
packaging.py
2.031
KB
April 06 2024 1:40:45
root
0644
setuptools_build.py
0.271
KB
April 06 2024 1:40:45
root
0644
ui.py
11.325
KB
April 06 2024 1:40:45
root
0644
2017 © D7net | D704T team