comparison python/dictarg.py @ 0:f3ab51c79813

adding configuration from https://svn.openplans.org/svn/config_jhammel/
author k0s <k0scist@gmail.com>
date Thu, 15 Oct 2009 11:41:26 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f3ab51c79813
1 #!/usr/bin/python
2
3 import sys
4
5 def dictarg(adict, argv=sys.argv[1:]):
6
7 shopts = {}
8
9 # build list of keys
10 for i in adict.keys():
11 for j in i:
12 s = str(j)
13 if len(s) == 1:
14 if shopts.has_key(s):
15 continue
16 shopts[s] = i
17 break
18 else:
19 print >> sys.stderr, "dictarg: couldn't generate key for '%s'" % i
20 sys.exit(1)
21
22 optstring = "?"
23 for i in shopts.keys():
24 optstring += i + ':' # all these options should have arguments
25
26 # look for command line args
27 import getopt
28
29 opts, args = getopt.getopt(argv, optstring)
30
31 if ('-?', '') in opts:
32 print 'Options:'
33 for i in shopts:
34 print '-%s %s [%s]' % (i, shopts[i], adict[shopts[i]])
35 sys.exit(0)
36
37 for o, v in opts:
38 o = o[1:] # cut off the dash
39 adict[shopts[o]] = v
40
41 # test if invoked from command line
42 if __name__ == '__main__':
43 adict = {}
44 for i in sys.argv:
45 adict[i] = len(i)
46
47 # print the help
48 dictarg(adict, ['-?'])
49
50 # test functionality
51 print 'Enter test arguments: ',
52 line = sys.stdin.readline()[:-1].split(' ')
53 dictarg(adict, line)
54 print adict