MCPcopy Create free account
hub / github.com/apache/cloudstack / generate

Method generate

tools/marvin/marvin/codegenerator.py:118–194  ·  view source on GitHub ↗
(self, cmd)

Source from the content-addressed store, hash-verified

116 self.subclass.append(subclass)
117
118 def generate(self, cmd):
119
120 self.cmd = cmd
121 self.cmdsName.append(self.cmd.name)
122 self.code = self.license
123 self.code += self.newline
124 self.code += '"""%s"""\n' % self.cmd.desc
125 self.code += 'from .baseCmd import *\n'
126 self.code += 'from .baseResponse import *\n'
127 self.code += "class %sCmd (baseCmd):\n" % self.cmd.name
128 self.code += self.space
129 self.code += 'typeInfo = {}\n'
130 self.code += self.space + "def __init__(self):\n"
131
132 self.code += self.space + self.space
133 self.code += 'self.isAsync = "%s"\n' % str(self.cmd.asyncmethod).lower()
134
135 for req in self.cmd.request:
136 if req.desc is not None:
137 self.code += self.space + self.space + '"""%s"""\n' % req.desc
138 if req.required == "true":
139 self.code += self.space + self.space + '"""Required"""\n'
140
141 value = "None"
142 if req.type == "list" or req.type == "map":
143 value = "[]"
144
145 self.code += self.space + self.space
146 self.code += 'self.%s = %s\n' % (req.name, value)
147 if req.required == "true":
148 self.required.append(req.name)
149 self.code += self.space + self.space
150 self.code += "self.typeInfo['%s'] = '%s'\n" % ( req.name, req.dataType )
151
152 self.code += self.space + self.space + "self.required = ["
153 for require in self.required:
154 self.code += '"' + require + '",'
155 self.code += "]\n"
156 self.required = []
157
158 """generate response code"""
159 subItems = {}
160 self.code += self.newline
161 self.code += 'class %sResponse (baseResponse):\n' % self.cmd.name
162 self.code += self.space
163 self.code += 'typeInfo = {}\n'
164 self.code += self.space + "def __init__(self):\n"
165 if len(self.cmd.response) == 0:
166 self.code += self.space + self.space + "pass"
167 else:
168 for res in self.cmd.response:
169 if res.desc is not None:
170 self.code += self.space + self.space
171 self.code += '"""%s"""\n' % res.desc
172
173 if len(res.subProperties) > 0:
174 self.code += self.space + self.space
175 self.code += 'self.%s = []\n' % res.name

Callers 4

generateCodeFromXMLMethod · 0.95
generateCodeFromJSONMethod · 0.95
authenticateMethod · 0.80

Calls 4

generateSubClassMethod · 0.95
writeMethod · 0.65
closeMethod · 0.65
appendMethod · 0.45

Tested by 1