Mercurial > hg > martINI
annotate martini/config.py @ 12:4faed08eb8d8
py35
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Mon, 20 Feb 2017 14:34:18 -0800 |
parents | c77259f467a3 |
children | 904bb82c3308 |
rev | line source |
---|---|
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
3 import os |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
4 import sys |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
5 import urllib2 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
6 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
7 from ConfigParser import ConfigParser |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
8 from ConfigParser import InterpolationMissingOptionError |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
9 from ConfigParser import MissingSectionHeaderError |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
10 from ConfigParser import NoOptionError |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
11 from StringIO import StringIO |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
12 |
9 | 13 try: |
14 from collections import OrderedDict | |
15 except ImportError: | |
16 from odict import OrderedDict | |
17 | |
18 | |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
19 def file_pointer(resource): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
20 """returns a file-like object given a string""" |
9 | 21 # XXX could go in utils.py |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
22 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
23 if not isinstance(resource, basestring): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
24 # assume resource is already a file-like object |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
25 return resource |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
26 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
27 if os.path.exists(resource): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
28 return file(resource) |
11
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
29 if sum([resource.startswith(http) |
12 | 30 for http in ('http://', 'https://')]): |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
31 return urllib2.urlopen(resource) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
32 return StringIO(resource) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
33 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
34 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
35 class ConfigMunger(ConfigParser): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
36 """combine configuration from .ini files""" |
10 | 37 |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
38 def __init__(self, *conf, **kw): |
8
81aed4352851
make martini work with an ordered dictionary
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
39 ConfigParser.__init__(self, defaults=kw.get('defaults',{}), |
81aed4352851
make martini work with an ordered dictionary
Jeff Hammel <jhammel@mozilla.com>
parents:
7
diff
changeset
|
40 dict_type=OrderedDict) |
7 | 41 self.optionxform = str |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
42 self.read(*conf) |
10 | 43 |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
44 def __getitem__(self, section): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
45 """ |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
46 return an object with __getitem__ defined appropriately |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
47 to allow referencing like self['foo']['bar'] |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
48 """ |
10 | 49 return OrderedDict(self.items(section)) |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
50 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
51 def get(self, section, option, default=None, raw=False, vars=None): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
52 try: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
53 value = ConfigParser.get(self, section, option, raw, vars) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
54 except NoOptionError: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
55 return default |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
56 return value |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
57 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
58 def set(self, section, option, value): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
59 if section not in self.sections(): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
60 self.add_section(section) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
61 ConfigParser.set(self, section, option, value) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
62 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
63 def move_section(self, section, newname): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
64 if self.has_section(section): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
65 _section = self[section] |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
66 self.remove_section(section) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
67 else: |
11
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
68 _section = OrderedDict() |
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
69 self.read(OrderedDict(newname=_section)) |
9 | 70 |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
71 def dict(self): |
11
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
72 """ |
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
73 return a dictionary of dictionaries: |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
74 the outer with keys of section names; |
11
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
75 the inner with keys, values of the section |
c77259f467a3
hopefully OrderedDict preservation actually works now
Jeff Hammel <k0scist@gmail.com>
parents:
10
diff
changeset
|
76 """ |
9 | 77 return OrderedDict([(section, self[section]) |
78 for section in self.sections()]) | |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
79 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
80 def read(self, *ini): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
81 for _ini in ini: |
9 | 82 if isinstance(_ini, (dict, OrderedDict)): |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
83 for section, contents in _ini.items(): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
84 for option, value in contents.items(): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
85 self.set(section, option, value) |
9 | 86 elif isinstance(_ini, (list, tuple)): |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
87 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
88 # ensure list or tuple of 3-tuples |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
89 assert len([option for option in _ini |
9 | 90 if isinstance(option, tuple) |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
91 and len(option) == 3]) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
92 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
93 for section, option, value in _ini: |
9 | 94 self.set(section, option, value) |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
95 else: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
96 fp = file_pointer(_ini) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
97 try: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
98 self.readfp(fp) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
99 except MissingSectionHeaderError: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
100 fp.seek(0) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
101 fp = StringIO("[DEFAULTS]\n" + fp.read()) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
102 self.readfp(fp) |
9 | 103 |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
104 def missing(self): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
105 """returns missing variable names""" |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
106 |
9 | 107 missing = set() |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
108 for section in self.sections(): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
109 for key, val in self.items(section, raw=True): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
110 try: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
111 self.get(section, key) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
112 except InterpolationMissingOptionError, e: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
113 missing.add(e.reference) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
114 return missing |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
115 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
116 def tuples(self): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
117 """ |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
118 return options in format appropriate to trac: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
119 [ (section, option, value) ] |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
120 """ |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
121 options = [] |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
122 for section in self.sections(): |
9 | 123 options.extend([(section,) + item |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
124 for item in self.items(section)]) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
125 return options |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
126 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
127 def write(self, fp=sys.stdout, raw=False, sorted=True, vars=None): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
128 sections = self.sections() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
129 if sorted: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
130 sections.sort() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
131 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
132 for section in sections: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
133 print >> fp, '[%s]' % section |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
134 options = self.options(section) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
135 if sorted: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
136 options.sort() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
137 for option in options: |
6 | 138 print >> fp, "%s = %s" % (option, self.get(section, option, raw=raw, vars=vars)) |
0
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
139 if section != sections[-1]: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
140 print >> fp |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
141 |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
142 if __name__ == '__main__': |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
143 import sys |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
144 from optparse import OptionParser |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
145 parser = OptionParser() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
146 parser.add_option('--missing', action="store_true", default=False, |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
147 help="list missing template variables") |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
148 munger = ConfigMunger() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
149 options, args = parser.parse_args() |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
150 munger.read(*args) |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
151 if options.missing: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
152 for missing in munger.missing(): |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
153 print missing |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
154 else: |
3c3522ce6e3a
initial import of martINI from https://svn.openplans.org/svn/standalone/martINI/
k0s <k0scist@gmail.com>
parents:
diff
changeset
|
155 munger.write(sys.stdout) |