summaryrefslogtreecommitdiffstats
path: root/Lib/getopt.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/getopt.py')
-rw-r--r--Lib/getopt.py82
1 files changed, 41 insertions, 41 deletions
diff --git a/Lib/getopt.py b/Lib/getopt.py
index 5d71b28..e93f7d1 100644
--- a/Lib/getopt.py
+++ b/Lib/getopt.py
@@ -21,11 +21,11 @@
# detects an error.
# It returns two values:
-# (1) a list of pairs (option, option_argument) giving the options in
-# the order in which they were specified. (I'd use a dictionary
-# but applications may depend on option order or multiple
-# occurrences.) Boolean options have '' as option_argument.
-# (2) the list of remaining arguments (may be empty).
+# (1) a list of pairs (option, option_argument) giving the options in
+# the order in which they were specified. (I'd use a dictionary
+# but applications may depend on option order or multiple
+# occurrences.) Boolean options have '' as option_argument.
+# (2) the list of remaining arguments (may be empty).
import string
@@ -36,31 +36,31 @@ def getopt(args, shortopts, longopts = []):
longopts = longopts[:]
longopts.sort()
while args and args[0][:1] == '-' and args[0] != '-':
- if args[0] == '--':
- args = args[1:]
- break
- if args[0][:2] == '--':
- list, args = do_longs(list, args[0][2:], longopts, args[1:])
- else:
- list, args = do_shorts(list, args[0][1:], shortopts, args[1:])
+ if args[0] == '--':
+ args = args[1:]
+ break
+ if args[0][:2] == '--':
+ list, args = do_longs(list, args[0][2:], longopts, args[1:])
+ else:
+ list, args = do_shorts(list, args[0][1:], shortopts, args[1:])
return list, args
def do_longs(list, opt, longopts, args):
try:
- i = string.index(opt, '=')
- opt, optarg = opt[:i], opt[i+1:]
+ i = string.index(opt, '=')
+ opt, optarg = opt[:i], opt[i+1:]
except ValueError:
- optarg = None
+ optarg = None
has_arg, opt = long_has_args(opt, longopts)
if has_arg:
- if optarg is None:
- if not args:
- raise error, 'option --%s requires argument' % opt
- optarg, args = args[0], args[1:]
+ if optarg is None:
+ if not args:
+ raise error, 'option --%s requires argument' % opt
+ optarg, args = args[0], args[1:]
elif optarg:
- raise error, 'option --%s must not have an argument' % opt
+ raise error, 'option --%s must not have an argument' % opt
list.append(('--' + opt, optarg or ''))
return list, args
@@ -70,35 +70,35 @@ def do_longs(list, opt, longopts, args):
def long_has_args(opt, longopts):
optlen = len(opt)
for i in range(len(longopts)):
- x, y = longopts[i][:optlen], longopts[i][optlen:]
- if opt != x:
- continue
- if y != '' and y != '=' and i+1 < len(longopts):
- if opt == longopts[i+1][:optlen]:
- raise error, 'option --%s not a unique prefix' % opt
- if longopts[i][-1:] in ('=', ):
- return 1, longopts[i][:-1]
- return 0, longopts[i]
+ x, y = longopts[i][:optlen], longopts[i][optlen:]
+ if opt != x:
+ continue
+ if y != '' and y != '=' and i+1 < len(longopts):
+ if opt == longopts[i+1][:optlen]:
+ raise error, 'option --%s not a unique prefix' % opt
+ if longopts[i][-1:] in ('=', ):
+ return 1, longopts[i][:-1]
+ return 0, longopts[i]
raise error, 'option --' + opt + ' not recognized'
def do_shorts(list, optstring, shortopts, args):
while optstring != '':
- opt, optstring = optstring[0], optstring[1:]
- if short_has_arg(opt, shortopts):
- if optstring == '':
- if not args:
- raise error, 'option -%s requires argument' % opt
- optstring, args = args[0], args[1:]
- optarg, optstring = optstring, ''
- else:
- optarg = ''
- list.append(('-' + opt, optarg))
+ opt, optstring = optstring[0], optstring[1:]
+ if short_has_arg(opt, shortopts):
+ if optstring == '':
+ if not args:
+ raise error, 'option -%s requires argument' % opt
+ optstring, args = args[0], args[1:]
+ optarg, optstring = optstring, ''
+ else:
+ optarg = ''
+ list.append(('-' + opt, optarg))
return list, args
def short_has_arg(opt, shortopts):
for i in range(len(shortopts)):
- if opt == shortopts[i] != ':':
- return shortopts[i+1:i+2] == ':'
+ if opt == shortopts[i] != ':':
+ return shortopts[i+1:i+2] == ':'
raise error, 'option -%s not recognized' % opt
if __name__ == '__main__':