Mercurial > hg > MakeItSo
comparison makeitso/template.py @ 58:112bf081148c
make a full CLI class for a single API template
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Thu, 06 Jan 2011 15:54:55 -0800 |
| parents | 728cae02a6ed |
| children | 30100690ad3f |
comparison
equal
deleted
inserted
replaced
| 57:074a32920f7c | 58:112bf081148c |
|---|---|
| 12 Undefined = Undefined() # singleton | 12 Undefined = Undefined() # singleton |
| 13 | 13 |
| 14 class Variable(object): | 14 class Variable(object): |
| 15 """variable object for MakeItSo templates""" | 15 """variable object for MakeItSo templates""" |
| 16 | 16 |
| 17 def __init__(self, name, default=Undefined, description=None, | 17 def __init__(self, name, description=None, default=Undefined, |
| 18 cast=None): | 18 cast=None): |
| 19 self.name = name | 19 self.name = name |
| 20 self.default = default | 20 self.default = default |
| 21 self.description = description | 21 self.description = description |
| 22 | 22 |
| 61 vars = [] | 61 vars = [] |
| 62 | 62 |
| 63 # inspect the templates for more variables | 63 # inspect the templates for more variables |
| 64 look = False | 64 look = False |
| 65 | 65 |
| 66 def __init__(self, output=None, interactive=True, usedefaults=False, **variables): | 66 def __init__(self, output=None, interactive=True, usedefaults=True, |
| 67 variables=None): | |
| 67 """ | 68 """ |
| 68 - output : output file or directory | 69 - output : output file or directory |
| 69 - interactive : whether tointeractively get variables | 70 - interactive : whether tointeractively get variables |
| 70 - usedefaults : try to use the default values if not specified | 71 - usedefaults : try to use the default values if not specified |
| 71 """ | 72 """ |
| 72 | 73 |
| 73 assert self.templates | 74 assert self.templates |
| 74 self.output = output | 75 self.output = output |
| 75 self.interactive = interactive | 76 self.interactive = interactive |
| 76 self.location = os.path.dirnme(os.path.abspath(__file__)) | 77 self.location = os.path.dirname(os.path.abspath(__file__)) |
| 77 self.defaults = variables.copy | 78 self.defaults = variables.copy() |
| 78 | 79 |
| 79 # make a dictionary of the variables | 80 # make a dictionary of the variables for lookup convenience |
| 80 self.vardict = {} | 81 self.vardict = {} |
| 81 for i in self.vars: | 82 for i in self.vars: |
| 82 self.vardict[i.name] = i | 83 self.vardict[i.name] = i |
| 83 | 84 |
| 84 # ensure all of these templates exist | 85 # ensure all of these templates exist |
