@darabonba/python-generator 2.0.2 → 2.0.4

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.
Files changed (182) hide show
  1. package/.github/workflows/ci.yml +1 -1
  2. package/ChangeLog.md +15 -0
  3. package/lib/builtin.js +6 -12
  4. package/lib/generator.js +195 -109
  5. package/lib/helper.js +21 -1
  6. package/package.json +1 -1
  7. package/tests/expected/{python3/model/tea_python_tests/client.py → annotation/tea_python_tests/models/__init__.py} +6 -3
  8. package/tests/expected/annotation/tea_python_tests/{models.py → models/_test.py} +1 -1
  9. package/tests/expected/builtin/tea_python_tests/client.py +5 -5
  10. package/tests/expected/comment/tea_python_tests/models/__init__.py +15 -0
  11. package/tests/expected/comment/tea_python_tests/models/_test_1.py +91 -0
  12. package/tests/expected/comment/tea_python_tests/models/_test_2.py +55 -0
  13. package/tests/expected/comment/tea_python_tests/models/_test_3.py +61 -0
  14. package/tests/expected/complex/tea_python_tests/client.py +6 -6
  15. package/tests/expected/complex/tea_python_tests/exceptions/__init__.py +13 -0
  16. package/tests/expected/complex/tea_python_tests/exceptions/_err_1.py +23 -0
  17. package/tests/expected/complex/tea_python_tests/exceptions/_err_2.py +22 -0
  18. package/tests/expected/complex/tea_python_tests/models/__init__.py +19 -0
  19. package/tests/{output/complex/tea_python_tests/models.py → expected/complex/tea_python_tests/models/_complex_request.py} +12 -141
  20. package/tests/expected/complex/tea_python_tests/models/_complex_request_configs.py +47 -0
  21. package/tests/expected/complex/tea_python_tests/models/_complex_request_header.py +42 -0
  22. package/tests/expected/complex/tea_python_tests/models/_complex_request_part.py +33 -0
  23. package/tests/expected/complex/tea_python_tests/models/_response.py +33 -0
  24. package/tests/expected/model/tea_python_tests/exceptions/__init__.py +11 -0
  25. package/tests/expected/model/tea_python_tests/{exceptions.py → exceptions/_main_file.py} +1 -1
  26. package/tests/expected/model/tea_python_tests/models/__init__.py +33 -0
  27. package/tests/expected/model/tea_python_tests/models/_class.py +24 -0
  28. package/tests/expected/model/tea_python_tests/models/_m.py +38 -0
  29. package/tests/expected/model/tea_python_tests/models/_main_file_model.py +45 -0
  30. package/tests/expected/model/tea_python_tests/models/_main_file_model_model.py +32 -0
  31. package/tests/expected/model/tea_python_tests/models/_model.py +32 -0
  32. package/tests/expected/model/tea_python_tests/models/_msub_m.py +26 -0
  33. package/tests/expected/model/tea_python_tests/{models.py → models/_my_model.py} +16 -321
  34. package/tests/expected/model/tea_python_tests/models/_my_model_model.py +45 -0
  35. package/tests/expected/model/tea_python_tests/models/_my_model_model_model.py +32 -0
  36. package/tests/expected/model/tea_python_tests/models/_my_model_subarraymodel.py +24 -0
  37. package/tests/expected/model/tea_python_tests/models/_my_model_submodel.py +45 -0
  38. package/tests/expected/model/tea_python_tests/models/_my_model_submodel_model.py +32 -0
  39. package/tests/expected/multi/tea_python_tests/api.py +0 -2
  40. package/tests/expected/multi/tea_python_tests/api_models/__init__.py +11 -0
  41. package/tests/expected/{python3/annotation/tea_python_tests/models.py → multi/tea_python_tests/api_models/_test_model_dir_2.py} +7 -9
  42. package/tests/expected/multi/tea_python_tests/client.py +0 -2
  43. package/tests/expected/multi/tea_python_tests/exceptions/__init__.py +13 -0
  44. package/tests/{output/complex/tea_python_tests/exceptions.py → expected/multi/tea_python_tests/exceptions/_err.py} +10 -11
  45. package/tests/expected/multi/tea_python_tests/model/user_exceptions/__init__.py +15 -0
  46. package/tests/expected/multi/tea_python_tests/model/user_exceptions/_err.py +22 -0
  47. package/tests/expected/multi/tea_python_tests/model/{user_exceptions.py → user_exceptions/_err_1.py} +3 -32
  48. package/tests/expected/multi/tea_python_tests/model/user_exceptions/_err_2.py +18 -0
  49. package/tests/expected/multi/tea_python_tests/model/user_models/__init__.py +13 -0
  50. package/tests/expected/multi/tea_python_tests/model/user_models/_base_info.py +72 -0
  51. package/tests/expected/multi/tea_python_tests/model/{user_models.py → user_models/_info.py} +3 -69
  52. package/tests/expected/multi/tea_python_tests/models/__init__.py +13 -0
  53. package/tests/expected/multi/tea_python_tests/models/_test_model_dir.py +79 -0
  54. package/tests/expected/{python2/empty/tea_python_tests/client.py → typedef/tea_python_tests/models/__init__.py} +9 -3
  55. package/tests/{output/typedef/tea_python_tests/models.py → expected/typedef/tea_python_tests/models/_m.py} +1 -1
  56. package/tests/fixtures/multi/api.dara +4 -0
  57. package/tests/fixtures/multi/main.dara +18 -0
  58. package/tests/main.tests.js +194 -219
  59. package/tests/output/annotation/tea_python_tests/models/__init__.py +11 -0
  60. package/tests/output/annotation/tea_python_tests/{models.py → models/_test.py} +1 -1
  61. package/tests/output/builtin/tea_python_tests/client.py +5 -5
  62. package/tests/output/comment/tea_python_tests/models/__init__.py +15 -0
  63. package/tests/output/comment/tea_python_tests/models/_test_1.py +91 -0
  64. package/tests/output/comment/tea_python_tests/models/_test_2.py +55 -0
  65. package/tests/output/comment/tea_python_tests/models/_test_3.py +61 -0
  66. package/tests/output/complex/tea_python_tests/client.py +6 -6
  67. package/tests/output/complex/tea_python_tests/exceptions/__init__.py +13 -0
  68. package/tests/output/complex/tea_python_tests/exceptions/_err_1.py +23 -0
  69. package/tests/output/complex/tea_python_tests/exceptions/_err_2.py +22 -0
  70. package/tests/output/complex/tea_python_tests/models/__init__.py +19 -0
  71. package/tests/{expected/complex/tea_python_tests/models.py → output/complex/tea_python_tests/models/_complex_request.py} +12 -141
  72. package/tests/output/complex/tea_python_tests/models/_complex_request_configs.py +47 -0
  73. package/tests/output/complex/tea_python_tests/models/_complex_request_header.py +42 -0
  74. package/tests/output/complex/tea_python_tests/models/_complex_request_part.py +33 -0
  75. package/tests/output/complex/tea_python_tests/models/_response.py +33 -0
  76. package/tests/output/model/tea_python_tests/exceptions/__init__.py +11 -0
  77. package/tests/output/model/tea_python_tests/{exceptions.py → exceptions/_main_file.py} +1 -1
  78. package/tests/output/model/tea_python_tests/models/__init__.py +33 -0
  79. package/tests/output/model/tea_python_tests/models/_class.py +24 -0
  80. package/tests/output/model/tea_python_tests/models/_m.py +38 -0
  81. package/tests/output/model/tea_python_tests/models/_main_file_model.py +45 -0
  82. package/tests/output/model/tea_python_tests/models/_main_file_model_model.py +32 -0
  83. package/tests/output/model/tea_python_tests/models/_model.py +32 -0
  84. package/tests/output/model/tea_python_tests/models/_msub_m.py +26 -0
  85. package/tests/output/model/tea_python_tests/{models.py → models/_my_model.py} +16 -321
  86. package/tests/output/model/tea_python_tests/models/_my_model_model.py +45 -0
  87. package/tests/output/model/tea_python_tests/models/_my_model_model_model.py +32 -0
  88. package/tests/output/model/tea_python_tests/models/_my_model_subarraymodel.py +24 -0
  89. package/tests/output/model/tea_python_tests/models/_my_model_submodel.py +45 -0
  90. package/tests/output/model/tea_python_tests/models/_my_model_submodel_model.py +32 -0
  91. package/tests/output/multi/tea_python_tests/api.py +0 -2
  92. package/tests/output/multi/tea_python_tests/api_models/__init__.py +11 -0
  93. package/tests/{expected/python2/annotation/tea_python_tests/models.py → output/multi/tea_python_tests/api_models/_test_model_dir_2.py} +12 -11
  94. package/tests/output/multi/tea_python_tests/client.py +0 -2
  95. package/tests/output/multi/tea_python_tests/exceptions/__init__.py +13 -0
  96. package/tests/{expected/complex/tea_python_tests/exceptions.py → output/multi/tea_python_tests/exceptions/_err.py} +10 -11
  97. package/tests/output/multi/tea_python_tests/model/user_exceptions/__init__.py +15 -0
  98. package/tests/output/multi/tea_python_tests/model/user_exceptions/_err.py +22 -0
  99. package/tests/output/multi/tea_python_tests/model/{user_exceptions.py → user_exceptions/_err_1.py} +3 -32
  100. package/tests/output/multi/tea_python_tests/model/user_exceptions/_err_2.py +18 -0
  101. package/tests/output/multi/tea_python_tests/model/user_models/__init__.py +13 -0
  102. package/tests/output/multi/tea_python_tests/model/user_models/_base_info.py +72 -0
  103. package/tests/output/multi/tea_python_tests/model/{user_models.py → user_models/_info.py} +3 -69
  104. package/tests/output/multi/tea_python_tests/models/__init__.py +13 -0
  105. package/tests/output/multi/tea_python_tests/models/_test_model_dir.py +79 -0
  106. package/tests/{expected/python2/model/tea_python_tests/client.py → output/typedef/tea_python_tests/models/__init__.py} +9 -3
  107. package/tests/{expected/typedef/tea_python_tests/models.py → output/typedef/tea_python_tests/models/_m.py} +1 -1
  108. package/tests/expected/comment/tea_python_tests/models.py +0 -195
  109. package/tests/expected/python2/alias/setup.py +0 -79
  110. package/tests/expected/python2/alias/tea_python_tests/client.py +0 -23
  111. package/tests/expected/python2/annotation/tea_python_tests/client.py +0 -54
  112. package/tests/expected/python2/api/tea_python_tests/client.py +0 -54
  113. package/tests/expected/python2/comment/tea_python_tests/client.py +0 -188
  114. package/tests/expected/python2/comment/tea_python_tests/models.py +0 -146
  115. package/tests/expected/python2/complex/tea_python_tests/client.py +0 -301
  116. package/tests/expected/python2/complex/tea_python_tests/models.py +0 -315
  117. package/tests/expected/python2/const/tea_python_tests/client.py +0 -14
  118. package/tests/expected/python2/empty/setup.py +0 -76
  119. package/tests/expected/python2/exec/tea_python_tests/exec_client.py +0 -16
  120. package/tests/expected/python2/function/tea_python_tests/client.py +0 -47
  121. package/tests/expected/python2/import/setup.py +0 -85
  122. package/tests/expected/python2/import/tea_python_tests/client.py +0 -24
  123. package/tests/expected/python2/map/tea_python_tests/client.py +0 -19
  124. package/tests/expected/python2/model/tea_python_tests/models.py +0 -575
  125. package/tests/expected/python2/statements/tea_python_tests/client.py +0 -64
  126. package/tests/expected/python2/super/tea_python_tests/client.py +0 -8
  127. package/tests/expected/python2/typedef/setup.py +0 -85
  128. package/tests/expected/python2/typedef/tea_python_tests/client.py +0 -38
  129. package/tests/expected/python2/typedef/tea_python_tests/models.py +0 -35
  130. package/tests/expected/python3/alias/setup.py +0 -77
  131. package/tests/expected/python3/alias/tea_python_tests/client.py +0 -32
  132. package/tests/expected/python3/annotation/tea_python_tests/client.py +0 -88
  133. package/tests/expected/python3/api/tea_python_tests/client.py +0 -92
  134. package/tests/expected/python3/comment/tea_python_tests/__init__.py +0 -1
  135. package/tests/expected/python3/comment/tea_python_tests/client.py +0 -319
  136. package/tests/expected/python3/comment/tea_python_tests/models.py +0 -163
  137. package/tests/expected/python3/complex/tea_python_tests/__init__.py +0 -1
  138. package/tests/expected/python3/complex/tea_python_tests/client.py +0 -514
  139. package/tests/expected/python3/complex/tea_python_tests/models.py +0 -349
  140. package/tests/expected/python3/const/tea_python_tests/__init__.py +0 -1
  141. package/tests/expected/python3/const/tea_python_tests/client.py +0 -9
  142. package/tests/expected/python3/empty/setup.py +0 -74
  143. package/tests/expected/python3/empty/tea_python_tests/__init__.py +0 -1
  144. package/tests/expected/python3/empty/tea_python_tests/client.py +0 -5
  145. package/tests/expected/python3/exec/tea_python_tests/__init__.py +0 -1
  146. package/tests/expected/python3/exec/tea_python_tests/exec_client.py +0 -20
  147. package/tests/expected/python3/function/tea_python_tests/__init__.py +0 -1
  148. package/tests/expected/python3/function/tea_python_tests/client.py +0 -67
  149. package/tests/expected/python3/import/setup.py +0 -77
  150. package/tests/expected/python3/import/tea_python_tests/__init__.py +0 -1
  151. package/tests/expected/python3/import/tea_python_tests/client.py +0 -28
  152. package/tests/expected/python3/map/tea_python_tests/__init__.py +0 -1
  153. package/tests/expected/python3/map/tea_python_tests/client.py +0 -22
  154. package/tests/expected/python3/model/tea_python_tests/__init__.py +0 -1
  155. package/tests/expected/python3/model/tea_python_tests/models.py +0 -631
  156. package/tests/expected/python3/statements/tea_python_tests/__init__.py +0 -1
  157. package/tests/expected/python3/statements/tea_python_tests/client.py +0 -83
  158. package/tests/expected/python3/super/tea_python_tests/__init__.py +0 -1
  159. package/tests/expected/python3/super/tea_python_tests/client.py +0 -13
  160. package/tests/expected/python3/typedef/setup.py +0 -77
  161. package/tests/expected/python3/typedef/tea_python_tests/__init__.py +0 -1
  162. package/tests/expected/python3/typedef/tea_python_tests/client.py +0 -72
  163. package/tests/expected/python3/typedef/tea_python_tests/models.py +0 -39
  164. package/tests/output/comment/tea_python_tests/models.py +0 -195
  165. /package/tests/expected/{python2/alias → multi}/tea_python_tests/__init__.py +0 -0
  166. /package/tests/{expected/python2/annotation → output/alias}/tea_python_tests/__init__.py +0 -0
  167. /package/tests/{expected/python2/api → output/annotation}/tea_python_tests/__init__.py +0 -0
  168. /package/tests/{expected/python2/comment → output/api}/tea_python_tests/__init__.py +0 -0
  169. /package/tests/{expected/python2/complex → output/builtin}/tea_python_tests/__init__.py +0 -0
  170. /package/tests/{expected/python2/const → output/comment}/tea_python_tests/__init__.py +0 -0
  171. /package/tests/{expected/python2/empty → output/complex}/tea_python_tests/__init__.py +0 -0
  172. /package/tests/{expected/python2/exec → output/const}/tea_python_tests/__init__.py +0 -0
  173. /package/tests/{expected/python2/function → output/empty}/tea_python_tests/__init__.py +0 -0
  174. /package/tests/{expected/python2/import → output/exec}/tea_python_tests/__init__.py +0 -0
  175. /package/tests/{expected/python2/map → output/function}/tea_python_tests/__init__.py +0 -0
  176. /package/tests/{expected/python2/model → output/import}/tea_python_tests/__init__.py +0 -0
  177. /package/tests/{expected/python2/statements → output/map}/tea_python_tests/__init__.py +0 -0
  178. /package/tests/{expected/python2/super → output/model}/tea_python_tests/__init__.py +0 -0
  179. /package/tests/{expected/python2/typedef → output/multi}/tea_python_tests/__init__.py +0 -0
  180. /package/tests/{expected/python3/alias → output/statements}/tea_python_tests/__init__.py +0 -0
  181. /package/tests/{expected/python3/annotation → output/super}/tea_python_tests/__init__.py +0 -0
  182. /package/tests/{expected/python3/api → output/typedef}/tea_python_tests/__init__.py +0 -0
