diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/mercurial/fancyopts.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/mercurial/fancyopts.py')
-rw-r--r-- | sys/lib/python/mercurial/fancyopts.py | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/sys/lib/python/mercurial/fancyopts.py b/sys/lib/python/mercurial/fancyopts.py deleted file mode 100644 index 5acf0143d..000000000 --- a/sys/lib/python/mercurial/fancyopts.py +++ /dev/null @@ -1,110 +0,0 @@ -# fancyopts.py - better command line parsing -# -# Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2, incorporated herein by reference. - -import getopt - -def gnugetopt(args, options, longoptions): - """Parse options mostly like getopt.gnu_getopt. - - This is different from getopt.gnu_getopt in that an argument of - will - become an argument of - instead of vanishing completely. - """ - extraargs = [] - if '--' in args: - stopindex = args.index('--') - extraargs = args[stopindex+1:] - args = args[:stopindex] - opts, parseargs = getopt.getopt(args, options, longoptions) - args = [] - while parseargs: - arg = parseargs.pop(0) - if arg and arg[0] == '-' and len(arg) > 1: - parseargs.insert(0, arg) - topts, newparseargs = getopt.getopt(parseargs, options, longoptions) - opts = opts + topts - parseargs = newparseargs - else: - args.append(arg) - args.extend(extraargs) - return opts, args - - -def fancyopts(args, options, state, gnu=False): - """ - read args, parse options, and store options in state - - each option is a tuple of: - - short option or '' - long option - default value - description - - option types include: - - boolean or none - option sets variable in state to true - string - parameter string is stored in state - list - parameter string is added to a list - integer - parameter strings is stored as int - function - call function with parameter - - non-option args are returned - """ - namelist = [] - shortlist = '' - argmap = {} - defmap = {} - - for short, name, default, comment in options: - # convert opts to getopt format - oname = name - name = name.replace('-', '_') - - argmap['-' + short] = argmap['--' + oname] = name - defmap[name] = default - - # copy defaults to state - if isinstance(default, list): - state[name] = default[:] - elif hasattr(default, '__call__'): - state[name] = None - else: - state[name] = default - - # does it take a parameter? - if not (default is None or default is True or default is False): - if short: short += ':' - if oname: oname += '=' - if short: - shortlist += short - if name: - namelist.append(oname) - - # parse arguments - if gnu: - parse = gnugetopt - else: - parse = getopt.getopt - opts, args = parse(args, shortlist, namelist) - - # transfer result to state - for opt, val in opts: - name = argmap[opt] - t = type(defmap[name]) - if t is type(fancyopts): - state[name] = defmap[name](val) - elif t is type(1): - state[name] = int(val) - elif t is type(''): - state[name] = val - elif t is type([]): - state[name].append(val) - elif t is type(None) or t is type(False): - state[name] = True - - # return unparsed args - return args |