@darabonba/python-generator 1.2.18 → 1.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChangeLog.md +3 -0
- package/package.json +2 -2
- package/src/lib/helper.js +11 -1
- package/src/resolver/base.js +3 -1
- package/src/resolver/client.js +7 -4
- package/src/resolver/model.js +5 -3
- package/tests/expected/python2/function/tea_python_tests/client.py +3 -1
- package/tests/expected/python2/model/tea_python_tests/models.py +57 -30
- package/tests/expected/python3/function/tea_python_tests/client.py +3 -1
- package/tests/expected/python3/model/tea_python_tests/models.py +57 -29
- package/tests/fixtures/function/main.dara +2 -0
- package/tests/fixtures/model/main.dara +10 -8
package/ChangeLog.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@darabonba/python-generator",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.19",
|
|
4
4
|
"description": "The darabonba generator for Python",
|
|
5
5
|
"main": "src/generator.js",
|
|
6
6
|
"directories": {
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "Alibaba Cloud OpenAPI Team",
|
|
31
31
|
"license": "Apache-2.0",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@darabonba/parser": "^1.
|
|
33
|
+
"@darabonba/parser": "^1.4.7",
|
|
34
34
|
"enum": "^3.0.4"
|
|
35
35
|
}
|
|
36
36
|
}
|
package/src/lib/helper.js
CHANGED
|
@@ -41,7 +41,12 @@ function _subModelName(name) {
|
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
function _string(str) {
|
|
44
|
-
|
|
44
|
+
if (str.string === '""') {
|
|
45
|
+
return '\\"\\"';
|
|
46
|
+
}
|
|
47
|
+
return str.string.replace(/([^\\])"+|^"/g, function (str) {
|
|
48
|
+
return str.replace(/"/g, '\\"');
|
|
49
|
+
});
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
function _isBasicType(type) {
|
|
@@ -172,9 +177,14 @@ function _toSnakeCase(str) {
|
|
|
172
177
|
return res;
|
|
173
178
|
}
|
|
174
179
|
|
|
180
|
+
function _escape(str) {
|
|
181
|
+
return str.includes('-') ? `${str}` : str;
|
|
182
|
+
}
|
|
183
|
+
|
|
175
184
|
|
|
176
185
|
module.exports = {
|
|
177
186
|
_config,
|
|
187
|
+
_escape,
|
|
178
188
|
_upperFirst,
|
|
179
189
|
_camelCase,
|
|
180
190
|
_string,
|
package/src/resolver/base.js
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
const debug = require('../lib/debug');
|
|
4
4
|
|
|
5
5
|
const {
|
|
6
|
+
_string,
|
|
7
|
+
_escape,
|
|
6
8
|
_isBasicType
|
|
7
9
|
} = require('../lib/helper');
|
|
8
10
|
|
|
@@ -176,7 +178,7 @@ class BaseResolver {
|
|
|
176
178
|
} else if (typeNode.type === 'modelBody') {
|
|
177
179
|
// is sub model
|
|
178
180
|
typeInfo['objectType'] = 'model';
|
|
179
|
-
typeInfo['lexeme'] = this.combinator.addModelInclude([this.object.name, sourceNode.fieldName.lexeme].join('.'));
|
|
181
|
+
typeInfo['lexeme'] = this.combinator.addModelInclude([this.object.name, _escape(sourceNode.fieldName.lexeme) || _string(sourceNode.fieldName)].join('.'));
|
|
180
182
|
return typeInfo;
|
|
181
183
|
} else if (_isBasicType(typeNode.type)) {
|
|
182
184
|
return this.resolveType(typeNode.type, typeNode);
|
package/src/resolver/client.js
CHANGED
|
@@ -43,7 +43,10 @@ const {
|
|
|
43
43
|
} = require('../langs/common/enum');
|
|
44
44
|
|
|
45
45
|
const {
|
|
46
|
-
_isBasicType
|
|
46
|
+
_isBasicType,
|
|
47
|
+
_string,
|
|
48
|
+
_escape
|
|
49
|
+
|
|
47
50
|
} = require('../lib/helper');
|
|
48
51
|
|
|
49
52
|
const systemPackage = ['Util'];
|
|
@@ -158,7 +161,7 @@ class ClientResolver extends BaseResolver {
|
|
|
158
161
|
ast.params.params.forEach(p => {
|
|
159
162
|
var param = new GrammerValue();
|
|
160
163
|
param.type = this.resolveType(p.paramType, p);
|
|
161
|
-
param.key = p.paramName.lexeme;
|
|
164
|
+
param.key = _escape(p.paramName.lexeme || _string(p.paramName));
|
|
162
165
|
if (p.needValidate) {
|
|
163
166
|
func.addBodyNode(new GrammerCall('method', [
|
|
164
167
|
{ type: 'object', name: param.key },
|
|
@@ -450,8 +453,8 @@ class ClientResolver extends BaseResolver {
|
|
|
450
453
|
valGrammer.needCast = true;
|
|
451
454
|
exprChild.isExpand = true;
|
|
452
455
|
}
|
|
453
|
-
if (field.fieldName && field.fieldName.lexeme) {
|
|
454
|
-
exprChild.key = field.fieldName.lexeme;
|
|
456
|
+
if (field.fieldName && (field.fieldName.lexeme || field.fieldName.string)) {
|
|
457
|
+
exprChild.key = (field.fieldName.lexeme) || _string(field.fieldName);
|
|
455
458
|
}
|
|
456
459
|
this.renderGrammerValue(exprChild, field.expr, expectedType);
|
|
457
460
|
this.findComments(valGrammer, field);
|
package/src/resolver/model.js
CHANGED
|
@@ -6,7 +6,9 @@ const assert = require('assert');
|
|
|
6
6
|
const BaseResolver = require('./base');
|
|
7
7
|
|
|
8
8
|
const {
|
|
9
|
-
|
|
9
|
+
_string,
|
|
10
|
+
_escape,
|
|
11
|
+
_isBasicType,
|
|
10
12
|
} = require('../lib/helper');
|
|
11
13
|
|
|
12
14
|
const {
|
|
@@ -95,7 +97,7 @@ class ModelResolver extends BaseResolver {
|
|
|
95
97
|
|
|
96
98
|
const prop = new PropItem();
|
|
97
99
|
prop.belong = object.index;
|
|
98
|
-
prop.name = node.fieldName.lexeme;
|
|
100
|
+
prop.name = _escape(node.fieldName.lexeme) || _string(node.fieldName);
|
|
99
101
|
prop.type = this.resolveType(node.fieldValue, node);
|
|
100
102
|
|
|
101
103
|
prop.modify.push(Modify.public());
|
|
@@ -141,7 +143,7 @@ class ModelResolver extends BaseResolver {
|
|
|
141
143
|
}
|
|
142
144
|
|
|
143
145
|
findSubModelsUsed(node, subModelUsed = [], pre = '') {
|
|
144
|
-
let name = node.fieldName.lexeme;
|
|
146
|
+
let name = _escape(node.fieldName.lexeme) || _string(node.fieldName);
|
|
145
147
|
if (pre !== '') {
|
|
146
148
|
name = pre + '.' + name;
|
|
147
149
|
}
|
|
@@ -145,7 +145,8 @@ class MyModel(TeaModel):
|
|
|
145
145
|
def __init__(self, stringfield=None, bytesfield=None, stringarrayfield=None, mapfield=None, name=None,
|
|
146
146
|
submodel=None, subarray=None, maparray=None, object=None, numberfield=None, readable=None, exist_model=None,
|
|
147
147
|
class_end_time=None, max_length=None, min_length=None, maximum=None, minimum=None, test_3=None,
|
|
148
|
-
array_array_model=None, array_map_model=None, map_model=None, submodel_map=None, sub_model_model=None
|
|
148
|
+
array_array_model=None, array_map_model=None, map_model=None, submodel_map=None, sub_model_model=None,
|
|
149
|
+
map_array_map=None, map_array_model=None):
|
|
149
150
|
self.stringfield = stringfield # type: str
|
|
150
151
|
self.bytesfield = bytesfield # type: bytes
|
|
151
152
|
self.stringarrayfield = stringarrayfield # type: list[str]
|
|
@@ -175,6 +176,8 @@ class MyModel(TeaModel):
|
|
|
175
176
|
self.map_model = map_model # type: dict[str, M]
|
|
176
177
|
self.submodel_map = submodel_map # type: dict[str, MyModelSubmodel]
|
|
177
178
|
self.sub_model_model = sub_model_model # type: MyModelSubModelModel
|
|
179
|
+
self.map_array_map = map_array_map # type: dict[str, list[dict[str, str]]]
|
|
180
|
+
self.map_array_model = map_array_model # type: dict[str, list[M]]
|
|
178
181
|
|
|
179
182
|
def validate(self):
|
|
180
183
|
self.validate_required(self.stringfield, 'stringfield')
|
|
@@ -226,6 +229,11 @@ class MyModel(TeaModel):
|
|
|
226
229
|
self.validate_required(self.sub_model_model, 'sub_model_model')
|
|
227
230
|
if self.sub_model_model:
|
|
228
231
|
self.sub_model_model.validate()
|
|
232
|
+
if self.map_array_model:
|
|
233
|
+
for v in self.map_array_model.values():
|
|
234
|
+
for k1 in v:
|
|
235
|
+
if k1:
|
|
236
|
+
k1.validate()
|
|
229
237
|
|
|
230
238
|
def to_map(self):
|
|
231
239
|
_map = super(MyModel, self).to_map()
|
|
@@ -244,13 +252,13 @@ class MyModel(TeaModel):
|
|
|
244
252
|
if self.name is not None:
|
|
245
253
|
result['realName'] = self.name
|
|
246
254
|
if self.submodel is not None:
|
|
247
|
-
result['
|
|
248
|
-
result['
|
|
255
|
+
result['SubModel'] = self.submodel.to_map()
|
|
256
|
+
result['SubArray'] = []
|
|
249
257
|
if self.subarray is not None:
|
|
250
258
|
for k in self.subarray:
|
|
251
|
-
result['
|
|
259
|
+
result['SubArray'].append(k.to_map() if k else None)
|
|
252
260
|
if self.maparray is not None:
|
|
253
|
-
result['
|
|
261
|
+
result['MapArray'] = self.maparray
|
|
254
262
|
if self.object is not None:
|
|
255
263
|
result['object'] = self.object
|
|
256
264
|
if self.numberfield is not None:
|
|
@@ -271,30 +279,39 @@ class MyModel(TeaModel):
|
|
|
271
279
|
result['minimum'] = self.minimum
|
|
272
280
|
if self.test_3 is not None:
|
|
273
281
|
result['test3'] = self.test_3
|
|
274
|
-
result['
|
|
282
|
+
result['ArrayArrayModel'] = []
|
|
275
283
|
if self.array_array_model is not None:
|
|
276
284
|
for k in self.array_array_model:
|
|
277
285
|
l1 = []
|
|
278
286
|
for k1 in k:
|
|
279
287
|
l1.append(k1.to_map() if k1 else None)
|
|
280
|
-
result['
|
|
281
|
-
result['
|
|
288
|
+
result['ArrayArrayModel'].append(l1)
|
|
289
|
+
result['ArrayMapModel'] = []
|
|
282
290
|
if self.array_map_model is not None:
|
|
283
291
|
for k in self.array_map_model:
|
|
284
292
|
d1 = {}
|
|
285
293
|
for k1 ,v1 in k.items():
|
|
286
294
|
d1[k1] = v1.to_map()
|
|
287
|
-
result['
|
|
288
|
-
result['
|
|
295
|
+
result['ArrayMapModel'].append(d1)
|
|
296
|
+
result['MapModel'] = {}
|
|
289
297
|
if self.map_model is not None:
|
|
290
298
|
for k, v in self.map_model.items():
|
|
291
|
-
result['
|
|
292
|
-
result['
|
|
299
|
+
result['MapModel'][k] = v.to_map()
|
|
300
|
+
result['SubmodelMap'] = {}
|
|
293
301
|
if self.submodel_map is not None:
|
|
294
302
|
for k, v in self.submodel_map.items():
|
|
295
|
-
result['
|
|
303
|
+
result['SubmodelMap'][k] = v.to_map()
|
|
296
304
|
if self.sub_model_model is not None:
|
|
297
|
-
result['
|
|
305
|
+
result['SubModelModel'] = self.sub_model_model.to_map()
|
|
306
|
+
if self.map_array_map is not None:
|
|
307
|
+
result['MapArrayMap'] = self.map_array_map
|
|
308
|
+
result['MapArrayModel'] = {}
|
|
309
|
+
if self.map_array_model is not None:
|
|
310
|
+
for k, v in self.map_array_model.items():
|
|
311
|
+
l1 = []
|
|
312
|
+
for k1 in v:
|
|
313
|
+
l1.append(k1.to_map() if k1 else None)
|
|
314
|
+
result['MapArrayModel'][k] = l1
|
|
298
315
|
return result
|
|
299
316
|
|
|
300
317
|
def from_map(self, m=None):
|
|
@@ -309,16 +326,16 @@ class MyModel(TeaModel):
|
|
|
309
326
|
self.mapfield = m.get('mapfield')
|
|
310
327
|
if m.get('realName') is not None:
|
|
311
328
|
self.name = m.get('realName')
|
|
312
|
-
if m.get('
|
|
329
|
+
if m.get('SubModel') is not None:
|
|
313
330
|
temp_model = MyModelSubmodel()
|
|
314
|
-
self.submodel = temp_model.from_map(m['
|
|
331
|
+
self.submodel = temp_model.from_map(m['SubModel'])
|
|
315
332
|
self.subarray = []
|
|
316
|
-
if m.get('
|
|
317
|
-
for k in m.get('
|
|
333
|
+
if m.get('SubArray') is not None:
|
|
334
|
+
for k in m.get('SubArray'):
|
|
318
335
|
temp_model = M()
|
|
319
336
|
self.subarray.append(temp_model.from_map(k))
|
|
320
|
-
if m.get('
|
|
321
|
-
self.maparray = m.get('
|
|
337
|
+
if m.get('MapArray') is not None:
|
|
338
|
+
self.maparray = m.get('MapArray')
|
|
322
339
|
if m.get('object') is not None:
|
|
323
340
|
self.object = m.get('object')
|
|
324
341
|
if m.get('numberfield') is not None:
|
|
@@ -341,34 +358,44 @@ class MyModel(TeaModel):
|
|
|
341
358
|
if m.get('test3') is not None:
|
|
342
359
|
self.test_3 = m.get('test3')
|
|
343
360
|
self.array_array_model = []
|
|
344
|
-
if m.get('
|
|
345
|
-
for k in m.get('
|
|
361
|
+
if m.get('ArrayArrayModel') is not None:
|
|
362
|
+
for k in m.get('ArrayArrayModel'):
|
|
346
363
|
l1 = []
|
|
347
364
|
for k1 in k:
|
|
348
365
|
temp_model = M()
|
|
349
366
|
l1.append(temp_model.from_map(k1))
|
|
350
367
|
self.array_array_model.append(l1)
|
|
351
368
|
self.array_map_model = []
|
|
352
|
-
if m.get('
|
|
353
|
-
for k in m.get('
|
|
369
|
+
if m.get('ArrayMapModel') is not None:
|
|
370
|
+
for k in m.get('ArrayMapModel'):
|
|
354
371
|
d1 = {}
|
|
355
372
|
for k1 ,v1 in k.items():
|
|
356
373
|
temp_model = M()
|
|
357
374
|
d1[k1] = temp_model.from_map(v1)
|
|
358
375
|
self.array_map_model.append(d1)
|
|
359
376
|
self.map_model = {}
|
|
360
|
-
if m.get('
|
|
361
|
-
for k, v in m.get('
|
|
377
|
+
if m.get('MapModel') is not None:
|
|
378
|
+
for k, v in m.get('MapModel').items():
|
|
362
379
|
temp_model = M()
|
|
363
380
|
self.map_model[k] = temp_model.from_map(v)
|
|
364
381
|
self.submodel_map = {}
|
|
365
|
-
if m.get('
|
|
366
|
-
for k, v in m.get('
|
|
382
|
+
if m.get('SubmodelMap') is not None:
|
|
383
|
+
for k, v in m.get('SubmodelMap').items():
|
|
367
384
|
temp_model = MyModelSubmodel()
|
|
368
385
|
self.submodel_map[k] = temp_model.from_map(v)
|
|
369
|
-
if m.get('
|
|
386
|
+
if m.get('SubModelModel') is not None:
|
|
370
387
|
temp_model = MyModelSubModelModel()
|
|
371
|
-
self.sub_model_model = temp_model.from_map(m['
|
|
388
|
+
self.sub_model_model = temp_model.from_map(m['SubModelModel'])
|
|
389
|
+
if m.get('MapArrayMap') is not None:
|
|
390
|
+
self.map_array_map = m.get('MapArrayMap')
|
|
391
|
+
self.map_array_model = {}
|
|
392
|
+
if m.get('MapArrayModel') is not None:
|
|
393
|
+
for k, v in m.get('MapArrayModel').items():
|
|
394
|
+
l1 = []
|
|
395
|
+
for k1 in v:
|
|
396
|
+
temp_model = M()
|
|
397
|
+
l1.append(temp_model.from_map(k1))
|
|
398
|
+
self.map_array_model['k'] = l1
|
|
372
399
|
return self
|
|
373
400
|
|
|
374
401
|
|
|
@@ -197,6 +197,8 @@ class MyModel(TeaModel):
|
|
|
197
197
|
map_model: Dict[str, M] = None,
|
|
198
198
|
submodel_map: Dict[str, MyModelSubmodel] = None,
|
|
199
199
|
sub_model_model: MyModelSubModelModel = None,
|
|
200
|
+
map_array_map: Dict[str, List[Dict[str, str]]] = None,
|
|
201
|
+
map_array_model: Dict[str, List[M]] = None,
|
|
200
202
|
):
|
|
201
203
|
self.stringfield = stringfield
|
|
202
204
|
self.bytesfield = bytesfield
|
|
@@ -227,6 +229,8 @@ class MyModel(TeaModel):
|
|
|
227
229
|
self.map_model = map_model
|
|
228
230
|
self.submodel_map = submodel_map
|
|
229
231
|
self.sub_model_model = sub_model_model
|
|
232
|
+
self.map_array_map = map_array_map
|
|
233
|
+
self.map_array_model = map_array_model
|
|
230
234
|
|
|
231
235
|
def validate(self):
|
|
232
236
|
self.validate_required(self.stringfield, 'stringfield')
|
|
@@ -278,6 +282,11 @@ class MyModel(TeaModel):
|
|
|
278
282
|
self.validate_required(self.sub_model_model, 'sub_model_model')
|
|
279
283
|
if self.sub_model_model:
|
|
280
284
|
self.sub_model_model.validate()
|
|
285
|
+
if self.map_array_model:
|
|
286
|
+
for v in self.map_array_model.values():
|
|
287
|
+
for k1 in v:
|
|
288
|
+
if k1:
|
|
289
|
+
k1.validate()
|
|
281
290
|
|
|
282
291
|
def to_map(self):
|
|
283
292
|
_map = super().to_map()
|
|
@@ -296,13 +305,13 @@ class MyModel(TeaModel):
|
|
|
296
305
|
if self.name is not None:
|
|
297
306
|
result['realName'] = self.name
|
|
298
307
|
if self.submodel is not None:
|
|
299
|
-
result['
|
|
300
|
-
result['
|
|
308
|
+
result['SubModel'] = self.submodel.to_map()
|
|
309
|
+
result['SubArray'] = []
|
|
301
310
|
if self.subarray is not None:
|
|
302
311
|
for k in self.subarray:
|
|
303
|
-
result['
|
|
312
|
+
result['SubArray'].append(k.to_map() if k else None)
|
|
304
313
|
if self.maparray is not None:
|
|
305
|
-
result['
|
|
314
|
+
result['MapArray'] = self.maparray
|
|
306
315
|
if self.object is not None:
|
|
307
316
|
result['object'] = self.object
|
|
308
317
|
if self.numberfield is not None:
|
|
@@ -323,30 +332,39 @@ class MyModel(TeaModel):
|
|
|
323
332
|
result['minimum'] = self.minimum
|
|
324
333
|
if self.test_3 is not None:
|
|
325
334
|
result['test3'] = self.test_3
|
|
326
|
-
result['
|
|
335
|
+
result['ArrayArrayModel'] = []
|
|
327
336
|
if self.array_array_model is not None:
|
|
328
337
|
for k in self.array_array_model:
|
|
329
338
|
l1 = []
|
|
330
339
|
for k1 in k:
|
|
331
340
|
l1.append(k1.to_map() if k1 else None)
|
|
332
|
-
result['
|
|
333
|
-
result['
|
|
341
|
+
result['ArrayArrayModel'].append(l1)
|
|
342
|
+
result['ArrayMapModel'] = []
|
|
334
343
|
if self.array_map_model is not None:
|
|
335
344
|
for k in self.array_map_model:
|
|
336
345
|
d1 = {}
|
|
337
346
|
for k1 ,v1 in k.items():
|
|
338
347
|
d1[k1] = v1.to_map()
|
|
339
|
-
result['
|
|
340
|
-
result['
|
|
348
|
+
result['ArrayMapModel'].append(d1)
|
|
349
|
+
result['MapModel'] = {}
|
|
341
350
|
if self.map_model is not None:
|
|
342
351
|
for k, v in self.map_model.items():
|
|
343
|
-
result['
|
|
344
|
-
result['
|
|
352
|
+
result['MapModel'][k] = v.to_map()
|
|
353
|
+
result['SubmodelMap'] = {}
|
|
345
354
|
if self.submodel_map is not None:
|
|
346
355
|
for k, v in self.submodel_map.items():
|
|
347
|
-
result['
|
|
356
|
+
result['SubmodelMap'][k] = v.to_map()
|
|
348
357
|
if self.sub_model_model is not None:
|
|
349
|
-
result['
|
|
358
|
+
result['SubModelModel'] = self.sub_model_model.to_map()
|
|
359
|
+
if self.map_array_map is not None:
|
|
360
|
+
result['MapArrayMap'] = self.map_array_map
|
|
361
|
+
result['MapArrayModel'] = {}
|
|
362
|
+
if self.map_array_model is not None:
|
|
363
|
+
for k, v in self.map_array_model.items():
|
|
364
|
+
l1 = []
|
|
365
|
+
for k1 in v:
|
|
366
|
+
l1.append(k1.to_map() if k1 else None)
|
|
367
|
+
result['MapArrayModel'][k] = l1
|
|
350
368
|
return result
|
|
351
369
|
|
|
352
370
|
def from_map(self, m: dict = None):
|
|
@@ -361,16 +379,16 @@ class MyModel(TeaModel):
|
|
|
361
379
|
self.mapfield = m.get('mapfield')
|
|
362
380
|
if m.get('realName') is not None:
|
|
363
381
|
self.name = m.get('realName')
|
|
364
|
-
if m.get('
|
|
382
|
+
if m.get('SubModel') is not None:
|
|
365
383
|
temp_model = MyModelSubmodel()
|
|
366
|
-
self.submodel = temp_model.from_map(m['
|
|
384
|
+
self.submodel = temp_model.from_map(m['SubModel'])
|
|
367
385
|
self.subarray = []
|
|
368
|
-
if m.get('
|
|
369
|
-
for k in m.get('
|
|
386
|
+
if m.get('SubArray') is not None:
|
|
387
|
+
for k in m.get('SubArray'):
|
|
370
388
|
temp_model = M()
|
|
371
389
|
self.subarray.append(temp_model.from_map(k))
|
|
372
|
-
if m.get('
|
|
373
|
-
self.maparray = m.get('
|
|
390
|
+
if m.get('MapArray') is not None:
|
|
391
|
+
self.maparray = m.get('MapArray')
|
|
374
392
|
if m.get('object') is not None:
|
|
375
393
|
self.object = m.get('object')
|
|
376
394
|
if m.get('numberfield') is not None:
|
|
@@ -393,34 +411,44 @@ class MyModel(TeaModel):
|
|
|
393
411
|
if m.get('test3') is not None:
|
|
394
412
|
self.test_3 = m.get('test3')
|
|
395
413
|
self.array_array_model = []
|
|
396
|
-
if m.get('
|
|
397
|
-
for k in m.get('
|
|
414
|
+
if m.get('ArrayArrayModel') is not None:
|
|
415
|
+
for k in m.get('ArrayArrayModel'):
|
|
398
416
|
l1 = []
|
|
399
417
|
for k1 in k:
|
|
400
418
|
temp_model = M()
|
|
401
419
|
l1.append(temp_model.from_map(k1))
|
|
402
420
|
self.array_array_model.append(l1)
|
|
403
421
|
self.array_map_model = []
|
|
404
|
-
if m.get('
|
|
405
|
-
for k in m.get('
|
|
422
|
+
if m.get('ArrayMapModel') is not None:
|
|
423
|
+
for k in m.get('ArrayMapModel'):
|
|
406
424
|
d1 = {}
|
|
407
425
|
for k1, v1 in k.items():
|
|
408
426
|
temp_model = M()
|
|
409
427
|
d1[k1] = temp_model.from_map(v1)
|
|
410
428
|
self.array_map_model.append(d1)
|
|
411
429
|
self.map_model = {}
|
|
412
|
-
if m.get('
|
|
413
|
-
for k, v in m.get('
|
|
430
|
+
if m.get('MapModel') is not None:
|
|
431
|
+
for k, v in m.get('MapModel').items():
|
|
414
432
|
temp_model = M()
|
|
415
433
|
self.map_model[k] = temp_model.from_map(v)
|
|
416
434
|
self.submodel_map = {}
|
|
417
|
-
if m.get('
|
|
418
|
-
for k, v in m.get('
|
|
435
|
+
if m.get('SubmodelMap') is not None:
|
|
436
|
+
for k, v in m.get('SubmodelMap').items():
|
|
419
437
|
temp_model = MyModelSubmodel()
|
|
420
438
|
self.submodel_map[k] = temp_model.from_map(v)
|
|
421
|
-
if m.get('
|
|
439
|
+
if m.get('SubModelModel') is not None:
|
|
422
440
|
temp_model = MyModelSubModelModel()
|
|
423
|
-
self.sub_model_model = temp_model.from_map(m['
|
|
441
|
+
self.sub_model_model = temp_model.from_map(m['SubModelModel'])
|
|
442
|
+
if m.get('MapArrayMap') is not None:
|
|
443
|
+
self.map_array_map = m.get('MapArrayMap')
|
|
444
|
+
self.map_array_model = {}
|
|
445
|
+
if m.get('MapArrayModel') is not None:
|
|
446
|
+
for k, v in m.get('MapArrayModel').items():
|
|
447
|
+
l1 = []
|
|
448
|
+
for k1 in v:
|
|
449
|
+
temp_model = M()
|
|
450
|
+
l1.append(temp_model.from_map(k1))
|
|
451
|
+
self.map_array_model['k'] = l1
|
|
424
452
|
return self
|
|
425
453
|
|
|
426
454
|
|
|
@@ -16,9 +16,9 @@ model MyModel = {
|
|
|
16
16
|
name: string(name='realName'),
|
|
17
17
|
submodel: {
|
|
18
18
|
stringfield: string,
|
|
19
|
-
},
|
|
20
|
-
subarray: [ M ],
|
|
21
|
-
maparray: [ map[string]any ],
|
|
19
|
+
} (name='SubModel'),
|
|
20
|
+
subarray: [ M ] (name='SubArray'),
|
|
21
|
+
maparray: [ map[string]any ] (name='MapArray'),
|
|
22
22
|
object: object,
|
|
23
23
|
numberfield: integer,
|
|
24
24
|
readable: readable,
|
|
@@ -29,15 +29,17 @@ model MyModel = {
|
|
|
29
29
|
maximum?: long(description='校验最大值', example='10000', maximum='99000000'),
|
|
30
30
|
minimum?: long(description='校验最小值', example='10000', minimum='0'),
|
|
31
31
|
test3: [[string]](description='test3 desc', name='test3'),
|
|
32
|
-
arrayArrayModel: [[M]],
|
|
33
|
-
arrayMapModel: [ map[string]M ],
|
|
32
|
+
arrayArrayModel: [[M]] (name='ArrayArrayModel'),
|
|
33
|
+
arrayMapModel: [ map[string]M ] (name='ArrayMapModel'),
|
|
34
34
|
|
|
35
|
-
mapModel: map[string]M,
|
|
36
|
-
submodelMap: map[string]MyModel.submodel,
|
|
35
|
+
mapModel: map[string]M (name='MapModel'),
|
|
36
|
+
submodelMap: map[string]MyModel.submodel (name='SubmodelMap'),
|
|
37
37
|
|
|
38
38
|
subModelModel: {
|
|
39
39
|
subModel: [ M ]
|
|
40
|
-
}
|
|
40
|
+
} (name='SubModelModel'),
|
|
41
|
+
mapArrayMap?: map[string][ map[string]string ] (name='MapArrayMap'),
|
|
42
|
+
mapArrayModel?: map[string][ M ] (name='MapArrayModel'),
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
model M = {
|