package/lib/helper.js CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
  const DSL = require('@darabonba/parser');
3
-
3
+ const fs = require('fs');
4
+ const path = require('path');
4
5
  const keywords = [
5
6
  'False', 'None', 'True', '__peg_parser__', 'and',
6
7
  'as', 'assert', 'async', 'await', 'break',
@@ -393,7 +394,26 @@ function _escape(str) {
393
394
  return str.includes('-') ? `'${str}'` : str;
394
395
  }
395
396
 
397
+ function _removeFilesInDirectory(directoryPath) {
398
+ if(!fs.existsSync(directoryPath)) {
399
+ return;
400
+ }
401
+ const files = fs.readdirSync(directoryPath);
402
+ for (const file of files) {
403
+ const filePath = path.join(directoryPath, file);
404
+ const stat = fs.statSync(filePath);
405
+
406
+ if (stat.isDirectory()) {
407
+ _removeFilesInDirectory(filePath);
408
+ fs.rmdirSync(filePath);
409
+ } else {
410
+ fs.unlinkSync(filePath);
411
+ }
412
+ }
413
+ }
414
+
396
415
  module.exports = {
416
+ _removeFilesInDirectory,
397
417
  _name,
398
418
  _escape,
399
419
  _vid,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darabonba/python-generator",
3
- "version": "2.0.2",
3
+ "version": "2.0.4",
4
4
  "description": "The darabonba generator for Python",
5
5
  "main": "lib/generator.js",
6
6
  "directories": {
@@ -3,6 +3,9 @@
3
3
  from __future__ import annotations
4
4
 
5
5
 
6
- class Client:
7
- def __init__(self):
8
- pass
6
+
7
+ from ._test import Test
8
+
9
+ __all__ = [
10
+ Test
11
+ ]
@@ -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
@@ -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, BytesIO, StringIO
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 = BytesIO(json.dumps(obj).encode('utf-8'))
622
- rs = StringIO(json.dumps(maps))
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 = BytesIO(json.dumps(obj).encode('utf-8'))
673
- rs = StringIO(json.dumps(maps))
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)
@@ -0,0 +1,15 @@
1
+ # -*- coding: utf-8 -*-
2
+ # This file is auto-generated, don't edit it. Thanks.
3
+ from __future__ import annotations
4
+
5
+
6
+
7
+ from ._test_1 import Test1
8
+ from ._test_2 import Test2
9
+ from ._test_3 import Test3
10
+
11
+ __all__ = [
12
+ Test1,
13
+ Test2,
14
+ Test3
15
+ ]
@@ -0,0 +1,91 @@
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 typing import List
6
+
7
+
8
+ # import comment
9
+
10
+
11
+ """
12
+ * @remarks
13
+ * TestModel
14
+ """
15
+ class Test1(DaraModel):
16
+ def __init__(
17
+ self, *,
18
+ test: str = None,
19
+ # odel的test back comment
20
+ test_2: str = None,
21
+ # odel的test2 back comment
22
+ test_3: List[List[str]] = None,
23
+ test_5: str = None,
24
+ sts: str = None,
25
+ a_sts: str = None,
26
+ ):
27
+ # test desc
28
+ self.test = test
29
+ # odel的test back comment
30
+ # test2 desc
31
+ self.test_2 = test_2
32
+ # odel的test2 back comment
33
+ # test3 desc
34
+ self.test_3 = test_3
35
+ # test desc
36
+ self.test_5 = test_5
37
+ # sts desc
38
+ self.sts = sts
39
+ # asts desc
40
+ self.a_sts = a_sts
41
+
42
+ def validate(self):
43
+ self.validate_required(self.test, 'test')
44
+ # odel的test back comment
45
+ self.validate_required(self.test_2, 'test_2')
46
+ # odel的test2 back comment
47
+ self.validate_required(self.test_3, 'test_3')
48
+ self.validate_required(self.test_5, 'test_5')
49
+ self.validate_required(self.sts, 'sts')
50
+ self.validate_required(self.a_sts, 'a_sts')
51
+
52
+ def to_map(self):
53
+ _map = super().to_map()
54
+ if _map is not None:
55
+ return _map
56
+
57
+ result = dict()
58
+ if self.test is not None:
59
+ result['test'] = self.test
60
+ # odel的test back comment
61
+ if self.test_2 is not None:
62
+ result['test2'] = self.test_2
63
+ # odel的test2 back comment
64
+ if self.test_3 is not None:
65
+ result['test3'] = self.test_3
66
+ if self.test_5 is not None:
67
+ result['test5'] = self.test_5
68
+ if self.sts is not None:
69
+ result['sts'] = self.sts
70
+ if self.a_sts is not None:
71
+ result['asts'] = self.a_sts
72
+ return result
73
+
74
+ def from_map(self, m: dict = None):
75
+ m = m or dict()
76
+ if m.get('test') is not None:
77
+ self.test = m.get('test')
78
+ # odel的test back comment
79
+ if m.get('test2') is not None:
80
+ self.test_2 = m.get('test2')
81
+ # odel的test2 back comment
82
+ if m.get('test3') is not None:
83
+ self.test_3 = m.get('test3')
84
+ if m.get('test5') is not None:
85
+ self.test_5 = m.get('test5')
86
+ if m.get('sts') is not None:
87
+ self.sts = m.get('sts')
88
+ if m.get('asts') is not None:
89
+ self.a_sts = m.get('asts')
90
+ return self
91
+
@@ -0,0 +1,55 @@
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
+ """
8
+ * @remarks
9
+ * TestModel2
10
+ """
11
+ class Test2(DaraModel):
12
+ def __init__(
13
+ self, *,
14
+ # model的test front comment
15
+ test: str = None,
16
+ # model的test front comment
17
+ test_2: str = None,
18
+ ):
19
+ # model的test front comment
20
+ # test desc
21
+ self.test = test
22
+ # model的test front comment
23
+ # test2 desc
24
+ self.test_2 = test_2
25
+
26
+ def validate(self):
27
+ # model的test front comment
28
+ self.validate_required(self.test, 'test')
29
+ # model的test front comment
30
+ self.validate_required(self.test_2, 'test_2')
31
+
32
+ def to_map(self):
33
+ _map = super().to_map()
34
+ if _map is not None:
35
+ return _map
36
+
37
+ result = dict()
38
+ # model的test front comment
39
+ if self.test is not None:
40
+ result['test'] = self.test
41
+ # model的test front comment
42
+ if self.test_2 is not None:
43
+ result['test2'] = self.test_2
44
+ return result
45
+
46
+ def from_map(self, m: dict = None):
47
+ m = m or dict()
48
+ # model的test front comment
49
+ if m.get('test') is not None:
50
+ self.test = m.get('test')
51
+ # model的test front comment
52
+ if m.get('test2') is not None:
53
+ self.test_2 = m.get('test2')
54
+ return self
55
+
@@ -0,0 +1,61 @@
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
+ """
8
+ * @remarks
9
+ * TestModel3
10
+ """
11
+ class Test3(DaraModel):
12
+ def __init__(
13
+ self, *,
14
+ # model的test front comment
15
+ test: str = None,
16
+ # empty comment1
17
+ # empy comment2
18
+ test_1: str = None,
19
+ ):
20
+ # model的test front comment
21
+ # test desc
22
+ self.test = test
23
+ # empty comment1
24
+ # empy comment2
25
+ # test desc
26
+ self.test_1 = test_1
27
+
28
+ def validate(self):
29
+ # model的test front comment
30
+ self.validate_required(self.test, 'test')
31
+ # empty comment1
32
+ # empy comment2
33
+ self.validate_required(self.test_1, 'test_1')
34
+
35
+ def to_map(self):
36
+ _map = super().to_map()
37
+ if _map is not None:
38
+ return _map
39
+
40
+ result = dict()
41
+ # model的test front comment
42
+ if self.test is not None:
43
+ result['test'] = self.test
44
+ # empty comment1
45
+ # empy comment2
46
+ if self.test_1 is not None:
47
+ result['test1'] = self.test_1
48
+ return result
49
+
50
+ def from_map(self, m: dict = None):
51
+ m = m or dict()
52
+ # model的test front comment
53
+ if m.get('test') is not None:
54
+ self.test = m.get('test')
55
+ # empty comment1
56
+ # empy comment2
57
+ if m.get('test1') is not None:
58
+ self.test_1 = m.get('test1')
59
+ return self
60
+
61
+ # odel的test back comment
@@ -1114,11 +1114,11 @@ class Client(SourceClient):
1114
1114
  code = 'str'
1115
1115
  )
1116
1116
 
1117
- except main_models.Err1 as err :
1117
+ except main_exceptions.Err1Exception as err :
1118
1118
  logging.log(logging.NOTSET, err.name)
1119
- except main_models.Err2 as err :
1119
+ except main_exceptions.Err2Exception as err :
1120
1120
  logging.log(logging.NOTSET, err.name)
1121
- except source_models.Err3 as err :
1121
+ except source_exceptions.Err3Exception as err :
1122
1122
  logging.log(logging.NOTSET, err.name)
1123
1123
  except Exception as err :
1124
1124
  logging.log(logging.NOTSET, err.name)
@@ -1156,11 +1156,11 @@ class Client(SourceClient):
1156
1156
  code = 'str'
1157
1157
  )
