Mercurial > hg > MakeItSo
comparison makeitso/makeitso.py @ 33:190f310f2f5e
more stubbing of template classes
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Wed, 22 Dec 2010 18:51:08 -0800 |
parents | 9422d4ad6c2c |
children | 46c2d0a7335a |
comparison
equal
deleted
inserted
replaced
32:9422d4ad6c2c | 33:190f310f2f5e |
---|---|
13 import urllib | 13 import urllib |
14 # TODO: may have to use urllib2.urlopen to get reasonable timeouts | 14 # TODO: may have to use urllib2.urlopen to get reasonable timeouts |
15 | 15 |
16 from optparse import OptionParser | 16 from optparse import OptionParser |
17 | 17 |
18 # URL of this file | 18 # URL of -this file- |
19 location = 'http://k0s.org/mozilla/hg/MakeItSo/raw-file/tip/makeitso/makeitso.py' | 19 location = 'http://k0s.org/mozilla/hg/MakeItSo/raw-file/tip/makeitso/makeitso.py' |
20 | |
21 ### import tempita | |
20 | 22 |
21 # URL of tempita | 23 # URL of tempita |
22 tempita_location = 'http://bitbucket.org/ianb/tempita/raw-file/tip/tempita/' | 24 tempita_location = 'http://bitbucket.org/ianb/tempita/raw-file/tip/tempita/' |
23 | 25 |
24 def cleanup(): | 26 def cleanup(): |
25 # remove temporary net module directory | 27 # remove temporary net module directory |
26 if 'tempdir' in globals(): | 28 if 'tempdir' in globals(): |
27 shutil.remove(tempdir) | 29 shutil.remove(tempdir) |
28 | |
29 try: | 30 try: |
30 import tempita | 31 import tempita |
31 except ImportError: | 32 except ImportError: |
32 | 33 |
33 # Get tempita from the net | 34 # Get tempita from the net |
88 class MissingVariablesException(Exception): | 89 class MissingVariablesException(Exception): |
89 """exception for (non-interactive) missing variables""" | 90 """exception for (non-interactive) missing variables""" |
90 def __init__(self, message, missing): | 91 def __init__(self, message, missing): |
91 self.missing = missing | 92 self.missing = missing |
92 | 93 |
93 class ContentTemplate(tempita.Template): | |
94 """MakeItSo's extension of tempita's Template class""" | |
95 defaults = {'include': include} | |
96 def __init__(self): | |
97 raise NotImplementedError | |
98 | |
99 class URITemplate(tempita.Template): | |
100 | |
101 def __init__(self, interactive=True): | |
102 # TODO: automagically tell if the program is interactive or not | |
103 raise NotImplementedError | |
104 | |
105 class DirectoryTemplate(tempita.Template): | |
106 def __init__(self): | |
107 raise NotImplementedError | |
108 | |
109 def get_missing(name_error): | 94 def get_missing(name_error): |
110 """ | 95 """ |
111 This is a horrible hack because python doesn't do the proper thing | 96 This is a horrible hack because python doesn't do the proper thing |
112 via eval and return the name of the variable; instead, it just gives | 97 via eval and return the name of the variable; instead, it just gives |
113 you a message: | 98 you a message: |
118 """ | 103 """ |
119 message = name_error.args[0] | 104 message = name_error.args[0] |
120 varname = message.split("'")[1] | 105 varname = message.split("'")[1] |
121 return varname | 106 return varname |
122 | 107 |
108 ### template classes | |
109 | |
110 class ContentTemplate(tempita.Template): | |
111 """MakeItSo's extension of tempita's Template class""" | |
112 defaults = {'include': include} | |
113 def __init__(self, content, interactive=True): | |
114 tempita.Template.__init__(self, content) | |
115 # TODO: automagically tell if the program is interactive or not | |
116 self.interactive = True | |
117 raise NotImplementedError | |
118 | |
119 class URITemplate(tempita.Template): | |
120 | |
121 def __init__(self, interactive=True): | |
122 raise NotImplementedError | |
123 | |
124 class DirectoryTemplate(tempita.Template): | |
125 def __init__(self): | |
126 raise NotImplementedError | |
127 | |
123 def missing_variables(template, variables): | 128 def missing_variables(template, variables): |
124 """return additional variables needed""" | 129 """return additional variables needed""" |
125 vars = variables.copy() | 130 vars = variables.copy() |
126 missing = set([]) | 131 missing = set([]) |
127 while True: | 132 while True: |