com.googler.python 1.0.8 → 1.1.0
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 +1 -1
- 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-10.0.0.dist-info/LICENSE.txt +20 -0
- package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/METADATA +78 -0
- package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/RECORD +294 -0
- package/python3.4.2/lib/python3.4/site-packages/{pip-1.5.6.dist-info → pip-10.0.0.dist-info}/WHEEL +6 -6
- package/python3.4.2/lib/python3.4/site-packages/pip-10.0.0.dist-info/entry_points.txt +5 -0
- package/python3.4.2/lib/python3.4/site-packages/{pip-1.5.6.dist-info → pip-10.0.0.dist-info}/top_level.txt +0 -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
- package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/DESCRIPTION.rst +0 -71
- package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/METADATA +0 -98
- package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/RECORD +0 -373
- package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/entry_points.txt +0 -5
- package/python3.4.2/lib/python3.4/site-packages/pip-1.5.6.dist-info/metadata.json +0 -1
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
import sys
|
|
3
|
-
import tempfile
|
|
4
|
-
import shutil
|
|
5
|
-
from pip.req import InstallRequirement, RequirementSet, parse_requirements
|
|
6
|
-
from pip.log import logger
|
|
7
|
-
from pip.locations import (src_prefix, virtualenv_no_global, distutils_scheme,
|
|
8
|
-
build_prefix)
|
|
9
|
-
from pip.basecommand import Command
|
|
10
|
-
from pip.index import PackageFinder
|
|
11
|
-
from pip.exceptions import InstallationError, CommandError, PreviousBuildDirError
|
|
12
|
-
from pip import cmdoptions
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class InstallCommand(Command):
|
|
16
|
-
"""
|
|
17
|
-
Install packages from:
|
|
18
|
-
|
|
19
|
-
- PyPI (and other indexes) using requirement specifiers.
|
|
20
|
-
- VCS project urls.
|
|
21
|
-
- Local project directories.
|
|
22
|
-
- Local or remote source archives.
|
|
23
|
-
|
|
24
|
-
pip also supports installing from "requirements files", which provide
|
|
25
|
-
an easy way to specify a whole environment to be installed.
|
|
26
|
-
"""
|
|
27
|
-
name = 'install'
|
|
28
|
-
|
|
29
|
-
usage = """
|
|
30
|
-
%prog [options] <requirement specifier> ...
|
|
31
|
-
%prog [options] -r <requirements file> ...
|
|
32
|
-
%prog [options] [-e] <vcs project url> ...
|
|
33
|
-
%prog [options] [-e] <local project path> ...
|
|
34
|
-
%prog [options] <archive url/path> ..."""
|
|
35
|
-
|
|
36
|
-
summary = 'Install packages.'
|
|
37
|
-
bundle = False
|
|
38
|
-
|
|
39
|
-
def __init__(self, *args, **kw):
|
|
40
|
-
super(InstallCommand, self).__init__(*args, **kw)
|
|
41
|
-
|
|
42
|
-
cmd_opts = self.cmd_opts
|
|
43
|
-
|
|
44
|
-
cmd_opts.add_option(
|
|
45
|
-
'-e', '--editable',
|
|
46
|
-
dest='editables',
|
|
47
|
-
action='append',
|
|
48
|
-
default=[],
|
|
49
|
-
metavar='path/url',
|
|
50
|
-
help='Install a project in editable mode (i.e. setuptools "develop mode") from a local project path or a VCS url.')
|
|
51
|
-
|
|
52
|
-
cmd_opts.add_option(cmdoptions.requirements.make())
|
|
53
|
-
cmd_opts.add_option(cmdoptions.build_dir.make())
|
|
54
|
-
|
|
55
|
-
cmd_opts.add_option(
|
|
56
|
-
'-t', '--target',
|
|
57
|
-
dest='target_dir',
|
|
58
|
-
metavar='dir',
|
|
59
|
-
default=None,
|
|
60
|
-
help='Install packages into <dir>.')
|
|
61
|
-
|
|
62
|
-
cmd_opts.add_option(
|
|
63
|
-
'-d', '--download', '--download-dir', '--download-directory',
|
|
64
|
-
dest='download_dir',
|
|
65
|
-
metavar='dir',
|
|
66
|
-
default=None,
|
|
67
|
-
help="Download packages into <dir> instead of installing them, regardless of what's already installed.")
|
|
68
|
-
|
|
69
|
-
cmd_opts.add_option(cmdoptions.download_cache.make())
|
|
70
|
-
|
|
71
|
-
cmd_opts.add_option(
|
|
72
|
-
'--src', '--source', '--source-dir', '--source-directory',
|
|
73
|
-
dest='src_dir',
|
|
74
|
-
metavar='dir',
|
|
75
|
-
default=src_prefix,
|
|
76
|
-
help='Directory to check out editable projects into. '
|
|
77
|
-
'The default in a virtualenv is "<venv path>/src". '
|
|
78
|
-
'The default for global installs is "<current dir>/src".')
|
|
79
|
-
|
|
80
|
-
cmd_opts.add_option(
|
|
81
|
-
'-U', '--upgrade',
|
|
82
|
-
dest='upgrade',
|
|
83
|
-
action='store_true',
|
|
84
|
-
help='Upgrade all packages to the newest available version. '
|
|
85
|
-
'This process is recursive regardless of whether a dependency is already satisfied.')
|
|
86
|
-
|
|
87
|
-
cmd_opts.add_option(
|
|
88
|
-
'--force-reinstall',
|
|
89
|
-
dest='force_reinstall',
|
|
90
|
-
action='store_true',
|
|
91
|
-
help='When upgrading, reinstall all packages even if they are '
|
|
92
|
-
'already up-to-date.')
|
|
93
|
-
|
|
94
|
-
cmd_opts.add_option(
|
|
95
|
-
'-I', '--ignore-installed',
|
|
96
|
-
dest='ignore_installed',
|
|
97
|
-
action='store_true',
|
|
98
|
-
help='Ignore the installed packages (reinstalling instead).')
|
|
99
|
-
|
|
100
|
-
cmd_opts.add_option(cmdoptions.no_deps.make())
|
|
101
|
-
|
|
102
|
-
cmd_opts.add_option(
|
|
103
|
-
'--no-install',
|
|
104
|
-
dest='no_install',
|
|
105
|
-
action='store_true',
|
|
106
|
-
help="DEPRECATED. Download and unpack all packages, but don't actually install them.")
|
|
107
|
-
|
|
108
|
-
cmd_opts.add_option(
|
|
109
|
-
'--no-download',
|
|
110
|
-
dest='no_download',
|
|
111
|
-
action="store_true",
|
|
112
|
-
help="DEPRECATED. Don't download any packages, just install the ones already downloaded "
|
|
113
|
-
"(completes an install run with --no-install).")
|
|
114
|
-
|
|
115
|
-
cmd_opts.add_option(cmdoptions.install_options.make())
|
|
116
|
-
cmd_opts.add_option(cmdoptions.global_options.make())
|
|
117
|
-
|
|
118
|
-
cmd_opts.add_option(
|
|
119
|
-
'--user',
|
|
120
|
-
dest='use_user_site',
|
|
121
|
-
action='store_true',
|
|
122
|
-
help='Install using the user scheme.')
|
|
123
|
-
|
|
124
|
-
cmd_opts.add_option(
|
|
125
|
-
'--egg',
|
|
126
|
-
dest='as_egg',
|
|
127
|
-
action='store_true',
|
|
128
|
-
help="Install packages as eggs, not 'flat', like pip normally does. This option is not about installing *from* eggs. (WARNING: Because this option overrides pip's normal install logic, requirements files may not behave as expected.)")
|
|
129
|
-
|
|
130
|
-
cmd_opts.add_option(
|
|
131
|
-
'--root',
|
|
132
|
-
dest='root_path',
|
|
133
|
-
metavar='dir',
|
|
134
|
-
default=None,
|
|
135
|
-
help="Install everything relative to this alternate root directory.")
|
|
136
|
-
|
|
137
|
-
cmd_opts.add_option(
|
|
138
|
-
"--compile",
|
|
139
|
-
action="store_true",
|
|
140
|
-
dest="compile",
|
|
141
|
-
default=True,
|
|
142
|
-
help="Compile py files to pyc",
|
|
143
|
-
)
|
|
144
|
-
|
|
145
|
-
cmd_opts.add_option(
|
|
146
|
-
"--no-compile",
|
|
147
|
-
action="store_false",
|
|
148
|
-
dest="compile",
|
|
149
|
-
help="Do not compile py files to pyc",
|
|
150
|
-
)
|
|
151
|
-
|
|
152
|
-
cmd_opts.add_option(cmdoptions.use_wheel.make())
|
|
153
|
-
cmd_opts.add_option(cmdoptions.no_use_wheel.make())
|
|
154
|
-
|
|
155
|
-
cmd_opts.add_option(
|
|
156
|
-
'--pre',
|
|
157
|
-
action='store_true',
|
|
158
|
-
default=False,
|
|
159
|
-
help="Include pre-release and development versions. By default, pip only finds stable versions.")
|
|
160
|
-
|
|
161
|
-
cmd_opts.add_option(cmdoptions.no_clean.make())
|
|
162
|
-
|
|
163
|
-
index_opts = cmdoptions.make_option_group(cmdoptions.index_group, self.parser)
|
|
164
|
-
|
|
165
|
-
self.parser.insert_option_group(0, index_opts)
|
|
166
|
-
self.parser.insert_option_group(0, cmd_opts)
|
|
167
|
-
|
|
168
|
-
def _build_package_finder(self, options, index_urls, session):
|
|
169
|
-
"""
|
|
170
|
-
Create a package finder appropriate to this install command.
|
|
171
|
-
This method is meant to be overridden by subclasses, not
|
|
172
|
-
called directly.
|
|
173
|
-
"""
|
|
174
|
-
return PackageFinder(find_links=options.find_links,
|
|
175
|
-
index_urls=index_urls,
|
|
176
|
-
use_wheel=options.use_wheel,
|
|
177
|
-
allow_external=options.allow_external,
|
|
178
|
-
allow_unverified=options.allow_unverified,
|
|
179
|
-
allow_all_external=options.allow_all_external,
|
|
180
|
-
allow_all_prereleases=options.pre,
|
|
181
|
-
process_dependency_links=
|
|
182
|
-
options.process_dependency_links,
|
|
183
|
-
session=session,
|
|
184
|
-
)
|
|
185
|
-
|
|
186
|
-
def run(self, options, args):
|
|
187
|
-
|
|
188
|
-
if (
|
|
189
|
-
options.no_install or
|
|
190
|
-
options.no_download or
|
|
191
|
-
(options.build_dir != build_prefix) or
|
|
192
|
-
options.no_clean
|
|
193
|
-
):
|
|
194
|
-
logger.deprecated('1.7', 'DEPRECATION: --no-install, --no-download, --build, '
|
|
195
|
-
'and --no-clean are deprecated. See https://github.com/pypa/pip/issues/906.')
|
|
196
|
-
|
|
197
|
-
if options.download_dir:
|
|
198
|
-
options.no_install = True
|
|
199
|
-
options.ignore_installed = True
|
|
200
|
-
options.build_dir = os.path.abspath(options.build_dir)
|
|
201
|
-
options.src_dir = os.path.abspath(options.src_dir)
|
|
202
|
-
install_options = options.install_options or []
|
|
203
|
-
if options.use_user_site:
|
|
204
|
-
if virtualenv_no_global():
|
|
205
|
-
raise InstallationError("Can not perform a '--user' install. User site-packages are not visible in this virtualenv.")
|
|
206
|
-
install_options.append('--user')
|
|
207
|
-
|
|
208
|
-
temp_target_dir = None
|
|
209
|
-
if options.target_dir:
|
|
210
|
-
options.ignore_installed = True
|
|
211
|
-
temp_target_dir = tempfile.mkdtemp()
|
|
212
|
-
options.target_dir = os.path.abspath(options.target_dir)
|
|
213
|
-
if os.path.exists(options.target_dir) and not os.path.isdir(options.target_dir):
|
|
214
|
-
raise CommandError("Target path exists but is not a directory, will not continue.")
|
|
215
|
-
install_options.append('--home=' + temp_target_dir)
|
|
216
|
-
|
|
217
|
-
global_options = options.global_options or []
|
|
218
|
-
index_urls = [options.index_url] + options.extra_index_urls
|
|
219
|
-
if options.no_index:
|
|
220
|
-
logger.notify('Ignoring indexes: %s' % ','.join(index_urls))
|
|
221
|
-
index_urls = []
|
|
222
|
-
|
|
223
|
-
if options.use_mirrors:
|
|
224
|
-
logger.deprecated("1.7",
|
|
225
|
-
"--use-mirrors has been deprecated and will be removed"
|
|
226
|
-
" in the future. Explicit uses of --index-url and/or "
|
|
227
|
-
"--extra-index-url is suggested.")
|
|
228
|
-
|
|
229
|
-
if options.mirrors:
|
|
230
|
-
logger.deprecated("1.7",
|
|
231
|
-
"--mirrors has been deprecated and will be removed in "
|
|
232
|
-
" the future. Explicit uses of --index-url and/or "
|
|
233
|
-
"--extra-index-url is suggested.")
|
|
234
|
-
index_urls += options.mirrors
|
|
235
|
-
|
|
236
|
-
session = self._build_session(options)
|
|
237
|
-
|
|
238
|
-
finder = self._build_package_finder(options, index_urls, session)
|
|
239
|
-
|
|
240
|
-
requirement_set = RequirementSet(
|
|
241
|
-
build_dir=options.build_dir,
|
|
242
|
-
src_dir=options.src_dir,
|
|
243
|
-
download_dir=options.download_dir,
|
|
244
|
-
download_cache=options.download_cache,
|
|
245
|
-
upgrade=options.upgrade,
|
|
246
|
-
as_egg=options.as_egg,
|
|
247
|
-
ignore_installed=options.ignore_installed,
|
|
248
|
-
ignore_dependencies=options.ignore_dependencies,
|
|
249
|
-
force_reinstall=options.force_reinstall,
|
|
250
|
-
use_user_site=options.use_user_site,
|
|
251
|
-
target_dir=temp_target_dir,
|
|
252
|
-
session=session,
|
|
253
|
-
pycompile=options.compile,
|
|
254
|
-
)
|
|
255
|
-
for name in args:
|
|
256
|
-
requirement_set.add_requirement(
|
|
257
|
-
InstallRequirement.from_line(name, None))
|
|
258
|
-
for name in options.editables:
|
|
259
|
-
requirement_set.add_requirement(
|
|
260
|
-
InstallRequirement.from_editable(name, default_vcs=options.default_vcs))
|
|
261
|
-
for filename in options.requirements:
|
|
262
|
-
for req in parse_requirements(filename, finder=finder, options=options, session=session):
|
|
263
|
-
requirement_set.add_requirement(req)
|
|
264
|
-
if not requirement_set.has_requirements:
|
|
265
|
-
opts = {'name': self.name}
|
|
266
|
-
if options.find_links:
|
|
267
|
-
msg = ('You must give at least one requirement to %(name)s '
|
|
268
|
-
'(maybe you meant "pip %(name)s %(links)s"?)' %
|
|
269
|
-
dict(opts, links=' '.join(options.find_links)))
|
|
270
|
-
else:
|
|
271
|
-
msg = ('You must give at least one requirement '
|
|
272
|
-
'to %(name)s (see "pip help %(name)s")' % opts)
|
|
273
|
-
logger.warn(msg)
|
|
274
|
-
return
|
|
275
|
-
|
|
276
|
-
try:
|
|
277
|
-
if not options.no_download:
|
|
278
|
-
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
|
|
279
|
-
else:
|
|
280
|
-
requirement_set.locate_files()
|
|
281
|
-
|
|
282
|
-
if not options.no_install and not self.bundle:
|
|
283
|
-
requirement_set.install(install_options, global_options, root=options.root_path)
|
|
284
|
-
installed = ' '.join([req.name for req in
|
|
285
|
-
requirement_set.successfully_installed])
|
|
286
|
-
if installed:
|
|
287
|
-
logger.notify('Successfully installed %s' % installed)
|
|
288
|
-
elif not self.bundle:
|
|
289
|
-
downloaded = ' '.join([req.name for req in
|
|
290
|
-
requirement_set.successfully_downloaded])
|
|
291
|
-
if downloaded:
|
|
292
|
-
logger.notify('Successfully downloaded %s' % downloaded)
|
|
293
|
-
elif self.bundle:
|
|
294
|
-
requirement_set.create_bundle(self.bundle_filename)
|
|
295
|
-
logger.notify('Created bundle in %s' % self.bundle_filename)
|
|
296
|
-
except PreviousBuildDirError:
|
|
297
|
-
options.no_clean = True
|
|
298
|
-
raise
|
|
299
|
-
finally:
|
|
300
|
-
# Clean up
|
|
301
|
-
if (not options.no_clean) and ((not options.no_install) or options.download_dir):
|
|
302
|
-
requirement_set.cleanup_files(bundle=self.bundle)
|
|
303
|
-
|
|
304
|
-
if options.target_dir:
|
|
305
|
-
if not os.path.exists(options.target_dir):
|
|
306
|
-
os.makedirs(options.target_dir)
|
|
307
|
-
lib_dir = distutils_scheme('', home=temp_target_dir)['purelib']
|
|
308
|
-
for item in os.listdir(lib_dir):
|
|
309
|
-
shutil.move(
|
|
310
|
-
os.path.join(lib_dir, item),
|
|
311
|
-
os.path.join(options.target_dir, item)
|
|
312
|
-
)
|
|
313
|
-
shutil.rmtree(temp_target_dir)
|
|
314
|
-
return requirement_set
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
from pip.basecommand import Command
|
|
2
|
-
from pip.exceptions import DistributionNotFound, BestVersionAlreadyInstalled
|
|
3
|
-
from pip.index import PackageFinder
|
|
4
|
-
from pip.log import logger
|
|
5
|
-
from pip.req import InstallRequirement
|
|
6
|
-
from pip.util import get_installed_distributions, dist_is_editable
|
|
7
|
-
from pip.cmdoptions import make_option_group, index_group
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ListCommand(Command):
|
|
11
|
-
"""List installed packages, including editables."""
|
|
12
|
-
name = 'list'
|
|
13
|
-
usage = """
|
|
14
|
-
%prog [options]"""
|
|
15
|
-
summary = 'List installed packages.'
|
|
16
|
-
|
|
17
|
-
# distributions to skip (python itself is reported by pkg_resources.working_set)
|
|
18
|
-
skip = ['python']
|
|
19
|
-
|
|
20
|
-
def __init__(self, *args, **kw):
|
|
21
|
-
super(ListCommand, self).__init__(*args, **kw)
|
|
22
|
-
|
|
23
|
-
cmd_opts = self.cmd_opts
|
|
24
|
-
|
|
25
|
-
cmd_opts.add_option(
|
|
26
|
-
'-o', '--outdated',
|
|
27
|
-
action='store_true',
|
|
28
|
-
default=False,
|
|
29
|
-
help='List outdated packages (excluding editables)')
|
|
30
|
-
cmd_opts.add_option(
|
|
31
|
-
'-u', '--uptodate',
|
|
32
|
-
action='store_true',
|
|
33
|
-
default=False,
|
|
34
|
-
help='List uptodate packages (excluding editables)')
|
|
35
|
-
cmd_opts.add_option(
|
|
36
|
-
'-e', '--editable',
|
|
37
|
-
action='store_true',
|
|
38
|
-
default=False,
|
|
39
|
-
help='List editable projects.')
|
|
40
|
-
cmd_opts.add_option(
|
|
41
|
-
'-l', '--local',
|
|
42
|
-
action='store_true',
|
|
43
|
-
default=False,
|
|
44
|
-
help='If in a virtualenv that has global access, do not list globally-installed packages.')
|
|
45
|
-
|
|
46
|
-
cmd_opts.add_option(
|
|
47
|
-
'--pre',
|
|
48
|
-
action='store_true',
|
|
49
|
-
default=False,
|
|
50
|
-
help="Include pre-release and development versions. By default, pip only finds stable versions.")
|
|
51
|
-
|
|
52
|
-
index_opts = make_option_group(index_group, self.parser)
|
|
53
|
-
|
|
54
|
-
self.parser.insert_option_group(0, index_opts)
|
|
55
|
-
self.parser.insert_option_group(0, cmd_opts)
|
|
56
|
-
|
|
57
|
-
def _build_package_finder(self, options, index_urls, session):
|
|
58
|
-
"""
|
|
59
|
-
Create a package finder appropriate to this list command.
|
|
60
|
-
"""
|
|
61
|
-
return PackageFinder(find_links=options.find_links,
|
|
62
|
-
index_urls=index_urls,
|
|
63
|
-
allow_external=options.allow_external,
|
|
64
|
-
allow_unverified=options.allow_unverified,
|
|
65
|
-
allow_all_external=options.allow_all_external,
|
|
66
|
-
allow_all_prereleases=options.pre,
|
|
67
|
-
process_dependency_links=
|
|
68
|
-
options.process_dependency_links,
|
|
69
|
-
session=session,
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
def run(self, options, args):
|
|
73
|
-
if options.outdated:
|
|
74
|
-
self.run_outdated(options)
|
|
75
|
-
elif options.uptodate:
|
|
76
|
-
self.run_uptodate(options)
|
|
77
|
-
elif options.editable:
|
|
78
|
-
self.run_editables(options)
|
|
79
|
-
else:
|
|
80
|
-
self.run_listing(options)
|
|
81
|
-
|
|
82
|
-
def run_outdated(self, options):
|
|
83
|
-
for dist, remote_version_raw, remote_version_parsed in self.find_packages_latests_versions(options):
|
|
84
|
-
if remote_version_parsed > dist.parsed_version:
|
|
85
|
-
logger.notify('%s (Current: %s Latest: %s)' % (dist.project_name,
|
|
86
|
-
dist.version, remote_version_raw))
|
|
87
|
-
|
|
88
|
-
def find_packages_latests_versions(self, options):
|
|
89
|
-
index_urls = [options.index_url] + options.extra_index_urls
|
|
90
|
-
if options.no_index:
|
|
91
|
-
logger.notify('Ignoring indexes: %s' % ','.join(index_urls))
|
|
92
|
-
index_urls = []
|
|
93
|
-
|
|
94
|
-
if options.use_mirrors:
|
|
95
|
-
logger.deprecated("1.7",
|
|
96
|
-
"--use-mirrors has been deprecated and will be removed"
|
|
97
|
-
" in the future. Explicit uses of --index-url and/or "
|
|
98
|
-
"--extra-index-url is suggested.")
|
|
99
|
-
|
|
100
|
-
if options.mirrors:
|
|
101
|
-
logger.deprecated("1.7",
|
|
102
|
-
"--mirrors has been deprecated and will be removed in "
|
|
103
|
-
" the future. Explicit uses of --index-url and/or "
|
|
104
|
-
"--extra-index-url is suggested.")
|
|
105
|
-
index_urls += options.mirrors
|
|
106
|
-
|
|
107
|
-
dependency_links = []
|
|
108
|
-
for dist in get_installed_distributions(local_only=options.local, skip=self.skip):
|
|
109
|
-
if dist.has_metadata('dependency_links.txt'):
|
|
110
|
-
dependency_links.extend(
|
|
111
|
-
dist.get_metadata_lines('dependency_links.txt'),
|
|
112
|
-
)
|
|
113
|
-
|
|
114
|
-
session = self._build_session(options)
|
|
115
|
-
|
|
116
|
-
finder = self._build_package_finder(options, index_urls, session)
|
|
117
|
-
finder.add_dependency_links(dependency_links)
|
|
118
|
-
|
|
119
|
-
installed_packages = get_installed_distributions(local_only=options.local, include_editables=False, skip=self.skip)
|
|
120
|
-
for dist in installed_packages:
|
|
121
|
-
req = InstallRequirement.from_line(dist.key, None)
|
|
122
|
-
try:
|
|
123
|
-
link = finder.find_requirement(req, True)
|
|
124
|
-
|
|
125
|
-
# If link is None, means installed version is most up-to-date
|
|
126
|
-
if link is None:
|
|
127
|
-
continue
|
|
128
|
-
except DistributionNotFound:
|
|
129
|
-
continue
|
|
130
|
-
except BestVersionAlreadyInstalled:
|
|
131
|
-
remote_version = req.installed_version
|
|
132
|
-
else:
|
|
133
|
-
# It might be a good idea that link or finder had a public method
|
|
134
|
-
# that returned version
|
|
135
|
-
remote_version = finder._link_package_versions(link, req.name)[0]
|
|
136
|
-
remote_version_raw = remote_version[2]
|
|
137
|
-
remote_version_parsed = remote_version[0]
|
|
138
|
-
yield dist, remote_version_raw, remote_version_parsed
|
|
139
|
-
|
|
140
|
-
def run_listing(self, options):
|
|
141
|
-
installed_packages = get_installed_distributions(local_only=options.local, skip=self.skip)
|
|
142
|
-
self.output_package_listing(installed_packages)
|
|
143
|
-
|
|
144
|
-
def run_editables(self, options):
|
|
145
|
-
installed_packages = get_installed_distributions(local_only=options.local, editables_only=True)
|
|
146
|
-
self.output_package_listing(installed_packages)
|
|
147
|
-
|
|
148
|
-
def output_package_listing(self, installed_packages):
|
|
149
|
-
installed_packages = sorted(installed_packages, key=lambda dist: dist.project_name.lower())
|
|
150
|
-
for dist in installed_packages:
|
|
151
|
-
if dist_is_editable(dist):
|
|
152
|
-
line = '%s (%s, %s)' % (dist.project_name, dist.version, dist.location)
|
|
153
|
-
else:
|
|
154
|
-
line = '%s (%s)' % (dist.project_name, dist.version)
|
|
155
|
-
logger.notify(line)
|
|
156
|
-
|
|
157
|
-
def run_uptodate(self, options):
|
|
158
|
-
uptodate = []
|
|
159
|
-
for dist, remote_version_raw, remote_version_parsed in self.find_packages_latests_versions(options):
|
|
160
|
-
if dist.parsed_version == remote_version_parsed:
|
|
161
|
-
uptodate.append(dist)
|
|
162
|
-
self.output_package_listing(uptodate)
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
import textwrap
|
|
3
|
-
|
|
4
|
-
import pip.download
|
|
5
|
-
|
|
6
|
-
from pip.basecommand import Command, SUCCESS
|
|
7
|
-
from pip.util import get_terminal_size
|
|
8
|
-
from pip.log import logger
|
|
9
|
-
from pip.backwardcompat import xmlrpclib, reduce, cmp
|
|
10
|
-
from pip.exceptions import CommandError
|
|
11
|
-
from pip.status_codes import NO_MATCHES_FOUND
|
|
12
|
-
from pip._vendor import pkg_resources
|
|
13
|
-
from distutils.version import StrictVersion, LooseVersion
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class SearchCommand(Command):
|
|
17
|
-
"""Search for PyPI packages whose name or summary contains <query>."""
|
|
18
|
-
name = 'search'
|
|
19
|
-
usage = """
|
|
20
|
-
%prog [options] <query>"""
|
|
21
|
-
summary = 'Search PyPI for packages.'
|
|
22
|
-
|
|
23
|
-
def __init__(self, *args, **kw):
|
|
24
|
-
super(SearchCommand, self).__init__(*args, **kw)
|
|
25
|
-
self.cmd_opts.add_option(
|
|
26
|
-
'--index',
|
|
27
|
-
dest='index',
|
|
28
|
-
metavar='URL',
|
|
29
|
-
default='https://pypi.python.org/pypi',
|
|
30
|
-
help='Base URL of Python Package Index (default %default)')
|
|
31
|
-
|
|
32
|
-
self.parser.insert_option_group(0, self.cmd_opts)
|
|
33
|
-
|
|
34
|
-
def run(self, options, args):
|
|
35
|
-
if not args:
|
|
36
|
-
raise CommandError('Missing required argument (search query).')
|
|
37
|
-
query = args
|
|
38
|
-
index_url = options.index
|
|
39
|
-
|
|
40
|
-
pypi_hits = self.search(query, index_url)
|
|
41
|
-
hits = transform_hits(pypi_hits)
|
|
42
|
-
|
|
43
|
-
terminal_width = None
|
|
44
|
-
if sys.stdout.isatty():
|
|
45
|
-
terminal_width = get_terminal_size()[0]
|
|
46
|
-
|
|
47
|
-
print_results(hits, terminal_width=terminal_width)
|
|
48
|
-
if pypi_hits:
|
|
49
|
-
return SUCCESS
|
|
50
|
-
return NO_MATCHES_FOUND
|
|
51
|
-
|
|
52
|
-
def search(self, query, index_url):
|
|
53
|
-
pypi = xmlrpclib.ServerProxy(index_url)
|
|
54
|
-
hits = pypi.search({'name': query, 'summary': query}, 'or')
|
|
55
|
-
return hits
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
def transform_hits(hits):
|
|
59
|
-
"""
|
|
60
|
-
The list from pypi is really a list of versions. We want a list of
|
|
61
|
-
packages with the list of versions stored inline. This converts the
|
|
62
|
-
list from pypi into one we can use.
|
|
63
|
-
"""
|
|
64
|
-
packages = {}
|
|
65
|
-
for hit in hits:
|
|
66
|
-
name = hit['name']
|
|
67
|
-
summary = hit['summary']
|
|
68
|
-
version = hit['version']
|
|
69
|
-
score = hit['_pypi_ordering']
|
|
70
|
-
if score is None:
|
|
71
|
-
score = 0
|
|
72
|
-
|
|
73
|
-
if name not in packages.keys():
|
|
74
|
-
packages[name] = {'name': name, 'summary': summary, 'versions': [version], 'score': score}
|
|
75
|
-
else:
|
|
76
|
-
packages[name]['versions'].append(version)
|
|
77
|
-
|
|
78
|
-
# if this is the highest version, replace summary and score
|
|
79
|
-
if version == highest_version(packages[name]['versions']):
|
|
80
|
-
packages[name]['summary'] = summary
|
|
81
|
-
packages[name]['score'] = score
|
|
82
|
-
|
|
83
|
-
# each record has a unique name now, so we will convert the dict into a list sorted by score
|
|
84
|
-
package_list = sorted(packages.values(), key=lambda x: x['score'], reverse=True)
|
|
85
|
-
return package_list
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
def print_results(hits, name_column_width=25, terminal_width=None):
|
|
89
|
-
installed_packages = [p.project_name for p in pkg_resources.working_set]
|
|
90
|
-
for hit in hits:
|
|
91
|
-
name = hit['name']
|
|
92
|
-
summary = hit['summary'] or ''
|
|
93
|
-
if terminal_width is not None:
|
|
94
|
-
# wrap and indent summary to fit terminal
|
|
95
|
-
summary = textwrap.wrap(summary, terminal_width - name_column_width - 5)
|
|
96
|
-
summary = ('\n' + ' ' * (name_column_width + 3)).join(summary)
|
|
97
|
-
line = '%s - %s' % (name.ljust(name_column_width), summary)
|
|
98
|
-
try:
|
|
99
|
-
logger.notify(line)
|
|
100
|
-
if name in installed_packages:
|
|
101
|
-
dist = pkg_resources.get_distribution(name)
|
|
102
|
-
logger.indent += 2
|
|
103
|
-
try:
|
|
104
|
-
latest = highest_version(hit['versions'])
|
|
105
|
-
if dist.version == latest:
|
|
106
|
-
logger.notify('INSTALLED: %s (latest)' % dist.version)
|
|
107
|
-
else:
|
|
108
|
-
logger.notify('INSTALLED: %s' % dist.version)
|
|
109
|
-
logger.notify('LATEST: %s' % latest)
|
|
110
|
-
finally:
|
|
111
|
-
logger.indent -= 2
|
|
112
|
-
except UnicodeEncodeError:
|
|
113
|
-
pass
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
def compare_versions(version1, version2):
|
|
117
|
-
try:
|
|
118
|
-
return cmp(StrictVersion(version1), StrictVersion(version2))
|
|
119
|
-
# in case of abnormal version number, fall back to LooseVersion
|
|
120
|
-
except ValueError:
|
|
121
|
-
pass
|
|
122
|
-
try:
|
|
123
|
-
return cmp(LooseVersion(version1), LooseVersion(version2))
|
|
124
|
-
except TypeError:
|
|
125
|
-
# certain LooseVersion comparions raise due to unorderable types,
|
|
126
|
-
# fallback to string comparison
|
|
127
|
-
return cmp([str(v) for v in LooseVersion(version1).version],
|
|
128
|
-
[str(v) for v in LooseVersion(version2).version])
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
def highest_version(versions):
|
|
132
|
-
return reduce((lambda v1, v2: compare_versions(v1, v2) == 1 and v1 or v2), versions)
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import os
|
|
2
|
-
|
|
3
|
-
from pip.basecommand import Command
|
|
4
|
-
from pip.log import logger
|
|
5
|
-
from pip._vendor import pkg_resources
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class ShowCommand(Command):
|
|
9
|
-
"""Show information about one or more installed packages."""
|
|
10
|
-
name = 'show'
|
|
11
|
-
usage = """
|
|
12
|
-
%prog [options] <package> ..."""
|
|
13
|
-
summary = 'Show information about installed packages.'
|
|
14
|
-
|
|
15
|
-
def __init__(self, *args, **kw):
|
|
16
|
-
super(ShowCommand, self).__init__(*args, **kw)
|
|
17
|
-
self.cmd_opts.add_option(
|
|
18
|
-
'-f', '--files',
|
|
19
|
-
dest='files',
|
|
20
|
-
action='store_true',
|
|
21
|
-
default=False,
|
|
22
|
-
help='Show the full list of installed files for each package.')
|
|
23
|
-
|
|
24
|
-
self.parser.insert_option_group(0, self.cmd_opts)
|
|
25
|
-
|
|
26
|
-
def run(self, options, args):
|
|
27
|
-
if not args:
|
|
28
|
-
logger.warn('ERROR: Please provide a package name or names.')
|
|
29
|
-
return
|
|
30
|
-
query = args
|
|
31
|
-
|
|
32
|
-
results = search_packages_info(query)
|
|
33
|
-
print_results(results, options.files)
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
def search_packages_info(query):
|
|
37
|
-
"""
|
|
38
|
-
Gather details from installed distributions. Print distribution name,
|
|
39
|
-
version, location, and installed files. Installed files requires a
|
|
40
|
-
pip generated 'installed-files.txt' in the distributions '.egg-info'
|
|
41
|
-
directory.
|
|
42
|
-
"""
|
|
43
|
-
installed_packages = dict(
|
|
44
|
-
[(p.project_name.lower(), p) for p in pkg_resources.working_set])
|
|
45
|
-
for name in query:
|
|
46
|
-
normalized_name = name.lower()
|
|
47
|
-
if normalized_name in installed_packages:
|
|
48
|
-
dist = installed_packages[normalized_name]
|
|
49
|
-
package = {
|
|
50
|
-
'name': dist.project_name,
|
|
51
|
-
'version': dist.version,
|
|
52
|
-
'location': dist.location,
|
|
53
|
-
'requires': [dep.project_name for dep in dist.requires()],
|
|
54
|
-
}
|
|
55
|
-
filelist = os.path.join(
|
|
56
|
-
dist.location,
|
|
57
|
-
dist.egg_name() + '.egg-info',
|
|
58
|
-
'installed-files.txt')
|
|
59
|
-
if os.path.isfile(filelist):
|
|
60
|
-
package['files'] = filelist
|
|
61
|
-
yield package
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
def print_results(distributions, list_all_files):
|
|
65
|
-
"""
|
|
66
|
-
Print the informations from installed distributions found.
|
|
67
|
-
"""
|
|
68
|
-
for dist in distributions:
|
|
69
|
-
logger.notify("---")
|
|
70
|
-
logger.notify("Name: %s" % dist['name'])
|
|
71
|
-
logger.notify("Version: %s" % dist['version'])
|
|
72
|
-
logger.notify("Location: %s" % dist['location'])
|
|
73
|
-
logger.notify("Requires: %s" % ', '.join(dist['requires']))
|
|
74
|
-
if list_all_files:
|
|
75
|
-
logger.notify("Files:")
|
|
76
|
-
if 'files' in dist:
|
|
77
|
-
for line in open(dist['files']):
|
|
78
|
-
logger.notify(" %s" % line.strip())
|
|
79
|
-
else:
|
|
80
|
-
logger.notify("Cannot locate installed-files.txt")
|