1158
1158
 
1159
- except main_models.Err1 as err :
1159
+ except main_exceptions.Err1Exception as err :
1160
1160
  logging.log(logging.NOTSET, err.name)
1161
- except main_models.Err2 as err :
1161
+ except main_exceptions.Err2Exception as err :
1162
1162
  logging.log(logging.NOTSET, err.name)
1163
- except source_models.Err3 as err :
1163
+ except source_exceptions.Err3Exception as err :
1164
1164
  logging.log(logging.NOTSET, err.name)
1165
1165
  except Exception as err :
1166
1166
  logging.log(logging.NOTSET, err.name)
@@ -0,0 +1,13 @@
1
+ # -*- coding: utf-8 -*-
2
+ # This file is auto-generated, don't edit it. Thanks.
3
+ from __future__ import annotations
4
+
5
+
6
+
7
+ from ._err_1 import Err1Exception
8
+ from ._err_2 import Err2Exception
9
+
10
+ __all__ = [
11
+ Err1Exception,
12
+ Err2Exception
13
+ ]
@@ -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 darabonba.exceptions import DaraException
5
+ from typing import Dict
6
+
7
+
8
+ class Err1Exception(DaraException):
9
+ def __init__(
10
+ self, *,
11
+ message: str = None,
12
+ code: str = None,
13
+ stack: str = None,
14
+ data: Dict[str, str] = None,
15
+ ):
16
+ super().__init__({
17
+ 'message': message,
18
+ 'code': code,
19
+ 'stack': stack,
20
+ })
21
+ self.name = 'Err1Exception'
22
+ self.data = data
23
+
@@ -0,0 +1,22 @@
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
+
6
+
7
+ class Err2Exception(DaraException):
8
+ def __init__(
9
+ self, *,
10
+ message: str = None,
11
+ code: str = None,
12
+ stack: str = None,
13
+ access_err_message: str = None,
14
+ ):
15
+ super().__init__({
16
+ 'message': message,
17
+ 'code': code,
18
+ 'stack': stack,
19
+ })
20
+ self.name = 'Err2Exception'
21
+ self.access_err_message = access_err_message
22
+
@@ -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
+
6
+
7
+ from ._complex_request_header import ComplexRequestHeader
8
+ from ._complex_request_configs import ComplexRequestConfigs
9
+ from ._complex_request_part import ComplexRequestPart
10
+ from ._complex_request import ComplexRequest
11
+ from ._response import Response
12
+
13
+ __all__ = [
14
+ ComplexRequestHeader,
15
+ ComplexRequestConfigs,
16
+ ComplexRequestPart,
17
+ ComplexRequest,
18
+ Response
19
+ ]
@@ -2,126 +2,23 @@
2
2
  # This file is auto-generated, don't edit it. Thanks.
