com.googler.python 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +4 -2
- package/python3.4.2/lib/python3.4/site-packages/pip/__init__.py +1 -277
- package/python3.4.2/lib/python3.4/site-packages/pip/__main__.py +19 -7
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/__init__.py +246 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/basecommand.py +373 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/{baseparser.py → _internal/baseparser.py} +240 -224
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/build_env.py +92 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/cache.py +202 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/cmdoptions.py +609 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/__init__.py +79 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/check.py +42 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/completion.py +94 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/configuration.py +227 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/download.py +233 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/freeze.py +96 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/hash.py +57 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/{commands → _internal/commands}/help.py +36 -33
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/install.py +477 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/list.py +343 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/search.py +135 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/show.py +164 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/uninstall.py +71 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/commands/wheel.py +179 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/compat.py +235 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/configuration.py +378 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/download.py +922 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/exceptions.py +249 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/index.py +1117 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/locations.py +194 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/models/__init__.py +4 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/models/index.py +15 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/{_vendor/requests/packages/urllib3/contrib → _internal/operations}/__init__.py +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/check.py +106 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/freeze.py +252 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/operations/prepare.py +378 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/pep425tags.py +317 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/__init__.py +69 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_file.py +338 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_install.py +1115 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_set.py +164 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/req/req_uninstall.py +455 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/resolve.py +354 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/{status_codes.py → _internal/status_codes.py} +8 -6
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/__init__.py +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/appdirs.py +258 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/deprecation.py +77 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/encoding.py +33 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/filesystem.py +28 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/glibc.py +84 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/hashes.py +94 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/logging.py +132 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/misc.py +851 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/outdated.py +163 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/packaging.py +70 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/setuptools_build.py +8 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/temp_dir.py +82 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/typing.py +29 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/utils/ui.py +421 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/__init__.py +471 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/bazaar.py +113 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/git.py +311 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/mercurial.py +105 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/vcs/subversion.py +271 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_internal/wheel.py +817 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/__init__.py +109 -8
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/appdirs.py +604 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/__init__.py +11 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/_cmd.py +60 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/adapter.py +134 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/cache.py +39 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +2 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +133 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +43 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/compat.py +29 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/controller.py +373 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/filewrapper.py +78 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/heuristics.py +138 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/serialize.py +194 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/cachecontrol/wrapper.py +27 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/__init__.py +3 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/__main__.py +2 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests → certifi}/cacert.pem +1765 -2358
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/certifi/core.py +37 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/__init__.py +39 -32
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/big5freq.py +386 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/big5prober.py +47 -42
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/chardistribution.py +233 -231
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/charsetgroupprober.py +106 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/charsetprober.py +145 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/cli/__init__.py +1 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/cli/chardetect.py +85 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/codingstatemachine.py +88 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/compat.py +34 -34
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/cp949prober.py +49 -44
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/enums.py +76 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/escprober.py +101 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/escsm.py +246 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/eucjpprober.py +92 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/euckrfreq.py +195 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euckrprober.py +47 -42
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euctwfreq.py +387 -428
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/euctwprober.py +46 -41
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/gb2312freq.py +283 -472
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/gb2312prober.py +46 -41
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/hebrewprober.py +292 -283
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/jisfreq.py +325 -569
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/jpcntx.py +233 -219
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langbulgarianmodel.py +228 -229
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langcyrillicmodel.py +333 -329
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langgreekmodel.py +225 -225
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langhebrewmodel.py +200 -201
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langhungarianmodel.py +225 -225
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/langthaimodel.py +199 -200
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/langturkishmodel.py +193 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/latin1prober.py +145 -139
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/mbcharsetprober.py +91 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/mbcsgroupprober.py +54 -54
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/mbcssm.py +572 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/sbcharsetprober.py +132 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/sbcsgroupprober.py +73 -69
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/sjisprober.py +92 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/universaldetector.py +286 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/chardet → chardet}/utf8prober.py +82 -76
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/chardet/version.py +9 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/__init__.py +7 -7
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/ansi.py +102 -50
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/ansitowin32.py +236 -190
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/initialise.py +82 -56
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/win32.py +156 -137
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/colorama/winterm.py +162 -120
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/__init__.py +23 -23
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/__init__.py +6 -6
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/misc.py +41 -41
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/shutil.py +761 -761
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/sysconfig.cfg +84 -84
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/sysconfig.py +788 -788
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/_backport/tarfile.py +2607 -2607
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/compat.py +1117 -1064
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/database.py +1318 -1301
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/index.py +516 -488
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/locators.py +1292 -1194
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/manifest.py +393 -364
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/markers.py +131 -190
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/metadata.py +1068 -1026
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/resources.py +355 -317
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/scripts.py +415 -323
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/t32.exe +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/t64.exe +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/util.py +1755 -1575
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/version.py +736 -721
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/w32.exe +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/w64.exe +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distlib/wheel.py +984 -958
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/distro.py +1104 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/__init__.py +35 -23
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{ihatexml.py → _ihatexml.py} +288 -285
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{inputstream.py → _inputstream.py} +923 -881
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{tokenizer.py → _tokenizer.py} +1721 -1731
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/__init__.py +14 -12
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/_base.py +37 -37
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/datrie.py +44 -44
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{trie → _trie}/py.py +67 -67
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/{utils.py → _utils.py} +124 -82
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/constants.py +2947 -3104
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/alphabeticalattributes.py +29 -20
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/{_base.py → base.py} +12 -12
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/inject_meta_charset.py +73 -65
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/lint.py +93 -93
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/optionaltags.py +207 -205
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/sanitizer.py +896 -12
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/filters/whitespace.py +38 -38
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/html5parser.py +2791 -2713
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer.py +409 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/__init__.py +30 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/genshi.py +54 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treeadapters/sax.py +50 -44
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/__init__.py +88 -76
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/{_base.py → base.py} +417 -377
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/dom.py +236 -227
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/etree.py +340 -337
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treebuilders/etree_lxml.py +366 -369
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/__init__.py +154 -57
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{_base.py → base.py} +252 -200
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/dom.py +43 -46
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/etree.py +130 -138
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{lxmletree.py → etree_lxml.py} +213 -208
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/{genshistream.py → genshi.py} +69 -69
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/__init__.py +2 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/codec.py +118 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/compat.py +12 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/core.py +387 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/idnadata.py +1585 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/intranges.py +53 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/package_data.py +2 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/idna/uts46data.py +7634 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/ipaddress.py +2419 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/__init__.py +347 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/linklockfile.py +73 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/mkdirlockfile.py +84 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/pidlockfile.py +190 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/sqlitelockfile.py +156 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/lockfile/symlinklockfile.py +70 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/__init__.py +66 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/_version.py +1 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/exceptions.py +41 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/msgpack/fallback.py +971 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/__about__.py +21 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/__init__.py +14 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/_compat.py +30 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/_structures.py +70 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/markers.py +301 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/requirements.py +130 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/specifiers.py +774 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/utils.py +63 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/packaging/version.py +441 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{pkg_resources.py → pkg_resources/__init__.py} +3125 -2762
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pkg_resources/py31compat.py +22 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/__init__.py +127 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/bar.py +88 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/counter.py +48 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/helpers.py +91 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/progress/spinner.py +44 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pyparsing.py +5720 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/__init__.py +3 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/core.py +13 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/parser.py +374 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/pytoml/writer.py +127 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/__init__.py +123 -77
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/__version__.py +14 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/_internal_utils.py +42 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/adapters.py +525 -388
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/api.py +152 -120
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/auth.py +293 -193
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/certs.py +18 -24
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/compat.py +73 -115
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/cookies.py +542 -454
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/exceptions.py +122 -75
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/help.py +120 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/hooks.py +34 -45
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/models.py +948 -803
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages.py +16 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/sessions.py +737 -637
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/status_codes.py +91 -88
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/structures.py +105 -127
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/utils.py +904 -673
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/retrying.py +267 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/six.py +891 -646
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/__init__.py +97 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/_collections.py +319 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/connection.py +373 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/connectionpool.py +905 -710
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +593 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +343 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/appengine.py +296 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/contrib/ntlmpool.py +112 -120
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +455 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +810 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/contrib/socks.py +188 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/exceptions.py +246 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/fields.py +178 -177
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/filepost.py +94 -100
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/__init__.py +5 -4
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +53 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ordered_dict.py +259 -260
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/packages/six.py +868 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ssl_match_hostname/__init__.py +19 -13
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/packages/ssl_match_hostname/_implementation.py +157 -105
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/poolmanager.py +440 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/request.py +148 -141
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/response.py +626 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/__init__.py +54 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/connection.py +130 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/request.py +118 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/response.py +81 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/retry.py +401 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/selectors.py +581 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/ssl_.py +341 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/util/timeout.py +242 -234
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/{requests/packages/urllib3 → urllib3}/util/url.py +230 -162
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/urllib3/util/wait.py +40 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/__init__.py +342 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/labels.py +231 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/mklabels.py +59 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/tests.py +153 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/webencodings/x_user_defined.py +325 -0
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/__init__.py +0 -16
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/_markerlib/markers.py +0 -119
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/sanitizer.py +0 -271
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/__init__.py +0 -16
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/serializer/htmlserializer.py +0 -320
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/html5lib/treewalkers/pulldom.py +0 -63
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/re-vendor.py +0 -34
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/__init__.py +0 -3
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/big5freq.py +0 -925
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/chardetect.py +0 -46
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetgroupprober.py +0 -106
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/charsetprober.py +0 -62
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/codingstatemachine.py +0 -61
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/constants.py +0 -39
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escprober.py +0 -86
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/escsm.py +0 -242
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/eucjpprober.py +0 -90
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/euckrfreq.py +0 -596
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcharsetprober.py +0 -86
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/mbcssm.py +0 -575
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sbcharsetprober.py +0 -120
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/sjisprober.py +0 -91
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/chardet/universaldetector.py +0 -170
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/__init__.py +0 -58
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/_collections.py +0 -205
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/connection.py +0 -204
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/contrib/pyopenssl.py +0 -422
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/exceptions.py +0 -126
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/packages/six.py +0 -385
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/poolmanager.py +0 -258
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/response.py +0 -308
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/__init__.py +0 -27
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/connection.py +0 -45
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/request.py +0 -68
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/response.py +0 -13
- package/python3.4.2/lib/python3.4/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py +0 -133
- package/python3.4.2/lib/python3.4/site-packages/pip/backwardcompat/__init__.py +0 -138
- package/python3.4.2/lib/python3.4/site-packages/pip/basecommand.py +0 -201
- package/python3.4.2/lib/python3.4/site-packages/pip/cmdoptions.py +0 -371
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/__init__.py +0 -88
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/bundle.py +0 -42
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/completion.py +0 -59
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/freeze.py +0 -114
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/install.py +0 -314
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/list.py +0 -162
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/search.py +0 -132
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/show.py +0 -80
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/uninstall.py +0 -59
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/unzip.py +0 -7
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/wheel.py +0 -195
- package/python3.4.2/lib/python3.4/site-packages/pip/commands/zip.py +0 -351
- package/python3.4.2/lib/python3.4/site-packages/pip/download.py +0 -644
- package/python3.4.2/lib/python3.4/site-packages/pip/exceptions.py +0 -46
- package/python3.4.2/lib/python3.4/site-packages/pip/index.py +0 -990
- package/python3.4.2/lib/python3.4/site-packages/pip/locations.py +0 -171
- package/python3.4.2/lib/python3.4/site-packages/pip/log.py +0 -276
- package/python3.4.2/lib/python3.4/site-packages/pip/pep425tags.py +0 -102
- package/python3.4.2/lib/python3.4/site-packages/pip/req.py +0 -1931
- package/python3.4.2/lib/python3.4/site-packages/pip/runner.py +0 -18
- package/python3.4.2/lib/python3.4/site-packages/pip/util.py +0 -720
- package/python3.4.2/lib/python3.4/site-packages/pip/vcs/__init__.py +0 -251
- package/python3.4.2/lib/python3.4/site-packages/pip/vcs/bazaar.py +0 -131
- package/python3.4.2/lib/python3.4/site-packages/pip/vcs/git.py +0 -194
- package/python3.4.2/lib/python3.4/site-packages/pip/vcs/mercurial.py +0 -151
- package/python3.4.2/lib/python3.4/site-packages/pip/vcs/subversion.py +0 -273
- package/python3.4.2/lib/python3.4/site-packages/pip/wheel.py +0 -560
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"""
|
|
2
|
+
A module that implements tooling to enable easy warnings about deprecations.
|
|
3
|
+
"""
|
|
4
|
+
from __future__ import absolute_import
|
|
5
|
+
|
|
6
|
+
import logging
|
|
7
|
+
import warnings
|
|
8
|
+
|
|
9
|
+
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
|
|
10
|
+
|
|
11
|
+
if MYPY_CHECK_RUNNING:
|
|
12
|
+
from typing import Any
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class PipDeprecationWarning(Warning):
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class Pending(object):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class RemovedInPip11Warning(PipDeprecationWarning):
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class RemovedInPip12Warning(PipDeprecationWarning, Pending):
|
|
28
|
+
pass
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Warnings <-> Logging Integration
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
_warnings_showwarning = None # type: Any
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def _showwarning(message, category, filename, lineno, file=None, line=None):
|
|
38
|
+
if file is not None:
|
|
39
|
+
if _warnings_showwarning is not None:
|
|
40
|
+
_warnings_showwarning(
|
|
41
|
+
message, category, filename, lineno, file, line,
|
|
42
|
+
)
|
|
43
|
+
else:
|
|
44
|
+
if issubclass(category, PipDeprecationWarning):
|
|
45
|
+
# We use a specially named logger which will handle all of the
|
|
46
|
+
# deprecation messages for pip.
|
|
47
|
+
logger = logging.getLogger("pip._internal.deprecations")
|
|
48
|
+
|
|
49
|
+
# This is purposely using the % formatter here instead of letting
|
|
50
|
+
# the logging module handle the interpolation. This is because we
|
|
51
|
+
# want it to appear as if someone typed this entire message out.
|
|
52
|
+
log_message = "DEPRECATION: %s" % message
|
|
53
|
+
|
|
54
|
+
# PipDeprecationWarnings that are Pending still have at least 2
|
|
55
|
+
# versions to go until they are removed so they can just be
|
|
56
|
+
# warnings. Otherwise, they will be removed in the very next
|
|
57
|
+
# version of pip. We want these to be more obvious so we use the
|
|
58
|
+
# ERROR logging level.
|
|
59
|
+
if issubclass(category, Pending):
|
|
60
|
+
logger.warning(log_message)
|
|
61
|
+
else:
|
|
62
|
+
logger.error(log_message)
|
|
63
|
+
else:
|
|
64
|
+
_warnings_showwarning(
|
|
65
|
+
message, category, filename, lineno, file, line,
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def install_warning_logger():
|
|
70
|
+
# Enable our Deprecation Warnings
|
|
71
|
+
warnings.simplefilter("default", PipDeprecationWarning, append=True)
|
|
72
|
+
|
|
73
|
+
global _warnings_showwarning
|
|
74
|
+
|
|
75
|
+
if _warnings_showwarning is None:
|
|
76
|
+
_warnings_showwarning = warnings.showwarning
|
|
77
|
+
warnings.showwarning = _showwarning
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import codecs
|
|
2
|
+
import locale
|
|
3
|
+
import re
|
|
4
|
+
import sys
|
|
5
|
+
|
|
6
|
+
BOMS = [
|
|
7
|
+
(codecs.BOM_UTF8, 'utf8'),
|
|
8
|
+
(codecs.BOM_UTF16, 'utf16'),
|
|
9
|
+
(codecs.BOM_UTF16_BE, 'utf16-be'),
|
|
10
|
+
(codecs.BOM_UTF16_LE, 'utf16-le'),
|
|
11
|
+
(codecs.BOM_UTF32, 'utf32'),
|
|
12
|
+
(codecs.BOM_UTF32_BE, 'utf32-be'),
|
|
13
|
+
(codecs.BOM_UTF32_LE, 'utf32-le'),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)')
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def auto_decode(data):
|
|
20
|
+
"""Check a bytes string for a BOM to correctly detect the encoding
|
|
21
|
+
|
|
22
|
+
Fallback to locale.getpreferredencoding(False) like open() on Python3"""
|
|
23
|
+
for bom, encoding in BOMS:
|
|
24
|
+
if data.startswith(bom):
|
|
25
|
+
return data[len(bom):].decode(encoding)
|
|
26
|
+
# Lets check the first two lines as in PEP263
|
|
27
|
+
for line in data.split(b'\n')[:2]:
|
|
28
|
+
if line[0:1] == b'#' and ENCODING_RE.search(line):
|
|
29
|
+
encoding = ENCODING_RE.search(line).groups()[0].decode('ascii')
|
|
30
|
+
return data.decode(encoding)
|
|
31
|
+
return data.decode(
|
|
32
|
+
locale.getpreferredencoding(False) or sys.getdefaultencoding(),
|
|
33
|
+
)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import os.path
|
|
3
|
+
|
|
4
|
+
from pip._internal.compat import get_path_uid
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def check_path_owner(path):
|
|
8
|
+
# If we don't have a way to check the effective uid of this process, then
|
|
9
|
+
# we'll just assume that we own the directory.
|
|
10
|
+
if not hasattr(os, "geteuid"):
|
|
11
|
+
return True
|
|
12
|
+
|
|
13
|
+
previous = None
|
|
14
|
+
while path != previous:
|
|
15
|
+
if os.path.lexists(path):
|
|
16
|
+
# Check if path is writable by current user.
|
|
17
|
+
if os.geteuid() == 0:
|
|
18
|
+
# Special handling for root user in order to handle properly
|
|
19
|
+
# cases where users use sudo without -H flag.
|
|
20
|
+
try:
|
|
21
|
+
path_uid = get_path_uid(path)
|
|
22
|
+
except OSError:
|
|
23
|
+
return False
|
|
24
|
+
return path_uid == 0
|
|
25
|
+
else:
|
|
26
|
+
return os.access(path, os.W_OK)
|
|
27
|
+
else:
|
|
28
|
+
previous, path = path, os.path.dirname(path)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
import ctypes
|
|
4
|
+
import re
|
|
5
|
+
import warnings
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def glibc_version_string():
|
|
9
|
+
"Returns glibc version string, or None if not using glibc."
|
|
10
|
+
|
|
11
|
+
# ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
|
|
12
|
+
# manpage says, "If filename is NULL, then the returned handle is for the
|
|
13
|
+
# main program". This way we can let the linker do the work to figure out
|
|
14
|
+
# which libc our process is actually using.
|
|
15
|
+
process_namespace = ctypes.CDLL(None)
|
|
16
|
+
try:
|
|
17
|
+
gnu_get_libc_version = process_namespace.gnu_get_libc_version
|
|
18
|
+
except AttributeError:
|
|
19
|
+
# Symbol doesn't exist -> therefore, we are not linked to
|
|
20
|
+
# glibc.
|
|
21
|
+
return None
|
|
22
|
+
|
|
23
|
+
# Call gnu_get_libc_version, which returns a string like "2.5"
|
|
24
|
+
gnu_get_libc_version.restype = ctypes.c_char_p
|
|
25
|
+
version_str = gnu_get_libc_version()
|
|
26
|
+
# py2 / py3 compatibility:
|
|
27
|
+
if not isinstance(version_str, str):
|
|
28
|
+
version_str = version_str.decode("ascii")
|
|
29
|
+
|
|
30
|
+
return version_str
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# Separated out from have_compatible_glibc for easier unit testing
|
|
34
|
+
def check_glibc_version(version_str, required_major, minimum_minor):
|
|
35
|
+
# Parse string and check against requested version.
|
|
36
|
+
#
|
|
37
|
+
# We use a regexp instead of str.split because we want to discard any
|
|
38
|
+
# random junk that might come after the minor version -- this might happen
|
|
39
|
+
# in patched/forked versions of glibc (e.g. Linaro's version of glibc
|
|
40
|
+
# uses version strings like "2.20-2014.11"). See gh-3588.
|
|
41
|
+
m = re.match(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)", version_str)
|
|
42
|
+
if not m:
|
|
43
|
+
warnings.warn("Expected glibc version with 2 components major.minor,"
|
|
44
|
+
" got: %s" % version_str, RuntimeWarning)
|
|
45
|
+
return False
|
|
46
|
+
return (int(m.group("major")) == required_major and
|
|
47
|
+
int(m.group("minor")) >= minimum_minor)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def have_compatible_glibc(required_major, minimum_minor):
|
|
51
|
+
version_str = glibc_version_string()
|
|
52
|
+
if version_str is None:
|
|
53
|
+
return False
|
|
54
|
+
return check_glibc_version(version_str, required_major, minimum_minor)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
# platform.libc_ver regularly returns completely nonsensical glibc
|
|
58
|
+
# versions. E.g. on my computer, platform says:
|
|
59
|
+
#
|
|
60
|
+
# ~$ python2.7 -c 'import platform; print(platform.libc_ver())'
|
|
61
|
+
# ('glibc', '2.7')
|
|
62
|
+
# ~$ python3.5 -c 'import platform; print(platform.libc_ver())'
|
|
63
|
+
# ('glibc', '2.9')
|
|
64
|
+
#
|
|
65
|
+
# But the truth is:
|
|
66
|
+
#
|
|
67
|
+
# ~$ ldd --version
|
|
68
|
+
# ldd (Debian GLIBC 2.22-11) 2.22
|
|
69
|
+
#
|
|
70
|
+
# This is unfortunate, because it means that the linehaul data on libc
|
|
71
|
+
# versions that was generated by pip 8.1.2 and earlier is useless and
|
|
72
|
+
# misleading. Solution: instead of using platform, use our code that actually
|
|
73
|
+
# works.
|
|
74
|
+
def libc_ver():
|
|
75
|
+
"""Try to determine the glibc version
|
|
76
|
+
|
|
77
|
+
Returns a tuple of strings (lib, version) which default to empty strings
|
|
78
|
+
in case the lookup fails.
|
|
79
|
+
"""
|
|
80
|
+
glibc_version = glibc_version_string()
|
|
81
|
+
if glibc_version is None:
|
|
82
|
+
return ("", "")
|
|
83
|
+
else:
|
|
84
|
+
return ("glibc", glibc_version)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
import hashlib
|
|
4
|
+
|
|
5
|
+
from pip._vendor.six import iteritems, iterkeys, itervalues
|
|
6
|
+
|
|
7
|
+
from pip._internal.exceptions import (
|
|
8
|
+
HashMismatch, HashMissing, InstallationError,
|
|
9
|
+
)
|
|
10
|
+
from pip._internal.utils.misc import read_chunks
|
|
11
|
+
|
|
12
|
+
# The recommended hash algo of the moment. Change this whenever the state of
|
|
13
|
+
# the art changes; it won't hurt backward compatibility.
|
|
14
|
+
FAVORITE_HASH = 'sha256'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# Names of hashlib algorithms allowed by the --hash option and ``pip hash``
|
|
18
|
+
# Currently, those are the ones at least as collision-resistant as sha256.
|
|
19
|
+
STRONG_HASHES = ['sha256', 'sha384', 'sha512']
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class Hashes(object):
|
|
23
|
+
"""A wrapper that builds multiple hashes at once and checks them against
|
|
24
|
+
known-good values
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
def __init__(self, hashes=None):
|
|
28
|
+
"""
|
|
29
|
+
:param hashes: A dict of algorithm names pointing to lists of allowed
|
|
30
|
+
hex digests
|
|
31
|
+
"""
|
|
32
|
+
self._allowed = {} if hashes is None else hashes
|
|
33
|
+
|
|
34
|
+
def check_against_chunks(self, chunks):
|
|
35
|
+
"""Check good hashes against ones built from iterable of chunks of
|
|
36
|
+
data.
|
|
37
|
+
|
|
38
|
+
Raise HashMismatch if none match.
|
|
39
|
+
|
|
40
|
+
"""
|
|
41
|
+
gots = {}
|
|
42
|
+
for hash_name in iterkeys(self._allowed):
|
|
43
|
+
try:
|
|
44
|
+
gots[hash_name] = hashlib.new(hash_name)
|
|
45
|
+
except (ValueError, TypeError):
|
|
46
|
+
raise InstallationError('Unknown hash name: %s' % hash_name)
|
|
47
|
+
|
|
48
|
+
for chunk in chunks:
|
|
49
|
+
for hash in itervalues(gots):
|
|
50
|
+
hash.update(chunk)
|
|
51
|
+
|
|
52
|
+
for hash_name, got in iteritems(gots):
|
|
53
|
+
if got.hexdigest() in self._allowed[hash_name]:
|
|
54
|
+
return
|
|
55
|
+
self._raise(gots)
|
|
56
|
+
|
|
57
|
+
def _raise(self, gots):
|
|
58
|
+
raise HashMismatch(self._allowed, gots)
|
|
59
|
+
|
|
60
|
+
def check_against_file(self, file):
|
|
61
|
+
"""Check good hashes against a file-like object
|
|
62
|
+
|
|
63
|
+
Raise HashMismatch if none match.
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
return self.check_against_chunks(read_chunks(file))
|
|
67
|
+
|
|
68
|
+
def check_against_path(self, path):
|
|
69
|
+
with open(path, 'rb') as file:
|
|
70
|
+
return self.check_against_file(file)
|
|
71
|
+
|
|
72
|
+
def __nonzero__(self):
|
|
73
|
+
"""Return whether I know any known-good hashes."""
|
|
74
|
+
return bool(self._allowed)
|
|
75
|
+
|
|
76
|
+
def __bool__(self):
|
|
77
|
+
return self.__nonzero__()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class MissingHashes(Hashes):
|
|
81
|
+
"""A workalike for Hashes used when we're missing a hash for a requirement
|
|
82
|
+
|
|
83
|
+
It computes the actual hash of the requirement and raises a HashMissing
|
|
84
|
+
exception showing it to the user.
|
|
85
|
+
|
|
86
|
+
"""
|
|
87
|
+
def __init__(self):
|
|
88
|
+
"""Don't offer the ``hashes`` kwarg."""
|
|
89
|
+
# Pass our favorite hash in to generate a "gotten hash". With the
|
|
90
|
+
# empty list, it will never match, so an error will always raise.
|
|
91
|
+
super(MissingHashes, self).__init__(hashes={FAVORITE_HASH: []})
|
|
92
|
+
|
|
93
|
+
def _raise(self, gots):
|
|
94
|
+
raise HashMissing(gots[FAVORITE_HASH].hexdigest())
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
import contextlib
|
|
4
|
+
import logging
|
|
5
|
+
import logging.handlers
|
|
6
|
+
import os
|
|
7
|
+
|
|
8
|
+
from pip._internal.compat import WINDOWS
|
|
9
|
+
from pip._internal.utils.misc import ensure_dir
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
import threading
|
|
13
|
+
except ImportError:
|
|
14
|
+
import dummy_threading as threading # type: ignore
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
try:
|
|
18
|
+
from pip._vendor import colorama
|
|
19
|
+
# Lots of different errors can come from this, including SystemError and
|
|
20
|
+
# ImportError.
|
|
21
|
+
except Exception:
|
|
22
|
+
colorama = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
_log_state = threading.local()
|
|
26
|
+
_log_state.indentation = 0
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
@contextlib.contextmanager
|
|
30
|
+
def indent_log(num=2):
|
|
31
|
+
"""
|
|
32
|
+
A context manager which will cause the log output to be indented for any
|
|
33
|
+
log messages emitted inside it.
|
|
34
|
+
"""
|
|
35
|
+
_log_state.indentation += num
|
|
36
|
+
try:
|
|
37
|
+
yield
|
|
38
|
+
finally:
|
|
39
|
+
_log_state.indentation -= num
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def get_indentation():
|
|
43
|
+
return getattr(_log_state, 'indentation', 0)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class IndentingFormatter(logging.Formatter):
|
|
47
|
+
|
|
48
|
+
def format(self, record):
|
|
49
|
+
"""
|
|
50
|
+
Calls the standard formatter, but will indent all of the log messages
|
|
51
|
+
by our current indentation level.
|
|
52
|
+
"""
|
|
53
|
+
formatted = logging.Formatter.format(self, record)
|
|
54
|
+
formatted = "".join([
|
|
55
|
+
(" " * get_indentation()) + line
|
|
56
|
+
for line in formatted.splitlines(True)
|
|
57
|
+
])
|
|
58
|
+
return formatted
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def _color_wrap(*colors):
|
|
62
|
+
def wrapped(inp):
|
|
63
|
+
return "".join(list(colors) + [inp, colorama.Style.RESET_ALL])
|
|
64
|
+
return wrapped
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class ColorizedStreamHandler(logging.StreamHandler):
|
|
68
|
+
|
|
69
|
+
# Don't build up a list of colors if we don't have colorama
|
|
70
|
+
if colorama:
|
|
71
|
+
COLORS = [
|
|
72
|
+
# This needs to be in order from highest logging level to lowest.
|
|
73
|
+
(logging.ERROR, _color_wrap(colorama.Fore.RED)),
|
|
74
|
+
(logging.WARNING, _color_wrap(colorama.Fore.YELLOW)),
|
|
75
|
+
]
|
|
76
|
+
else:
|
|
77
|
+
COLORS = []
|
|
78
|
+
|
|
79
|
+
def __init__(self, stream=None, no_color=None):
|
|
80
|
+
logging.StreamHandler.__init__(self, stream)
|
|
81
|
+
self._no_color = no_color
|
|
82
|
+
|
|
83
|
+
if WINDOWS and colorama:
|
|
84
|
+
self.stream = colorama.AnsiToWin32(self.stream)
|
|
85
|
+
|
|
86
|
+
def should_color(self):
|
|
87
|
+
# Don't colorize things if we do not have colorama or if told not to
|
|
88
|
+
if not colorama or self._no_color:
|
|
89
|
+
return False
|
|
90
|
+
|
|
91
|
+
real_stream = (
|
|
92
|
+
self.stream if not isinstance(self.stream, colorama.AnsiToWin32)
|
|
93
|
+
else self.stream.wrapped
|
|
94
|
+
)
|
|
95
|
+
|
|
96
|
+
# If the stream is a tty we should color it
|
|
97
|
+
if hasattr(real_stream, "isatty") and real_stream.isatty():
|
|
98
|
+
return True
|
|
99
|
+
|
|
100
|
+
# If we have an ASNI term we should color it
|
|
101
|
+
if os.environ.get("TERM") == "ANSI":
|
|
102
|
+
return True
|
|
103
|
+
|
|
104
|
+
# If anything else we should not color it
|
|
105
|
+
return False
|
|
106
|
+
|
|
107
|
+
def format(self, record):
|
|
108
|
+
msg = logging.StreamHandler.format(self, record)
|
|
109
|
+
|
|
110
|
+
if self.should_color():
|
|
111
|
+
for level, color in self.COLORS:
|
|
112
|
+
if record.levelno >= level:
|
|
113
|
+
msg = color(msg)
|
|
114
|
+
break
|
|
115
|
+
|
|
116
|
+
return msg
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
class BetterRotatingFileHandler(logging.handlers.RotatingFileHandler):
|
|
120
|
+
|
|
121
|
+
def _open(self):
|
|
122
|
+
ensure_dir(os.path.dirname(self.baseFilename))
|
|
123
|
+
return logging.handlers.RotatingFileHandler._open(self)
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class MaxLevelFilter(logging.Filter):
|
|
127
|
+
|
|
128
|
+
def __init__(self, level):
|
|
129
|
+
self.level = level
|
|
130
|
+
|
|
131
|
+
def filter(self, record):
|
|
132
|
+
return record.levelno < self.level
|