Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/pip/_internal/commands/wheel.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:32:28 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:d30785e31577 | 1:56ad4e20f292 |
|---|---|
| 1 # -*- coding: utf-8 -*- | |
| 2 from __future__ import absolute_import | |
| 3 | |
| 4 import logging | |
| 5 import os | |
| 6 | |
| 7 from pip._internal.cache import WheelCache | |
| 8 from pip._internal.cli import cmdoptions | |
| 9 from pip._internal.cli.base_command import RequirementCommand | |
| 10 from pip._internal.exceptions import CommandError, PreviousBuildDirError | |
| 11 from pip._internal.legacy_resolve import Resolver | |
| 12 from pip._internal.operations.prepare import RequirementPreparer | |
| 13 from pip._internal.req import RequirementSet | |
| 14 from pip._internal.req.req_tracker import RequirementTracker | |
| 15 from pip._internal.utils.temp_dir import TempDirectory | |
| 16 from pip._internal.wheel import WheelBuilder | |
| 17 | |
| 18 logger = logging.getLogger(__name__) | |
| 19 | |
| 20 | |
| 21 class WheelCommand(RequirementCommand): | |
| 22 """ | |
| 23 Build Wheel archives for your requirements and dependencies. | |
| 24 | |
| 25 Wheel is a built-package format, and offers the advantage of not | |
| 26 recompiling your software during every install. For more details, see the | |
| 27 wheel docs: https://wheel.readthedocs.io/en/latest/ | |
| 28 | |
| 29 Requirements: setuptools>=0.8, and wheel. | |
| 30 | |
| 31 'pip wheel' uses the bdist_wheel setuptools extension from the wheel | |
| 32 package to build individual wheels. | |
| 33 | |
| 34 """ | |
| 35 | |
| 36 name = 'wheel' | |
| 37 usage = """ | |
| 38 %prog [options] <requirement specifier> ... | |
| 39 %prog [options] -r <requirements file> ... | |
| 40 %prog [options] [-e] <vcs project url> ... | |
| 41 %prog [options] [-e] <local project path> ... | |
| 42 %prog [options] <archive url/path> ...""" | |
| 43 | |
| 44 summary = 'Build wheels from your requirements.' | |
| 45 | |
| 46 def __init__(self, *args, **kw): | |
| 47 super(WheelCommand, self).__init__(*args, **kw) | |
| 48 | |
| 49 cmd_opts = self.cmd_opts | |
| 50 | |
| 51 cmd_opts.add_option( | |
| 52 '-w', '--wheel-dir', | |
| 53 dest='wheel_dir', | |
| 54 metavar='dir', | |
| 55 default=os.curdir, | |
| 56 help=("Build wheels into <dir>, where the default is the " | |
| 57 "current working directory."), | |
| 58 ) | |
| 59 cmd_opts.add_option(cmdoptions.no_binary()) | |
| 60 cmd_opts.add_option(cmdoptions.only_binary()) | |
| 61 cmd_opts.add_option(cmdoptions.prefer_binary()) | |
| 62 cmd_opts.add_option( | |
| 63 '--build-option', | |
| 64 dest='build_options', | |
| 65 metavar='options', | |
| 66 action='append', | |
| 67 help="Extra arguments to be supplied to 'setup.py bdist_wheel'.", | |
| 68 ) | |
| 69 cmd_opts.add_option(cmdoptions.no_build_isolation()) | |
| 70 cmd_opts.add_option(cmdoptions.use_pep517()) | |
| 71 cmd_opts.add_option(cmdoptions.no_use_pep517()) | |
| 72 cmd_opts.add_option(cmdoptions.constraints()) | |
| 73 cmd_opts.add_option(cmdoptions.editable()) | |
| 74 cmd_opts.add_option(cmdoptions.requirements()) | |
| 75 cmd_opts.add_option(cmdoptions.src()) | |
| 76 cmd_opts.add_option(cmdoptions.ignore_requires_python()) | |
| 77 cmd_opts.add_option(cmdoptions.no_deps()) | |
| 78 cmd_opts.add_option(cmdoptions.build_dir()) | |
| 79 cmd_opts.add_option(cmdoptions.progress_bar()) | |
| 80 | |
| 81 cmd_opts.add_option( | |
| 82 '--global-option', | |
| 83 dest='global_options', | |
| 84 action='append', | |
| 85 metavar='options', | |
| 86 help="Extra global options to be supplied to the setup.py " | |
| 87 "call before the 'bdist_wheel' command.") | |
| 88 | |
| 89 cmd_opts.add_option( | |
| 90 '--pre', | |
| 91 action='store_true', | |
| 92 default=False, | |
| 93 help=("Include pre-release and development versions. By default, " | |
| 94 "pip only finds stable versions."), | |
| 95 ) | |
| 96 | |
| 97 cmd_opts.add_option(cmdoptions.no_clean()) | |
| 98 cmd_opts.add_option(cmdoptions.require_hashes()) | |
| 99 | |
| 100 index_opts = cmdoptions.make_option_group( | |
| 101 cmdoptions.index_group, | |
| 102 self.parser, | |
| 103 ) | |
| 104 | |
| 105 self.parser.insert_option_group(0, index_opts) | |
| 106 self.parser.insert_option_group(0, cmd_opts) | |
| 107 | |
| 108 def run(self, options, args): | |
| 109 cmdoptions.check_install_build_global(options) | |
| 110 | |
| 111 if options.build_dir: | |
| 112 options.build_dir = os.path.abspath(options.build_dir) | |
| 113 | |
| 114 options.src_dir = os.path.abspath(options.src_dir) | |
| 115 | |
| 116 with self._build_session(options) as session: | |
| 117 finder = self._build_package_finder(options, session) | |
| 118 build_delete = (not (options.no_clean or options.build_dir)) | |
| 119 wheel_cache = WheelCache(options.cache_dir, options.format_control) | |
| 120 | |
| 121 with RequirementTracker() as req_tracker, TempDirectory( | |
| 122 options.build_dir, delete=build_delete, kind="wheel" | |
| 123 ) as directory: | |
| 124 | |
| 125 requirement_set = RequirementSet( | |
| 126 require_hashes=options.require_hashes, | |
| 127 ) | |
| 128 | |
| 129 try: | |
| 130 self.populate_requirement_set( | |
| 131 requirement_set, args, options, finder, session, | |
| 132 self.name, wheel_cache | |
| 133 ) | |
| 134 | |
| 135 preparer = RequirementPreparer( | |
| 136 build_dir=directory.path, | |
| 137 src_dir=options.src_dir, | |
| 138 download_dir=None, | |
| 139 wheel_download_dir=options.wheel_dir, | |
| 140 progress_bar=options.progress_bar, | |
| 141 build_isolation=options.build_isolation, | |
| 142 req_tracker=req_tracker, | |
| 143 ) | |
| 144 | |
| 145 resolver = Resolver( | |
| 146 preparer=preparer, | |
| 147 finder=finder, | |
| 148 session=session, | |
| 149 wheel_cache=wheel_cache, | |
| 150 use_user_site=False, | |
| 151 upgrade_strategy="to-satisfy-only", | |
| 152 force_reinstall=False, | |
| 153 ignore_dependencies=options.ignore_dependencies, | |
| 154 ignore_requires_python=options.ignore_requires_python, | |
| 155 ignore_installed=True, | |
| 156 isolated=options.isolated_mode, | |
| 157 use_pep517=options.use_pep517 | |
| 158 ) | |
| 159 resolver.resolve(requirement_set) | |
| 160 | |
| 161 # build wheels | |
| 162 wb = WheelBuilder( | |
| 163 finder, preparer, wheel_cache, | |
| 164 build_options=options.build_options or [], | |
| 165 global_options=options.global_options or [], | |
| 166 no_clean=options.no_clean, | |
| 167 ) | |
| 168 build_failures = wb.build( | |
| 169 requirement_set.requirements.values(), session=session, | |
| 170 ) | |
| 171 if len(build_failures) != 0: | |
| 172 raise CommandError( | |
| 173 "Failed to build one or more wheels" | |
| 174 ) | |
| 175 except PreviousBuildDirError: | |
| 176 options.no_clean = True | |
| 177 raise | |
| 178 finally: | |
| 179 if not options.no_clean: | |
| 180 requirement_set.cleanup_files() | |
| 181 wheel_cache.cleanup() |