3
3
  from __future__ import annotations
4
4
  from darabonba.model import DaraModel
5
+ from tea_python_tests import models as main_models
5
6
  from darabonba.request import DaraRequest
6
7
  from darabonba.response import DaraResponse
7
8
  from Source import models as source_models
8
9
  from Source.source_client import SourceClient
9
- from tea_python_tests import models as main_models
10
- from typing import List, Dict, BinaryIO, Any
11
-
12
-
13
-
14
-
15
- class ComplexRequestHeader(DaraModel):
16
- def __init__(
17
- self,
18
- content: str = None,
19
- ):
20
- # 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).
21
- #
22
- # >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`.
23
- #
24
- # If you do not use `LaunchTemplateId` or `LaunchTemplateName` to specify a launch template, you must specify SecurityGroupId. Take note of the following items:
25
- #
26
- # * 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`.
27
- # * 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`.
28
- self.content = content
29
-
30
- def validate(self):
31
- self.validate_required(self.content, 'content')
32
-
33
- def to_map(self):
34
- _map = super().to_map()
35
- if _map is not None:
36
- return _map
37
-
38
- result = dict()
39
- if self.content is not None:
40
- result['Content'] = self.content
41
- return result
42
-
43
- def from_map(self, m: dict = None):
44
- m = m or dict()
45
- if m.get('Content') is not None:
46
- self.content = m.get('Content')
47
- return self
48
-
49
- class ComplexRequestConfigs(DaraModel):
50
- def __init__(
51
- self,
52
- key: str = None,
53
- value: List[str] = None,
54
- extra: Dict[str, str] = None,
55
- ):
56
- self.key = key
57
- self.value = value
58
- self.extra = extra
59
-
60
- def validate(self):
61
- self.validate_required(self.key, 'key')
62
- self.validate_required(self.value, 'value')
63
- self.validate_required(self.extra, 'extra')
64
-
65
- def to_map(self):
66
- _map = super().to_map()
67
- if _map is not None:
68
- return _map
69
-
70
- result = dict()
71
- if self.key is not None:
72
- result['key'] = self.key
73
- if self.value is not None:
74
- result['value'] = self.value
75
- if self.extra is not None:
76
- result['extra'] = self.extra
77
- return result
78
-
79
- def from_map(self, m: dict = None):
80
- m = m or dict()
81
- if m.get('key') is not None:
82
- self.key = m.get('key')
83
- if m.get('value') is not None:
84
- self.value = m.get('value')
85
- if m.get('extra') is not None:
86
- self.extra = m.get('extra')
87
- return self
88
-
89
- class ComplexRequestPart(DaraModel):
90
- def __init__(
91
- self,
92
- part_number: str = None,
93
- ):
94
- # PartNumber
95
- self.part_number = part_number
96
-
97
- def validate(self):
98
- pass
10
+ from typing import BinaryIO, List, Dict, Any
99
11
 
