@darabonba/python-generator 1.2.9 → 1.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChangeLog.md +12 -0
- package/package.json +1 -1
- package/src/generator.js +1 -1
- package/src/langs/python/combinator.js +1 -1
- package/src/resolver/base.js +4 -4
- package/tests/expected/python2/complex/tea_python_tests/client.py +12 -0
- package/tests/expected/python2/complex/tea_python_tests/models.py +66 -1
- package/tests/expected/python2/model/tea_python_tests/models.py +78 -0
- package/tests/expected/python3/complex/tea_python_tests/client.py +12 -0
- package/tests/expected/python3/complex/tea_python_tests/models.py +70 -0
- package/tests/expected/python3/model/tea_python_tests/models.py +87 -0
- package/tests/fixtures/complex/main.dara +13 -0
- package/tests/fixtures/model/main.dara +8 -0
- package/tests/fixtures/typedef/libraries/alibabacloud-OSS-0.0.1/Darafile +10 -0
package/ChangeLog.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# ChangeLog
|
|
2
2
|
|
|
3
|
+
## 1.2.12 - 2022-07-20
|
|
4
|
+
|
|
5
|
+
* Support infinite loop reference in model.
|
|
6
|
+
|
|
7
|
+
## 1.2.11 - 2022-07-11
|
|
8
|
+
|
|
9
|
+
* Support complex list(`array-in-array`).
|
|
10
|
+
|
|
11
|
+
## 1.2.10 - 2022-05-31
|
|
12
|
+
|
|
13
|
+
* Fix import package for typedef.
|
|
14
|
+
|
|
3
15
|
## 1.2.9 - 2022-05-31
|
|
4
16
|
|
|
5
17
|
* Support Typedef.
|
package/package.json
CHANGED
package/src/generator.js
CHANGED
|
@@ -175,7 +175,7 @@ class Generator {
|
|
|
175
175
|
}
|
|
176
176
|
importsTypedef[aliasId][types].import = moduleTypedef[types].import;
|
|
177
177
|
importsTypedef[aliasId][types].type = moduleTypedef[types].type;
|
|
178
|
-
if (!requirePackage.includes(moduleTypedef[types].package)) {
|
|
178
|
+
if (moduleTypedef[types].package && !requirePackage.includes(moduleTypedef[types].package)) {
|
|
179
179
|
requirePackage.push(moduleTypedef[types].package);
|
|
180
180
|
}
|
|
181
181
|
});
|
|
@@ -393,6 +393,7 @@ class Combinator extends CombinatorBase {
|
|
|
393
393
|
if (_contain(this.definedModels, model.name)) {
|
|
394
394
|
return;
|
|
395
395
|
}
|
|
396
|
+
this.definedModels.push(model_name);
|
|
396
397
|
if (model.subObject.length) {
|
|
397
398
|
model.subObject.forEach(obj => {
|
|
398
399
|
this.emitModel(emitter, obj);
|
|
@@ -401,7 +402,6 @@ class Combinator extends CombinatorBase {
|
|
|
401
402
|
model.body.filter(node => node instanceof PropItem && !this.hasModel(node.type, model.name)).forEach(item => {
|
|
402
403
|
this.findUndefinedModel(emitter, item.type);
|
|
403
404
|
});
|
|
404
|
-
this.definedModels.push(model_name);
|
|
405
405
|
this.emitClass(emitter, model);
|
|
406
406
|
emitter.emitln().emitln();
|
|
407
407
|
}
|
package/src/resolver/base.js
CHANGED
|
@@ -153,7 +153,7 @@ class BaseResolver {
|
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
resolveType(typeNode, sourceNode, prop) {
|
|
156
|
-
let typeInfo = {objectType: 'module'};
|
|
156
|
+
let typeInfo = { objectType: 'module' };
|
|
157
157
|
if (typeNode.idType) {
|
|
158
158
|
if (typeNode.idType === 'model') {
|
|
159
159
|
typeInfo['objectType'] = 'model';
|
|
@@ -172,7 +172,7 @@ class BaseResolver {
|
|
|
172
172
|
debug.stack(typeNode, sourceNode);
|
|
173
173
|
} else if (typeNode.type) {
|
|
174
174
|
if (typeNode.type === 'fieldType') {
|
|
175
|
-
return this.resolveType(typeNode.fieldType, typeNode);
|
|
175
|
+
return this.resolveType(typeNode.fieldType, typeNode, prop);
|
|
176
176
|
} else if (typeNode.type === 'modelBody') {
|
|
177
177
|
// is sub model
|
|
178
178
|
typeInfo['objectType'] = 'model';
|
|
@@ -239,14 +239,14 @@ class BaseResolver {
|
|
|
239
239
|
let itemType;
|
|
240
240
|
if (sourceNode.fieldItemType.type === 'modelBody') {
|
|
241
241
|
typeInfo['objectType'] = 'model';
|
|
242
|
-
typeInfo['lexeme'] = this.combinator.addModelInclude(sourceNode.itemType);
|
|
242
|
+
typeInfo['lexeme'] = this.combinator.addModelInclude(sourceNode.itemType ? sourceNode.itemType : prop);
|
|
243
243
|
itemType = typeInfo;
|
|
244
244
|
} else if (sourceNode.fieldItemType.idType === 'model') {
|
|
245
245
|
typeInfo['objectType'] = 'model';
|
|
246
246
|
typeInfo['lexeme'] = this.combinator.addModelInclude(sourceNode.fieldItemType.lexeme);
|
|
247
247
|
itemType = typeInfo;
|
|
248
248
|
} else {
|
|
249
|
-
itemType = this.resolveType(sourceNode.fieldItemType, sourceNode);
|
|
249
|
+
itemType = this.resolveType(sourceNode.fieldItemType, sourceNode, sourceNode.itemType ? sourceNode.itemType : prop);
|
|
250
250
|
}
|
|
251
251
|
const arrayType = {
|
|
252
252
|
lexeme: 'array',
|
|
@@ -163,6 +163,18 @@ class Client(SourceClient):
|
|
|
163
163
|
'1'
|
|
164
164
|
]
|
|
165
165
|
|
|
166
|
+
@staticmethod
|
|
167
|
+
def array_2():
|
|
168
|
+
temp = source_models.Config()
|
|
169
|
+
any_arr = [
|
|
170
|
+
temp
|
|
171
|
+
]
|
|
172
|
+
return [
|
|
173
|
+
[
|
|
174
|
+
any_arr
|
|
175
|
+
]
|
|
176
|
+
]
|
|
177
|
+
|
|
166
178
|
def template_string(self):
|
|
167
179
|
return '/%s' % TeaConverter.to_unicode(self._protocol)
|
|
168
180
|
|
|
@@ -89,8 +89,38 @@ class ComplexRequestPart(TeaModel):
|
|
|
89
89
|
return self
|
|
90
90
|
|
|
91
91
|
|
|
92
|
+
class ComplexRequestComplexList(TeaModel):
|
|
93
|
+
def __init__(self, name=None, code=None):
|
|
94
|
+
self.name = name # type: str
|
|
95
|
+
self.code = code # type: int
|
|
96
|
+
|
|
97
|
+
def validate(self):
|
|
98
|
+
pass
|
|
99
|
+
|
|
100
|
+
def to_map(self):
|
|
101
|
+
_map = super(ComplexRequestComplexList, self).to_map()
|
|
102
|
+
if _map is not None:
|
|
103
|
+
return _map
|
|
104
|
+
|
|
105
|
+
result = dict()
|
|
106
|
+
if self.name is not None:
|
|
107
|
+
result['Name'] = self.name
|
|
108
|
+
if self.code is not None:
|
|
109
|
+
result['Code'] = self.code
|
|
110
|
+
return result
|
|
111
|
+
|
|
112
|
+
def from_map(self, m=None):
|
|
113
|
+
m = m or dict()
|
|
114
|
+
if m.get('Name') is not None:
|
|
115
|
+
self.name = m.get('Name')
|
|
116
|
+
if m.get('Code') is not None:
|
|
117
|
+
self.code = m.get('Code')
|
|
118
|
+
return self
|
|
119
|
+
|
|
120
|
+
|
|
92
121
|
class ComplexRequest(TeaModel):
|
|
93
|
-
def __init__(self, access_key=None, body=None, strs=None, header=None, num=None, configs=None, part=None
|
|
122
|
+
def __init__(self, access_key=None, body=None, strs=None, header=None, num=None, configs=None, part=None,
|
|
123
|
+
complex_list=None, complex_list_1=None):
|
|
94
124
|
self.access_key = access_key # type: str
|
|
95
125
|
# Body
|
|
96
126
|
self.body = body # type: READABLE
|
|
@@ -102,6 +132,8 @@ class ComplexRequest(TeaModel):
|
|
|
102
132
|
self.configs = configs # type: ComplexRequestConfigs
|
|
103
133
|
# Part
|
|
104
134
|
self.part = part # type: list[ComplexRequestPart]
|
|
135
|
+
self.complex_list = complex_list # type: list[list[list[ComplexRequestComplexList]]]
|
|
136
|
+
self.complex_list_1 = complex_list_1 # type: list[list[dict[str, str]]]
|
|
105
137
|
|
|
106
138
|
def validate(self):
|
|
107
139
|
self.validate_required(self.access_key, 'access_key')
|
|
@@ -118,6 +150,14 @@ class ComplexRequest(TeaModel):
|
|
|
118
150
|
for k in self.part:
|
|
119
151
|
if k:
|
|
120
152
|
k.validate()
|
|
153
|
+
self.validate_required(self.complex_list, 'complex_list')
|
|
154
|
+
if self.complex_list:
|
|
155
|
+
for k in self.complex_list:
|
|
156
|
+
for k1 in k:
|
|
157
|
+
for k2 in k1:
|
|
158
|
+
if k2:
|
|
159
|
+
k2.validate()
|
|
160
|
+
self.validate_required(self.complex_list_1, 'complex_list_1')
|
|
121
161
|
|
|
122
162
|
def to_map(self):
|
|
123
163
|
_map = super(ComplexRequest, self).to_map()
|
|
@@ -141,6 +181,18 @@ class ComplexRequest(TeaModel):
|
|
|
141
181
|
if self.part is not None:
|
|
142
182
|
for k in self.part:
|
|
143
183
|
result['Part'].append(k.to_map() if k else None)
|
|
184
|
+
result['complexList'] = []
|
|
185
|
+
if self.complex_list is not None:
|
|
186
|
+
for k in self.complex_list:
|
|
187
|
+
l1 = []
|
|
188
|
+
for k1 in k:
|
|
189
|
+
l2 = []
|
|
190
|
+
for k2 in k1:
|
|
191
|
+
l2.append(k2.to_map() if k2 else None)
|
|
192
|
+
l1.append(l2)
|
|
193
|
+
result['complexList'].append(l1)
|
|
194
|
+
if self.complex_list_1 is not None:
|
|
195
|
+
result['complexList1'] = self.complex_list_1
|
|
144
196
|
return result
|
|
145
197
|
|
|
146
198
|
def from_map(self, m=None):
|
|
@@ -164,6 +216,19 @@ class ComplexRequest(TeaModel):
|
|
|
164
216
|
for k in m.get('Part'):
|
|
165
217
|
temp_model = ComplexRequestPart()
|
|
166
218
|
self.part.append(temp_model.from_map(k))
|
|
219
|
+
self.complex_list = []
|
|
220
|
+
if m.get('complexList') is not None:
|
|
221
|
+
for k in m.get('complexList'):
|
|
222
|
+
l1 = []
|
|
223
|
+
for k1 in k:
|
|
224
|
+
l2 = []
|
|
225
|
+
for k2 in k1:
|
|
226
|
+
temp_model = ComplexRequestComplexList()
|
|
227
|
+
l2.append(temp_model.from_map(k2))
|
|
228
|
+
l1.append(l2)
|
|
229
|
+
self.complex_list.append(l1)
|
|
230
|
+
if m.get('complexList1') is not None:
|
|
231
|
+
self.complex_list_1 = m.get('complexList1')
|
|
167
232
|
return self
|
|
168
233
|
|
|
169
234
|
|
|
@@ -468,3 +468,81 @@ class M(TeaModel):
|
|
|
468
468
|
return self
|
|
469
469
|
|
|
470
470
|
|
|
471
|
+
class NodeChildSubChild(TeaModel):
|
|
472
|
+
def __init__(self, child_node=None):
|
|
473
|
+
self.child_node = child_node # type: Node
|
|
474
|
+
|
|
475
|
+
def validate(self):
|
|
476
|
+
if self.child_node:
|
|
477
|
+
self.child_node.validate()
|
|
478
|
+
|
|
479
|
+
def to_map(self):
|
|
480
|
+
_map = super(NodeChildSubChild, self).to_map()
|
|
481
|
+
if _map is not None:
|
|
482
|
+
return _map
|
|
483
|
+
|
|
484
|
+
result = dict()
|
|
485
|
+
if self.child_node is not None:
|
|
486
|
+
result['childNode'] = self.child_node.to_map()
|
|
487
|
+
return result
|
|
488
|
+
|
|
489
|
+
def from_map(self, m=None):
|
|
490
|
+
m = m or dict()
|
|
491
|
+
if m.get('childNode') is not None:
|
|
492
|
+
temp_model = Node()
|
|
493
|
+
self.child_node = temp_model.from_map(m['childNode'])
|
|
494
|
+
return self
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
class NodeChild(TeaModel):
|
|
498
|
+
def __init__(self, sub_child=None):
|
|
499
|
+
self.sub_child = sub_child # type: NodeChildSubChild
|
|
500
|
+
|
|
501
|
+
def validate(self):
|
|
502
|
+
if self.sub_child:
|
|
503
|
+
self.sub_child.validate()
|
|
504
|
+
|
|
505
|
+
def to_map(self):
|
|
506
|
+
_map = super(NodeChild, self).to_map()
|
|
507
|
+
if _map is not None:
|
|
508
|
+
return _map
|
|
509
|
+
|
|
510
|
+
result = dict()
|
|
511
|
+
if self.sub_child is not None:
|
|
512
|
+
result['subChild'] = self.sub_child.to_map()
|
|
513
|
+
return result
|
|
514
|
+
|
|
515
|
+
def from_map(self, m=None):
|
|
516
|
+
m = m or dict()
|
|
517
|
+
if m.get('subChild') is not None:
|
|
518
|
+
temp_model = NodeChildSubChild()
|
|
519
|
+
self.sub_child = temp_model.from_map(m['subChild'])
|
|
520
|
+
return self
|
|
521
|
+
|
|
522
|
+
|
|
523
|
+
class Node(TeaModel):
|
|
524
|
+
def __init__(self, child=None):
|
|
525
|
+
self.child = child # type: NodeChild
|
|
526
|
+
|
|
527
|
+
def validate(self):
|
|
528
|
+
if self.child:
|
|
529
|
+
self.child.validate()
|
|
530
|
+
|
|
531
|
+
def to_map(self):
|
|
532
|
+
_map = super(Node, self).to_map()
|
|
533
|
+
if _map is not None:
|
|
534
|
+
return _map
|
|
535
|
+
|
|
536
|
+
result = dict()
|
|
537
|
+
if self.child is not None:
|
|
538
|
+
result['child'] = self.child.to_map()
|
|
539
|
+
return result
|
|
540
|
+
|
|
541
|
+
def from_map(self, m=None):
|
|
542
|
+
m = m or dict()
|
|
543
|
+
if m.get('child') is not None:
|
|
544
|
+
temp_model = NodeChild()
|
|
545
|
+
self.child = temp_model.from_map(m['child'])
|
|
546
|
+
return self
|
|
547
|
+
|
|
548
|
+
|
|
@@ -337,6 +337,18 @@ class Client(SourceClient):
|
|
|
337
337
|
'1'
|
|
338
338
|
]
|
|
339
339
|
|
|
340
|
+
@staticmethod
|
|
341
|
+
def array_2() -> List[List[Any]]:
|
|
342
|
+
temp = source_models.Config()
|
|
343
|
+
any_arr = [
|
|
344
|
+
temp
|
|
345
|
+
]
|
|
346
|
+
return [
|
|
347
|
+
[
|
|
348
|
+
any_arr
|
|
349
|
+
]
|
|
350
|
+
]
|
|
351
|
+
|
|
340
352
|
def template_string(self) -> str:
|
|
341
353
|
return f'/{self._protocol}'
|
|
342
354
|
|
|
@@ -101,6 +101,39 @@ class ComplexRequestPart(TeaModel):
|
|
|
101
101
|
return self
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
class ComplexRequestComplexList(TeaModel):
|
|
105
|
+
def __init__(
|
|
106
|
+
self,
|
|
107
|
+
name: str = None,
|
|
108
|
+
code: int = None,
|
|
109
|
+
):
|
|
110
|
+
self.name = name
|
|
111
|
+
self.code = code
|
|
112
|
+
|
|
113
|
+
def validate(self):
|
|
114
|
+
pass
|
|
115
|
+
|
|
116
|
+
def to_map(self):
|
|
117
|
+
_map = super().to_map()
|
|
118
|
+
if _map is not None:
|
|
119
|
+
return _map
|
|
120
|
+
|
|
121
|
+
result = dict()
|
|
122
|
+
if self.name is not None:
|
|
123
|
+
result['Name'] = self.name
|
|
124
|
+
if self.code is not None:
|
|
125
|
+
result['Code'] = self.code
|
|
126
|
+
return result
|
|
127
|
+
|
|
128
|
+
def from_map(self, m: dict = None):
|
|
129
|
+
m = m or dict()
|
|
130
|
+
if m.get('Name') is not None:
|
|
131
|
+
self.name = m.get('Name')
|
|
132
|
+
if m.get('Code') is not None:
|
|
133
|
+
self.code = m.get('Code')
|
|
134
|
+
return self
|
|
135
|
+
|
|
136
|
+
|
|
104
137
|
class ComplexRequest(TeaModel):
|
|
105
138
|
def __init__(
|
|
106
139
|
self,
|
|
@@ -111,6 +144,8 @@ class ComplexRequest(TeaModel):
|
|
|
111
144
|
num: int = None,
|
|
112
145
|
configs: ComplexRequestConfigs = None,
|
|
113
146
|
part: List[ComplexRequestPart] = None,
|
|
147
|
+
complex_list: List[List[List[ComplexRequestComplexList]]] = None,
|
|
148
|
+
complex_list_1: List[List[Dict[str, str]]] = None,
|
|
114
149
|
):
|
|
115
150
|
self.access_key = access_key
|
|
116
151
|
# Body
|
|
@@ -123,6 +158,8 @@ class ComplexRequest(TeaModel):
|
|
|
123
158
|
self.configs = configs
|
|
124
159
|
# Part
|
|
125
160
|
self.part = part
|
|
161
|
+
self.complex_list = complex_list
|
|
162
|
+
self.complex_list_1 = complex_list_1
|
|
126
163
|
|
|
127
164
|
def validate(self):
|
|
128
165
|
self.validate_required(self.access_key, 'access_key')
|
|
@@ -139,6 +176,14 @@ class ComplexRequest(TeaModel):
|
|
|
139
176
|
for k in self.part:
|
|
140
177
|
if k:
|
|
141
178
|
k.validate()
|
|
179
|
+
self.validate_required(self.complex_list, 'complex_list')
|
|
180
|
+
if self.complex_list:
|
|
181
|
+
for k in self.complex_list:
|
|
182
|
+
for k1 in k:
|
|
183
|
+
for k2 in k1:
|
|
184
|
+
if k2:
|
|
185
|
+
k2.validate()
|
|
186
|
+
self.validate_required(self.complex_list_1, 'complex_list_1')
|
|
142
187
|
|
|
143
188
|
def to_map(self):
|
|
144
189
|
_map = super().to_map()
|
|
@@ -162,6 +207,18 @@ class ComplexRequest(TeaModel):
|
|
|
162
207
|
if self.part is not None:
|
|
163
208
|
for k in self.part:
|
|
164
209
|
result['Part'].append(k.to_map() if k else None)
|
|
210
|
+
result['complexList'] = []
|
|
211
|
+
if self.complex_list is not None:
|
|
212
|
+
for k in self.complex_list:
|
|
213
|
+
l1 = []
|
|
214
|
+
for k1 in k:
|
|
215
|
+
l2 = []
|
|
216
|
+
for k2 in k1:
|
|
217
|
+
l2.append(k2.to_map() if k2 else None)
|
|
218
|
+
l1.append(l2)
|
|
219
|
+
result['complexList'].append(l1)
|
|
220
|
+
if self.complex_list_1 is not None:
|
|
221
|
+
result['complexList1'] = self.complex_list_1
|
|
165
222
|
return result
|
|
166
223
|
|
|
167
224
|
def from_map(self, m: dict = None):
|
|
@@ -185,6 +242,19 @@ class ComplexRequest(TeaModel):
|
|
|
185
242
|
for k in m.get('Part'):
|
|
186
243
|
temp_model = ComplexRequestPart()
|
|
187
244
|
self.part.append(temp_model.from_map(k))
|
|
245
|
+
self.complex_list = []
|
|
246
|
+
if m.get('complexList') is not None:
|
|
247
|
+
for k in m.get('complexList'):
|
|
248
|
+
l1 = []
|
|
249
|
+
for k1 in k:
|
|
250
|
+
l2 = []
|
|
251
|
+
for k2 in k1:
|
|
252
|
+
temp_model = ComplexRequestComplexList()
|
|
253
|
+
l2.append(temp_model.from_map(k2))
|
|
254
|
+
l1.append(l2)
|
|
255
|
+
self.complex_list.append(l1)
|
|
256
|
+
if m.get('complexList1') is not None:
|
|
257
|
+
self.complex_list_1 = m.get('complexList1')
|
|
188
258
|
return self
|
|
189
259
|
|
|
190
260
|
|
|
@@ -513,3 +513,90 @@ class UseBeforeDefineModel(TeaModel):
|
|
|
513
513
|
return self
|
|
514
514
|
|
|
515
515
|
|
|
516
|
+
class NodeChildSubChild(TeaModel):
|
|
517
|
+
def __init__(
|
|
518
|
+
self,
|
|
519
|
+
child_node: Node = None,
|
|
520
|
+
):
|
|
521
|
+
self.child_node = child_node
|
|
522
|
+
|
|
523
|
+
def validate(self):
|
|
524
|
+
if self.child_node:
|
|
525
|
+
self.child_node.validate()
|
|
526
|
+
|
|
527
|
+
def to_map(self):
|
|
528
|
+
_map = super().to_map()
|
|
529
|
+
if _map is not None:
|
|
530
|
+
return _map
|
|
531
|
+
|
|
532
|
+
result = dict()
|
|
533
|
+
if self.child_node is not None:
|
|
534
|
+
result['childNode'] = self.child_node.to_map()
|
|
535
|
+
return result
|
|
536
|
+
|
|
537
|
+
def from_map(self, m: dict = None):
|
|
538
|
+
m = m or dict()
|
|
539
|
+
if m.get('childNode') is not None:
|
|
540
|
+
temp_model = Node()
|
|
541
|
+
self.child_node = temp_model.from_map(m['childNode'])
|
|
542
|
+
return self
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
class NodeChild(TeaModel):
|
|
546
|
+
def __init__(
|
|
547
|
+
self,
|
|
548
|
+
sub_child: NodeChildSubChild = None,
|
|
549
|
+
):
|
|
550
|
+
self.sub_child = sub_child
|
|
551
|
+
|
|
552
|
+
def validate(self):
|
|
553
|
+
if self.sub_child:
|
|
554
|
+
self.sub_child.validate()
|
|
555
|
+
|
|
556
|
+
def to_map(self):
|
|
557
|
+
_map = super().to_map()
|
|
558
|
+
if _map is not None:
|
|
559
|
+
return _map
|
|
560
|
+
|
|
561
|
+
result = dict()
|
|
562
|
+
if self.sub_child is not None:
|
|
563
|
+
result['subChild'] = self.sub_child.to_map()
|
|
564
|
+
return result
|
|
565
|
+
|
|
566
|
+
def from_map(self, m: dict = None):
|
|
567
|
+
m = m or dict()
|
|
568
|
+
if m.get('subChild') is not None:
|
|
569
|
+
temp_model = NodeChildSubChild()
|
|
570
|
+
self.sub_child = temp_model.from_map(m['subChild'])
|
|
571
|
+
return self
|
|
572
|
+
|
|
573
|
+
|
|
574
|
+
class Node(TeaModel):
|
|
575
|
+
def __init__(
|
|
576
|
+
self,
|
|
577
|
+
child: NodeChild = None,
|
|
578
|
+
):
|
|
579
|
+
self.child = child
|
|
580
|
+
|
|
581
|
+
def validate(self):
|
|
582
|
+
if self.child:
|
|
583
|
+
self.child.validate()
|
|
584
|
+
|
|
585
|
+
def to_map(self):
|
|
586
|
+
_map = super().to_map()
|
|
587
|
+
if _map is not None:
|
|
588
|
+
return _map
|
|
589
|
+
|
|
590
|
+
result = dict()
|
|
591
|
+
if self.child is not None:
|
|
592
|
+
result['child'] = self.child.to_map()
|
|
593
|
+
return result
|
|
594
|
+
|
|
595
|
+
def from_map(self, m: dict = None):
|
|
596
|
+
m = m or dict()
|
|
597
|
+
if m.get('child') is not None:
|
|
598
|
+
temp_model = NodeChild()
|
|
599
|
+
self.child = temp_model.from_map(m['child'])
|
|
600
|
+
return self
|
|
601
|
+
|
|
602
|
+
|
|
@@ -29,6 +29,13 @@ model ComplexRequest = {
|
|
|
29
29
|
partNumber?: string(description='PartNumber', name='PartNumber')
|
|
30
30
|
}
|
|
31
31
|
](description='Part', name='Part'),
|
|
32
|
+
complexList: [[[
|
|
33
|
+
{
|
|
34
|
+
name?: string(name='Name'),
|
|
35
|
+
code?: int32(name='Code'),
|
|
36
|
+
}
|
|
37
|
+
]]](name='complexList'),
|
|
38
|
+
complexList1: [[map[string]string]],
|
|
32
39
|
}
|
|
33
40
|
|
|
34
41
|
async function hello(request: object, strs: [ string ]): [ string ] {
|
|
@@ -138,6 +145,12 @@ static function array1(): [ string ] {
|
|
|
138
145
|
return ["1"];
|
|
139
146
|
}
|
|
140
147
|
|
|
148
|
+
static function array2(): [[ any ]] {
|
|
149
|
+
var temp = new Source.Config{};
|
|
150
|
+
var anyArr : [Source.Config] = [temp];
|
|
151
|
+
return [[anyArr]];
|
|
152
|
+
}
|
|
153
|
+
|
|
141
154
|
async function TemplateString(): string {
|
|
142
155
|
return `/${@protocol}`;
|
|
143
156
|
}
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
"import": "requests",
|
|
14
14
|
"type": "Request",
|
|
15
15
|
"package": "requests:2.21.0"
|
|
16
|
+
},
|
|
17
|
+
"HttpHeader": {
|
|
18
|
+
"import": null,
|
|
19
|
+
"type": "Dict[str, Any]",
|
|
20
|
+
"package": null
|
|
16
21
|
}
|
|
17
22
|
}
|
|
18
23
|
},
|
|
@@ -24,6 +29,11 @@
|
|
|
24
29
|
"import": "requests",
|
|
25
30
|
"type": "Request",
|
|
26
31
|
"package": "requests:2.21.0"
|
|
32
|
+
},
|
|
33
|
+
"HttpHeader": {
|
|
34
|
+
"import": null,
|
|
35
|
+
"type": "Dict[str, Any]",
|
|
36
|
+
"package": null
|
|
27
37
|
}
|
|
28
38
|
}
|
|
29
39
|
}
|