Mercurial > hg > MakeItSo
comparison makeitso/template.py @ 63:b91133e3b02d
override get_variables for API template; could instead do this in the ctor, alternately
| author | Jeff Hammel <jhammel@mozilla.com> | 
|---|---|
| date | Thu, 06 Jan 2011 17:58:34 -0800 | 
| parents | 30100690ad3f | 
| children | c20277dbf8fa | 
   comparison
  equal
  deleted
  inserted
  replaced
| 62:30100690ad3f | 63:b91133e3b02d | 
|---|---|
| 70 """ | 70 """ | 
| 71 - output : output file or directory | 71 - output : output file or directory | 
| 72 - interactive : whether tointeractively get variables | 72 - interactive : whether tointeractively get variables | 
| 73 - usedefaults : try to use the default values if not specified | 73 - usedefaults : try to use the default values if not specified | 
| 74 """ | 74 """ | 
| 75 | 75 | 
| 76 # boilerplate | |
| 76 assert self.templates | 77 assert self.templates | 
| 77 self.output = output | 78 self.output = output | 
| 78 self.interactive = interactive | 79 self.interactive = interactive | 
| 79 self.location = os.path.dirname(os.path.abspath(__file__)) | 80 self.location = os.path.dirname(os.path.abspath(__file__)) | 
| 80 self.defaults = variables.copy() | 81 self.defaults = variables.copy() | 
| 82 self.usedefaults = usedefaults | |
| 81 | 83 | 
| 82 # make a dictionary of the variables for lookup convenience | 84 # make a dictionary of the variables for lookup convenience | 
| 83 self.vardict = {} | 85 self.vardict = {} | 
| 84 for i in self.vars: | 86 for i in self.vars: | 
| 85 self.vardict[i.name] = i | 87 self.vardict[i.name] = i | 
| 92 path = template | 94 path = template | 
| 93 else: | 95 else: | 
| 94 path = os.path.join(self.location, template) | 96 path = os.path.join(self.location, template) | 
| 95 assert os.path.exists(template) | 97 assert os.path.exists(template) | 
| 96 | 98 | 
| 99 def get_variables(self, **variables): | |
| 100 # XXX could do this in the ctor | |
| 101 vars = ContentTemplate.get_variables(self, **variables) | |
| 102 if self.usedefaults: | |
| 103 for variable in self.vars: | |
| 104 if variable.name in vars: | |
| 105 continue | |
| 106 if variable.default is not Undefined: | |
| 107 vars[variable.name] = variable.default | |
| 108 return vars | |
| 109 | |
| 97 def missing(self, **variables): | 110 def missing(self, **variables): | 
| 111 vars = self.get_variables(**variables) | |
| 98 missing = set([]) | 112 missing = set([]) | 
| 99 if self.look: | 113 if self.look: | 
| 100 pass | 114 pass | 
| 101 else: | 115 else: | 
| 102 for var in self.vars: | 116 for var in self.vars: | 
| 103 if self.usedefaults: | 117 if self.usedefaults: | 
| 104 pass | 118 import pdb; pdb.set_trace() | 
| 105 else: | 119 else: | 
| 106 pass | 120 pass | 
| 107 | 121 | 
| 108 def pre(self, **variables): | 122 def pre(self, **variables): | 
| 109 """do stuff before interpolation""" | 123 """do stuff before interpolation""" | 