100
- def to_map(self):
101
- _map = super().to_map()
102
- if _map is not None:
103
- return _map
104
-
105
- result = dict()
106
- if self.part_number is not None:
107
- result['PartNumber'] = self.part_number
108
- return result
109
-
110
- def from_map(self, m: dict = None):
111
- m = m or dict()
112
- if m.get('PartNumber') is not None:
113
- self.part_number = m.get('PartNumber')
114
- return self
115
12
 
116
13
  class ComplexRequest(DaraModel):
117
14
  def __init__(
118
- self,
15
+ self, *,
119
16
  access_key: str = None,
120
17
  body: BinaryIO = None,
121
18
  strs: List[str] = None,
122
19
  map_list: List[Dict[str, Any]] = None,
123
- header: ComplexRequestHeader = None,
124
- configs: ComplexRequestConfigs = None,
20
+ header: main_models.ComplexRequestHeader = None,
21
+ configs: main_models.ComplexRequestConfigs = None,
125
22
  num: int = None,
126
23
  i_64: int = None,
127
24
  f_64: float = None,
@@ -159,7 +56,7 @@ class ComplexRequest(DaraModel):
159
56
  print: str = None,
160
57
  exec: str = None,
161
58
  str: str = None,
162
- part: List[ComplexRequestPart] = None,
59
+ part: List[main_models.ComplexRequestPart] = None,
163
60
  ):
