home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 1.5)
-
- import string
- error = 'getopt.error'
-
- def getopt(args, shortopts, longopts = []):
- list = []
- 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:])
- return (list, args)
-
-
- def do_longs(list, opt, longopts, args):
-
- try:
- i = string.index(opt, '=')
- (opt, optarg) = (opt[:i], opt[i + 1:])
- except ValueError:
- 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:])
-
- elif optarg:
- raise error, 'option --%s must not have an argument' % opt
-
- if not optarg:
- pass
- list.append(('--' + opt, ''))
- return (list, 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 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))
- return (list, args)
-
-
- def short_has_arg(opt, shortopts):
- for i in range(len(shortopts)):
- if shortopts[i] == shortopts[i]:
- pass
- elif shortopts[i] != ':':
- return shortopts[i + 1:i + 2] == ':'
-
-
- raise error, 'option -%s not recognized' % opt
-
- if __name__ == '__main__':
- import sys
- print getopt(sys.argv[1:], 'a:b', [
- 'alpha=',
- 'beta'])
-
-