@darabonba/python-generator 2.0.3 → 2.0.5
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 +7 -0
- package/lib/builtin.js +6 -12
- package/lib/generator.js +118 -78
- package/package.json +1 -1
- package/tests/expected/annotation/tea_python_tests/models/_test.py +5 -4
- package/tests/expected/builtin/tea_python_tests/client.py +5 -5
- package/tests/expected/comment/tea_python_tests/models/_test_1.py +15 -4
- package/tests/expected/comment/tea_python_tests/models/_test_2.py +7 -4
- package/tests/expected/comment/tea_python_tests/models/_test_3.py +7 -4
- package/tests/expected/complex/tea_python_tests/exceptions/_err_1.py +1 -1
- package/tests/expected/complex/tea_python_tests/exceptions/_err_2.py +1 -1
- package/tests/expected/complex/tea_python_tests/models/_complex_request.py +85 -63
- package/tests/expected/complex/tea_python_tests/models/_complex_request_configs.py +9 -4
- package/tests/expected/complex/tea_python_tests/models/_complex_request_header.py +5 -4
- package/tests/expected/complex/tea_python_tests/models/_complex_request_part.py +5 -4
- package/tests/expected/complex/tea_python_tests/models/_response.py +5 -4
- package/tests/expected/model/tea_python_tests/exceptions/_main_file.py +1 -1
- package/tests/expected/model/tea_python_tests/models/_class.py +2 -3
- package/tests/expected/model/tea_python_tests/models/_m.py +3 -4
- package/tests/expected/model/tea_python_tests/models/_main_file_model.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_main_file_model_model.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_model.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_msub_m.py +2 -3
- package/tests/expected/model/tea_python_tests/models/_my_model.py +216 -74
- package/tests/expected/model/tea_python_tests/models/_my_model_model.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_my_model_model_model.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_my_model_subarraymodel.py +2 -3
- package/tests/expected/model/tea_python_tests/models/_my_model_submodel.py +5 -4
- package/tests/expected/model/tea_python_tests/models/_my_model_submodel_model.py +5 -4
- package/tests/expected/modelConfig/tea_python_tests/__init__.py +1 -0
- package/tests/expected/modelConfig/tea_python_tests/client.py +10 -0
- package/tests/expected/modelConfig/tea_python_tests/exceptions/__init__.py +11 -0
- package/tests/expected/modelConfig/tea_python_tests/exceptions/_main_file.py +28 -0
- package/tests/expected/modelConfig/tea_python_tests/models/__init__.py +33 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_class.py +23 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_m.py +37 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_main_file_model.py +46 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_main_file_model_model.py +33 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_model.py +33 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_msub_m.py +25 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model.py +600 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_model.py +46 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_model_model.py +33 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_subarraymodel.py +23 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_submodel.py +46 -0
- package/tests/expected/modelConfig/tea_python_tests/models/_my_model_submodel_model.py +33 -0
- package/tests/expected/multi/tea_python_tests/api_models/_test_model_dir_2.py +5 -4
- package/tests/expected/multi/tea_python_tests/exceptions/_err.py +2 -2
- package/tests/expected/multi/tea_python_tests/model/user_exceptions/_err.py +1 -1
- package/tests/expected/multi/tea_python_tests/model/user_exceptions/_err_1.py +1 -1
- package/tests/expected/multi/tea_python_tests/model/user_exceptions/_err_2.py +1 -1
- package/tests/expected/multi/tea_python_tests/model/user_models/_base_info.py +5 -4
- package/tests/expected/multi/tea_python_tests/model/user_models/_info.py +7 -4
- package/tests/expected/multi/tea_python_tests/models/_test_model_dir.py +12 -8
- package/tests/expected/typedef/tea_python_tests/models/_m.py +7 -4
- package/tests/fixtures/model/main.dara +4 -0
- package/tests/fixtures/modelConfig/.libraries.json +3 -0
- package/tests/fixtures/modelConfig/Darafile +13 -0
- package/tests/fixtures/modelConfig/libraries/Darafile +20 -0
- package/tests/fixtures/modelConfig/libraries/import.dara +27 -0
- package/tests/fixtures/modelConfig/main.dara +81 -0
- package/tests/main.tests.js +18 -0
- package/tests/output/annotation/tea_python_tests/models/_test.py +5 -4
- package/tests/output/builtin/tea_python_tests/client.py +5 -5
- package/tests/output/comment/tea_python_tests/models/_test_1.py +15 -4
- package/tests/output/comment/tea_python_tests/models/_test_2.py +7 -4
- package/tests/output/comment/tea_python_tests/models/_test_3.py +7 -4
- package/tests/output/complex/tea_python_tests/exceptions/_err_1.py +1 -1
- package/tests/output/complex/tea_python_tests/exceptions/_err_2.py +1 -1
- package/tests/output/complex/tea_python_tests/models/_complex_request.py +85 -63
- package/tests/output/complex/tea_python_tests/models/_complex_request_configs.py +9 -4
- package/tests/output/complex/tea_python_tests/models/_complex_request_header.py +5 -4
- package/tests/output/complex/tea_python_tests/models/_complex_request_part.py +5 -4
- package/tests/output/complex/tea_python_tests/models/_response.py +5 -4
- package/tests/output/model/tea_python_tests/exceptions/_main_file.py +1 -1
- package/tests/output/model/tea_python_tests/models/_class.py +2 -3
- package/tests/output/model/tea_python_tests/models/_m.py +3 -4
- package/tests/output/model/tea_python_tests/models/_main_file_model.py +5 -4
- package/tests/output/model/tea_python_tests/models/_main_file_model_model.py +5 -4
- package/tests/output/model/tea_python_tests/models/_model.py +5 -4
- package/tests/output/model/tea_python_tests/models/_msub_m.py +2 -3
- package/tests/output/model/tea_python_tests/models/_my_model.py +216 -74
- package/tests/output/model/tea_python_tests/models/_my_model_model.py +5 -4
- package/tests/output/model/tea_python_tests/models/_my_model_model_model.py +5 -4
- package/tests/output/model/tea_python_tests/models/_my_model_subarraymodel.py +2 -3
- package/tests/output/model/tea_python_tests/models/_my_model_submodel.py +5 -4
- package/tests/output/model/tea_python_tests/models/_my_model_submodel_model.py +5 -4
- package/tests/output/modelConfig/setup.py +77 -0
- package/tests/output/modelConfig/tea_python_tests/__init__.py +1 -0
- package/tests/output/modelConfig/tea_python_tests/client.py +10 -0
- package/tests/output/modelConfig/tea_python_tests/exceptions/__init__.py +11 -0
- package/tests/output/modelConfig/tea_python_tests/exceptions/_main_file.py +28 -0
- package/tests/output/modelConfig/tea_python_tests/models/__init__.py +33 -0
- package/tests/output/modelConfig/tea_python_tests/models/_class.py +23 -0
- package/tests/output/modelConfig/tea_python_tests/models/_m.py +37 -0
- package/tests/output/modelConfig/tea_python_tests/models/_main_file_model.py +46 -0
- package/tests/output/modelConfig/tea_python_tests/models/_main_file_model_model.py +33 -0
- package/tests/output/modelConfig/tea_python_tests/models/_model.py +33 -0
- package/tests/output/modelConfig/tea_python_tests/models/_msub_m.py +25 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model.py +600 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_model.py +46 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_model_model.py +33 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_subarraymodel.py +23 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_submodel.py +46 -0
- package/tests/output/modelConfig/tea_python_tests/models/_my_model_submodel_model.py +33 -0
- package/tests/output/multi/tea_python_tests/api_models/_test_model_dir_2.py +5 -4
- package/tests/output/multi/tea_python_tests/exceptions/_err.py +2 -2
- package/tests/output/multi/tea_python_tests/model/user_exceptions/_err.py +1 -1
- package/tests/output/multi/tea_python_tests/model/user_exceptions/_err_1.py +1 -1
- package/tests/output/multi/tea_python_tests/model/user_exceptions/_err_2.py +1 -1
- package/tests/output/multi/tea_python_tests/model/user_models/_base_info.py +5 -4
- package/tests/output/multi/tea_python_tests/model/user_models/_info.py +7 -4
- package/tests/output/multi/tea_python_tests/models/_test_model_dir.py +12 -8
- package/tests/output/typedef/tea_python_tests/models/_m.py +7 -4
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from darabonba.model import DaraModel
|
|
5
|
+
from tea_python_tests import models as main_models
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MyModelSubmodel(DaraModel):
|
|
9
|
+
def __init__(
|
|
10
|
+
self, *,
|
|
11
|
+
stringfield: str = None,
|
|
12
|
+
model: main_models.MyModelSubmodelModel = None,
|
|
13
|
+
):
|
|
14
|
+
self.stringfield = stringfield
|
|
15
|
+
self.model = model
|
|
16
|
+
|
|
17
|
+
def validate(self):
|
|
18
|
+
self.validate_required(self.stringfield, 'stringfield')
|
|
19
|
+
self.validate_required(self.model, 'model')
|
|
20
|
+
if self.model:
|
|
21
|
+
self.model.validate()
|
|
22
|
+
|
|
23
|
+
def to_map(self):
|
|
24
|
+
result = dict()
|
|
25
|
+
_map = super().to_map()
|
|
26
|
+
if _map is not None:
|
|
27
|
+
result = _map
|
|
28
|
+
if self.stringfield is not None:
|
|
29
|
+
result['stringfield'] = self.stringfield
|
|
30
|
+
|
|
31
|
+
if self.model is not None:
|
|
32
|
+
result['model'] = self.model.to_map()
|
|
33
|
+
|
|
34
|
+
return result
|
|
35
|
+
|
|
36
|
+
def from_map(self, m: dict = None):
|
|
37
|
+
m = m or dict()
|
|
38
|
+
if m.get('stringfield') is not None:
|
|
39
|
+
self.stringfield = m.get('stringfield')
|
|
40
|
+
|
|
41
|
+
if m.get('model') is not None:
|
|
42
|
+
temp_model = main_models.MyModelSubmodelModel()
|
|
43
|
+
self.model = temp_model.from_map(m.get('model'))
|
|
44
|
+
|
|
45
|
+
return self
|
|
46
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from darabonba.model import DaraModel
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class MyModelSubmodelModel(DaraModel):
|
|
8
|
+
def __init__(
|
|
9
|
+
self, *,
|
|
10
|
+
str: str = None,
|
|
11
|
+
):
|
|
12
|
+
self.str = str
|
|
13
|
+
|
|
14
|
+
def validate(self):
|
|
15
|
+
self.validate_required(self.str, 'str')
|
|
16
|
+
|
|
17
|
+
def to_map(self):
|
|
18
|
+
result = dict()
|
|
19
|
+
_map = super().to_map()
|
|
20
|
+
if _map is not None:
|
|
21
|
+
result = _map
|
|
22
|
+
if self.str is not None:
|
|
23
|
+
result['str'] = self.str
|
|
24
|
+
|
|
25
|
+
return result
|
|
26
|
+
|
|
27
|
+
def from_map(self, m: dict = None):
|
|
28
|
+
m = m or dict()
|
|
29
|
+
if m.get('str') is not None:
|
|
30
|
+
self.str = m.get('str')
|
|
31
|
+
|
|
32
|
+
return self
|
|
33
|
+
|
|
@@ -8,7 +8,7 @@ from darabonba.model import DaraModel
|
|
|
8
8
|
|
|
9
9
|
class TestModelDir2(DaraModel):
|
|
10
10
|
def __init__(
|
|
11
|
-
self,
|
|
11
|
+
self,
|
|
12
12
|
test: int = None,
|
|
13
13
|
):
|
|
14
14
|
self.test = test
|
|
@@ -17,18 +17,19 @@ class TestModelDir2(DaraModel):
|
|
|
17
17
|
self.validate_required(self.test, 'test')
|
|
18
18
|
|
|
19
19
|
def to_map(self):
|
|
20
|
+
result = dict()
|
|
20
21
|
_map = super().to_map()
|
|
21
22
|
if _map is not None:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
result = dict()
|
|
23
|
+
result = _map
|
|
25
24
|
if self.test is not None:
|
|
26
25
|
result['test'] = self.test
|
|
26
|
+
|
|
27
27
|
return result
|
|
28
28
|
|
|
29
29
|
def from_map(self, m: dict = None):
|
|
30
30
|
m = m or dict()
|
|
31
31
|
if m.get('test') is not None:
|
|
32
32
|
self.test = m.get('test')
|
|
33
|
+
|
|
33
34
|
return self
|
|
34
35
|
|
|
@@ -6,7 +6,7 @@ from darabonba.exceptions import DaraException
|
|
|
6
6
|
|
|
7
7
|
class ERRException(DaraException):
|
|
8
8
|
def __init__(
|
|
9
|
-
self,
|
|
9
|
+
self,
|
|
10
10
|
message: str = None,
|
|
11
11
|
code: str = None,
|
|
12
12
|
stack: str = None,
|
|
@@ -22,7 +22,7 @@ class ERRException(DaraException):
|
|
|
22
22
|
|
|
23
23
|
class ErrException(DaraException):
|
|
24
24
|
def __init__(
|
|
25
|
-
self,
|
|
25
|
+
self,
|
|
26
26
|
message: str = None,
|
|
27
27
|
code: str = None,
|
|
28
28
|
stack: str = None,
|
|
@@ -8,7 +8,7 @@ from alibabacloud_tea_util import models as darautil_models
|
|
|
8
8
|
|
|
9
9
|
class BaseInfo(darautil_models.RuntimeOptions):
|
|
10
10
|
def __init__(
|
|
11
|
-
self,
|
|
11
|
+
self,
|
|
12
12
|
autoretry: bool = None,
|
|
13
13
|
ignore_ssl: bool = None,
|
|
14
14
|
key: str = None,
|
|
@@ -55,18 +55,19 @@ class BaseInfo(darautil_models.RuntimeOptions):
|
|
|
55
55
|
self.validate_required(self.max_attemp, 'max_attemp')
|
|
56
56
|
|
|
57
57
|
def to_map(self):
|
|
58
|
+
result = dict()
|
|
58
59
|
_map = super().to_map()
|
|
59
60
|
if _map is not None:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
result = dict()
|
|
61
|
+
result = _map
|
|
63
62
|
if self.max_attemp is not None:
|
|
64
63
|
result['maxAttemp'] = self.max_attemp
|
|
64
|
+
|
|
65
65
|
return result
|
|
66
66
|
|
|
67
67
|
def from_map(self, m: dict = None):
|
|
68
68
|
m = m or dict()
|
|
69
69
|
if m.get('maxAttemp') is not None:
|
|
70
70
|
self.max_attemp = m.get('maxAttemp')
|
|
71
|
+
|
|
71
72
|
return self
|
|
72
73
|
|
|
@@ -6,7 +6,7 @@ from tea_python_tests import user_models as main_models
|
|
|
6
6
|
|
|
7
7
|
class Info(main_models.BaseInfo):
|
|
8
8
|
def __init__(
|
|
9
|
-
self,
|
|
9
|
+
self,
|
|
10
10
|
max_attemp: int = None,
|
|
11
11
|
autoretry: bool = None,
|
|
12
12
|
ignore_ssl: bool = None,
|
|
@@ -58,22 +58,25 @@ class Info(main_models.BaseInfo):
|
|
|
58
58
|
self.validate_required(self.age, 'age')
|
|
59
59
|
|
|
60
60
|
def to_map(self):
|
|
61
|
+
result = dict()
|
|
61
62
|
_map = super().to_map()
|
|
62
63
|
if _map is not None:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
result = dict()
|
|
64
|
+
result = _map
|
|
66
65
|
if self.name is not None:
|
|
67
66
|
result['name'] = self.name
|
|
67
|
+
|
|
68
68
|
if self.age is not None:
|
|
69
69
|
result['age'] = self.age
|
|
70
|
+
|
|
70
71
|
return result
|
|
71
72
|
|
|
72
73
|
def from_map(self, m: dict = None):
|
|
73
74
|
m = m or dict()
|
|
74
75
|
if m.get('name') is not None:
|
|
75
76
|
self.name = m.get('name')
|
|
77
|
+
|
|
76
78
|
if m.get('age') is not None:
|
|
77
79
|
self.age = m.get('age')
|
|
80
|
+
|
|
78
81
|
return self
|
|
79
82
|
|
|
@@ -8,7 +8,7 @@ from typing import Any
|
|
|
8
8
|
|
|
9
9
|
class TestModelDIR(DaraModel):
|
|
10
10
|
def __init__(
|
|
11
|
-
self,
|
|
11
|
+
self,
|
|
12
12
|
test: str = None,
|
|
13
13
|
a: Any = None,
|
|
14
14
|
):
|
|
@@ -20,30 +20,33 @@ class TestModelDIR(DaraModel):
|
|
|
20
20
|
self.validate_required(self.a, 'a')
|
|
21
21
|
|
|
22
22
|
def to_map(self):
|
|
23
|
+
result = dict()
|
|
23
24
|
_map = super().to_map()
|
|
24
25
|
if _map is not None:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
result = dict()
|
|
26
|
+
result = _map
|
|
28
27
|
if self.test is not None:
|
|
29
28
|
result['test'] = self.test
|
|
29
|
+
|
|
30
30
|
if self.a is not None:
|
|
31
31
|
result['a'] = self.a
|
|
32
|
+
|
|
32
33
|
return result
|
|
33
34
|
|
|
34
35
|
def from_map(self, m: dict = None):
|
|
35
36
|
m = m or dict()
|
|
36
37
|
if m.get('test') is not None:
|
|
37
38
|
self.test = m.get('test')
|
|
39
|
+
|
|
38
40
|
if m.get('a') is not None:
|
|
39
41
|
self.a = m.get('a')
|
|
42
|
+
|
|
40
43
|
return self
|
|
41
44
|
|
|
42
45
|
|
|
43
46
|
|
|
44
47
|
class TestModelDir(DaraModel):
|
|
45
48
|
def __init__(
|
|
46
|
-
self,
|
|
49
|
+
self,
|
|
47
50
|
test: int = None,
|
|
48
51
|
m: user_models.Info = None,
|
|
49
52
|
):
|
|
@@ -55,13 +58,13 @@ class TestModelDir(DaraModel):
|
|
|
55
58
|
self.validate_required(self.m, 'm')
|
|
56
59
|
|
|
57
60
|
def to_map(self):
|
|
61
|
+
result = dict()
|
|
58
62
|
_map = super().to_map()
|
|
59
63
|
if _map is not None:
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
result = dict()
|
|
64
|
+
result = _map
|
|
63
65
|
if self.test is not None:
|
|
64
66
|
result['test'] = self.test
|
|
67
|
+
|
|
65
68
|
if self.m is not None:
|
|
66
69
|
result['m'] = self.m.to_map()
|
|
67
70
|
|
|
@@ -71,6 +74,7 @@ class TestModelDir(DaraModel):
|
|
|
71
74
|
m = m or dict()
|
|
72
75
|
if m.get('test') is not None:
|
|
73
76
|
self.test = m.get('test')
|
|
77
|
+
|
|
74
78
|
if m.get('m') is not None:
|
|
75
79
|
temp_model = user_models.Info()
|
|
76
80
|
self.m = temp_model.from_map(m.get('m'))
|
|
@@ -10,7 +10,7 @@ from Tea.model import TeaModel
|
|
|
10
10
|
|
|
11
11
|
class M(DaraModel):
|
|
12
12
|
def __init__(
|
|
13
|
-
self,
|
|
13
|
+
self,
|
|
14
14
|
a: Request = None,
|
|
15
15
|
b: TeaModel = None,
|
|
16
16
|
):
|
|
@@ -21,22 +21,25 @@ class M(DaraModel):
|
|
|
21
21
|
pass
|
|
22
22
|
|
|
23
23
|
def to_map(self):
|
|
24
|
+
result = dict()
|
|
24
25
|
_map = super().to_map()
|
|
25
26
|
if _map is not None:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
result = dict()
|
|
27
|
+
result = _map
|
|
29
28
|
if self.a is not None:
|
|
30
29
|
result['a'] = self.a
|
|
30
|
+
|
|
31
31
|
if self.b is not None:
|
|
32
32
|
result['b'] = self.b
|
|
33
|
+
|
|
33
34
|
return result
|
|
34
35
|
|
|
35
36
|
def from_map(self, m: dict = None):
|
|
36
37
|
m = m or dict()
|
|
37
38
|
if m.get('a') is not None:
|
|
38
39
|
self.a = m.get('a')
|
|
40
|
+
|
|
39
41
|
if m.get('b') is not None:
|
|
40
42
|
self.b = m.get('b')
|
|
43
|
+
|
|
41
44
|
return self
|
|
42
45
|
|
|
@@ -45,10 +45,14 @@ model MyModel = {
|
|
|
45
45
|
subarray: [ M ],
|
|
46
46
|
ssubarray: [[ M ]],
|
|
47
47
|
ssubmarray: [[ Source ]],
|
|
48
|
+
sssubmarray: [[ Source ]],
|
|
48
49
|
ssubmmarray: [[ Source.Request ]],
|
|
50
|
+
sssubmmarray: [[[ Source.Request ]]],
|
|
49
51
|
maparray: [ map[string]any ],
|
|
50
52
|
mapsubmarray: [ map[string]Source ],
|
|
51
53
|
moduleModelMap: map[string]Source.Request,
|
|
54
|
+
arrModuleModelMap: [ map[string]Source.Request ],
|
|
55
|
+
arrsModuleModelMap: [[ map[string]Source.Request ]],
|
|
52
56
|
subModelMap: map[string]M.subM,
|
|
53
57
|
modelMap: map[string]M,
|
|
54
58
|
moduleMap: map[string]Source,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scope": "darabonba",
|
|
3
|
+
"name": "import",
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"main": "./import.dara",
|
|
6
|
+
"java": {
|
|
7
|
+
"package": "com.import"
|
|
8
|
+
},
|
|
9
|
+
"csharp": {
|
|
10
|
+
"namespace": "Darabonba.import"
|
|
11
|
+
},
|
|
12
|
+
"python": {
|
|
13
|
+
"package": "Source",
|
|
14
|
+
"clientName": "client",
|
|
15
|
+
"modelDirName": "Models"
|
|
16
|
+
},
|
|
17
|
+
"releases": {
|
|
18
|
+
"php": "scope/name:1.0.0"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
model RuntimeObject = {}
|
|
2
|
+
|
|
3
|
+
static function array(request: object, str: string): [ any ];
|
|
4
|
+
|
|
5
|
+
static function query(q: object): map[string]string;
|
|
6
|
+
static function body(): readable;
|
|
7
|
+
static function parse(c: class): void;
|
|
8
|
+
static async function asyncFunc(): void;
|
|
9
|
+
|
|
10
|
+
type @protocol = string
|
|
11
|
+
type @pathname = string
|
|
12
|
+
type @API = map[string]string
|
|
13
|
+
|
|
14
|
+
init(config: Config);
|
|
15
|
+
model Config = {}
|
|
16
|
+
function print(runtime: object, str: string): void {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function printAsync(runtime: object, str: string): void {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
model Request = {
|
|
25
|
+
accesskey?: string(name='accesskey', description='accesskey'),
|
|
26
|
+
region?: string(name='region', description='region'),
|
|
27
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import Source;
|
|
2
|
+
|
|
3
|
+
model M = {
|
|
4
|
+
subM: {}
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
model Class = {};
|
|
8
|
+
|
|
9
|
+
model model = {
|
|
10
|
+
str: string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exception MainFile extends $Error {
|
|
14
|
+
size: number,
|
|
15
|
+
data: map[string]model,
|
|
16
|
+
model: {
|
|
17
|
+
str: string,
|
|
18
|
+
model: {
|
|
19
|
+
str: string
|
|
20
|
+
},
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
model MyModel = {
|
|
25
|
+
model: {
|
|
26
|
+
str: string,
|
|
27
|
+
model: {
|
|
28
|
+
str: string
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
stringfield: string,
|
|
32
|
+
bytesfield: bytes,
|
|
33
|
+
stringarrayfield: [ string ],
|
|
34
|
+
mapfield: map[string]string,
|
|
35
|
+
name: string(name='realName'),
|
|
36
|
+
submodel: {
|
|
37
|
+
stringfield: string,
|
|
38
|
+
model: {
|
|
39
|
+
str: string
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
submodelMap: map[string]MyModel.submodel,
|
|
43
|
+
mapModel: map[string]M,
|
|
44
|
+
subarraymodel: [ {} ],
|
|
45
|
+
subarray: [ M ],
|
|
46
|
+
ssubarray: [[ M ]],
|
|
47
|
+
ssubmarray: [[ Source ]],
|
|
48
|
+
sssubmarray: [[ Source ]],
|
|
49
|
+
ssubmmarray: [[ Source.Request ]],
|
|
50
|
+
sssubmmarray: [[[ Source.Request ]]],
|
|
51
|
+
maparray: [ map[string]any ],
|
|
52
|
+
mapsubmarray: [ map[string]Source ],
|
|
53
|
+
moduleModelMap: map[string]Source.Request,
|
|
54
|
+
arrModuleModelMap: [ map[string]Source.Request ],
|
|
55
|
+
arrsModuleModelMap: [[ map[string]Source.Request ]],
|
|
56
|
+
subModelMap: map[string]M.subM,
|
|
57
|
+
modelMap: map[string]M,
|
|
58
|
+
moduleMap: map[string]Source,
|
|
59
|
+
object: object,
|
|
60
|
+
readable: readable,
|
|
61
|
+
writable: writable,
|
|
62
|
+
existModel: M,
|
|
63
|
+
request: $Request,
|
|
64
|
+
complexList: [ [ string ] ],
|
|
65
|
+
numberfield: number,
|
|
66
|
+
integerField: integer,
|
|
67
|
+
floatField: float,
|
|
68
|
+
doubleField: double,
|
|
69
|
+
longField: long,
|
|
70
|
+
ulongField: ulong,
|
|
71
|
+
int8Field: int8,
|
|
72
|
+
int16Field: int16,
|
|
73
|
+
int32Field: int32,
|
|
74
|
+
int64Field: int64,
|
|
75
|
+
uint8Field: uint8,
|
|
76
|
+
uint16Field: uint16,
|
|
77
|
+
uint32Field: uint32,
|
|
78
|
+
uint64Field: uint64,
|
|
79
|
+
link?: string(name='link', example='http://*/*.png'),
|
|
80
|
+
};
|
|
81
|
+
|
package/tests/main.tests.js
CHANGED
|
@@ -102,6 +102,24 @@ describe('Python Generator', function () {
|
|
|
102
102
|
});
|
|
103
103
|
});
|
|
104
104
|
|
|
105
|
+
it('model config should ok', function () {
|
|
106
|
+
check('modelConfig', 'tea_python_tests',
|
|
107
|
+
{
|
|
108
|
+
python: {
|
|
109
|
+
package: 'tea_python_tests',
|
|
110
|
+
clientName: 'client',
|
|
111
|
+
noneEmpty: true,
|
|
112
|
+
strictModel: true,
|
|
113
|
+
additionalPackage: [
|
|
114
|
+
{
|
|
115
|
+
from: '__future__',
|
|
116
|
+
import: 'annotations'
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
|
|
105
123
|
it('map should ok', function () {
|
|
106
124
|
check('map', 'tea_python_tests',
|
|
107
125
|
{
|
|
@@ -10,7 +10,7 @@ from darabonba.model import DaraModel
|
|
|
10
10
|
"""
|
|
11
11
|
class Test(DaraModel):
|
|
12
12
|
def __init__(
|
|
13
|
-
self,
|
|
13
|
+
self,
|
|
14
14
|
test: str = None,
|
|
15
15
|
):
|
|
16
16
|
# Alichange app id
|
|
@@ -20,18 +20,19 @@ class Test(DaraModel):
|
|
|
20
20
|
self.validate_required(self.test, 'test')
|
|
21
21
|
|
|
22
22
|
def to_map(self):
|
|
23
|
+
result = dict()
|
|
23
24
|
_map = super().to_map()
|
|
24
25
|
if _map is not None:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
result = dict()
|
|
26
|
+
result = _map
|
|
28
27
|
if self.test is not None:
|
|
29
28
|
result['test'] = self.test
|
|
29
|
+
|
|
30
30
|
return result
|
|
31
31
|
|
|
32
32
|
def from_map(self, m: dict = None):
|
|
33
33
|
m = m or dict()
|
|
34
34
|
if m.get('test') is not None:
|
|
35
35
|
self.test = m.get('test')
|
|
36
|
+
|
|
36
37
|
return self
|
|
37
38
|
|
|
@@ -16,7 +16,7 @@ from darabonba.utils.stream import Stream as DaraStream
|
|
|
16
16
|
from darabonba.url import Url as DaraURL
|
|
17
17
|
from darabonba.utils.xml import XML as DaraXML
|
|
18
18
|
import sys
|
|
19
|
-
from typing import List, Any
|
|
19
|
+
from typing import List, Any
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Client:
|
|
@@ -618,8 +618,8 @@ class Client:
|
|
|
618
618
|
'key': 'value'
|
|
619
619
|
}
|
|
620
620
|
obj = maps
|
|
621
|
-
ws =
|
|
622
|
-
rs =
|
|
621
|
+
ws = DaraStream.to_writable(obj)
|
|
622
|
+
rs = DaraStream.to_readable(maps)
|
|
623
623
|
data = rs.read(30)
|
|
624
624
|
if not DaraCore.is_null(data):
|
|
625
625
|
ws.write(data)
|
|
@@ -669,8 +669,8 @@ class Client:
|
|
|
669
669
|
'key': 'value'
|
|
670
670
|
}
|
|
671
671
|
obj = maps
|
|
672
|
-
ws =
|
|
673
|
-
rs =
|
|
672
|
+
ws = DaraStream.to_writable(obj)
|
|
673
|
+
rs = DaraStream.to_readable(maps)
|
|
674
674
|
data = rs.read(30)
|
|
675
675
|
if not DaraCore.is_null(data):
|
|
676
676
|
ws.write(data)
|
|
@@ -14,7 +14,7 @@ from typing import List
|
|
|
14
14
|
"""
|
|
15
15
|
class Test1(DaraModel):
|
|
16
16
|
def __init__(
|
|
17
|
-
self,
|
|
17
|
+
self,
|
|
18
18
|
test: str = None,
|
|
19
19
|
# odel的test back comment
|
|
20
20
|
test_2: str = None,
|
|
@@ -50,42 +50,53 @@ class Test1(DaraModel):
|
|
|
50
50
|
self.validate_required(self.a_sts, 'a_sts')
|
|
51
51
|
|
|
52
52
|
def to_map(self):
|
|
53
|
+
result = dict()
|
|
53
54
|
_map = super().to_map()
|
|
54
55
|
if _map is not None:
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
result = dict()
|
|
56
|
+
result = _map
|
|
58
57
|
if self.test is not None:
|
|
59
58
|
result['test'] = self.test
|
|
59
|
+
|
|
60
60
|
# odel的test back comment
|
|
61
61
|
if self.test_2 is not None:
|
|
62
62
|
result['test2'] = self.test_2
|
|
63
|
+
|
|
63
64
|
# odel的test2 back comment
|
|
64
65
|
if self.test_3 is not None:
|
|
65
66
|
result['test3'] = self.test_3
|
|
67
|
+
|
|
66
68
|
if self.test_5 is not None:
|
|
67
69
|
result['test5'] = self.test_5
|
|
70
|
+
|
|
68
71
|
if self.sts is not None:
|
|
69
72
|
result['sts'] = self.sts
|
|
73
|
+
|
|
70
74
|
if self.a_sts is not None:
|
|
71
75
|
result['asts'] = self.a_sts
|
|
76
|
+
|
|
72
77
|
return result
|
|
73
78
|
|
|
74
79
|
def from_map(self, m: dict = None):
|
|
75
80
|
m = m or dict()
|
|
76
81
|
if m.get('test') is not None:
|
|
77
82
|
self.test = m.get('test')
|
|
83
|
+
|
|
78
84
|
# odel的test back comment
|
|
79
85
|
if m.get('test2') is not None:
|
|
80
86
|
self.test_2 = m.get('test2')
|
|
87
|
+
|
|
81
88
|
# odel的test2 back comment
|
|
82
89
|
if m.get('test3') is not None:
|
|
83
90
|
self.test_3 = m.get('test3')
|
|
91
|
+
|
|
84
92
|
if m.get('test5') is not None:
|
|
85
93
|
self.test_5 = m.get('test5')
|
|
94
|
+
|
|
86
95
|
if m.get('sts') is not None:
|
|
87
96
|
self.sts = m.get('sts')
|
|
97
|
+
|
|
88
98
|
if m.get('asts') is not None:
|
|
89
99
|
self.a_sts = m.get('asts')
|
|
100
|
+
|
|
90
101
|
return self
|
|
91
102
|
|