@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,780 @@
1
+ # -*- coding: utf-8 -*-
2
+ # This file is auto-generated, don't edit it. Thanks.
3
+ from __future__ import annotations
4
+ from darabonba.model import DaraModel
5
+ from tea_python_tests import models as main_models
6
+ from Source.client import Client as SourceClient
7
+ from Source import models as source_models
8
+ from darabonba.request import DaraRequest
9
+ from typing import List, Dict, Any, BinaryIO
10
+
11
+
12
+
13
+
14
+ class MSubM(DaraModel):
15
+ def __init__(self):
16
+ pass
17
+ def validate(self):
18
+ pass
19
+
20
+ def to_map(self):
21
+ _map = super().to_map()
22
+ if _map is not None:
23
+ return _map
24
+
25
+ result = dict()
26
+ return result
27
+
28
+ def from_map(self, m: dict = None):
29
+ m = m or dict()
30
+ return self
31
+
32
+ class MainFileModelModel(DaraModel):
33
+ def __init__(
34
+ self,
35
+ str: str = None,
36
+ ):
37
+ self.str = str
38
+
39
+ def validate(self):
40
+ self.validate_required(self.str, 'str')
41
+
42
+ def to_map(self):
43
+ _map = super().to_map()
44
+ if _map is not None:
45
+ return _map
46
+
47
+ result = dict()
48
+ if self.str is not None:
49
+ result['str'] = self.str
50
+ return result
51
+
52
+ def from_map(self, m: dict = None):
53
+ m = m or dict()
54
+ if m.get('str') is not None:
55
+ self.str = m.get('str')
56
+ return self
57
+
58
+ class MainFileModel(DaraModel):
59
+ def __init__(
60
+ self,
61
+ str: str = None,
62
+ model: MainFileModelModel = None,
63
+ ):
64
+ self.str = str
65
+ self.model = model
66
+
67
+ def validate(self):
68
+ self.validate_required(self.str, 'str')
69
+ self.validate_required(self.model, 'model')
70
+ if self.model:
71
+ self.model.validate()
72
+
73
+ def to_map(self):
74
+ _map = super().to_map()
75
+ if _map is not None:
76
+ return _map
77
+
78
+ result = dict()
79
+ if self.str is not None:
80
+ result['str'] = self.str
81
+ if self.model is not None:
82
+ result['model'] = self.model.to_map()
83
+
84
+ return result
85
+
86
+ def from_map(self, m: dict = None):
87
+ m = m or dict()
88
+ if m.get('str') is not None:
89
+ self.str = m.get('str')
90
+ if m.get('model') is not None:
91
+ temp_model = MainFileModelModel
92
+ self.model = temp_model.from_map(m.get('model'))
93
+
94
+ return self
95
+
96
+ class MyModelModelModel(DaraModel):
97
+ def __init__(
98
+ self,
99
+ str: str = None,
100
+ ):
101
+ self.str = str
102
+
103
+ def validate(self):
104
+ self.validate_required(self.str, 'str')
105
+
106
+ def to_map(self):
107
+ _map = super().to_map()
108
+ if _map is not None:
109
+ return _map
110
+
111
+ result = dict()
112
+ if self.str is not None:
113
+ result['str'] = self.str
114
+ return result
115
+
116
+ def from_map(self, m: dict = None):
117
+ m = m or dict()
118
+ if m.get('str') is not None:
119
+ self.str = m.get('str')
120
+ return self
121
+
122
+ class MyModelModel(DaraModel):
123
+ def __init__(
124
+ self,
125
+ str: str = None,
126
+ model: MyModelModelModel = None,
127
+ ):
128
+ self.str = str
129
+ self.model = model
130
+
131
+ def validate(self):
132
+ self.validate_required(self.str, 'str')
133
+ self.validate_required(self.model, 'model')
134
+ if self.model:
135
+ self.model.validate()
136
+
137
+ def to_map(self):
138
+ _map = super().to_map()
139
+ if _map is not None:
140
+ return _map
141
+
142
+ result = dict()
143
+ if self.str is not None:
144
+ result['str'] = self.str
145
+ if self.model is not None:
146
+ result['model'] = self.model.to_map()
147
+
148
+ return result
149
+
150
+ def from_map(self, m: dict = None):
151
+ m = m or dict()
152
+ if m.get('str') is not None:
153
+ self.str = m.get('str')
154
+ if m.get('model') is not None:
155
+ temp_model = MyModelModelModel
156
+ self.model = temp_model.from_map(m.get('model'))
157
+
158
+ return self
159
+
160
+ class MyModelSubmodelModel(DaraModel):
161
+ def __init__(
162
+ self,
163
+ str: str = None,
164
+ ):
165
+ self.str = str
166
+
167
+ def validate(self):
168
+ self.validate_required(self.str, 'str')
169
+
170
+ def to_map(self):
171
+ _map = super().to_map()
172
+ if _map is not None:
173
+ return _map
174
+
175
+ result = dict()
176
+ if self.str is not None:
177
+ result['str'] = self.str
178
+ return result
179
+
180
+ def from_map(self, m: dict = None):
181
+ m = m or dict()
182
+ if m.get('str') is not None:
183
+ self.str = m.get('str')
184
+ return self
185
+
186
+ class MyModelSubmodel(DaraModel):
187
+ def __init__(
188
+ self,
189
+ stringfield: str = None,
190
+ model: MyModelSubmodelModel = None,
191
+ ):
192
+ self.stringfield = stringfield
193
+ self.model = model
194
+
195
+ def validate(self):
196
+ self.validate_required(self.stringfield, 'stringfield')
197
+ self.validate_required(self.model, 'model')
198
+ if self.model:
199
+ self.model.validate()
200
+
201
+ def to_map(self):
202
+ _map = super().to_map()
203
+ if _map is not None:
204
+ return _map
205
+
206
+ result = dict()
207
+ if self.stringfield is not None:
208
+ result['stringfield'] = self.stringfield
209
+ if self.model is not None:
210
+ result['model'] = self.model.to_map()
211
+
212
+ return result
213
+
214
+ def from_map(self, m: dict = None):
215
+ m = m or dict()
216
+ if m.get('stringfield') is not None:
217
+ self.stringfield = m.get('stringfield')
218
+ if m.get('model') is not None:
219
+ temp_model = MyModelSubmodelModel
220
+ self.model = temp_model.from_map(m.get('model'))
221
+
222
+ return self
223
+
224
+ class MyModelSubarraymodel(DaraModel):
225
+ def __init__(self):
226
+ pass
227
+ def validate(self):
228
+ pass
229
+
230
+ def to_map(self):
231
+ _map = super().to_map()
232
+ if _map is not None:
233
+ return _map
234
+
235
+ result = dict()
236
+ return result
237
+
238
+ def from_map(self, m: dict = None):
239
+ m = m or dict()
240
+ return self
241
+
242
+ class M(DaraModel):
243
+ def __init__(
244
+ self,
245
+ sub_m: MSubM = None,
246
+ ):
247
+ self.sub_m = sub_m
248
+
249
+ def validate(self):
250
+ self.validate_required(self.sub_m, 'sub_m')
251
+ if self.sub_m:
252
+ self.sub_m.validate()
253
+
254
+ def to_map(self):
255
+ _map = super().to_map()
256
+ if _map is not None:
257
+ return _map
258
+
259
+ result = dict()
260
+ if self.sub_m is not None:
261
+ result['subM'] = self.sub_m.to_map()
262
+
263
+ return result
264
+
265
+ def from_map(self, m: dict = None):
266
+ m = m or dict()
267
+ if m.get('subM') is not None:
268
+ temp_model = MSub_m
269
+ self.sub_m = temp_model.from_map(m.get('subM'))
270
+
271
+ return self
272
+
273
+ class Class(DaraModel):
274
+ def __init__(self):
275
+ pass
276
+ def validate(self):
277
+ pass
278
+
279
+ def to_map(self):
280
+ _map = super().to_map()
281
+ if _map is not None:
282
+ return _map
283
+
284
+ result = dict()
285
+ return result
286
+
287
+ def from_map(self, m: dict = None):
288
+ m = m or dict()
289
+ return self
290
+
291
+ class Model(DaraModel):
292
+ def __init__(
293
+ self,
294
+ str: str = None,
295
+ ):
296
+ self.str = str
297
+
298
+ def validate(self):
299
+ self.validate_required(self.str, 'str')
300
+
301
+ def to_map(self):
302
+ _map = super().to_map()
303
+ if _map is not None:
304
+ return _map
305
+
306
+ result = dict()
307
+ if self.str is not None:
308
+ result['str'] = self.str
309
+ return result
310
+
311
+ def from_map(self, m: dict = None):
312
+ m = m or dict()
313
+ if m.get('str') is not None:
314
+ self.str = m.get('str')
315
+ return self
316
+
317
+ class MyModel(DaraModel):
318
+ def __init__(
319
+ self,
320
+ model: MyModelModel = None,
321
+ stringfield: str = None,
322
+ bytesfield: bytes = None,
323
+ stringarrayfield: List[str] = None,
324
+ mapfield: Dict[str, str] = None,
325
+ name: str = None,
326
+ submodel: MyModelSubmodel = None,
327
+ submodel_map: Dict[str, main_models.MyModelSubmodel] = None,
328
+ map_model: Dict[str, main_models.M] = None,
329
+ subarraymodel: List[MyModelSubarraymodel] = None,
330
+ subarray: List[main_models.M] = None,
331
+ ssubarray: List[List[main_models.M]] = None,
332
+ ssubmarray: List[List[SourceClient]] = None,
333
+ ssubmmarray: List[List[source_models.Request]] = None,
334
+ maparray: List[Dict[str, Any]] = None,
335
+ mapsubmarray: List[Dict[str, SourceClient]] = None,
336
+ module_model_map: Dict[str, source_models.Request] = None,
337
+ sub_model_map: Dict[str, main_models.MSubM] = None,
338
+ model_map: Dict[str, main_models.M] = None,
339
+ module_map: Dict[str, SourceClient] = None,
340
+ object: dict = None,
341
+ readable: BinaryIO = None,
342
+ writable: BinaryIO = None,
343
+ exist_model: main_models.M = None,
344
+ request: DaraRequest = None,
345
+ complex_list: List[List[str]] = None,
346
+ numberfield: int = None,
347
+ integer_field: int = None,
348
+ float_field: float = None,
349
+ double_field: float = None,
350
+ long_field: int = None,
351
+ ulong_field: int = None,
352
+ int_8field: int = None,
353
+ int_16field: int = None,
354
+ int_32field: int = None,
355
+ int_64field: int = None,
356
+ uint_8field: int = None,
357
+ uint_16field: int = None,
358
+ uint_32field: int = None,
359
+ uint_64field: int = None,
360
+ link: str = None,
361
+ ):
362
+ self.model = model
363
+ self.stringfield = stringfield
364
+ self.bytesfield = bytesfield
365
+ self.stringarrayfield = stringarrayfield
366
+ self.mapfield = mapfield
367
+ self.name = name
368
+ self.submodel = submodel
369
+ self.submodel_map = submodel_map
370
+ self.map_model = map_model
371
+ self.subarraymodel = subarraymodel
372
+ self.subarray = subarray
373
+ self.ssubarray = ssubarray
374
+ self.ssubmarray = ssubmarray
375
+ self.ssubmmarray = ssubmmarray
376
+ self.maparray = maparray
377
+ self.mapsubmarray = mapsubmarray
378
+ self.module_model_map = module_model_map
379
+ self.sub_model_map = sub_model_map
380
+ self.model_map = model_map
381
+ self.module_map = module_map
382
+ self.object = object
383
+ self.readable = readable
384
+ self.writable = writable
385
+ self.exist_model = exist_model
386
+ self.request = request
387
+ self.complex_list = complex_list
388
+ self.numberfield = numberfield
389
+ self.integer_field = integer_field
390
+ self.float_field = float_field
391
+ self.double_field = double_field
392
+ self.long_field = long_field
393
+ self.ulong_field = ulong_field
394
+ self.int_8field = int_8field
395
+ self.int_16field = int_16field
396
+ self.int_32field = int_32field
397
+ self.int_64field = int_64field
398
+ self.uint_8field = uint_8field
399
+ self.uint_16field = uint_16field
400
+ self.uint_32field = uint_32field
401
+ self.uint_64field = uint_64field
402
+ self.link = link
403
+
404
+ def validate(self):
405
+ self.validate_required(self.model, 'model')
406
+ if self.model:
407
+ self.model.validate()
408
+ self.validate_required(self.stringfield, 'stringfield')
409
+ self.validate_required(self.bytesfield, 'bytesfield')
410
+ self.validate_required(self.stringarrayfield, 'stringarrayfield')
411
+ self.validate_required(self.mapfield, 'mapfield')
412
+ self.validate_required(self.name, 'name')
413
+ self.validate_required(self.submodel, 'submodel')
414
+ if self.submodel:
415
+ self.submodel.validate()
416
+ self.validate_required(self.submodel_map, 'submodel_map')
417
+ if self.submodel_map:
418
+ for v in self.submodel_map.values():
419
+ if v:
420
+ v.validate()
421
+ self.validate_required(self.map_model, 'map_model')
422
+ if self.map_model:
423
+ for v in self.map_model.values():
424
+ if v:
425
+ v.validate()
426
+ self.validate_required(self.subarraymodel, 'subarraymodel')
427
+ if self.subarraymodel:
428
+ for k in self.subarraymodel:
429
+ if k:
430
+ k.validate()
431
+ self.validate_required(self.subarray, 'subarray')
432
+ if self.subarray:
433
+ for k in self.subarray:
434
+ if k:
435
+ k.validate()
436
+ self.validate_required(self.ssubarray, 'ssubarray')
437
+ if self.ssubarray:
438
+ for k in self.ssubarray:
439
+ for k1 in k:
440
+ if k1:
441
+ k1.validate()
442
+ self.validate_required(self.ssubmarray, 'ssubmarray')
443
+ if self.ssubmarray:
444
+ for k in self.ssubmarray:
445
+ for k1 in k:
446
+ if k1:
447
+ k1.validate()
448
+ self.validate_required(self.ssubmmarray, 'ssubmmarray')
449
+ if self.ssubmmarray:
450
+ for k in self.ssubmmarray:
451
+ for k1 in k:
452
+ if k1:
453
+ k1.validate()
454
+ self.validate_required(self.maparray, 'maparray')
455
+ self.validate_required(self.mapsubmarray, 'mapsubmarray')
456
+ self.validate_required(self.module_model_map, 'module_model_map')
457
+ if self.module_model_map:
458
+ for v in self.module_model_map.values():
459
+ if v:
460
+ v.validate()
461
+ self.validate_required(self.sub_model_map, 'sub_model_map')
462
+ if self.sub_model_map:
463
+ for v in self.sub_model_map.values():
464
+ if v:
465
+ v.validate()
466
+ self.validate_required(self.model_map, 'model_map')
467
+ if self.model_map:
468
+ for v in self.model_map.values():
469
+ if v:
470
+ v.validate()
471
+ self.validate_required(self.module_map, 'module_map')
472
+ if self.module_map:
473
+ for v in self.module_map.values():
474
+ if v:
475
+ v.validate()
476
+ self.validate_required(self.object, 'object')
477
+ self.validate_required(self.readable, 'readable')
478
+ self.validate_required(self.writable, 'writable')
479
+ self.validate_required(self.exist_model, 'exist_model')
480
+ if self.exist_model:
481
+ self.exist_model.validate()
482
+ self.validate_required(self.request, 'request')
483
+ self.validate_required(self.complex_list, 'complex_list')
484
+ self.validate_required(self.numberfield, 'numberfield')
485
+ self.validate_required(self.integer_field, 'integer_field')
486
+ self.validate_required(self.float_field, 'float_field')
487
+ self.validate_required(self.double_field, 'double_field')
488
+ self.validate_required(self.long_field, 'long_field')
489
+ self.validate_required(self.ulong_field, 'ulong_field')
490
+ self.validate_required(self.int_8field, 'int_8field')
491
+ self.validate_required(self.int_16field, 'int_16field')
492
+ self.validate_required(self.int_32field, 'int_32field')
493
+ self.validate_required(self.int_64field, 'int_64field')
494
+ self.validate_required(self.uint_8field, 'uint_8field')
495
+ self.validate_required(self.uint_16field, 'uint_16field')
496
+ self.validate_required(self.uint_32field, 'uint_32field')
497
+ self.validate_required(self.uint_64field, 'uint_64field')
498
+
499
+ def to_map(self):
500
+ _map = super().to_map()
501
+ if _map is not None:
502
+ return _map
503
+
504
+ result = dict()
505
+ if self.model is not None:
506
+ result['model'] = self.model.to_map()
507
+
508
+ if self.stringfield is not None:
509
+ result['stringfield'] = self.stringfield
510
+ if self.bytesfield is not None:
511
+ result['bytesfield'] = self.bytesfield
512
+ if self.stringarrayfield is not None:
513
+ result['stringarrayfield'] = self.stringarrayfield
514
+ if self.mapfield is not None:
515
+ result['mapfield'] = self.mapfield
516
+ if self.name is not None:
517
+ result['realName'] = self.name
518
+ if self.submodel is not None:
519
+ result['submodel'] = self.submodel.to_map()
520
+
521
+ if self.submodel_map is not None:
522
+ result['submodelMap'] = {}
523
+ for k1, v1 in k.items():
524
+ result['submodelMap'][k1] = v1.to_map() if v1 else None
525
+
526
+
527
+ if self.map_model is not None:
528
+ result['mapModel'] = {}
529
+ for k1, v1 in k.items():
530
+ result['mapModel'][k1] = v1.to_map() if v1 else None
531
+
532
+
533
+ if self.subarraymodel is not None:
534
+ l1 = 0
535
+ result['subarraymodel'] = []
536
+ for k1 in self.subarraymodel:
537
+ l1 += 1
538
+ result['subarraymodel'][l1] = k1.to_map() if k1 else None
539
+
540
+
541
+ if self.subarray is not None:
542
+ l1 = 0
543
+ result['subarray'] = []
544
+ for k1 in self.subarray:
545
+ l1 += 1
546
+ result['subarray'][l1] = k1.to_map() if k1 else None
547
+
548
+
549
+ if self.ssubarray is not None:
550
+ l1 = 0
551
+ result['ssubarray'] = []
552
+ for k1 in self.ssubarray:
553
+ l1 += 1
554
+ l2 = 0
555
+ result['ssubarray'][l1] = []
556
+ for k2 in k1:
557
+ l2 += 1
558
+ result['ssubarray'][l1][l2] = k2.to_map() if k2 else None
559
+
560
+
561
+ if self.ssubmarray is not None:
562
+ result['ssubmarray'] = self.ssubmarray
563
+ if self.ssubmmarray is not None:
564
+ l1 = 0
565
+ result['ssubmmarray'] = []
566
+ for k1 in self.ssubmmarray:
567
+ l1 += 1
568
+ l2 = 0
569
+ result['ssubmmarray'][l1] = []
570
+ for k2 in k1:
571
+ l2 += 1
572
+ result['ssubmmarray'][l1][l2] = k2.to_map() if k2 else None
573
+
574
+
575
+ if self.maparray is not None:
576
+ result['maparray'] = self.maparray
577
+ if self.mapsubmarray is not None:
578
+ result['mapsubmarray'] = self.mapsubmarray
579
+ if self.module_model_map is not None:
580
+ result['moduleModelMap'] = {}
581
+ for k1, v1 in k.items():
582
+ result['moduleModelMap'][k1] = v1.to_map() if v1 else None
583
+
584
+
585
+ if self.sub_model_map is not None:
586
+ result['subModelMap'] = {}
587
+ for k1, v1 in k.items():
588
+ result['subModelMap'][k1] = v1.to_map() if v1 else None
589
+
590
+
591
+ if self.model_map is not None:
592
+ result['modelMap'] = {}
593
+ for k1, v1 in k.items():
594
+ result['modelMap'][k1] = v1.to_map() if v1 else None
595
+
596
+
597
+ if self.module_map is not None:
598
+ result['moduleMap'] = self.module_map
599
+ if self.object is not None:
600
+ result['object'] = self.object
601
+ if self.readable is not None:
602
+ result['readable'] = self.readable
603
+ if self.writable is not None:
604
+ result['writable'] = self.writable
605
+ if self.exist_model is not None:
606
+ result['existModel'] = self.exist_model.to_map()
607
+
608
+ if self.request is not None:
609
+ result['request'] = self.request.to_map()
610
+
611
+ if self.complex_list is not None:
612
+ result['complexList'] = self.complex_list
613
+ if self.numberfield is not None:
614
+ result['numberfield'] = self.numberfield
615
+ if self.integer_field is not None:
616
+ result['integerField'] = self.integer_field
617
+ if self.float_field is not None:
618
+ result['floatField'] = self.float_field
619
+ if self.double_field is not None:
620
+ result['doubleField'] = self.double_field
621
+ if self.long_field is not None:
622
+ result['longField'] = self.long_field
623
+ if self.ulong_field is not None:
624
+ result['ulongField'] = self.ulong_field
625
+ if self.int_8field is not None:
626
+ result['int8Field'] = self.int_8field
627
+ if self.int_16field is not None:
628
+ result['int16Field'] = self.int_16field
629
+ if self.int_32field is not None:
630
+ result['int32Field'] = self.int_32field
631
+ if self.int_64field is not None:
632
+ result['int64Field'] = self.int_64field
633
+ if self.uint_8field is not None:
634
+ result['uint8Field'] = self.uint_8field
635
+ if self.uint_16field is not None:
636
+ result['uint16Field'] = self.uint_16field
637
+ if self.uint_32field is not None:
638
+ result['uint32Field'] = self.uint_32field
639
+ if self.uint_64field is not None:
640
+ result['uint64Field'] = self.uint_64field
641
+ if self.link is not None:
642
+ result['link'] = self.link
643
+ return result
644
+
645
+ def from_map(self, m: dict = None):
646
+ m = m or dict()
647
+ if m.get('model') is not None:
648
+ temp_model = MyModelModel
649
+ self.model = temp_model.from_map(m.get('model'))
650
+
651
+ if m.get('stringfield') is not None:
652
+ self.stringfield = m.get('stringfield')
653
+ if m.get('bytesfield') is not None:
654
+ self.bytesfield = m.get('bytesfield')
655
+ if m.get('stringarrayfield') is not None:
656
+ self.stringarrayfield = m.get('stringarrayfield')
657
+ if m.get('mapfield') is not None:
658
+ self.mapfield = m.get('mapfield')
659
+ if m.get('realName') is not None:
660
+ self.name = m.get('realName')
661
+ if m.get('submodel') is not None:
662
+ temp_model = MyModelSubmodel
663
+ self.submodel = temp_model.from_map(m.get('submodel'))
664
+
665
+ if m.get('submodelMap') is not None:
666
+ self.submodel_map = {}
667
+ for k1, v1 in m.get('submodelMap').items():
668
+ self.submodel_map[k1] = MyModelSubmodel.from_map(v1)
669
+
670
+ if m.get('mapModel') is not None:
671
+ self.map_model = {}
672
+ for k1, v1 in m.get('mapModel').items():
673
+ self.map_model[k1] = M.from_map(v1)
674
+
675
+ if m.get('subarraymodel') is not None:
676
+ l1 = 0
677
+ self.subarraymodel = []
678
+ for k1 in m.get('subarraymodel'):
679
+ l1 += 1
680
+ temp_model = MyModelSubarraymodel
681
+ self.subarraymodel[l1] = temp_model.from_map(k1)
682
+
683
+ if m.get('subarray') is not None:
684
+ l1 = 0
685
+ self.subarray = []
686
+ for k1 in m.get('subarray'):
687
+ l1 += 1
688
+ self.subarray[l1] = M.from_map(k1)
689
+
690
+ if m.get('ssubarray') is not None:
691
+ l1 = 0
692
+ self.ssubarray = []
693
+ for k1 in m.get('ssubarray'):
694
+ l1 += 1
695
+ l2 = 0
696
+ self.ssubarray[l1] = []
697
+ for k2 in k1:
698
+ l2 += 1
699
+ self.ssubarray[l1][l2] = M.from_map(k2)
700
+
701
+ if m.get('ssubmarray') is not None:
702
+ self.ssubmarray = m.get('ssubmarray')
703
+ if m.get('ssubmmarray') is not None:
704
+ l1 = 0
705
+ self.ssubmmarray = []
706
+ for k1 in m.get('ssubmmarray'):
707
+ l1 += 1
708
+ l2 = 0
709
+ self.ssubmmarray[l1] = []
710
+ for k2 in k1:
711
+ l2 += 1
712
+ self.ssubmmarray[l1][l2] = SourceClient.from_map(k2)
713
+
714
+ if m.get('maparray') is not None:
715
+ self.maparray = m.get('maparray')
716
+ if m.get('mapsubmarray') is not None:
717
+ self.mapsubmarray = m.get('mapsubmarray')
718
+ if m.get('moduleModelMap') is not None:
719
+ self.module_model_map = {}
720
+ for k1, v1 in m.get('moduleModelMap').items():
721
+ self.module_model_map[k1] = SourceClient.from_map(v1)
722
+
723
+ if m.get('subModelMap') is not None:
724
+ self.sub_model_map = {}
725
+ for k1, v1 in m.get('subModelMap').items():
726
+ self.sub_model_map[k1] = MSubM.from_map(v1)
727
+
728
+ if m.get('modelMap') is not None:
729
+ self.model_map = {}
730
+ for k1, v1 in m.get('modelMap').items():
731
+ self.model_map[k1] = M.from_map(v1)
732
+
733
+ if m.get('moduleMap') is not None:
734
+ self.module_map = m.get('moduleMap')
735
+ if m.get('object') is not None:
736
+ self.object = m.get('object')
737
+ if m.get('readable') is not None:
738
+ self.readable = m.get('readable')
739
+ if m.get('writable') is not None:
740
+ self.writable = m.get('writable')
741
+ if m.get('existModel') is not None:
742
+ self.exist_model = M.from_map(m.get('existModel'))
743
+
744
+ if m.get('request') is not None:
745
+ self.request = DaraRequest.from_map(m.get('request'))
746
+
747
+ if m.get('complexList') is not None:
748
+ self.complex_list = m.get('complexList')
749
+ if m.get('numberfield') is not None:
750
+ self.numberfield = m.get('numberfield')
751
+ if m.get('integerField') is not None:
752
+ self.integer_field = m.get('integerField')
753
+ if m.get('floatField') is not None:
754
+ self.float_field = m.get('floatField')
755
+ if m.get('doubleField') is not None:
756
+ self.double_field = m.get('doubleField')
757
+ if m.get('longField') is not None:
758
+ self.long_field = m.get('longField')
759
+ if m.get('ulongField') is not None:
760
+ self.ulong_field = m.get('ulongField')
761
+ if m.get('int8Field') is not None:
762
+ self.int_8field = m.get('int8Field')
763
+ if m.get('int16Field') is not None:
764
+ self.int_16field = m.get('int16Field')
765
+ if m.get('int32Field') is not None:
766
+ self.int_32field = m.get('int32Field')
767
+ if m.get('int64Field') is not None:
768
+ self.int_64field = m.get('int64Field')
769
+ if m.get('uint8Field') is not None:
770
+ self.uint_8field = m.get('uint8Field')
771
+ if m.get('uint16Field') is not None:
772
+ self.uint_16field = m.get('uint16Field')
773
+ if m.get('uint32Field') is not None:
774
+ self.uint_32field = m.get('uint32Field')
775
+ if m.get('uint64Field') is not None:
776
+ self.uint_64field = m.get('uint64Field')
777
+ if m.get('link') is not None:
778
+ self.link = m.get('link')
779
+ return self
780
+