@darabonba/python-generator 2.0.7 → 2.0.9
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 +9 -0
- package/lib/generator.js +18 -9
- package/package.json +1 -1
- package/tests/expected/complex/tea_python_tests/models/__init__.py +6 -6
- package/tests/expected/complex/tea_python_tests/models/_complex_request.py +110 -0
- package/tests/expected/model/tea_python_tests/models/__init__.py +13 -13
- package/tests/expected/model/tea_python_tests/models/_m.py +19 -0
- package/tests/{output/model/tea_python_tests/models/_main_file_model.py → expected/model/tea_python_tests/models/_main_file.py} +27 -0
- package/tests/expected/model/tea_python_tests/models/_my_model.py +156 -7
- package/tests/expected/modelConfig/tea_python_tests/models/__init__.py +13 -13
- package/tests/expected/modelConfig/tea_python_tests/models/_m.py +19 -0
- package/tests/expected/modelConfig/tea_python_tests/models/{_main_file_model.py → _main_file.py} +27 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model.py +156 -7
- package/tests/output/complex/tea_python_tests/models/__init__.py +6 -6
- package/tests/output/complex/tea_python_tests/models/_complex_request.py +110 -0
- package/tests/output/model/tea_python_tests/models/__init__.py +13 -13
- package/tests/output/model/tea_python_tests/models/_m.py +19 -0
- package/tests/{expected/model/tea_python_tests/models/_main_file_model.py → output/model/tea_python_tests/models/_main_file.py} +27 -0
- package/tests/output/model/tea_python_tests/models/_my_model.py +156 -7
- package/tests/output/modelConfig/tea_python_tests/models/__init__.py +13 -13
- package/tests/output/modelConfig/tea_python_tests/models/_m.py +19 -0
- package/tests/output/modelConfig/tea_python_tests/models/{_main_file_model.py → _main_file.py} +27 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model.py +156 -7
- package/tests/expected/complex/tea_python_tests/models/_complex_request_configs.py +0 -52
- package/tests/expected/complex/tea_python_tests/models/_complex_request_header.py +0 -43
- package/tests/expected/complex/tea_python_tests/models/_complex_request_part.py +0 -34
- package/tests/expected/model/tea_python_tests/models/_main_file_model_model.py +0 -33
- package/tests/expected/model/tea_python_tests/models/_msub_m.py +0 -25
- package/tests/expected/model/tea_python_tests/models/_my_model_model.py +0 -46
- package/tests/expected/model/tea_python_tests/models/_my_model_model_model.py +0 -33
- package/tests/expected/model/tea_python_tests/models/_my_model_subarraymodel.py +0 -23
- package/tests/expected/model/tea_python_tests/models/_my_model_submodel.py +0 -46
- package/tests/expected/model/tea_python_tests/models/_my_model_submodel_model.py +0 -33
- package/tests/expected/modelConfig/tea_python_tests/models/_main_file_model_model.py +0 -33
- package/tests/expected/modelConfig/tea_python_tests/models/_msub_m.py +0 -25
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_model.py +0 -46
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_model_model.py +0 -33
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_subarraymodel.py +0 -23
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_submodel.py +0 -46
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_submodel_model.py +0 -33
- package/tests/output/complex/tea_python_tests/models/_complex_request_configs.py +0 -52
- package/tests/output/complex/tea_python_tests/models/_complex_request_header.py +0 -43
- package/tests/output/complex/tea_python_tests/models/_complex_request_part.py +0 -34
- package/tests/output/model/tea_python_tests/models/_main_file_model_model.py +0 -33
- package/tests/output/model/tea_python_tests/models/_msub_m.py +0 -25
- package/tests/output/model/tea_python_tests/models/_my_model_model.py +0 -46
- package/tests/output/model/tea_python_tests/models/_my_model_model_model.py +0 -33
- package/tests/output/model/tea_python_tests/models/_my_model_subarraymodel.py +0 -23
- package/tests/output/model/tea_python_tests/models/_my_model_submodel.py +0 -46
- package/tests/output/model/tea_python_tests/models/_my_model_submodel_model.py +0 -33
- package/tests/output/modelConfig/tea_python_tests/models/_main_file_model_model.py +0 -33
- package/tests/output/modelConfig/tea_python_tests/models/_msub_m.py +0 -25
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_model.py +0 -46
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_model_model.py +0 -33
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_subarraymodel.py +0 -23
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_submodel.py +0 -46
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_submodel_model.py +0 -33
package/ChangeLog.md
CHANGED
package/lib/generator.js
CHANGED
|
@@ -328,7 +328,7 @@ setup(
|
|
|
328
328
|
if (models.length > 0 || subModels.length > 0) {
|
|
329
329
|
// 存一笔 models
|
|
330
330
|
this.modelInitBefore(ast, level);
|
|
331
|
-
this.visitModelInit(subModels
|
|
331
|
+
this.visitModelInit(models, subModels);
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
const exceptions = ast.moduleBody.nodes.filter((item) => {
|
|
@@ -1242,23 +1242,23 @@ setup(
|
|
|
1242
1242
|
this.emit(`temp_model = ${this.getModelName(subModelName)}()\n`, level);
|
|
1243
1243
|
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1244
1244
|
} else if (fieldValue.type === 'array' || fieldValue.fieldType === 'array') {
|
|
1245
|
-
this.emit(`for k${deep} in ${value}:\n`, level);
|
|
1246
1245
|
let subKey = key;
|
|
1247
1246
|
if(deep > 1) {
|
|
1248
1247
|
subKey = `l${deep - 1}`;
|
|
1249
|
-
this.emit(`${subKey} = []\n`, level
|
|
1248
|
+
this.emit(`${subKey} = []\n`, level);
|
|
1250
1249
|
}
|
|
1250
|
+
this.emit(`for k${deep} in ${value}:\n`, level);
|
|
1251
1251
|
this.visitFromField(fieldValue.fieldItemType || fieldValue.subType, fieldName, `${subKey}`, `k${deep}`, level + 2, true);
|
|
1252
1252
|
if(deep > 1) {
|
|
1253
1253
|
this.emitFieldConvert(key, subKey, level, arr);
|
|
1254
1254
|
}
|
|
1255
1255
|
} else if (fieldValue.fieldType === 'map' || fieldValue.type === 'map') {
|
|
1256
|
-
this.emit(`for k${deep}, v${deep} in ${value}.items():\n`, level);
|
|
1257
1256
|
let subKey = key;
|
|
1258
1257
|
if(deep > 1) {
|
|
1259
1258
|
subKey = `d${deep - 1}`;
|
|
1260
|
-
this.emit(`${subKey} = {}\n`, level
|
|
1259
|
+
this.emit(`${subKey} = {}\n`, level);
|
|
1261
1260
|
}
|
|
1261
|
+
this.emit(`for k${deep}, v${deep} in ${value}.items():\n`, level);
|
|
1262
1262
|
this.visitFromField(fieldValue.valueType, fieldName, `${subKey}[k${deep}]`, `v${deep}`, level + 2);
|
|
1263
1263
|
if(deep > 1) {
|
|
1264
1264
|
this.emitFieldConvert(key, subKey, level, arr);
|
|
@@ -1433,13 +1433,13 @@ setup(
|
|
|
1433
1433
|
return extendFileds.concat(ast.nodes);
|
|
1434
1434
|
}
|
|
1435
1435
|
|
|
1436
|
-
visitModel(modelBody, modelName, extendOn, level) {
|
|
1436
|
+
visitModel(modelBody, modelName, extendOn, level, filename) {
|
|
1437
1437
|
// const modelDir = path.join(path.dirname(filepath), this.modelDir);
|
|
1438
1438
|
this.emit(`class ${modelName}`, level);
|
|
1439
1439
|
this.visitExtendOn(extendOn);
|
|
1440
1440
|
this.emit(':\n');
|
|
1441
1441
|
this.visitModelBody(modelBody, level + 2, modelName);
|
|
1442
|
-
this.saveBuffer(path.join(this.modelPath, `_${_snakeCase(modelName)}.py`));
|
|
1442
|
+
this.saveBuffer(path.join(this.modelPath, filename || `_${_snakeCase(modelName)}.py`));
|
|
1443
1443
|
this.usedTypes = [];
|
|
1444
1444
|
this.imports = [];
|
|
1445
1445
|
this.output = '';
|
|
@@ -1481,7 +1481,7 @@ setup(
|
|
|
1481
1481
|
this.visitModel(ast.modelBody, modelName, ast.extendOn, level);
|
|
1482
1482
|
}
|
|
1483
1483
|
|
|
1484
|
-
visitModelInit(models) {
|
|
1484
|
+
visitModelInit(models, subModels) {
|
|
1485
1485
|
const modelNames = [];
|
|
1486
1486
|
const moreExports = this.moreExports || [];
|
|
1487
1487
|
for (let i = 0; i < models.length; i++) {
|
|
@@ -1490,6 +1490,14 @@ setup(
|
|
|
1490
1490
|
modelNames.push(modelName);
|
|
1491
1491
|
this.emit(`from ._${_snakeCase(modelName)} import ${modelName}\n`);
|
|
1492
1492
|
}
|
|
1493
|
+
|
|
1494
|
+
for (let i = 0; i < subModels.length; i++) {
|
|
1495
|
+
const ast = subModels[i];
|
|
1496
|
+
const modelName = _subModelName(_name(ast.modelName));
|
|
1497
|
+
const mainModelName = _name(ast.modelName).split('.')[0];
|
|
1498
|
+
modelNames.push(modelName);
|
|
1499
|
+
this.emit(`from ._${_snakeCase(mainModelName)} import ${modelName}\n`);
|
|
1500
|
+
}
|
|
1493
1501
|
|
|
1494
1502
|
this.emit('\n__all__ = [\n');
|
|
1495
1503
|
this.emit(modelNames.join(',\n '), 2);
|
|
@@ -1629,7 +1637,8 @@ setup(
|
|
|
1629
1637
|
eachSubModel(ast, level) {
|
|
1630
1638
|
assert.equal(ast.type, 'model');
|
|
1631
1639
|
const modelName = _subModelName(_name(ast.modelName));
|
|
1632
|
-
|
|
1640
|
+
const mainModelName = _name(ast.modelName).split('.')[0];
|
|
1641
|
+
this.visitModel(ast.modelBody, modelName, ast.extendOn, level, `_${_snakeCase(mainModelName)}.py`);
|
|
1633
1642
|
}
|
|
1634
1643
|
|
|
1635
1644
|
visitObjectFieldValue(ast, level) {
|
package/package.json
CHANGED
|
@@ -4,16 +4,16 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
from ._complex_request_header import ComplexRequestHeader
|
|
8
|
-
from ._complex_request_configs import ComplexRequestConfigs
|
|
9
|
-
from ._complex_request_part import ComplexRequestPart
|
|
10
7
|
from ._complex_request import ComplexRequest
|
|
11
8
|
from ._response import Response
|
|
9
|
+
from ._complex_request import ComplexRequestHeader
|
|
10
|
+
from ._complex_request import ComplexRequestConfigs
|
|
11
|
+
from ._complex_request import ComplexRequestPart
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
|
+
ComplexRequest,
|
|
15
|
+
Response,
|
|
14
16
|
ComplexRequestHeader,
|
|
15
17
|
ComplexRequestConfigs,
|
|
16
|
-
ComplexRequestPart
|
|
17
|
-
ComplexRequest,
|
|
18
|
-
Response
|
|
18
|
+
ComplexRequestPart
|
|
19
19
|
]
|
|
@@ -461,3 +461,113 @@ class ComplexRequest(DaraModel):
|
|
|
461
461
|
|
|
462
462
|
return self
|
|
463
463
|
|
|
464
|
+
class ComplexRequestPart(DaraModel):
|
|
465
|
+
def __init__(
|
|
466
|
+
self,
|
|
467
|
+
part_number: str = None,
|
|
468
|
+
):
|
|
469
|
+
# PartNumber
|
|
470
|
+
self.part_number = part_number
|
|
471
|
+
|
|
472
|
+
def validate(self):
|
|
473
|
+
pass
|
|
474
|
+
|
|
475
|
+
def to_map(self):
|
|
476
|
+
result = dict()
|
|
477
|
+
_map = super().to_map()
|
|
478
|
+
if _map is not None:
|
|
479
|
+
result = _map
|
|
480
|
+
if self.part_number is not None:
|
|
481
|
+
result['PartNumber'] = self.part_number
|
|
482
|
+
|
|
483
|
+
return result
|
|
484
|
+
|
|
485
|
+
def from_map(self, m: dict = None):
|
|
486
|
+
m = m or dict()
|
|
487
|
+
if m.get('PartNumber') is not None:
|
|
488
|
+
self.part_number = m.get('PartNumber')
|
|
489
|
+
|
|
490
|
+
return self
|
|
491
|
+
|
|
492
|
+
class ComplexRequestConfigs(DaraModel):
|
|
493
|
+
def __init__(
|
|
494
|
+
self,
|
|
495
|
+
key: str = None,
|
|
496
|
+
value: List[str] = None,
|
|
497
|
+
extra: Dict[str, str] = None,
|
|
498
|
+
):
|
|
499
|
+
self.key = key
|
|
500
|
+
self.value = value
|
|
501
|
+
self.extra = extra
|
|
502
|
+
|
|
503
|
+
def validate(self):
|
|
504
|
+
self.validate_required(self.key, 'key')
|
|
505
|
+
self.validate_required(self.value, 'value')
|
|
506
|
+
self.validate_required(self.extra, 'extra')
|
|
507
|
+
|
|
508
|
+
def to_map(self):
|
|
509
|
+
result = dict()
|
|
510
|
+
_map = super().to_map()
|
|
511
|
+
if _map is not None:
|
|
512
|
+
result = _map
|
|
513
|
+
if self.key is not None:
|
|
514
|
+
result['key'] = self.key
|
|
515
|
+
|
|
516
|
+
if self.value is not None:
|
|
517
|
+
result['value'] = self.value
|
|
518
|
+
|
|
519
|
+
if self.extra is not None:
|
|
520
|
+
result['extra'] = self.extra
|
|
521
|
+
|
|
522
|
+
return result
|
|
523
|
+
|
|
524
|
+
def from_map(self, m: dict = None):
|
|
525
|
+
m = m or dict()
|
|
526
|
+
if m.get('key') is not None:
|
|
527
|
+
self.key = m.get('key')
|
|
528
|
+
|
|
529
|
+
if m.get('value') is not None:
|
|
530
|
+
self.value = m.get('value')
|
|
531
|
+
|
|
532
|
+
if m.get('extra') is not None:
|
|
533
|
+
self.extra = m.get('extra')
|
|
534
|
+
|
|
535
|
+
return self
|
|
536
|
+
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
class ComplexRequestHeader(DaraModel):
|
|
540
|
+
def __init__(
|
|
541
|
+
self,
|
|
542
|
+
content: str = None,
|
|
543
|
+
):
|
|
544
|
+
# The ID of the security group to which you want to assign the instance. Instances in the same security group can communicate with each other. The maximum number of instances that a security group can contain depends on the type of the security group. For more information, see the "Security group limits" section in [Limits](https://help.aliyun.com/document_detail/25412.html#SecurityGroupQuota).
|
|
545
|
+
#
|
|
546
|
+
# >Notice: The network type of the new instance must be the same as that of the security group specified by the `SecurityGroupId` parameter. For example, if the specified security group is of the VPC type, the new instance is also of the VPC type and you must specify `VSwitchId`.
|
|
547
|
+
#
|
|
548
|
+
# If you do not use `LaunchTemplateId` or `LaunchTemplateName` to specify a launch template, you must specify SecurityGroupId. Take note of the following items:
|
|
549
|
+
#
|
|
550
|
+
# * You can set `SecurityGroupId` to specify a single security group or set `SecurityGroupIds.N` to specify one or more security groups. However, you cannot specify both `SecurityGroupId` and `SecurityGroupIds.N`.
|
|
551
|
+
# * If `NetworkInterface.N.InstanceType` is set to `Primary`, you cannot specify `SecurityGroupId` or `SecurityGroupIds.N` but can specify `NetworkInterface.N.SecurityGroupId` or `NetworkInterface.N.SecurityGroupIds.N`.
|
|
552
|
+
self.content = content
|
|
553
|
+
|
|
554
|
+
def validate(self):
|
|
555
|
+
self.validate_required(self.content, 'content')
|
|
556
|
+
|
|
557
|
+
def to_map(self):
|
|
558
|
+
result = dict()
|
|
559
|
+
_map = super().to_map()
|
|
560
|
+
if _map is not None:
|
|
561
|
+
result = _map
|
|
562
|
+
if self.content is not None:
|
|
563
|
+
result['Content'] = self.content
|
|
564
|
+
|
|
565
|
+
return result
|
|
566
|
+
|
|
567
|
+
def from_map(self, m: dict = None):
|
|
568
|
+
m = m or dict()
|
|
569
|
+
if m.get('Content') is not None:
|
|
570
|
+
self.content = m.get('Content')
|
|
571
|
+
|
|
572
|
+
return self
|
|
573
|
+
|
|
@@ -4,20 +4,24 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
from ._msub_m import MSubM
|
|
8
|
-
from ._main_file_model_model import MainFileModelModel
|
|
9
|
-
from ._main_file_model import MainFileModel
|
|
10
|
-
from ._my_model_model_model import MyModelModelModel
|
|
11
|
-
from ._my_model_model import MyModelModel
|
|
12
|
-
from ._my_model_submodel_model import MyModelSubmodelModel
|
|
13
|
-
from ._my_model_submodel import MyModelSubmodel
|
|
14
|
-
from ._my_model_subarraymodel import MyModelSubarraymodel
|
|
15
7
|
from ._m import M
|
|
16
8
|
from ._class import Class
|
|
17
9
|
from ._model import Model
|
|
18
10
|
from ._my_model import MyModel
|
|
11
|
+
from ._m import MSubM
|
|
12
|
+
from ._main_file import MainFileModelModel
|
|
13
|
+
from ._main_file import MainFileModel
|
|
14
|
+
from ._my_model import MyModelModelModel
|
|
15
|
+
from ._my_model import MyModelModel
|
|
16
|
+
from ._my_model import MyModelSubmodelModel
|
|
17
|
+
from ._my_model import MyModelSubmodel
|
|
18
|
+
from ._my_model import MyModelSubarraymodel
|
|
19
19
|
|
|
20
20
|
__all__ = [
|
|
21
|
+
M,
|
|
22
|
+
Class,
|
|
23
|
+
Model,
|
|
24
|
+
MyModel,
|
|
21
25
|
MSubM,
|
|
22
26
|
MainFileModelModel,
|
|
23
27
|
MainFileModel,
|
|
@@ -25,9 +29,5 @@ __all__ = [
|
|
|
25
29
|
MyModelModel,
|
|
26
30
|
MyModelSubmodelModel,
|
|
27
31
|
MyModelSubmodel,
|
|
28
|
-
MyModelSubarraymodel
|
|
29
|
-
M,
|
|
30
|
-
Class,
|
|
31
|
-
Model,
|
|
32
|
-
MyModel
|
|
32
|
+
MyModelSubarraymodel
|
|
33
33
|
]
|
|
@@ -35,3 +35,22 @@ class M(DaraModel):
|
|
|
35
35
|
|
|
36
36
|
return self
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class MSubM(DaraModel):
|
|
41
|
+
def __init__(self):
|
|
42
|
+
pass
|
|
43
|
+
def validate(self):
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
def to_map(self):
|
|
47
|
+
result = dict()
|
|
48
|
+
_map = super().to_map()
|
|
49
|
+
if _map is not None:
|
|
50
|
+
result = _map
|
|
51
|
+
return result
|
|
52
|
+
|
|
53
|
+
def from_map(self, m: dict = None):
|
|
54
|
+
m = m or dict()
|
|
55
|
+
return self
|
|
56
|
+
|
|
@@ -44,3 +44,30 @@ class MainFileModel(DaraModel):
|
|
|
44
44
|
|
|
45
45
|
return self
|
|
46
46
|
|
|
47
|
+
class MainFileModelModel(DaraModel):
|
|
48
|
+
def __init__(
|
|
49
|
+
self,
|
|
50
|
+
str: str = None,
|
|
51
|
+
):
|
|
52
|
+
self.str = str
|
|
53
|
+
|
|
54
|
+
def validate(self):
|
|
55
|
+
self.validate_required(self.str, 'str')
|
|
56
|
+
|
|
57
|
+
def to_map(self):
|
|
58
|
+
result = dict()
|
|
59
|
+
_map = super().to_map()
|
|
60
|
+
if _map is not None:
|
|
61
|
+
result = _map
|
|
62
|
+
if self.str is not None:
|
|
63
|
+
result['str'] = self.str
|
|
64
|
+
|
|
65
|
+
return result
|
|
66
|
+
|
|
67
|
+
def from_map(self, m: dict = None):
|
|
68
|
+
m = m or dict()
|
|
69
|
+
if m.get('str') is not None:
|
|
70
|
+
self.str = m.get('str')
|
|
71
|
+
|
|
72
|
+
return self
|
|
73
|
+
|
|
@@ -450,8 +450,8 @@ class MyModel(DaraModel):
|
|
|
450
450
|
self.ssubarray = []
|
|
451
451
|
if m.get('ssubarray') is not None:
|
|
452
452
|
for k1 in m.get('ssubarray'):
|
|
453
|
+
l1 = []
|
|
453
454
|
for k2 in k1:
|
|
454
|
-
l1 = []
|
|
455
455
|
temp_model = main_models.M()
|
|
456
456
|
l1.append(temp_model.from_map(k2))
|
|
457
457
|
self.ssubarray.append(l1)
|
|
@@ -465,8 +465,8 @@ class MyModel(DaraModel):
|
|
|
465
465
|
self.ssubmmarray = []
|
|
466
466
|
if m.get('ssubmmarray') is not None:
|
|
467
467
|
for k1 in m.get('ssubmmarray'):
|
|
468
|
+
l1 = []
|
|
468
469
|
for k2 in k1:
|
|
469
|
-
l1 = []
|
|
470
470
|
temp_model = source_models.Request()
|
|
471
471
|
l1.append(temp_model.from_map(k2))
|
|
472
472
|
self.ssubmmarray.append(l1)
|
|
@@ -474,10 +474,10 @@ class MyModel(DaraModel):
|
|
|
474
474
|
self.sssubmmarray = []
|
|
475
475
|
if m.get('sssubmmarray') is not None:
|
|
476
476
|
for k1 in m.get('sssubmmarray'):
|
|
477
|
+
l1 = []
|
|
477
478
|
for k2 in k1:
|
|
478
|
-
|
|
479
|
+
l2 = []
|
|
479
480
|
for k3 in k2:
|
|
480
|
-
l2 = []
|
|
481
481
|
temp_model = source_models.Request()
|
|
482
482
|
l2.append(temp_model.from_map(k3))
|
|
483
483
|
l1.append(l2)
|
|
@@ -498,8 +498,8 @@ class MyModel(DaraModel):
|
|
|
498
498
|
self.arr_module_model_map = []
|
|
499
499
|
if m.get('arrModuleModelMap') is not None:
|
|
500
500
|
for k1 in m.get('arrModuleModelMap'):
|
|
501
|
+
d1 = {}
|
|
501
502
|
for k2, v2 in k1.items():
|
|
502
|
-
d1 = {}
|
|
503
503
|
temp_model = source_models.Request()
|
|
504
504
|
d1[k2] = temp_model.from_map(v2)
|
|
505
505
|
self.arr_module_model_map.append(d1)
|
|
@@ -507,10 +507,10 @@ class MyModel(DaraModel):
|
|
|
507
507
|
self.arrs_module_model_map = []
|
|
508
508
|
if m.get('arrsModuleModelMap') is not None:
|
|
509
509
|
for k1 in m.get('arrsModuleModelMap'):
|
|
510
|
+
l1 = []
|
|
510
511
|
for k2 in k1:
|
|
511
|
-
|
|
512
|
+
d2 = {}
|
|
512
513
|
for k3, v3 in k2.items():
|
|
513
|
-
d2 = {}
|
|
514
514
|
temp_model = source_models.Request()
|
|
515
515
|
d2[k3] = temp_model.from_map(v3)
|
|
516
516
|
l1.append(d2)
|
|
@@ -598,3 +598,152 @@ class MyModel(DaraModel):
|
|
|
598
598
|
|
|
599
599
|
return self
|
|
600
600
|
|
|
601
|
+
class MyModelSubarraymodel(DaraModel):
|
|
602
|
+
def __init__(self):
|
|
603
|
+
pass
|
|
604
|
+
def validate(self):
|
|
605
|
+
pass
|
|
606
|
+
|
|
607
|
+
def to_map(self):
|
|
608
|
+
result = dict()
|
|
609
|
+
_map = super().to_map()
|
|
610
|
+
if _map is not None:
|
|
611
|
+
result = _map
|
|
612
|
+
return result
|
|
613
|
+
|
|
614
|
+
def from_map(self, m: dict = None):
|
|
615
|
+
m = m or dict()
|
|
616
|
+
return self
|
|
617
|
+
|
|
618
|
+
class MyModelSubmodel(DaraModel):
|
|
619
|
+
def __init__(
|
|
620
|
+
self,
|
|
621
|
+
stringfield: str = None,
|
|
622
|
+
model: main_models.MyModelSubmodelModel = None,
|
|
623
|
+
):
|
|
624
|
+
self.stringfield = stringfield
|
|
625
|
+
self.model = model
|
|
626
|
+
|
|
627
|
+
def validate(self):
|
|
628
|
+
self.validate_required(self.stringfield, 'stringfield')
|
|
629
|
+
self.validate_required(self.model, 'model')
|
|
630
|
+
if self.model:
|
|
631
|
+
self.model.validate()
|
|
632
|
+
|
|
633
|
+
def to_map(self):
|
|
634
|
+
result = dict()
|
|
635
|
+
_map = super().to_map()
|
|
636
|
+
if _map is not None:
|
|
637
|
+
result = _map
|
|
638
|
+
if self.stringfield is not None:
|
|
639
|
+
result['stringfield'] = self.stringfield
|
|
640
|
+
|
|
641
|
+
if self.model is not None:
|
|
642
|
+
result['model'] = self.model.to_map()
|
|
643
|
+
|
|
644
|
+
return result
|
|
645
|
+
|
|
646
|
+
def from_map(self, m: dict = None):
|
|
647
|
+
m = m or dict()
|
|
648
|
+
if m.get('stringfield') is not None:
|
|
649
|
+
self.stringfield = m.get('stringfield')
|
|
650
|
+
|
|
651
|
+
if m.get('model') is not None:
|
|
652
|
+
temp_model = main_models.MyModelSubmodelModel()
|
|
653
|
+
self.model = temp_model.from_map(m.get('model'))
|
|
654
|
+
|
|
655
|
+
return self
|
|
656
|
+
|
|
657
|
+
class MyModelSubmodelModel(DaraModel):
|
|
658
|
+
def __init__(
|
|
659
|
+
self,
|
|
660
|
+
str: str = None,
|
|
661
|
+
):
|
|
662
|
+
self.str = str
|
|
663
|
+
|
|
664
|
+
def validate(self):
|
|
665
|
+
self.validate_required(self.str, 'str')
|
|
666
|
+
|
|
667
|
+
def to_map(self):
|
|
668
|
+
result = dict()
|
|
669
|
+
_map = super().to_map()
|
|
670
|
+
if _map is not None:
|
|
671
|
+
result = _map
|
|
672
|
+
if self.str is not None:
|
|
673
|
+
result['str'] = self.str
|
|
674
|
+
|
|
675
|
+
return result
|
|
676
|
+
|
|
677
|
+
def from_map(self, m: dict = None):
|
|
678
|
+
m = m or dict()
|
|
679
|
+
if m.get('str') is not None:
|
|
680
|
+
self.str = m.get('str')
|
|
681
|
+
|
|
682
|
+
return self
|
|
683
|
+
|
|
684
|
+
class MyModelModel(DaraModel):
|
|
685
|
+
def __init__(
|
|
686
|
+
self,
|
|
687
|
+
str: str = None,
|
|
688
|
+
model: main_models.MyModelModelModel = None,
|
|
689
|
+
):
|
|
690
|
+
self.str = str
|
|
691
|
+
self.model = model
|
|
692
|
+
|
|
693
|
+
def validate(self):
|
|
694
|
+
self.validate_required(self.str, 'str')
|
|
695
|
+
self.validate_required(self.model, 'model')
|
|
696
|
+
if self.model:
|
|
697
|
+
self.model.validate()
|
|
698
|
+
|
|
699
|
+
def to_map(self):
|
|
700
|
+
result = dict()
|
|
701
|
+
_map = super().to_map()
|
|
702
|
+
if _map is not None:
|
|
703
|
+
result = _map
|
|
704
|
+
if self.str is not None:
|
|
705
|
+
result['str'] = self.str
|
|
706
|
+
|
|
707
|
+
if self.model is not None:
|
|
708
|
+
result['model'] = self.model.to_map()
|
|
709
|
+
|
|
710
|
+
return result
|
|
711
|
+
|
|
712
|
+
def from_map(self, m: dict = None):
|
|
713
|
+
m = m or dict()
|
|
714
|
+
if m.get('str') is not None:
|
|
715
|
+
self.str = m.get('str')
|
|
716
|
+
|
|
717
|
+
if m.get('model') is not None:
|
|
718
|
+
temp_model = main_models.MyModelModelModel()
|
|
719
|
+
self.model = temp_model.from_map(m.get('model'))
|
|
720
|
+
|
|
721
|
+
return self
|
|
722
|
+
|
|
723
|
+
class MyModelModelModel(DaraModel):
|
|
724
|
+
def __init__(
|
|
725
|
+
self,
|
|
726
|
+
str: str = None,
|
|
727
|
+
):
|
|
728
|
+
self.str = str
|
|
729
|
+
|
|
730
|
+
def validate(self):
|
|
731
|
+
self.validate_required(self.str, 'str')
|
|
732
|
+
|
|
733
|
+
def to_map(self):
|
|
734
|
+
result = dict()
|
|
735
|
+
_map = super().to_map()
|
|
736
|
+
if _map is not None:
|
|
737
|
+
result = _map
|
|
738
|
+
if self.str is not None:
|
|
739
|
+
result['str'] = self.str
|
|
740
|
+
|
|
741
|
+
return result
|
|
742
|
+
|
|
743
|
+
def from_map(self, m: dict = None):
|
|
744
|
+
m = m or dict()
|
|
745
|
+
if m.get('str') is not None:
|
|
746
|
+
self.str = m.get('str')
|
|
747
|
+
|
|
748
|
+
return self
|
|
749
|
+
|
|
@@ -4,20 +4,24 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
from ._msub_m import MSubM
|
|
8
|
-
from ._main_file_model_model import MainFileModelModel
|
|
9
|
-
from ._main_file_model import MainFileModel
|
|
10
|
-
from ._my_model_model_model import MyModelModelModel
|
|
11
|
-
from ._my_model_model import MyModelModel
|
|
12
|
-
from ._my_model_submodel_model import MyModelSubmodelModel
|
|
13
|
-
from ._my_model_submodel import MyModelSubmodel
|
|
14
|
-
from ._my_model_subarraymodel import MyModelSubarraymodel
|
|
15
7
|
from ._m import M
|
|
16
8
|
from ._class import Class
|
|
17
9
|
from ._model import Model
|
|
18
10
|
from ._my_model import MyModel
|
|
11
|
+
from ._m import MSubM
|
|
12
|
+
from ._main_file import MainFileModelModel
|
|
13
|
+
from ._main_file import MainFileModel
|
|
14
|
+
from ._my_model import MyModelModelModel
|
|
15
|
+
from ._my_model import MyModelModel
|
|
16
|
+
from ._my_model import MyModelSubmodelModel
|
|
17
|
+
from ._my_model import MyModelSubmodel
|
|
18
|
+
from ._my_model import MyModelSubarraymodel
|
|
19
19
|
|
|
20
20
|
__all__ = [
|
|
21
|
+
M,
|
|
22
|
+
Class,
|
|
23
|
+
Model,
|
|
24
|
+
MyModel,
|
|
21
25
|
MSubM,
|
|
22
26
|
MainFileModelModel,
|
|
23
27
|
MainFileModel,
|
|
@@ -25,9 +29,5 @@ __all__ = [
|
|
|
25
29
|
MyModelModel,
|
|
26
30
|
MyModelSubmodelModel,
|
|
27
31
|
MyModelSubmodel,
|
|
28
|
-
MyModelSubarraymodel
|
|
29
|
-
M,
|
|
30
|
-
Class,
|
|
31
|
-
Model,
|
|
32
|
-
MyModel
|
|
32
|
+
MyModelSubarraymodel
|
|
33
33
|
]
|
|
@@ -35,3 +35,22 @@ class M(DaraModel):
|
|
|
35
35
|
|
|
36
36
|
return self
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class MSubM(DaraModel):
|
|
41
|
+
def __init__(self):
|
|
42
|
+
pass
|
|
43
|
+
def validate(self):
|
|
44
|
+
pass
|
|
45
|
+
|
|
46
|
+
def to_map(self):
|
|
47
|
+
result = dict()
|
|
48
|
+
_map = super().to_map()
|
|
49
|
+
if _map is not None:
|
|
50
|
+
result = _map
|
|
51
|
+
return result
|
|
52
|
+
|
|
53
|
+
def from_map(self, m: dict = None):
|
|
54
|
+
m = m or dict()
|
|
55
|
+
return self
|
|
56
|
+
|
package/tests/expected/modelConfig/tea_python_tests/models/{_main_file_model.py → _main_file.py}
RENAMED
|
@@ -44,3 +44,30 @@ class MainFileModel(DaraModel):
|
|
|
44
44
|
|
|
45
45
|
return self
|
|
46
46
|
|
|
47
|
+
class MainFileModelModel(DaraModel):
|
|
48
|
+
def __init__(
|
|
49
|
+
self, *,
|
|
50
|
+
str: str = None,
|
|
51
|
+
):
|
|
52
|
+
self.str = str
|
|
53
|
+
|
|
54
|
+
def validate(self):
|
|
55
|
+
self.validate_required(self.str, 'str')
|
|
56
|
+
|
|
57
|
+
def to_map(self):
|
|
58
|
+
result = dict()
|
|
59
|
+
_map = super().to_map()
|
|
60
|
+
if _map is not None:
|
|
61
|
+
result = _map
|
|
62
|
+
if self.str is not None:
|
|
63
|
+
result['str'] = self.str
|
|
64
|
+
|
|
65
|
+
return result
|
|
66
|
+
|
|
67
|
+
def from_map(self, m: dict = None):
|
|
68
|
+
m = m or dict()
|
|
69
|
+
if m.get('str') is not None:
|
|
70
|
+
self.str = m.get('str')
|
|
71
|
+
|
|
72
|
+
return self
|
|
73
|
+
|