summaryrefslogtreecommitdiff
path: root/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py
diff options
context:
space:
mode:
authorNishanth Amuluru2011-01-11 22:41:51 +0530
committerNishanth Amuluru2011-01-11 22:41:51 +0530
commitb03203c8cb991c16ac8a3d74c8c4078182d0bb48 (patch)
tree7cf13b2deacbfaaec99edb431b83ddd5ea734a52 /eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py
parent0c50203cd9eb94b819883c3110922e873f003138 (diff)
downloadpytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.tar.gz
pytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.tar.bz2
pytask-b03203c8cb991c16ac8a3d74c8c4078182d0bb48.zip
removed all the buildout files
Diffstat (limited to 'eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py')
-rw-r--r--eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py117
1 files changed, 0 insertions, 117 deletions
diff --git a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py b/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py
deleted file mode 100644
index 7c9e07f..0000000
--- a/eggs/mercurial-1.7.3-py2.6-linux-x86_64.egg/mercurial/fancyopts.py
+++ /dev/null
@@ -1,117 +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 or any later version.
-
-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 value label(optional)
-
- 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 option in options:
- if len(option) == 5:
- short, name, default, comment, dummy = option
- else:
- short, name, default, comment = option
- # 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