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