164
61
  self.access_key = access_key
165
62
  # Body
@@ -440,11 +337,11 @@ class ComplexRequest(DaraModel):
440
337
  if m.get('mapList') is not None:
441
338
  self.map_list = m.get('mapList')
442
339
  if m.get('header') is not None:
443
- temp_model = ComplexRequestHeader()
340
+ temp_model = main_models.ComplexRequestHeader()
444
341
  self.header = temp_model.from_map(m.get('header'))
445
342
 
446
343
  if m.get('configs') is not None:
447
- temp_model = ComplexRequestConfigs()
344
+ temp_model = main_models.ComplexRequestConfigs()
448
345
  self.configs = temp_model.from_map(m.get('configs'))
449
346
 
450
347
  if m.get('num') is not None:
@@ -510,17 +407,17 @@ class ComplexRequest(DaraModel):
510
407
  if m.get('modelMap') is not None:
511
408
  self.model_map = {}
512
409
  for k1, v1 in m.get('modelMap').items():
513
- temp_model = SourceClient()
410
+ temp_model = source_models.Request()
514
411
  self.model_map[k1] = temp_model.from_map(v1)
515
412
 
516
413
  if m.get('request') is not None:
517
- temp_model = SourceClient()
414
+ temp_model = source_models.Request()
518
415
  self.request = temp_model.from_map(m.get('request'))
