Mercurial > repos > bcclaywell > argo_navis
comparison venv/lib/python2.7/site-packages/pip/cmdoptions.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
| author | bcclaywell |
|---|---|
| date | Mon, 12 Oct 2015 17:43:33 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d67268158946 |
|---|---|
| 1 """ | |
| 2 shared options and groups | |
| 3 | |
| 4 The principle here is to define options once, but *not* instantiate them | |
| 5 globally. One reason being that options with action='append' can carry state | |
| 6 between parses. pip parse's general options twice internally, and shouldn't | |
| 7 pass on state. To be consistent, all options will follow this design. | |
| 8 | |
| 9 """ | |
| 10 from __future__ import absolute_import | |
| 11 | |
| 12 import copy | |
| 13 from optparse import OptionGroup, SUPPRESS_HELP, Option | |
| 14 from pip.index import PyPI | |
| 15 from pip.locations import CA_BUNDLE_PATH, USER_CACHE_DIR, src_prefix | |
| 16 | |
| 17 | |
| 18 def make_option_group(group, parser): | |
| 19 """ | |
| 20 Return an OptionGroup object | |
| 21 group -- assumed to be dict with 'name' and 'options' keys | |
| 22 parser -- an optparse Parser | |
| 23 """ | |
| 24 option_group = OptionGroup(parser, group['name']) | |
| 25 for option in group['options']: | |
| 26 option_group.add_option(option.make()) | |
| 27 return option_group | |
| 28 | |
| 29 | |
| 30 class OptionMaker(object): | |
| 31 """Class that stores the args/kwargs that would be used to make an Option, | |
| 32 for making them later, and uses deepcopy's to reset state.""" | |
| 33 | |
| 34 def __init__(self, *args, **kwargs): | |
| 35 self.args = args | |
| 36 self.kwargs = kwargs | |
| 37 | |
| 38 def make(self): | |
| 39 args_copy = copy.deepcopy(self.args) | |
| 40 kwargs_copy = copy.deepcopy(self.kwargs) | |
| 41 return Option(*args_copy, **kwargs_copy) | |
| 42 | |
| 43 ########### | |
| 44 # options # | |
| 45 ########### | |
| 46 | |
| 47 help_ = OptionMaker( | |
| 48 '-h', '--help', | |
| 49 dest='help', | |
| 50 action='help', | |
| 51 help='Show help.') | |
| 52 | |
| 53 isolated_mode = OptionMaker( | |
| 54 "--isolated", | |
| 55 dest="isolated_mode", | |
| 56 action="store_true", | |
| 57 default=False, | |
| 58 help=( | |
| 59 "Run pip in an isolated mode, ignoring environment variables and user " | |
| 60 "configuration." | |
| 61 ), | |
| 62 ) | |
| 63 | |
| 64 require_virtualenv = OptionMaker( | |
| 65 # Run only if inside a virtualenv, bail if not. | |
| 66 '--require-virtualenv', '--require-venv', | |
| 67 dest='require_venv', | |
| 68 action='store_true', | |
| 69 default=False, | |
| 70 help=SUPPRESS_HELP) | |
| 71 | |
| 72 verbose = OptionMaker( | |
| 73 '-v', '--verbose', | |
| 74 dest='verbose', | |
| 75 action='count', | |
| 76 default=0, | |
| 77 help='Give more output. Option is additive, and can be used up to 3 times.' | |
| 78 ) | |
| 79 | |
| 80 version = OptionMaker( | |
| 81 '-V', '--version', | |
| 82 dest='version', | |
| 83 action='store_true', | |
| 84 help='Show version and exit.') | |
| 85 | |
| 86 quiet = OptionMaker( | |
| 87 '-q', '--quiet', | |
| 88 dest='quiet', | |
| 89 action='count', | |
| 90 default=0, | |
| 91 help='Give less output.') | |
| 92 | |
| 93 log = OptionMaker( | |
| 94 "--log", "--log-file", "--local-log", | |
| 95 dest="log", | |
| 96 metavar="path", | |
| 97 help="Path to a verbose appending log." | |
| 98 ) | |
| 99 | |
| 100 log_explicit_levels = OptionMaker( | |
| 101 # Writes the log levels explicitely to the log' | |
| 102 '--log-explicit-levels', | |
| 103 dest='log_explicit_levels', | |
| 104 action='store_true', | |
| 105 default=False, | |
| 106 help=SUPPRESS_HELP) | |
| 107 | |
| 108 no_input = OptionMaker( | |
| 109 # Don't ask for input | |
| 110 '--no-input', | |
| 111 dest='no_input', | |
| 112 action='store_true', | |
| 113 default=False, | |
| 114 help=SUPPRESS_HELP) | |
| 115 | |
| 116 proxy = OptionMaker( | |
| 117 '--proxy', | |
| 118 dest='proxy', | |
| 119 type='str', | |
| 120 default='', | |
| 121 help="Specify a proxy in the form [user:passwd@]proxy.server:port.") | |
| 122 | |
| 123 retries = OptionMaker( | |
| 124 '--retries', | |
| 125 dest='retries', | |
| 126 type='int', | |
| 127 default=5, | |
| 128 help="Maximum number of retries each connection should attempt " | |
| 129 "(default %default times).") | |
| 130 | |
| 131 timeout = OptionMaker( | |
| 132 '--timeout', '--default-timeout', | |
| 133 metavar='sec', | |
| 134 dest='timeout', | |
| 135 type='float', | |
| 136 default=15, | |
| 137 help='Set the socket timeout (default %default seconds).') | |
| 138 | |
| 139 default_vcs = OptionMaker( | |
| 140 # The default version control system for editables, e.g. 'svn' | |
| 141 '--default-vcs', | |
| 142 dest='default_vcs', | |
| 143 type='str', | |
| 144 default='', | |
| 145 help=SUPPRESS_HELP) | |
| 146 | |
| 147 skip_requirements_regex = OptionMaker( | |
| 148 # A regex to be used to skip requirements | |
| 149 '--skip-requirements-regex', | |
| 150 dest='skip_requirements_regex', | |
| 151 type='str', | |
| 152 default='', | |
| 153 help=SUPPRESS_HELP) | |
| 154 | |
| 155 exists_action = OptionMaker( | |
| 156 # Option when path already exist | |
| 157 '--exists-action', | |
| 158 dest='exists_action', | |
| 159 type='choice', | |
| 160 choices=['s', 'i', 'w', 'b'], | |
| 161 default=[], | |
| 162 action='append', | |
| 163 metavar='action', | |
| 164 help="Default action when a path already exists: " | |
| 165 "(s)witch, (i)gnore, (w)ipe, (b)ackup.") | |
| 166 | |
| 167 cert = OptionMaker( | |
| 168 '--cert', | |
| 169 dest='cert', | |
| 170 type='str', | |
| 171 default=CA_BUNDLE_PATH, | |
| 172 metavar='path', | |
| 173 help="Path to alternate CA bundle.") | |
| 174 | |
| 175 client_cert = OptionMaker( | |
| 176 '--client-cert', | |
| 177 dest='client_cert', | |
| 178 type='str', | |
| 179 default=None, | |
| 180 metavar='path', | |
| 181 help="Path to SSL client certificate, a single file containing the " | |
| 182 "private key and the certificate in PEM format.") | |
| 183 | |
| 184 index_url = OptionMaker( | |
| 185 '-i', '--index-url', '--pypi-url', | |
| 186 dest='index_url', | |
| 187 metavar='URL', | |
| 188 default=PyPI.simple_url, | |
| 189 help='Base URL of Python Package Index (default %default).') | |
| 190 | |
| 191 extra_index_url = OptionMaker( | |
| 192 '--extra-index-url', | |
| 193 dest='extra_index_urls', | |
| 194 metavar='URL', | |
| 195 action='append', | |
| 196 default=[], | |
| 197 help='Extra URLs of package indexes to use in addition to --index-url.') | |
| 198 | |
| 199 no_index = OptionMaker( | |
| 200 '--no-index', | |
| 201 dest='no_index', | |
| 202 action='store_true', | |
| 203 default=False, | |
| 204 help='Ignore package index (only looking at --find-links URLs instead).') | |
| 205 | |
| 206 find_links = OptionMaker( | |
| 207 '-f', '--find-links', | |
| 208 dest='find_links', | |
| 209 action='append', | |
| 210 default=[], | |
| 211 metavar='url', | |
| 212 help="If a url or path to an html file, then parse for links to archives. " | |
| 213 "If a local path or file:// url that's a directory, then look for " | |
| 214 "archives in the directory listing.") | |
| 215 | |
| 216 # TODO: Remove after 6.0 | |
| 217 use_mirrors = OptionMaker( | |
| 218 '-M', '--use-mirrors', | |
| 219 dest='use_mirrors', | |
| 220 action='store_true', | |
| 221 default=False, | |
| 222 help=SUPPRESS_HELP) | |
| 223 | |
| 224 # TODO: Remove after 6.0 | |
| 225 mirrors = OptionMaker( | |
| 226 '--mirrors', | |
| 227 dest='mirrors', | |
| 228 metavar='URL', | |
| 229 action='append', | |
| 230 default=[], | |
| 231 help=SUPPRESS_HELP) | |
| 232 | |
| 233 allow_external = OptionMaker( | |
| 234 "--allow-external", | |
| 235 dest="allow_external", | |
| 236 action="append", | |
| 237 default=[], | |
| 238 metavar="PACKAGE", | |
| 239 help="Allow the installation of a package even if it is externally hosted", | |
| 240 ) | |
| 241 | |
| 242 allow_all_external = OptionMaker( | |
| 243 "--allow-all-external", | |
| 244 dest="allow_all_external", | |
| 245 action="store_true", | |
| 246 default=False, | |
| 247 help="Allow the installation of all packages that are externally hosted", | |
| 248 ) | |
| 249 | |
| 250 trusted_host = OptionMaker( | |
| 251 "--trusted-host", | |
| 252 dest="trusted_hosts", | |
| 253 action="append", | |
| 254 metavar="HOSTNAME", | |
| 255 default=[], | |
| 256 help="Mark this host as trusted, even though it does not have valid or " | |
| 257 "any HTTPS.", | |
| 258 ) | |
| 259 | |
| 260 # Remove after 7.0 | |
| 261 no_allow_external = OptionMaker( | |
| 262 "--no-allow-external", | |
| 263 dest="allow_all_external", | |
| 264 action="store_false", | |
| 265 default=False, | |
| 266 help=SUPPRESS_HELP, | |
| 267 ) | |
| 268 | |
| 269 # Remove --allow-insecure after 7.0 | |
| 270 allow_unsafe = OptionMaker( | |
| 271 "--allow-unverified", "--allow-insecure", | |
| 272 dest="allow_unverified", | |
| 273 action="append", | |
| 274 default=[], | |
| 275 metavar="PACKAGE", | |
| 276 help="Allow the installation of a package even if it is hosted " | |
| 277 "in an insecure and unverifiable way", | |
| 278 ) | |
| 279 | |
| 280 # Remove after 7.0 | |
| 281 no_allow_unsafe = OptionMaker( | |
| 282 "--no-allow-insecure", | |
| 283 dest="allow_all_insecure", | |
| 284 action="store_false", | |
| 285 default=False, | |
| 286 help=SUPPRESS_HELP | |
| 287 ) | |
| 288 | |
| 289 # Remove after 1.5 | |
| 290 process_dependency_links = OptionMaker( | |
| 291 "--process-dependency-links", | |
| 292 dest="process_dependency_links", | |
| 293 action="store_true", | |
| 294 default=False, | |
| 295 help="Enable the processing of dependency links.", | |
| 296 ) | |
| 297 | |
| 298 requirements = OptionMaker( | |
| 299 '-r', '--requirement', | |
| 300 dest='requirements', | |
| 301 action='append', | |
| 302 default=[], | |
| 303 metavar='file', | |
| 304 help='Install from the given requirements file. ' | |
| 305 'This option can be used multiple times.') | |
| 306 | |
| 307 editable = OptionMaker( | |
| 308 '-e', '--editable', | |
| 309 dest='editables', | |
| 310 action='append', | |
| 311 default=[], | |
| 312 metavar='path/url', | |
| 313 help=('Install a project in editable mode (i.e. setuptools ' | |
| 314 '"develop mode") from a local project path or a VCS url.'), | |
| 315 ) | |
| 316 | |
| 317 src = OptionMaker( | |
| 318 '--src', '--source', '--source-dir', '--source-directory', | |
| 319 dest='src_dir', | |
| 320 metavar='dir', | |
| 321 default=src_prefix, | |
| 322 help='Directory to check out editable projects into. ' | |
| 323 'The default in a virtualenv is "<venv path>/src". ' | |
| 324 'The default for global installs is "<current dir>/src".' | |
| 325 ) | |
| 326 | |
| 327 use_wheel = OptionMaker( | |
| 328 '--use-wheel', | |
| 329 dest='use_wheel', | |
| 330 action='store_true', | |
| 331 help=SUPPRESS_HELP, | |
| 332 ) | |
| 333 | |
| 334 no_use_wheel = OptionMaker( | |
| 335 '--no-use-wheel', | |
| 336 dest='use_wheel', | |
| 337 action='store_false', | |
| 338 default=True, | |
| 339 help=('Do not Find and prefer wheel archives when searching indexes and ' | |
| 340 'find-links locations.'), | |
| 341 ) | |
| 342 | |
| 343 cache_dir = OptionMaker( | |
| 344 "--cache-dir", | |
| 345 dest="cache_dir", | |
| 346 default=USER_CACHE_DIR, | |
| 347 metavar="dir", | |
| 348 help="Store the cache data in <dir>." | |
| 349 ) | |
| 350 | |
| 351 no_cache = OptionMaker( | |
| 352 "--no-cache-dir", | |
| 353 dest="cache_dir", | |
| 354 action="store_false", | |
| 355 help="Disable the cache.", | |
| 356 ) | |
| 357 | |
| 358 download_cache = OptionMaker( | |
| 359 '--download-cache', | |
| 360 dest='download_cache', | |
| 361 default=None, | |
| 362 help=SUPPRESS_HELP) | |
| 363 | |
| 364 no_deps = OptionMaker( | |
| 365 '--no-deps', '--no-dependencies', | |
| 366 dest='ignore_dependencies', | |
| 367 action='store_true', | |
| 368 default=False, | |
| 369 help="Don't install package dependencies.") | |
| 370 | |
| 371 build_dir = OptionMaker( | |
| 372 '-b', '--build', '--build-dir', '--build-directory', | |
| 373 dest='build_dir', | |
| 374 metavar='dir', | |
| 375 help='Directory to unpack packages into and build in.' | |
| 376 ) | |
| 377 | |
| 378 install_options = OptionMaker( | |
| 379 '--install-option', | |
| 380 dest='install_options', | |
| 381 action='append', | |
| 382 metavar='options', | |
| 383 help="Extra arguments to be supplied to the setup.py install " | |
| 384 "command (use like --install-option=\"--install-scripts=/usr/local/" | |
| 385 "bin\"). Use multiple --install-option options to pass multiple " | |
| 386 "options to setup.py install. If you are using an option with a " | |
| 387 "directory path, be sure to use absolute path.") | |
| 388 | |
| 389 global_options = OptionMaker( | |
| 390 '--global-option', | |
| 391 dest='global_options', | |
| 392 action='append', | |
| 393 metavar='options', | |
| 394 help="Extra global options to be supplied to the setup.py " | |
| 395 "call before the install command.") | |
| 396 | |
| 397 no_clean = OptionMaker( | |
| 398 '--no-clean', | |
| 399 action='store_true', | |
| 400 default=False, | |
| 401 help="Don't clean up build directories.") | |
| 402 | |
| 403 disable_pip_version_check = OptionMaker( | |
| 404 "--disable-pip-version-check", | |
| 405 dest="disable_pip_version_check", | |
| 406 action="store_true", | |
| 407 default=False, | |
| 408 help="Don't periodically check PyPI to determine whether a new version " | |
| 409 "of pip is available for download. Implied with --no-index.") | |
| 410 | |
| 411 ########## | |
| 412 # groups # | |
| 413 ########## | |
| 414 | |
| 415 general_group = { | |
| 416 'name': 'General Options', | |
| 417 'options': [ | |
| 418 help_, | |
| 419 isolated_mode, | |
| 420 require_virtualenv, | |
| 421 verbose, | |
| 422 version, | |
| 423 quiet, | |
| 424 log, | |
| 425 log_explicit_levels, | |
| 426 no_input, | |
| 427 proxy, | |
| 428 retries, | |
| 429 timeout, | |
| 430 default_vcs, | |
| 431 skip_requirements_regex, | |
| 432 exists_action, | |
| 433 trusted_host, | |
| 434 cert, | |
| 435 client_cert, | |
| 436 cache_dir, | |
| 437 no_cache, | |
| 438 disable_pip_version_check, | |
| 439 ] | |
| 440 } | |
| 441 | |
| 442 index_group = { | |
| 443 'name': 'Package Index Options', | |
| 444 'options': [ | |
| 445 index_url, | |
| 446 extra_index_url, | |
| 447 no_index, | |
| 448 find_links, | |
| 449 use_mirrors, | |
| 450 mirrors, | |
| 451 allow_external, | |
| 452 allow_all_external, | |
| 453 no_allow_external, | |
| 454 allow_unsafe, | |
| 455 no_allow_unsafe, | |
| 456 process_dependency_links, | |
| 457 ] | |
| 458 } |
