@darabonba/python-generator 1.2.19 → 2.0.1

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 (152) hide show
  1. package/ChangeLog.md +0 -158
  2. package/lib/builtin.js +818 -0
  3. package/lib/generator.js +2708 -0
  4. package/lib/helper.js +422 -0
  5. package/package.json +6 -5
  6. package/tests/expected/alias/setup.py +79 -0
  7. package/tests/expected/alias/tea_python_tests/__init__.py +1 -0
  8. package/tests/expected/alias/tea_python_tests/client.py +35 -0
  9. package/tests/expected/annotation/tea_python_tests/__init__.py +1 -0
  10. package/tests/expected/annotation/tea_python_tests/client.py +93 -0
  11. package/tests/expected/annotation/tea_python_tests/models.py +37 -0
  12. package/tests/expected/api/tea_python_tests/__init__.py +1 -0
  13. package/tests/expected/api/tea_python_tests/client.py +106 -0
  14. package/tests/expected/builtin/tea_python_tests/client.py +685 -0
  15. package/tests/expected/comment/tea_python_tests/__init__.py +1 -0
  16. package/tests/expected/comment/tea_python_tests/client.py +288 -0
  17. package/tests/expected/comment/tea_python_tests/models.py +195 -0
  18. package/tests/expected/complex/tea_python_tests/__init__.py +1 -0
  19. package/tests/expected/complex/tea_python_tests/client.py +1169 -0
  20. package/tests/expected/complex/tea_python_tests/exceptions.py +39 -0
  21. package/tests/expected/complex/tea_python_tests/models.py +570 -0
  22. package/tests/expected/const/tea_python_tests/__init__.py +1 -0
  23. package/tests/expected/const/tea_python_tests/client.py +14 -0
  24. package/{src/langs/python/files/setup.py.tmpl → tests/expected/empty/setup.py} +11 -11
  25. package/tests/expected/empty/tea_python_tests/__init__.py +1 -0
  26. package/tests/expected/empty/tea_python_tests/client.py +10 -0
  27. package/tests/expected/exec/tea_python_tests/__init__.py +1 -0
  28. package/tests/expected/exec/tea_python_tests/exec_client.py +21 -0
  29. package/tests/expected/function/tea_python_tests/__init__.py +1 -0
  30. package/tests/expected/function/tea_python_tests/client.py +64 -0
  31. package/tests/expected/import/setup.py +78 -0
  32. package/tests/expected/import/tea_python_tests/__init__.py +1 -0
  33. package/tests/expected/import/tea_python_tests/client.py +29 -0
  34. package/tests/expected/map/tea_python_tests/__init__.py +1 -0
  35. package/tests/expected/map/tea_python_tests/client.py +39 -0
  36. package/tests/expected/model/tea_python_tests/__init__.py +1 -0
  37. package/tests/expected/model/tea_python_tests/client.py +10 -0
  38. package/tests/expected/model/tea_python_tests/exceptions.py +28 -0
  39. package/tests/expected/model/tea_python_tests/models.py +780 -0
  40. package/tests/expected/multi/tea_python_tests/api.py +95 -0
  41. package/tests/expected/multi/tea_python_tests/client.py +40 -0
  42. package/tests/expected/multi/tea_python_tests/lib/util.py +19 -0
  43. package/tests/expected/multi/tea_python_tests/model/user.py +26 -0
  44. package/tests/expected/multi/tea_python_tests/model/user_exceptions.py +83 -0
  45. package/tests/expected/multi/tea_python_tests/model/user_models.py +145 -0
  46. package/tests/expected/statements/tea_python_tests/__init__.py +1 -0
  47. package/tests/expected/statements/tea_python_tests/client.py +86 -0
  48. package/tests/expected/super/tea_python_tests/__init__.py +1 -0
  49. package/tests/expected/super/tea_python_tests/client.py +16 -0
  50. package/tests/expected/typedef/setup.py +77 -0
  51. package/tests/expected/typedef/tea_python_tests/__init__.py +1 -0
  52. package/tests/expected/typedef/tea_python_tests/client.py +74 -0
  53. package/tests/expected/typedef/tea_python_tests/models.py +42 -0
  54. package/tests/fixtures/alias/Darafile +11 -0
  55. package/tests/fixtures/alias/libraries/Alias/Darafile +11 -0
  56. package/tests/fixtures/alias/libraries/Alias-Symbol/Darafile +11 -0
  57. package/tests/fixtures/builtin/Darafile +6 -0
  58. package/tests/fixtures/builtin/main.dara +333 -0
  59. package/tests/fixtures/complex/libraries/import.dara +18 -11
  60. package/tests/fixtures/complex/main.dara +452 -103
  61. package/tests/fixtures/import/libraries/Darafile +1 -1
  62. package/tests/fixtures/import/pack/Darafile +3 -0
  63. package/tests/fixtures/map/libraries/Darafile +3 -0
  64. package/tests/fixtures/map/libraries/import.dara +4 -0
  65. package/tests/fixtures/map/main.dara +17 -2
  66. package/tests/fixtures/model/.libraries.json +3 -0
  67. package/tests/fixtures/model/Darafile +5 -2
  68. package/tests/fixtures/model/libraries/Darafile +20 -0
  69. package/tests/fixtures/model/libraries/import.dara +27 -0
  70. package/tests/fixtures/model/main.dara +60 -42
  71. package/tests/fixtures/multi/.libraries.json +3 -0
  72. package/tests/fixtures/multi/Darafile +12 -0
  73. package/tests/fixtures/multi/api.dara +20 -0
  74. package/tests/fixtures/multi/lib/util.dara +5 -0
  75. package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/Teafile +68 -0
  76. package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/main.tea +244 -0
  77. package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/util.tea +2 -0
  78. package/tests/fixtures/multi/main.dara +32 -0
  79. package/tests/fixtures/multi/model/user.dara +35 -0
  80. package/tests/{python3.tests.js → main.tests.js} +107 -65
  81. package/tests/output/alias/setup.py +79 -0
  82. package/tests/output/alias/tea_python_tests/client.py +35 -0
  83. package/{src/langs/python2/files/setup.py.tmpl → tests/output/annotation/setup.py} +19 -24
  84. package/tests/output/annotation/tea_python_tests/client.py +93 -0
  85. package/tests/output/annotation/tea_python_tests/models.py +37 -0
  86. package/tests/output/api/setup.py +77 -0
  87. package/tests/output/api/tea_python_tests/client.py +106 -0
  88. package/tests/output/builtin/setup.py +77 -0
  89. package/tests/output/builtin/tea_python_tests/client.py +685 -0
  90. package/tests/output/comment/setup.py +77 -0
  91. package/tests/output/comment/tea_python_tests/client.py +288 -0
  92. package/tests/output/comment/tea_python_tests/models.py +195 -0
  93. package/tests/output/complex/setup.py +77 -0
  94. package/tests/output/complex/tea_python_tests/client.py +1169 -0
  95. package/tests/output/complex/tea_python_tests/exceptions.py +39 -0
  96. package/tests/output/complex/tea_python_tests/models.py +570 -0
  97. package/tests/output/const/setup.py +77 -0
  98. package/tests/output/const/tea_python_tests/client.py +14 -0
  99. package/tests/output/empty/setup.py +77 -0
  100. package/tests/output/empty/tea_python_tests/client.py +10 -0
  101. package/tests/output/exec/setup.py +77 -0
  102. package/tests/output/exec/tea_python_tests/exec_client.py +21 -0
  103. package/tests/output/function/setup.py +77 -0
  104. package/tests/output/function/tea_python_tests/client.py +64 -0
  105. package/tests/output/import/setup.py +78 -0
  106. package/tests/output/import/tea_python_tests/client.py +29 -0
  107. package/tests/output/map/setup.py +77 -0
  108. package/tests/output/map/tea_python_tests/client.py +39 -0
  109. package/tests/output/model/setup.py +77 -0
  110. package/tests/output/model/tea_python_tests/client.py +10 -0
  111. package/tests/output/model/tea_python_tests/exceptions.py +28 -0
  112. package/tests/output/model/tea_python_tests/models.py +780 -0
  113. package/tests/output/multi/setup.py +77 -0
  114. package/tests/output/multi/tea_python_tests/api.py +95 -0
  115. package/tests/output/multi/tea_python_tests/client.py +40 -0
  116. package/tests/output/multi/tea_python_tests/lib/util.py +19 -0
  117. package/tests/output/multi/tea_python_tests/model/user.py +26 -0
  118. package/tests/output/multi/tea_python_tests/model/user_exceptions.py +83 -0
  119. package/tests/output/multi/tea_python_tests/model/user_models.py +145 -0
  120. package/tests/output/statements/setup.py +77 -0
  121. package/tests/output/statements/tea_python_tests/client.py +86 -0
  122. package/tests/output/super/setup.py +77 -0
  123. package/tests/output/super/tea_python_tests/client.py +16 -0
  124. package/tests/output/typedef/setup.py +78 -0
  125. package/tests/output/typedef/tea_python_tests/client.py +74 -0
  126. package/tests/output/typedef/tea_python_tests/models.py +42 -0
  127. package/src/generator.js +0 -231
  128. package/src/langs/common/combinator.js +0 -193
  129. package/src/langs/common/config.js +0 -60
  130. package/src/langs/common/enum.js +0 -179
  131. package/src/langs/common/items.js +0 -551
  132. package/src/langs/common/package_info.js +0 -53
  133. package/src/langs/python/combinator.js +0 -1898
  134. package/src/langs/python/config.js +0 -169
  135. package/src/langs/python/files/.gitignore.tmpl +0 -5
  136. package/src/langs/python/files/__init__.py.tmpl +0 -1
  137. package/src/langs/python/package_info.js +0 -78
  138. package/src/langs/python2/combinator.js +0 -1770
  139. package/src/langs/python2/config.js +0 -162
  140. package/src/langs/python2/files/.gitignore.tmpl +0 -5
  141. package/src/langs/python2/files/__init__.py.tmpl +0 -1
  142. package/src/langs/python2/package_info.js +0 -78
  143. package/src/lib/debug.js +0 -55
  144. package/src/lib/emitter.js +0 -95
  145. package/src/lib/helper.js +0 -207
  146. package/src/resolver/base.js +0 -282
  147. package/src/resolver/client.js +0 -1013
  148. package/src/resolver/model.js +0 -159
  149. package/tests/common.tests.js +0 -244
  150. package/tests/lib.tests.js +0 -269
  151. package/tests/python2.tests.js +0 -283
  152. package/tests/resolver.tests.js +0 -434