519
416
 
520
417
  if m.get('client') is not None:
521
418
  self.client = m.get('client')
522
419
  if m.get('instance') is not None:
523
- temp_model = SourceClient()
420
+ temp_model = source_models.RequestInstance()
524
421
  self.instance = temp_model.from_map(m.get('instance'))
525
422
 
526
423
  if m.get('from') is not None:
@@ -537,34 +434,8 @@ class ComplexRequest(DaraModel):
537
434
  l1 = 0
538
435
  self.part = []
539
436
  for k1 in m.get('Part'):
540
- temp_model = ComplexRequestPart()
437
+ temp_model = main_models.ComplexRequestPart()
541
438
  self.part.append(temp_model.from_map(k1))
542
439
 
543
440
  return self
544
441
 
545
- class Response(DaraModel):
546
- def __init__(
547
- self,
548
- instance: main_models.ComplexRequestPart = None,
549
- ):
550
- self.instance = instance
551
-
552
- def validate(self):
553
- self.validate_required(self.instance, 'instance')
554
-
555
- def to_map(self):
556
- _map = super().to_map()
557
- if _map is not None:
558
- return _map
559
-
560
- result = dict()
561
- if self.instance is not None:
562
- result['instance'] = self.instance
563
- return result
564
-
565
- def from_map(self, m: dict = None):
566
- m = m or dict()
567
- if m.get('instance') is not None:
568
- self.instance = m.get('instance')
569
- return self
570
-