@darabonba/python-generator 1.2.18 → 2.0.0
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 +0 -155
- package/lib/builtin.js +818 -0
- package/lib/generator.js +2704 -0
- package/lib/helper.js +422 -0
- package/package.json +6 -5
- 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/alias/setup.py +79 -0
- package/tests/expected/alias/tea_python_tests/__init__.py +1 -0
- package/tests/expected/alias/tea_python_tests/client.py +35 -0
- package/tests/expected/annotation/tea_python_tests/__init__.py +1 -0
- package/tests/expected/annotation/tea_python_tests/client.py +93 -0
- package/tests/expected/annotation/tea_python_tests/models.py +37 -0
- package/tests/expected/api/tea_python_tests/__init__.py +1 -0
- package/tests/expected/api/tea_python_tests/client.py +106 -0
- package/tests/expected/builtin/tea_python_tests/client.py +685 -0
- package/tests/expected/comment/tea_python_tests/__init__.py +1 -0
- package/tests/expected/comment/tea_python_tests/client.py +288 -0
- package/tests/expected/comment/tea_python_tests/models.py +195 -0
- package/tests/expected/complex/tea_python_tests/__init__.py +1 -0
- package/tests/expected/complex/tea_python_tests/client.py +1168 -0
- package/tests/expected/complex/tea_python_tests/exceptions.py +39 -0
- package/tests/expected/complex/tea_python_tests/models.py +570 -0
- package/tests/expected/const/tea_python_tests/__init__.py +1 -0
- package/tests/expected/const/tea_python_tests/client.py +14 -0
- package/tests/expected/empty/setup.py +74 -0
- package/tests/expected/empty/tea_python_tests/__init__.py +1 -0
- package/tests/expected/empty/tea_python_tests/client.py +10 -0
- package/tests/expected/exec/tea_python_tests/__init__.py +1 -0
- package/tests/expected/exec/tea_python_tests/exec_client.py +21 -0
- package/tests/expected/function/tea_python_tests/__init__.py +1 -0
- package/tests/expected/function/tea_python_tests/client.py +64 -0
- package/tests/expected/import/setup.py +78 -0
- package/tests/expected/import/tea_python_tests/__init__.py +1 -0
- package/tests/expected/import/tea_python_tests/client.py +29 -0
- package/tests/expected/map/tea_python_tests/__init__.py +1 -0
- package/tests/expected/map/tea_python_tests/client.py +39 -0
- package/tests/expected/model/tea_python_tests/__init__.py +1 -0
- package/tests/expected/model/tea_python_tests/client.py +10 -0
- package/tests/expected/model/tea_python_tests/exceptions.py +28 -0
- package/tests/expected/model/tea_python_tests/models.py +780 -0
- package/tests/expected/multi/tea_python_tests/api.py +95 -0
- package/tests/expected/multi/tea_python_tests/client.py +40 -0
- package/tests/expected/multi/tea_python_tests/lib/util.py +19 -0
- package/tests/expected/multi/tea_python_tests/model/user.py +23 -0
- package/tests/expected/multi/tea_python_tests/model/user_exceptions.py +83 -0
- package/tests/expected/multi/tea_python_tests/model/user_models.py +145 -0
- 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/expected/statements/tea_python_tests/__init__.py +1 -0
- package/tests/expected/statements/tea_python_tests/client.py +86 -0
- package/tests/expected/super/tea_python_tests/__init__.py +1 -0
- package/tests/expected/super/tea_python_tests/client.py +16 -0
- package/tests/expected/typedef/setup.py +77 -0
- package/tests/expected/typedef/tea_python_tests/__init__.py +1 -0
- package/tests/expected/typedef/tea_python_tests/client.py +74 -0
- package/tests/expected/typedef/tea_python_tests/models.py +42 -0
- package/tests/fixtures/alias/Darafile +11 -0
- package/tests/fixtures/alias/libraries/Alias/Darafile +11 -0
- package/tests/fixtures/alias/libraries/Alias-Symbol/Darafile +11 -0
- package/tests/fixtures/builtin/Darafile +6 -0
- package/tests/fixtures/builtin/main.dara +333 -0
- package/tests/fixtures/complex/libraries/import.dara +18 -11
- package/tests/fixtures/complex/main.dara +451 -103
- package/tests/fixtures/function/main.dara +2 -0
- package/tests/fixtures/import/libraries/Darafile +1 -1
- package/tests/fixtures/import/pack/Darafile +3 -0
- package/tests/fixtures/map/libraries/Darafile +3 -0
- package/tests/fixtures/map/libraries/import.dara +4 -0
- package/tests/fixtures/map/main.dara +17 -2
- package/tests/fixtures/model/.libraries.json +3 -0
- package/tests/fixtures/model/Darafile +5 -2
- package/tests/fixtures/model/libraries/Darafile +20 -0
- package/tests/fixtures/model/libraries/import.dara +27 -0
- package/tests/fixtures/model/main.dara +57 -37
- package/tests/fixtures/multi/.libraries.json +3 -0
- package/tests/fixtures/multi/Darafile +12 -0
- package/tests/fixtures/multi/api.dara +20 -0
- package/tests/fixtures/multi/lib/util.dara +5 -0
- package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/Teafile +62 -0
- package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/main.tea +244 -0
- package/tests/fixtures/multi/main.dara +32 -0
- package/tests/fixtures/multi/model/user.dara +33 -0
- package/tests/{python3.tests.js → main.tests.js} +107 -65
- package/tests/output/alias/setup.py +79 -0
- package/tests/output/alias/tea_python_tests/client.py +35 -0
- package/tests/output/annotation/setup.py +77 -0
- package/tests/output/annotation/tea_python_tests/client.py +93 -0
- package/tests/output/annotation/tea_python_tests/models.py +37 -0
- package/tests/output/api/setup.py +77 -0
- package/tests/output/api/tea_python_tests/client.py +106 -0
- package/tests/output/builtin/setup.py +77 -0
- package/tests/output/builtin/tea_python_tests/client.py +685 -0
- package/tests/output/comment/setup.py +77 -0
- package/tests/output/comment/tea_python_tests/client.py +288 -0
- package/tests/output/comment/tea_python_tests/models.py +195 -0
- package/tests/output/complex/setup.py +77 -0
- package/tests/output/complex/tea_python_tests/client.py +1168 -0
- package/tests/output/complex/tea_python_tests/exceptions.py +39 -0
- package/tests/output/complex/tea_python_tests/models.py +570 -0
- package/tests/output/const/setup.py +77 -0
- package/tests/output/const/tea_python_tests/client.py +14 -0
- package/tests/output/empty/setup.py +77 -0
- package/tests/output/empty/tea_python_tests/client.py +10 -0
- package/tests/output/exec/setup.py +77 -0
- package/tests/output/exec/tea_python_tests/exec_client.py +21 -0
- package/tests/output/function/setup.py +77 -0
- package/tests/output/function/tea_python_tests/client.py +64 -0
- package/tests/output/import/setup.py +78 -0
- package/tests/output/import/tea_python_tests/client.py +29 -0
- package/tests/output/map/setup.py +77 -0
- package/tests/output/map/tea_python_tests/client.py +39 -0
- package/tests/output/model/setup.py +77 -0
- package/tests/output/model/tea_python_tests/client.py +10 -0
- package/tests/output/model/tea_python_tests/exceptions.py +28 -0
- package/tests/output/model/tea_python_tests/models.py +780 -0
- package/tests/output/multi/setup.py +77 -0
- package/tests/output/multi/tea_python_tests/api.py +95 -0
- package/tests/output/multi/tea_python_tests/client.py +40 -0
- package/tests/output/multi/tea_python_tests/lib/util.py +19 -0
- package/tests/output/multi/tea_python_tests/model/user.py +23 -0
- package/tests/output/multi/tea_python_tests/model/user_exceptions.py +83 -0
- package/tests/output/multi/tea_python_tests/model/user_models.py +145 -0
- package/tests/output/statements/setup.py +77 -0
- package/tests/output/statements/tea_python_tests/client.py +86 -0
- package/tests/output/super/setup.py +77 -0
- package/tests/output/super/tea_python_tests/client.py +16 -0
- package/tests/output/typedef/setup.py +78 -0
- package/tests/output/typedef/tea_python_tests/client.py +74 -0
- package/tests/output/typedef/tea_python_tests/models.py +42 -0
- package/tests/common.tests.js +0 -244
- package/tests/lib.tests.js +0 -269
- package/tests/python2.tests.js +0 -283
- package/tests/resolver.tests.js +0 -434
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from darabonba.core import DaraCore
|
|
5
|
+
from darabonba.exceptions import UnretryableException
|
|
6
|
+
from darabonba.policy.retry import RetryPolicyContext
|
|
7
|
+
from darabonba.request import DaraRequest
|
|
8
|
+
from tea_python_tests.lib.util import Util
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class Client:
|
|
14
|
+
def __init__(self):
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
def test_3(self) -> int:
|
|
18
|
+
_runtime = {
|
|
19
|
+
'timeouted': 'retry',
|
|
20
|
+
}
|
|
21
|
+
_last_request = None
|
|
22
|
+
_last_response = None
|
|
23
|
+
_retries_attempted = 0
|
|
24
|
+
_context = RetryPolicyContext(
|
|
25
|
+
retries_attempted= _retries_attempted
|
|
26
|
+
)
|
|
27
|
+
while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
|
|
28
|
+
if _retries_attempted > 0:
|
|
29
|
+
_backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
|
|
30
|
+
if _backoff_time > 0:
|
|
31
|
+
DaraCore.sleep(_backoff_time)
|
|
32
|
+
_retries_attempted = _retries_attempted + 1
|
|
33
|
+
try:
|
|
34
|
+
_request = DaraRequest()
|
|
35
|
+
_request.protocol = 'https'
|
|
36
|
+
_request.method = 'DELETE'
|
|
37
|
+
_request.pathname = '/'
|
|
38
|
+
_request.headers = {
|
|
39
|
+
'host': 'test.aliyun.com',
|
|
40
|
+
'accept': 'application/json'
|
|
41
|
+
}
|
|
42
|
+
_request.query = Util.get_query()
|
|
43
|
+
_last_request = _request
|
|
44
|
+
_response = DaraCore.do_action(_request, _runtime)
|
|
45
|
+
_last_response = _response
|
|
46
|
+
return _response.status_code
|
|
47
|
+
except Exception as e:
|
|
48
|
+
_context = RetryPolicyContext(
|
|
49
|
+
retries_attempted= _retries_attempted,
|
|
50
|
+
http_request = _last_request,
|
|
51
|
+
http_response = _last_response,
|
|
52
|
+
exception = e
|
|
53
|
+
)
|
|
54
|
+
continue
|
|
55
|
+
raise UnretryableException(_context)
|
|
56
|
+
|
|
57
|
+
async def test_3_async(self) -> int:
|
|
58
|
+
_runtime = {
|
|
59
|
+
'timeouted': 'retry',
|
|
60
|
+
}
|
|
61
|
+
_last_request = None
|
|
62
|
+
_last_response = None
|
|
63
|
+
_retries_attempted = 0
|
|
64
|
+
_context = RetryPolicyContext(
|
|
65
|
+
retries_attempted= _retries_attempted
|
|
66
|
+
)
|
|
67
|
+
while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
|
|
68
|
+
if _retries_attempted > 0:
|
|
69
|
+
_backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
|
|
70
|
+
if _backoff_time > 0:
|
|
71
|
+
DaraCore.sleep(_backoff_time)
|
|
72
|
+
_retries_attempted = _retries_attempted + 1
|
|
73
|
+
try:
|
|
74
|
+
_request = DaraRequest()
|
|
75
|
+
_request.protocol = 'https'
|
|
76
|
+
_request.method = 'DELETE'
|
|
77
|
+
_request.pathname = '/'
|
|
78
|
+
_request.headers = {
|
|
79
|
+
'host': 'test.aliyun.com',
|
|
80
|
+
'accept': 'application/json'
|
|
81
|
+
}
|
|
82
|
+
_request.query = Util.get_query()
|
|
83
|
+
_last_request = _request
|
|
84
|
+
_response = await DaraCore.async_do_action(_request, _runtime)
|
|
85
|
+
_last_response = _response
|
|
86
|
+
return _response.status_code
|
|
87
|
+
except Exception as e:
|
|
88
|
+
_context = RetryPolicyContext(
|
|
89
|
+
retries_attempted= _retries_attempted,
|
|
90
|
+
http_request = _last_request,
|
|
91
|
+
http_response = _last_response,
|
|
92
|
+
exception = e
|
|
93
|
+
)
|
|
94
|
+
continue
|
|
95
|
+
raise UnretryableException(_context)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from tea_python_tests.model import user_models as user_models
|
|
5
|
+
from tea_python_tests.lib.util import Util
|
|
6
|
+
from tea_python_tests.api import Client as APIClient
|
|
7
|
+
from typing import Generator, AsyncGenerator
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Client:
|
|
13
|
+
_user: user_models.Info = None
|
|
14
|
+
def __init__(self):
|
|
15
|
+
self._user = user_models.Info(
|
|
16
|
+
name = 'test',
|
|
17
|
+
age = 124,
|
|
18
|
+
max_attemp = 3,
|
|
19
|
+
autoretry = True
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
def test_3(self) -> Generator[str, None, None]:
|
|
23
|
+
it = Util.test_1()
|
|
24
|
+
for test in it:
|
|
25
|
+
yield test
|
|
26
|
+
|
|
27
|
+
async def test_3_async(self) -> AsyncGenerator[str, None, None]:
|
|
28
|
+
it = Util.test_1()
|
|
29
|
+
for test in it:
|
|
30
|
+
yield test
|
|
31
|
+
|
|
32
|
+
def test_4(self) -> int:
|
|
33
|
+
api = APIClient()
|
|
34
|
+
status = api.test_3()
|
|
35
|
+
return status
|
|
36
|
+
|
|
37
|
+
async def test_4_async(self) -> int:
|
|
38
|
+
api = APIClient()
|
|
39
|
+
status = await api.test_3_async()
|
|
40
|
+
return status
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from typing import Generator, Dict
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Util:
|
|
9
|
+
|
|
10
|
+
def __init__(self):
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def test_1() -> Generator[str, None, None]:
|
|
15
|
+
raise Exception('Un-implemented')
|
|
16
|
+
|
|
17
|
+
@staticmethod
|
|
18
|
+
def get_query() -> Dict[str, str]:
|
|
19
|
+
raise Exception('Un-implemented')
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from tea_python_tests.lib.util import Util
|
|
5
|
+
from typing import Generator, AsyncGenerator
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Client:
|
|
9
|
+
|
|
10
|
+
def __init__(self):
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
@staticmethod
|
|
14
|
+
def test() -> Generator[str, None, None]:
|
|
15
|
+
it = Util.test_1()
|
|
16
|
+
for test in it:
|
|
17
|
+
yield test
|
|
18
|
+
|
|
19
|
+
@staticmethod
|
|
20
|
+
async def test_async() -> AsyncGenerator[str, None, None]:
|
|
21
|
+
it = Util.test_1()
|
|
22
|
+
for test in it:
|
|
23
|
+
yield test
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from darabonba.exceptions import DaraException
|
|
5
|
+
import user_models
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ErrException(DaraException):
|
|
9
|
+
def __init__(
|
|
10
|
+
self,
|
|
11
|
+
message: str = None,
|
|
12
|
+
code: str = None,
|
|
13
|
+
stack: str = None,
|
|
14
|
+
msg: str = None,
|
|
15
|
+
):
|
|
16
|
+
super().__init__({
|
|
17
|
+
'message': message,
|
|
18
|
+
'code': code,
|
|
19
|
+
'stack': stack,
|
|
20
|
+
})
|
|
21
|
+
self.name = 'ErrException'
|
|
22
|
+
self.msg = msg
|
|
23
|
+
|
|
24
|
+
class Err1Exception(user_models.BaseInfo, DaraException):
|
|
25
|
+
def __init__(
|
|
26
|
+
self,
|
|
27
|
+
max_attemp: int = None,
|
|
28
|
+
autoretry: bool = None,
|
|
29
|
+
ignore_ssl: bool = None,
|
|
30
|
+
key: str = None,
|
|
31
|
+
cert: str = None,
|
|
32
|
+
ca: str = None,
|
|
33
|
+
max_attempts: int = None,
|
|
34
|
+
backoff_policy: str = None,
|
|
35
|
+
backoff_period: int = None,
|
|
36
|
+
read_timeout: int = None,
|
|
37
|
+
connect_timeout: int = None,
|
|
38
|
+
http_proxy: str = None,
|
|
39
|
+
https_proxy: str = None,
|
|
40
|
+
no_proxy: str = None,
|
|
41
|
+
max_idle_conns: int = None,
|
|
42
|
+
local_addr: str = None,
|
|
43
|
+
socks_5proxy: str = None,
|
|
44
|
+
socks_5net_work: str = None,
|
|
45
|
+
keep_alive: bool = None,
|
|
46
|
+
msg: str = None,
|
|
47
|
+
):
|
|
48
|
+
super().__init__(
|
|
49
|
+
max_attemp = max_attemp,
|
|
50
|
+
autoretry = autoretry,
|
|
51
|
+
ignore_ssl = ignore_ssl,
|
|
52
|
+
key = key,
|
|
53
|
+
cert = cert,
|
|
54
|
+
ca = ca,
|
|
55
|
+
max_attempts = max_attempts,
|
|
56
|
+
backoff_policy = backoff_policy,
|
|
57
|
+
backoff_period = backoff_period,
|
|
58
|
+
read_timeout = read_timeout,
|
|
59
|
+
connect_timeout = connect_timeout,
|
|
60
|
+
http_proxy = http_proxy,
|
|
61
|
+
https_proxy = https_proxy,
|
|
62
|
+
no_proxy = no_proxy,
|
|
63
|
+
max_idle_conns = max_idle_conns,
|
|
64
|
+
local_addr = local_addr,
|
|
65
|
+
socks_5proxy = socks_5proxy,
|
|
66
|
+
socks_5net_work = socks_5net_work,
|
|
67
|
+
keep_alive = keep_alive,
|
|
68
|
+
)
|
|
69
|
+
self.name = 'Err1Exception'
|
|
70
|
+
self.msg = msg
|
|
71
|
+
|
|
72
|
+
class Err2Exception(ErrException):
|
|
73
|
+
def __init__(
|
|
74
|
+
self,
|
|
75
|
+
msg: str = None,
|
|
76
|
+
msg_2: str = None,
|
|
77
|
+
):
|
|
78
|
+
super().__init__(
|
|
79
|
+
msg = msg,
|
|
80
|
+
)
|
|
81
|
+
self.name = 'Err2Exception'
|
|
82
|
+
self.msg_2 = msg_2
|
|
83
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# This file is auto-generated, don't edit it. Thanks.
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from alibabacloud_tea_util import models as darautil_models
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class BaseInfo(darautil_models.RuntimeOptions):
|
|
10
|
+
def __init__(
|
|
11
|
+
self,
|
|
12
|
+
autoretry: bool = None,
|
|
13
|
+
ignore_ssl: bool = None,
|
|
14
|
+
key: str = None,
|
|
15
|
+
cert: str = None,
|
|
16
|
+
ca: str = None,
|
|
17
|
+
max_attempts: int = None,
|
|
18
|
+
backoff_policy: str = None,
|
|
19
|
+
backoff_period: int = None,
|
|
20
|
+
read_timeout: int = None,
|
|
21
|
+
connect_timeout: int = None,
|
|
22
|
+
http_proxy: str = None,
|
|
23
|
+
https_proxy: str = None,
|
|
24
|
+
no_proxy: str = None,
|
|
25
|
+
max_idle_conns: int = None,
|
|
26
|
+
local_addr: str = None,
|
|
27
|
+
socks_5proxy: str = None,
|
|
28
|
+
socks_5net_work: str = None,
|
|
29
|
+
keep_alive: bool = None,
|
|
30
|
+
max_attemp: int = None,
|
|
31
|
+
):
|
|
32
|
+
super().__init__(
|
|
33
|
+
autoretry = autoretry,
|
|
34
|
+
ignore_ssl = ignore_ssl,
|
|
35
|
+
key = key,
|
|
36
|
+
cert = cert,
|
|
37
|
+
ca = ca,
|
|
38
|
+
max_attempts = max_attempts,
|
|
39
|
+
backoff_policy = backoff_policy,
|
|
40
|
+
backoff_period = backoff_period,
|
|
41
|
+
read_timeout = read_timeout,
|
|
42
|
+
connect_timeout = connect_timeout,
|
|
43
|
+
http_proxy = http_proxy,
|
|
44
|
+
https_proxy = https_proxy,
|
|
45
|
+
no_proxy = no_proxy,
|
|
46
|
+
max_idle_conns = max_idle_conns,
|
|
47
|
+
local_addr = local_addr,
|
|
48
|
+
socks_5proxy = socks_5proxy,
|
|
49
|
+
socks_5net_work = socks_5net_work,
|
|
50
|
+
keep_alive = keep_alive,
|
|
51
|
+
)
|
|
52
|
+
self.max_attemp = max_attemp
|
|
53
|
+
|
|
54
|
+
def validate(self):
|
|
55
|
+
self.validate_required(self.max_attemp, 'max_attemp')
|
|
56
|
+
|
|
57
|
+
def to_map(self):
|
|
58
|
+
_map = super().to_map()
|
|
59
|
+
if _map is not None:
|
|
60
|
+
return _map
|
|
61
|
+
|
|
62
|
+
result = dict()
|
|
63
|
+
if self.max_attemp is not None:
|
|
64
|
+
result['maxAttemp'] = self.max_attemp
|
|
65
|
+
return result
|
|
66
|
+
|
|
67
|
+
def from_map(self, m: dict = None):
|
|
68
|
+
m = m or dict()
|
|
69
|
+
if m.get('maxAttemp') is not None:
|
|
70
|
+
self.max_attemp = m.get('maxAttemp')
|
|
71
|
+
return self
|
|
72
|
+
|
|
73
|
+
class Info(BaseInfo):
|
|
74
|
+
def __init__(
|
|
75
|
+
self,
|
|
76
|
+
max_attemp: int = None,
|
|
77
|
+
autoretry: bool = None,
|
|
78
|
+
ignore_ssl: bool = None,
|
|
79
|
+
key: str = None,
|
|
80
|
+
cert: str = None,
|
|
81
|
+
ca: str = None,
|
|
82
|
+
max_attempts: int = None,
|
|
83
|
+
backoff_policy: str = None,
|
|
84
|
+
backoff_period: int = None,
|
|
85
|
+
read_timeout: int = None,
|
|
86
|
+
connect_timeout: int = None,
|
|
87
|
+
http_proxy: str = None,
|
|
88
|
+
https_proxy: str = None,
|
|
89
|
+
no_proxy: str = None,
|
|
90
|
+
max_idle_conns: int = None,
|
|
91
|
+
local_addr: str = None,
|
|
92
|
+
socks_5proxy: str = None,
|
|
93
|
+
socks_5net_work: str = None,
|
|
94
|
+
keep_alive: bool = None,
|
|
95
|
+
name: str = None,
|
|
96
|
+
age: int = None,
|
|
97
|
+
):
|
|
98
|
+
super().__init__(
|
|
99
|
+
max_attemp = max_attemp,
|
|
100
|
+
autoretry = autoretry,
|
|
101
|
+
ignore_ssl = ignore_ssl,
|
|
102
|
+
key = key,
|
|
103
|
+
cert = cert,
|
|
104
|
+
ca = ca,
|
|
105
|
+
max_attempts = max_attempts,
|
|
106
|
+
backoff_policy = backoff_policy,
|
|
107
|
+
backoff_period = backoff_period,
|
|
108
|
+
read_timeout = read_timeout,
|
|
109
|
+
connect_timeout = connect_timeout,
|
|
110
|
+
http_proxy = http_proxy,
|
|
111
|
+
https_proxy = https_proxy,
|
|
112
|
+
no_proxy = no_proxy,
|
|
113
|
+
max_idle_conns = max_idle_conns,
|
|
114
|
+
local_addr = local_addr,
|
|
115
|
+
socks_5proxy = socks_5proxy,
|
|
116
|
+
socks_5net_work = socks_5net_work,
|
|
117
|
+
keep_alive = keep_alive,
|
|
118
|
+
)
|
|
119
|
+
self.name = name
|
|
120
|
+
self.age = age
|
|
121
|
+
|
|
122
|
+
def validate(self):
|
|
123
|
+
self.validate_required(self.name, 'name')
|
|
124
|
+
self.validate_required(self.age, 'age')
|
|
125
|
+
|
|
126
|
+
def to_map(self):
|
|
127
|
+
_map = super().to_map()
|
|
128
|
+
if _map is not None:
|
|
129
|
+
return _map
|
|
130
|
+
|
|
131
|
+
result = dict()
|
|
132
|
+
if self.name is not None:
|
|
133
|
+
result['name'] = self.name
|
|
134
|
+
if self.age is not None:
|
|
135
|
+
result['age'] = self.age
|
|
136
|
+
return result
|
|
137
|
+
|
|
138
|
+
def from_map(self, m: dict = None):
|
|
139
|
+
m = m or dict()
|
|
140
|
+
if m.get('name') is not None:
|
|
141
|
+
self.name = m.get('name')
|
|
142
|
+
if m.get('age') is not None:
|
|
143
|
+
self.age = m.get('age')
|
|
144
|
+
return self
|
|
145
|
+
|
|
@@ -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
|
|