@@ -0,0 +1,1169 @@
1
+ # -*- coding: utf-8 -*-
2
+ # This file is auto-generated, don't edit it. Thanks.
3
+ from __future__ import annotations
4
+ from Source.source_client import SourceClient
5
+ from Source import models as source_models
6
+ from darabonba.core import DaraCore
7
+ from tea_python_tests import models as main_models
8
+ from darabonba.exceptions import UnretryableException
9
+ from darabonba.policy.retry import RetryPolicyContext
10
+ from darabonba.request import DaraRequest
11
+ import logging
12
+ from darabonba.response import DaraResponse
13
+ from darabonba.exceptions import DaraException
14
+ from tea_python_tests import exceptions as main_exceptions
15
+ from Source import exceptions as source_exceptions
16
+ from typing import List, Dict, Any
17
+
18
+
19
+ class Client(SourceClient):
20
+ _protocol: str = None
21
+ _pathname: str = None
22
+ __strs: List[str] = None
23
+ _comple_list: List[List[str]] = None
24
+ _endpoint_map: Dict[str, str] = None
25
+ _configs: List[source_models.Config] = None
26
+
27
+ def __init__(
28
+ self,
29
+ source_config: source_models.Config,
30
+ ):
31
+ super().__init__(source_config)
32
+ self._configs[0] = source_config
33
+ test = SourceClient(source_config)
34
+ self.print_data(DaraCore.to_map(source_config), 'test')
35
+
36
+ def complex_1(
37
+ self,
38
+ request: main_models.ComplexRequest,
39
+ source_client: SourceClient,
40
+ ) -> source_models.RuntimeObject:
41
+ _runtime = {
42
+ 'timeouted': 'retry',
43
+ }
44
+ _last_request = None
45
+ _last_response = None
46
+ _retries_attempted = 0
47
+ _context = RetryPolicyContext(
48
+ retries_attempted= _retries_attempted
49
+ )
50
+ while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
51
+ if _retries_attempted > 0:
52
+ _backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
53
+ if _backoff_time > 0:
54
+ DaraCore.sleep(_backoff_time)
55
+ _retries_attempted = _retries_attempted + 1
56
+ try:
57
+ _request = DaraRequest()
58
+ name = 'complex'
59
+ read = None
60
+ byt = None
61
+ module_model_map_val = {}
62
+ module_map_val = {}
63
+ model_map_val = {}
64
+ sub_model_map_val = {}
65
+ req_map = None
66
+ map_string = {
67
+ 'str': request.access_key
68
+ }
69
+ inte = 1
70
+ a = 1
71
+ b = None
72
+ b = a
73
+ c = a
74
+ self.int_to_int_32(a)
75
+ map_val = {
76
+ 'read': read,
77
+ 'test': '{"test":"ok"}',
78
+ 'b': request.b,
79
+ 'num': request.num,
80
+ 'u16': request.u_16,
81
+ 'u32': request.u_32,
82
+ 'u64': request.u_64,
83
+ 'u16List': request.uint_16list,
84
+ 'u32List': request.uint_32list,
85
+ 'u64List': request.uint_64list,
86
+ 'i64List': request.int_64list,
87
+ 'i16List': request.int_16list,
88
+ 'i32List': request.int_32list,
89
+ 'intList': request.int_list,
90
+ 'stringList': request.string_list,
91
+ 'i32': request.i_32,
92
+ 'booleantList': request.booleant_list,
93
+ 'floatList': request.float_list,
94
+ 'float64List': request.f_64list,
95
+ 'f32': request.f_32,
96
+ 'f64': request.f_64,
97
+ 'i64': request.i_64
98
+ }
99
+ abool = True
100
+ req = main_models.ComplexRequest(
101
+ b = False,
102
+ num = 10,
103
+ i_32 = a,
104
+ int_list = [
105
+ 10,
106
+ 11
107
+ ],
108
+ int_16list = [
109
+ 10,
110
+ 11
111
+ ],
112
+ int_32list = [
113
+ 10,
114
+ 11
115
+ ],
116
+ int_64list = [
117
+ 10,
118
+ 11
119
+ ],
120
+ long_list = [
121
+ 10,
122
+ 11
123
+ ],
124
+ float_list = [
125
+ 0.1,
126
+ 0.2
127
+ ],
128
+ string_list = [
129
+ '10',
130
+ '11'
131
+ ],
132
+ booleant_list = [
133
+ True,
134
+ False
135
+ ]
136
+ )
137
+ long_list = [
138
+ 432435
139
+ ]
140
+ any_list = [
141
+ 432435,
142
+ 'str',
143
+ True,
144
+ 10,
145
+ 0.1
146
+ ]
147
+ float_map = {
148
+ 'key1': 0.1,
149
+ 'key2': 0.2
150
+ }
151
+ double_map = {
152
+ 'key1': 0.1,
153
+ 'key2': 0.2
154
+ }
155
+ int_map = {
156
+ 'key1': 1,
157
+ 'key2': 2
158
+ }
159
+ long_map = {
160
+ 'key1': 1,
161
+ 'key2': 2
162
+ }
163
+ int_16map = {
164
+ 'key1': 1,
165
+ 'key2': 2
166
+ }
167
+ int_32map = {
168
+ 'key1': 1,
169
+ 'key2': 2
170
+ }
171
+ int_64map = {
172
+ 'key1': 1,
173
+ 'key2': 2
174
+ }
175
+ any_map = {
176
+ 'key1': 0.1,
177
+ 'key2': 1,
178
+ 'key3': 'test',
179
+ 'key4': True,
180
+ 'key5': [
181
+ 'test',
182
+ 1,
183
+ True,
184
+ [
185
+ 'test'
186
+ ]
187
+ ],
188
+ 'key6': [
189
+ {
190
+ 'a': 'test',
191
+ 'b': 1,
192
+ 'c': True,
193
+ 'd': [
194
+ 'test'
195
+ ]
196
+ }
197
+ ]
198
+ }
199
+ for item_tmp in any_list:
200
+ logging.log(logging.INFO, f'{item_tmp}')
201
+ for item in [
202
+ '1',
203
+ '2'
204
+ ]:
205
+ any_map = {}
206
+ any_map[item] = 'test'
207
+ break
208
+ self.__strs = request.strs
209
+ self._protocol = 'test'
210
+ self._endpoint_map.get(self._protocol)
211
+ self._endpoint_map['test'] = 'ok'
212
+ request.strs = self.__strs
213
+ _request.protocol = self._protocol
214
+ _request.port = request.num
215
+ _request.method = 'GET'
216
+ _request.pathname = f'/{self._pathname}'
217
+ _request.query = {
218
+ 'date': '2019',
219
+ 'name': _request.method
220
+ }
221
+ tmp = DaraCore.merge({}, _request.query, _request.headers, _request)
222
+ _last_request = _request
223
+ _response = DaraCore.do_action(_request, _runtime)
224
+ _last_response = _response
225
+ if True and True:
226
+ return
227
+ elif SourceClient.judge_str('test') or False:
228
+ return source_models.RuntimeObject()
229
+ source_client.print_data(DaraCore.to_map(request), '1')
230
+ self.hello(DaraCore.to_map(request), [
231
+ '1',
232
+ '2'
233
+ ], None)
234
+ self.hello(None, None, None)
235
+ return DaraCore.from_map(
236
+ source_models.RuntimeObject(),
237
+ {}
238
+ )
239
+ self.complex_3(None, 'test')
240
+ return
241
+ except Exception as e:
242
+ _context = RetryPolicyContext(
243
+ retries_attempted= _retries_attempted,
244
+ http_request = _last_request,
245
+ http_response = _last_response,
246
+ exception = e
247
+ )
248
+ continue
249
+ raise UnretryableException(_context)
250
+
251
+ async def complex_1_async(
252
+ self,
253
+ request: main_models.ComplexRequest,
254
+ source_client: SourceClient,
255
+ ) -> source_models.RuntimeObject:
256
+ _runtime = {
257
+ 'timeouted': 'retry',
258
+ }
259
+ _last_request = None
260
+ _last_response = None
261
+ _retries_attempted = 0
262
+ _context = RetryPolicyContext(
263
+ retries_attempted= _retries_attempted
264
+ )
265
+ while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
266
+ if _retries_attempted > 0:
267
+ _backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
268
+ if _backoff_time > 0:
269
+ DaraCore.sleep(_backoff_time)
270
+ _retries_attempted = _retries_attempted + 1
271
+ try:
272
+ _request = DaraRequest()
273
+ name = 'complex'
274
+ read = None
275
+ byt = None
276
+ module_model_map_val = {}
277
+ module_map_val = {}
278
+ model_map_val = {}
279
+ sub_model_map_val = {}
280
+ req_map = None
281
+ map_string = {
282
+ 'str': request.access_key
283
+ }
284
+ inte = 1
285
+ a = 1
286
+ b = None
287
+ b = a
288
+ c = a
289
+ self.int_to_int_32(a)
290
+ map_val = {
291
+ 'read': read,
292
+ 'test': '{"test":"ok"}',
293
+ 'b': request.b,
294
+ 'num': request.num,
295
+ 'u16': request.u_16,
296
+ 'u32': request.u_32,
297
+ 'u64': request.u_64,
298
+ 'u16List': request.uint_16list,
299
+ 'u32List': request.uint_32list,
300
+ 'u64List': request.uint_64list,
301
+ 'i64List': request.int_64list,
302
+ 'i16List': request.int_16list,
303
+ 'i32List': request.int_32list,
304
+ 'intList': request.int_list,
305
+ 'stringList': request.string_list,
306
+ 'i32': request.i_32,
307
+ 'booleantList': request.booleant_list,
308
+ 'floatList': request.float_list,
309
+ 'float64List': request.f_64list,
310
+ 'f32': request.f_32,
311
+ 'f64': request.f_64,
312
+ 'i64': request.i_64
313
+ }
314
+ abool = True
315
+ req = main_models.ComplexRequest(
316
+ b = False,
317
+ num = 10,
318
+ i_32 = a,
319
+ int_list = [
320
+ 10,
321
+ 11
322
+ ],
323
+ int_16list = [
324
+ 10,
325
+ 11
326
+ ],
327
+ int_32list = [
328
+ 10,
329
+ 11
330
+ ],
331
+ int_64list = [
332
+ 10,
333
+ 11
334
+ ],
335
+ long_list = [
336
+ 10,
337
+ 11
338
+ ],
339
+ float_list = [
340
+ 0.1,
341
+ 0.2
342
+ ],
343
+ string_list = [
344
+ '10',
345
+ '11'
346
+ ],
347
+ booleant_list = [
348
+ True,
349
+ False
350
+ ]
351
+ )
352
+ long_list = [
353
+ 432435
354
+ ]
355
+ any_list = [
356
+ 432435,
357
+ 'str',
358
+ True,
359
+ 10,
360
+ 0.1
361
+ ]
362
+ float_map = {
363
+ 'key1': 0.1,
364
+ 'key2': 0.2
365
+ }
366
+ double_map = {
367
+ 'key1': 0.1,
368
+ 'key2': 0.2
369
+ }
370
+ int_map = {
371
+ 'key1': 1,
372
+ 'key2': 2
373
+ }
374
+ long_map = {
375
+ 'key1': 1,
376
+ 'key2': 2
377
+ }
378
+ int_16map = {
379
+ 'key1': 1,
380
+ 'key2': 2
381
+ }
382
+ int_32map = {
383
+ 'key1': 1,
384
+ 'key2': 2
385
+ }
386
+ int_64map = {
387
+ 'key1': 1,
388
+ 'key2': 2
389
+ }
390
+ any_map = {
391
+ 'key1': 0.1,
392
+ 'key2': 1,
393
+ 'key3': 'test',
394
+ 'key4': True,
395
+ 'key5': [
396
+ 'test',
397
+ 1,
398
+ True,
399
+ [
400
+ 'test'
401
+ ]
402
+ ],
403
+ 'key6': [
404
+ {
405
+ 'a': 'test',
406
+ 'b': 1,
407
+ 'c': True,
408
+ 'd': [
409
+ 'test'
410
+ ]
411
+ }
412
+ ]
413
+ }
414
+ for item_tmp in any_list:
415
+ logging.log(logging.INFO, f'{item_tmp}')
416
+ for item in [
417
+ '1',
418
+ '2'
419
+ ]:
420
+ any_map = {}
421
+ any_map[item] = 'test'
422
+ break
423
+ self.__strs = request.strs
424
+ self._protocol = 'test'
425
+ self._endpoint_map.get(self._protocol)
426
+ self._endpoint_map['test'] = 'ok'
427
+ request.strs = self.__strs
428
+ _request.protocol = self._protocol
429
+ _request.port = request.num
430
+ _request.method = 'GET'
431
+ _request.pathname = f'/{self._pathname}'
432
+ _request.query = {
433
+ 'date': '2019',
434
+ 'name': _request.method
435
+ }
436
+ tmp = DaraCore.merge({}, _request.query, _request.headers, _request)
437
+ _last_request = _request
438
+ _response = await DaraCore.async_do_action(_request, _runtime)
439
+ _last_response = _response
440
+ if True and True:
441
+ return
442
+ elif SourceClient.judge_str('test') or False:
443
+ return source_models.RuntimeObject()
444
+ source_client.print_data(DaraCore.to_map(request), '1')
445
+ await self.hello_async(DaraCore.to_map(request), [
446
+ '1',
447
+ '2'
448
+ ], None)
449
+ await self.hello_async(None, None, None)
450
+ return DaraCore.from_map(
451
+ source_models.RuntimeObject(),
452
+ {}
453
+ )
454
+ await self.complex_3_async(None, 'test')
455
+ return
456
+ except Exception as e:
457
+ _context = RetryPolicyContext(
458
+ retries_attempted= _retries_attempted,
459
+ http_request = _last_request,
460
+ http_response = _last_response,
461
+ exception = e
462
+ )
463
+ continue
464
+ raise UnretryableException(_context)
465
+
466
+ def complex_2(
467
+ self,
468
+ request: main_models.ComplexRequest,
469
+ str: List[str],
470
+ val: Dict[str, str],
471
+ ) -> dict:
472
+ _request = DaraRequest()
473
+ name = 'complex'
474
+ config = source_models.Config()
475
+ source_client = SourceClient(config)
476
+ config_array = [
477
+ config
478
+ ]
479
+ source_client.print_data(DaraCore.to_map(request), '1')
480
+ _request.protocol = 'HTTP'
481
+ _request.port = 80
482
+ _request.method = 'GET'
483
+ _request.pathname = '/'
484
+ _request.query = {
485
+ 'date': '2019',
486
+ 'protocol': _request.protocol
487
+ }
488
+ _last_request = _request
489
+ _response = DaraCore.do_action(_request)
490
+
491
+ return {}
492
+
493
+ async def complex_2_async(
494
+ self,
495
+ request: main_models.ComplexRequest,
496
+ str: List[str],
497
+ val: Dict[str, str],
498
+ ) -> dict:
499
+ _request = DaraRequest()
500
+ name = 'complex'
501
+ config = source_models.Config()
502
+ source_client = SourceClient(config)
503
+ config_array = [
504
+ config
505
+ ]
506
+ source_client.print_data(DaraCore.to_map(request), '1')
507
+ _request.protocol = 'HTTP'
508
+ _request.port = 80
509
+ _request.method = 'GET'
510
+ _request.pathname = '/'
511
+ _request.query = {
512
+ 'date': '2019',
513
+ 'protocol': _request.protocol
514
+ }
515
+ _last_request = _request
516
+ _response = await DaraCore.async_do_action(_request)
517
+
518
+ return {}
519
+
520
+ def complex_map(self) -> Dict[str, Any]:
521
+ _runtime = {
522
+ }
523
+ _last_request = None
524
+ _last_response = None
525
+ _retries_attempted = 0
526
+ _context = RetryPolicyContext(
527
+ retries_attempted= _retries_attempted
528
+ )
529
+ while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
530
+ if _retries_attempted > 0:
531
+ _backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
532
+ if _backoff_time > 0:
533
+ DaraCore.sleep(_backoff_time)
534
+ _retries_attempted = _retries_attempted + 1
535
+ try:
536
+ _request = DaraRequest()
537
+ pass
538
+ _last_request = _request
539
+ _response = DaraCore.do_action(_request, _runtime)
540
+ _last_response = _response
541
+
542
+ return {}
543
+ except Exception as e:
544
+ _context = RetryPolicyContext(
545
+ retries_attempted= _retries_attempted,
546
+ http_request = _last_request,
547
+ http_response = _last_response,
548
+ exception = e
549
+ )
550
+ continue
551
+ raise UnretryableException(_context)
552
+
553
+ async def complex_map_async(self) -> Dict[str, Any]:
554
+ _runtime = {
555
+ }
556
+ _last_request = None
557
+ _last_response = None
558
+ _retries_attempted = 0
559
+ _context = RetryPolicyContext(
560
+ retries_attempted= _retries_attempted
561
+ )
562
+ while DaraCore.should_retry(_runtime.get('retryOptions'), _context):
563
+ if _retries_attempted > 0:
564
+ _backoff_time = DaraCore.get_backoff_time(_runtime.get('retryOptions'), _context)
565
+ if _backoff_time > 0:
566
+ DaraCore.sleep(_backoff_time)
567
+ _retries_attempted = _retries_attempted + 1
568
+ try:
569
+ _request = DaraRequest()
570
+ pass
571
+ _last_request = _request
572
+ _response = await DaraCore.async_do_action(_request, _runtime)
573
+ _last_response = _response
574
+
575
+ return {}
576
+ except Exception as e:
577
+ _context = RetryPolicyContext(
578
+ retries_attempted= _retries_attempted,
579
+ http_request = _last_request,
580
+ http_response = _last_response,
581
+ exception = e
582
+ )
583
+ continue
584
+ raise UnretryableException(_context)
585
+
586
+ def complex_3(
587
+ self,
588
+ request: main_models.ComplexRequest,
589
+ name: str,
590
+ ) -> main_models.ComplexRequest:
591
+ _request = DaraRequest()
592
+ name = 'complex'
593
+ _request.protocol = self.template_string()
594
+ _request.port = 80
595
+ _request.method = 'GET'
596
+ _request.pathname = '/'
597
+ _request.body = 'body'
598
+ _request.query = {
599
+ 'date': '2019'
600
+ }
601
+ tmp = None
602
+ tmp = self.return_model()
603
+ name = self._protocol
604
+ _last_request = _request
605
+ _response = DaraCore.do_action(_request)
606
+ x = False
607
+ y = True
608
+ z = False
609
+ if x and y or not z:
610
+ x = y
611
+ resp = _response
612
+ req = source_models.Request(
613
+ accesskey = request.access_key,
614
+ region = resp.status_message
615
+ )
616
+ self.array_0(DaraCore.to_map(request))
617
+ req.accesskey = 'accesskey'
618
+ req.accesskey = request.access_key
619
+ self.print_null()
620
+ self.throws_func()
621
+ _response.status_code
622
+ SourceClient.array(DaraCore.to_map(request), '1')
623
+ return DaraCore.from_map(
624
+ main_models.ComplexRequest(),
625
+ DaraCore.merge({}, _request.query)
626
+ )
627
+
628
+ async def complex_3_async(
629
+ self,
630
+ request: main_models.ComplexRequest,
631
+ name: str,
632
+ ) -> main_models.ComplexRequest:
633
+ _request = DaraRequest()
634
+ name = 'complex'
635
+ _request.protocol = await self.template_string_async()
636
+ _request.port = 80
637
+ _request.method = 'GET'
638
+ _request.pathname = '/'
639
+ _request.body = 'body'
640
+ _request.query = {
641
+ 'date': '2019'
642
+ }
643
+ tmp = None
644
+ tmp = self.return_model()
645
+ name = self._protocol
646
+ _last_request = _request
647
+ _response = await DaraCore.async_do_action(_request)
648
+ x = False
649
+ y = True
650
+ z = False
651
+ if x and y or not z:
652
+ x = y
653
+ resp = _response
654
+ req = source_models.Request(
655
+ accesskey = request.access_key,
656
+ region = resp.status_message
657
+ )
658
+ self.array_0(DaraCore.to_map(request))
659
+ req.accesskey = 'accesskey'
660
+ req.accesskey = request.access_key
661
+ await self.print_null_async()
662
+ self.throws_func()
663
+ _response.status_code
664
+ SourceClient.array(DaraCore.to_map(request), '1')
665
+ return DaraCore.from_map(
666
+ main_models.ComplexRequest(),
667
+ DaraCore.merge({}, _request.query)
668
+ )
669
+
670
+ def no_return(self) -> None:
671
+ _request = DaraRequest()
672
+ pass
673
+ _last_request = _request
674
+ _response = DaraCore.do_action(_request)
675
+
676
+ return {}
677
+
678
+ async def no_return_async(self) -> None:
679
+ _request = DaraRequest()
680
+ pass
681
+ _last_request = _request
682
+ _response = await DaraCore.async_do_action(_request)
683
+
684
+ return {}
685
+
686
+ def hello(
687
+ self,
688
+ request: dict,
689
+ strs: List[str],
690
+ complex_list: List[List[str]],
691
+ ) -> List[str]:
692
+ a = None
693
+ return self.array_1()
694
+
695
+ async def hello_async(
696
+ self,
697
+ request: dict,
698
+ strs: List[str],
699
+ complex_list: List[List[str]],
700
+ ) -> List[str]:
701
+ a = None
702
+ return self.array_1()
703
+
704
+ @staticmethod
705
+ def print(
706
+ reqeust: DaraRequest,
707
+ reqs: List[main_models.ComplexRequest],
708
+ response: DaraResponse,
709
+ val: Dict[str, str],
710
+ ) -> source_models.Request:
711
+ raise Exception('Un-implemented')
712
+
713
+ @staticmethod
714
+ async def print_async(
715
+ reqeust: DaraRequest,
716
+ reqs: List[main_models.ComplexRequest],
717
+ response: DaraResponse,
718
+ val: Dict[str, str],
719
+ ) -> source_models.Request:
720
+ raise Exception('Un-implemented')
721
+
722
+ @staticmethod
723
+ def int_to_int_32(
724
+ a: int,
725
+ ) -> None:
726
+ raise Exception('Un-implemented')
727
+
728
+ @staticmethod
729
+ def assign_with_array() -> None:
730
+ list = None
731
+ list = [
732
+ 'test'
733
+ ]
734
+ str = None
735
+ str = Client.throws_func()
736
+
737
+ def map_acess(self) -> Any:
738
+ tmp = {
739
+ 'protocol': self._endpoint_map.get(self._protocol)
740
+ }
741
+ return
742
+
743
+ def expr_func(self) -> List[str]:
744
+ if not True:
745
+ pass
746
+ num = 10
747
+ req = main_models.ComplexRequest()
748
+ map_val = {
749
+ 'num': 10,
750
+ 'client': SourceClient,
751
+ 'strs': self.array_1(),
752
+ 'str': f'string{num}',
753
+ 'str1': f'string{req.access_key}'
754
+ }
755
+ return
756
+
757
+ async def expr_func_async(self) -> List[str]:
758
+ if not True:
759
+ pass
760
+ num = 10
761
+ req = main_models.ComplexRequest()
762
+ map_val = {
763
+ 'num': 10,
764
+ 'client': SourceClient,
765
+ 'strs': self.array_1(),
766
+ 'str': f'string{num}',
767
+ 'str1': f'string{req.access_key}'
768
+ }
769
+ return
770
+
771
+ @staticmethod
772
+ def print_null() -> None:
773
+ try :
774
+ str = Client.template_string()
775
+ except Exception as e :
776
+ pass
777
+ finally:
778
+ final = 'ok'
779
+
780
+
781
+ @staticmethod
782
+ async def print_null_async() -> None:
783
+ try :
784
+ str = await Client.template_string_async()
785
+ except Exception as e :
786
+ pass
787
+ finally:
788
+ final = 'ok'
789
+
790
+
791
+ @staticmethod
792
+ def test_try_with_complex_return_type() -> source_models.Request:
793
+ try :
794
+ str = Client.template_string()
795
+ except Exception as e :
796
+ pass
797
+ finally:
798
+ final = 'ok'
799
+
800
+ return
801
+
802
+ @staticmethod
803
+ async def test_try_with_complex_return_type_async() -> source_models.Request:
804
+ try :
805
+ str = await Client.template_string_async()
806
+ except Exception as e :
807
+ pass
808
+ finally:
809
+ final = 'ok'
810
+
811
+ return
812
+
813
+ @staticmethod
814
+ def test_try_with_complex_return_type_with_out_cat() -> source_models.Request:
815
+ try :
816
+ str = Client.template_string()
817
+ except Exception as e :
818
+ sim = 'a'
819
+ finally:
820
+ final = 'ok'
821
+
822
+ return
823
+
824
+ @staticmethod
825
+ async def test_try_with_complex_return_type_with_out_cat_async() -> source_models.Request:
826
+ try :
827
+ str = await Client.template_string_async()
828
+ except Exception as e :
829
+ sim = 'a'
830
+ finally:
831
+ final = 'ok'
832
+
833
+ return
834
+
835
+ @staticmethod
836
+ def array_0(
837
+ req: dict,
838
+ ) -> List[Any]:
839
+ return [ ]
840
+
841
+ @staticmethod
842
+ def array_1() -> List[str]:
843
+ return [
844
+ '1'
845
+ ]
846
+
847
+ def template_string(self) -> str:
848
+ return f'/{self._protocol}'
849
+
850
+ async def template_string_async(self) -> str:
851
+ return f'/{self._protocol}'
852
+
853
+ def int_op(
854
+ self,
855
+ a: int,
856
+ ) -> None:
857
+ b = a
858
+ tmp = {
859
+ 'first': a
860
+ }
861
+ b+= 1
862
+ b+= 1
863
+ b-= 1
864
+ b-= 1
865
+ tmp["a"]+= 1
866
+ tmp["a"]+= 1
867
+ tmp["a"]-= 1
868
+ tmp["a"]-= 1
869
+
870
+ def throws_func(self) -> str:
871
+ return f'/{self._protocol}'
872
+
873
+ def throws_func_1(self) -> str:
874
+ return ''
875
+
876
+ def throws_func_2(self) -> None:
877
+ raise DaraException({
878
+ 'code': ''
879
+ })
880
+
881
+ def throws_func_3(self) -> str:
882
+ raise DaraException({
883
+ 'code': ''
884
+ })
885
+
886
+ def get_int(
887
+ self,
888
+ num: int,
889
+ ) -> int:
890
+ return num
891
+
892
+ def return_func(self) -> str:
893
+ index = 0
894
+ i = self.get_int(index)
895
+ return
896
+
897
+ def return_func_1(
898
+ self,
899
+ cfg: source_models.Config,
900
+ ) -> SourceClient:
901
+ config = source_models.Config()
902
+ return SourceClient(config)
903
+
904
+ def return_func_2(self) -> Dict[str, Any]:
905
+ tmp = {
906
+ 'subMap': 'ok'
907
+ }
908
+ map_val = {
909
+ 'test': tmp
910
+ }
911
+ if SourceClient.judge_str('test'):
912
+ return map_val.get('test')
913
+ else:
914
+ body = None
915
+ return DaraCore.merge({
916
+ 'body': body,
917
+ }, tmp)
918
+
919
+
920
+ def return_model(self) -> main_models.ComplexRequest:
921
+ return main_models.ComplexRequest()
922
+
923
+ def empty_func(self) -> None:
924
+ raise Exception('Un-implemented')
925
+
926
+ def error(
927
+ self,
928
+ e: DaraException,
929
+ ) -> DaraException:
930
+ tmp = None
931
+ c = None
932
+ return e
933
+
934
+ @staticmethod
935
+ def array_access() -> str:
936
+ configs = [
937
+ 'a',
938
+ 'b',
939
+ 'c'
940
+ ]
941
+ config = configs[0]
942
+ return config
943
+
944
+ @staticmethod
945
+ def array_access_2() -> str:
946
+ data = {
947
+ 'configs': [
948
+ 'a',
949
+ 'b',
950
+ 'c'
951
+ ]
952
+ }
953
+ config = data["configs"][0]
954
+ return config
955
+
956
+ @staticmethod
957
+ def array_access_3(
958
+ request: main_models.ComplexRequest,
959
+ ) -> str:
960
+ req = source_models.Request()
961
+ Client.array_access_4([
962
+ req
963
+ ])
964
+ config_val = request.configs.value[0]
965
+ return config_val
966
+
967
+ @staticmethod
968
+ def array_access_4(
969
+ requests: List[source_models.Request],
970
+ ) -> str:
971
+ return ''
972
+
973
+ @staticmethod
974
+ def array_assign(
975
+ config: str,
976
+ ) -> List[str]:
977
+ configs = [
978
+ 'a',
979
+ 'b',
980
+ 'c'
981
+ ]
982
+ configs[3] = config
983
+ return configs
984
+
985
+ @staticmethod
986
+ def array_assign_2(
987
+ config: str,
988
+ ) -> List[str]:
989
+ data = {
990
+ 'configs': [
991
+ 'a',
992
+ 'b',
993
+ 'c'
994
+ ]
995
+ }
996
+ data["configs"][3] = config
997
+ return data.get("configs")
998
+
999
+ @staticmethod
1000
+ def array_assign_3(
1001
+ request: main_models.ComplexRequest,
1002
+ config: str,
1003
+ ) -> None:
1004
+ request.configs.value[0] = config
1005
+
1006
+ @staticmethod
1007
+ def map_access(
1008
+ request: main_models.ComplexRequest,
1009
+ ) -> str:
1010
+ config_info = request.configs.extra.get('name')
1011
+ return config_info
1012
+
1013
+ @staticmethod
1014
+ def map_access_2(
1015
+ request: source_models.Request,
1016
+ ) -> str:
1017
+ config_info = request.configs.extra.get('name')
1018
+ return config_info
1019
+
1020
+ @staticmethod
1021
+ def map_access_3() -> str:
1022
+ data = {
1023
+ 'configs': {
1024
+ 'value': 'string'
1025
+ }
1026
+ }
1027
+ return data.get("configs").get('value')
1028
+
1029
+ @staticmethod
1030
+ def map_access_4(
1031
+ request: main_models.ComplexRequest,
1032
+ ) -> str:
1033
+ key = 'name'
1034
+ model = request.model_map.get(key)
1035
+ config_info = request.configs.extra.get(key)
1036
+ return config_info
1037
+
1038
+ @staticmethod
1039
+ def map_assign(
1040
+ request: main_models.ComplexRequest,
1041
+ name: str,
1042
+ ) -> None:
1043
+ request.configs.extra['name'] = name
1044
+ key = 'name'
1045
+ name = key
1046
+ request.configs.extra[key] = name
1047
+ name = request.configs.extra.get('name')
1048
+ request.map[key] = name
1049
+ request.num_map[key] = 1
1050
+
1051
+ @staticmethod
1052
+ def arrayimport_2(
1053
+ request: List[source_models.Request],
1054
+ ) -> str:
1055
+ return ''
1056
+
1057
+ @staticmethod
1058
+ def default_return() -> None:
1059
+ if True:
1060
+ pass
1061
+ else:
1062
+ pass
1063
+
1064
+ @staticmethod
1065
+ async def default_return_async() -> None:
1066
+ if True:
1067
+ pass
1068
+ else:
1069
+ pass
1070
+
1071
+ @staticmethod
1072
+ def str_fmt() -> None:
1073
+ s = 'strtest'
1074
+ s_1 = f' % 1{s}'
1075
+ s_2 = f''' "hello" 'world' {s}'''
1076
+ s_3 = f'hello world'
1077
+ s_4 = f'''{{
1078
+ "json": "json val",
1079
+ "key": "value"
1080
+ }}'''
1081
+ s_5 = f' %s str:{s}'
1082
+ s_6 = f' %%s str'
1083
+ fs_1 = f'{{"key": "{s}"}}'
1084
+ fs_2 = f'{{{{"key": "{s}"}}}}'
1085
+ fs_3 = f' {s}'
1086
+
1087
+ def multi_try_catch(
1088
+ self,
1089
+ a: int,
1090
+ ) -> None:
1091
+ try :
1092
+ if a > 0:
1093
+ raise main_exceptions.Err1Exception(
1094
+ name = 'str',
1095
+ code = 'str',
1096
+ data = {
1097
+ 'key1': 'str'
1098
+ }
1099
+ )
1100
+ elif a == 0:
1101
+ raise main_exceptions.Err2Exception(
1102
+ name = 'str',
1103
+ code = 'str',
1104
+ access_err_message = 'str2'
1105
+ )
1106
+ elif a == -10:
1107
+ raise source_exceptions.Err3Exception(
1108
+ name = 'str',
1109
+ code = 'str'
1110
+ )
1111
+ else:
1112
+ raise DaraException(
1113
+ name = 'str',
1114
+ code = 'str'
1115
+ )
1116
+
1117
+ except main_models.Err1 as err :
1118
+ logging.log(logging.NOTSET, err.name)
1119
+ except main_models.Err2 as err :
1120
+ logging.log(logging.NOTSET, err.name)
1121
+ except source_models.Err3 as err :
1122
+ logging.log(logging.NOTSET, err.name)
1123
+ except Exception as err :
1124
+ logging.log(logging.NOTSET, err.name)
1125
+ finally:
1126
+ final = 'ok'
1127
+
1128
+
1129
+ async def multi_try_catch_async(
1130
+ self,
1131
+ a: int,
1132
+ ) -> None:
1133
+ try :
1134
+ if a > 0:
1135
+ raise main_exceptions.Err1Exception(
1136
+ name = 'str',
1137
+ code = 'str',
1138
+ data = {
1139
+ 'key1': 'str'
1140
+ }
1141
+ )
1142
+ elif a == 0:
1143
+ raise main_exceptions.Err2Exception(
1144
+ name = 'str',
1145
+ code = 'str',
1146
+ access_err_message = 'str2'
1147
+ )
1148
+ elif a == -10:
1149
+ raise source_exceptions.Err3Exception(
1150
+ name = 'str',
1151
+ code = 'str'
1152
+ )
1153
+ else:
1154
+ raise DaraException(
1155
+ name = 'str',
1156
+ code = 'str'
1157
+ )
1158
+
1159
+ except main_models.Err1 as err :
1160
+ logging.log(logging.NOTSET, err.name)
1161
+ except main_models.Err2 as err :
1162
+ logging.log(logging.NOTSET, err.name)
1163
+ except source_models.Err3 as err :
1164
+ logging.log(logging.NOTSET, err.name)
1165
+ except Exception as err :
1166
+ logging.log(logging.NOTSET, err.name)
1167
+ finally:
1168
+ final = 'ok'
1169
+