@darabonba/python-generator 2.0.7 → 2.0.8
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 +6 -0
- package/lib/generator.js +14 -5
- 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 +149 -0
- 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 +149 -0
- 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 +149 -0
- 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 +149 -0
- 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) => {
|
|
@@ -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
|
+
|
|
@@ -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
|
+
|