annotate nagslang/options.py @ 14:17b233a54651

Docstring
author Stefano Rivera <stefano@rivera.za.net>
date Sun, 01 Sep 2013 14:19:31 +0200
parents b410c7153d52
children 7b121ed73b95
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
1 import optparse
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
2 import os
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
3
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
4 from nagslang.constants import DEFAULTS
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
5
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
6
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
7 class AttrDict(dict):
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
8 '''A dict with attribute access'''
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
9 def __getattr__(self, attr):
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
10 return self[attr]
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
11
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
12
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
13 options = AttrDict()
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
14
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
15
10
f7a0d6fd9f00 Some startup code
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
16 def parse_args(args):
14
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
17 '''
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
18 Parse arguments and store them in the options dictionary.
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
19
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
20 Note: If you add arguments, you need to add an appropriate default to the
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
21 DEFAULTS dict.
17b233a54651 Docstring
Stefano Rivera <stefano@rivera.za.net>
parents: 13
diff changeset
22 '''
13
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
23 options.update(DEFAULTS)
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
24
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
25 options.debug = 'DEBUG' in os.environ
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
26
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
27 parser = optparse.OptionParser()
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
28 parser.add_option('--no-sound',
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
29 dest='sound', action='store_false', default=True,
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
30 help='Disable sound')
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
31 if options.debug:
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
32 parser.add_option('--area', help='Initial area')
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
33
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
34 opts, _ = parser.parse_args(args)
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
35
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
36 for k in DEFAULTS:
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
37 if getattr(opts, k, None) is not None:
b410c7153d52 Option parsing
Stefano Rivera <stefano@rivera.za.net>
parents: 10
diff changeset
38 options[k] = getattr(opts, k)