@darabonba/python-generator 2.0.0 → 2.0.2
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/lib/generator.js +43 -29
- package/package.json +1 -1
- package/tests/expected/complex/tea_python_tests/client.py +5 -4
- package/tests/expected/complex/tea_python_tests/models.py +16 -16
- package/tests/expected/model/tea_python_tests/models.py +41 -58
- package/tests/expected/multi/tea_python_tests/model/user.py +3 -0
- package/tests/fixtures/complex/main.dara +1 -0
- package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/Teafile +7 -1
- package/tests/fixtures/multi/libraries/darabonba_Util_0.2.11/util.tea +2 -0
- package/tests/fixtures/multi/model/user.dara +2 -0
- package/tests/output/complex/tea_python_tests/client.py +5 -4
- package/tests/output/complex/tea_python_tests/models.py +16 -16
- package/tests/output/model/tea_python_tests/models.py +41 -58
- package/tests/output/multi/tea_python_tests/model/user.py +3 -0
- package/src/generator.js +0 -231
- package/src/langs/common/combinator.js +0 -193
- package/src/langs/common/config.js +0 -60
- package/src/langs/common/enum.js +0 -179
- package/src/langs/common/items.js +0 -551
- package/src/langs/common/package_info.js +0 -53
- package/src/langs/python/combinator.js +0 -1898
- package/src/langs/python/config.js +0 -169
- package/src/langs/python/files/.gitignore.tmpl +0 -5
- package/src/langs/python/files/__init__.py.tmpl +0 -1
- package/src/langs/python/files/setup.py.tmpl +0 -74
- package/src/langs/python/package_info.js +0 -78
- package/src/langs/python2/combinator.js +0 -1770
- package/src/langs/python2/config.js +0 -162
- package/src/langs/python2/files/.gitignore.tmpl +0 -5
- package/src/langs/python2/files/__init__.py.tmpl +0 -1
- package/src/langs/python2/files/setup.py.tmpl +0 -82
- package/src/langs/python2/package_info.js +0 -78
- package/src/lib/debug.js +0 -55
- package/src/lib/emitter.js +0 -95
- package/src/lib/helper.js +0 -207
- package/src/resolver/base.js +0 -282
- package/src/resolver/client.js +0 -1013
- package/src/resolver/model.js +0 -159
package/lib/generator.js
CHANGED
|
@@ -59,7 +59,6 @@ class Visitor {
|
|
|
59
59
|
// 新增:用于存储已使用的类型
|
|
60
60
|
this.isAsyncFunction = false; // 新增:用于标记是否为异步函数
|
|
61
61
|
this.isStaticFunction = true; // 新增:用于标记是否为非静态函数
|
|
62
|
-
this.clientName = new Map(); // 新增:用于存储importName
|
|
63
62
|
// this.moduleDir = this.config.modelDirName || 'Models'; // 新增,用于存储models文件
|
|
64
63
|
|
|
65
64
|
this.output = '';
|
|
@@ -274,6 +273,8 @@ setup(
|
|
|
274
273
|
this.notes = ast.notes;
|
|
275
274
|
this.builtin = getBuiltin(this);
|
|
276
275
|
ast.innerModule = new Map();
|
|
276
|
+
|
|
277
|
+
this.clientName = new Map();
|
|
277
278
|
this.packageInfo = {};
|
|
278
279
|
this.usedTypes = [];
|
|
279
280
|
this.imports = [];
|
|
@@ -566,7 +567,9 @@ setup(
|
|
|
566
567
|
this.emit('def __init__(self):\n', level + 2);
|
|
567
568
|
}
|
|
568
569
|
if (ast.initBody && ast.initBody.stmts.length !==0 ) {
|
|
570
|
+
this.isStaticFunction = false;
|
|
569
571
|
this.visitStmts(ast.initBody, level + 4);
|
|
572
|
+
this.isStaticFunction = true;
|
|
570
573
|
} else {
|
|
571
574
|
this.emit('pass\n', level + 4);
|
|
572
575
|
}
|
|
@@ -628,14 +631,15 @@ setup(
|
|
|
628
631
|
throw new Error(`The '${aliasId}' has no Python supported.`);
|
|
629
632
|
}
|
|
630
633
|
let className = _camelCase(pyPkg.clientName || 'client');
|
|
634
|
+
let filename = _snakeCase(className);
|
|
631
635
|
let classNamespace = pyPkg.package;
|
|
632
636
|
let models = 'models';
|
|
633
637
|
let exceptions = 'exceptions';
|
|
634
638
|
if(inner && pkg.exports[inner]) {
|
|
635
639
|
let pyPath = pkg.exports[inner];
|
|
636
|
-
|
|
637
|
-
models = filename
|
|
638
|
-
exceptions = filename
|
|
640
|
+
filename = pyPath.split(path.sep).slice(-1)[0].replace(/(\.tea)$|(\.spec)$|(\.dara)$/gi, '');
|
|
641
|
+
models = filename + '_models';
|
|
642
|
+
exceptions = filename + '_exceptions';
|
|
639
643
|
const arr = pyPath.split(path.sep).slice(1, -1);
|
|
640
644
|
arr.map(key => {
|
|
641
645
|
classNamespace += '.' + _snakeCase(key);
|
|
@@ -646,7 +650,7 @@ setup(
|
|
|
646
650
|
const aliasName = this.getAliasName(className, aliasId);
|
|
647
651
|
this.packageInfo[aliasId] = {
|
|
648
652
|
aliasName: aliasName || className,
|
|
649
|
-
fileName:
|
|
653
|
+
fileName: filename,
|
|
650
654
|
clientName: className,
|
|
651
655
|
namemespace: classNamespace,
|
|
652
656
|
models: models,
|
|
@@ -1124,29 +1128,27 @@ setup(
|
|
|
1124
1128
|
}
|
|
1125
1129
|
}
|
|
1126
1130
|
|
|
1127
|
-
visitToMapField(fieldValue, key, value, level) {
|
|
1131
|
+
visitToMapField(fieldValue, fieldName, key, value, level, arr = false) {
|
|
1128
1132
|
const deep = Math.floor(level / 4);
|
|
1129
1133
|
if (fieldValue.type === 'modelBody' || fieldValue.type === 'moduleModel' ||
|
|
1130
1134
|
fieldValue.type === 'subModel' || fieldValue.idType === 'model' ||
|
|
1131
1135
|
(fieldValue.fieldType && (fieldValue.fieldType.type === 'moduleModel' ||
|
|
1132
1136
|
fieldValue.fieldType.idType === 'model' || fieldValue.fieldType.idType === 'builtin_model'))) {
|
|
1133
|
-
|
|
1137
|
+
let realVal = `${value}.to_map()`;
|
|
1134
1138
|
if(deep > 1) {
|
|
1135
|
-
|
|
1139
|
+
realVal += ` if ${value} else None`;
|
|
1136
1140
|
}
|
|
1137
|
-
this.
|
|
1141
|
+
this.emitFieldConvert(key, realVal, level, arr);
|
|
1138
1142
|
} else if (fieldValue.type === 'array' || fieldValue.fieldType === 'array') {
|
|
1139
|
-
this.emit(`l${deep} = 0\n`, level);
|
|
1140
1143
|
this.emit(`${key} = []\n`, level);
|
|
1141
1144
|
this.emit(`for k${deep} in ${value}:\n`, level);
|
|
1142
|
-
this.
|
|
1143
|
-
this.visitToMapField(fieldValue.fieldItemType || fieldValue.subType, `${key}[l${deep}]`, `k${deep}`, level + 2);
|
|
1145
|
+
this.visitToMapField(fieldValue.fieldItemType || fieldValue.subType, fieldName, `${key}`, `k${deep}`, level + 2, true);
|
|
1144
1146
|
} else if (fieldValue.fieldType === 'map' || fieldValue.type === 'map') {
|
|
1145
1147
|
this.emit(`${key} = {}\n`, level);
|
|
1146
|
-
this.emit(`for k${deep}, v${deep} in
|
|
1147
|
-
this.visitToMapField(fieldValue.valueType, `${key}[k${deep}]`, `v${deep}`, level + 2);
|
|
1148
|
+
this.emit(`for k${deep}, v${deep} in self.${fieldName}.items():\n`, level);
|
|
1149
|
+
this.visitToMapField(fieldValue.valueType, fieldName, `${key}[k${deep}]`, `v${deep}`, level + 2);
|
|
1148
1150
|
} else {
|
|
1149
|
-
this.
|
|
1151
|
+
this.emitFieldConvert(key, value, level, arr);
|
|
1150
1152
|
}
|
|
1151
1153
|
|
|
1152
1154
|
}
|
|
@@ -1168,7 +1170,7 @@ setup(
|
|
|
1168
1170
|
if(!this.checkFieldHasModel(node.fieldValue)) {
|
|
1169
1171
|
this.emit(`result['${realName}'] = self.${param}`, level + 4);
|
|
1170
1172
|
} else {
|
|
1171
|
-
this.visitToMapField(node.fieldValue, `result['${realName}']`, `self.${param}`, level + 4);
|
|
1173
|
+
this.visitToMapField(node.fieldValue, param, `result['${realName}']`, `self.${param}`, level + 4);
|
|
1172
1174
|
}
|
|
1173
1175
|
this.emit('\n');
|
|
1174
1176
|
}
|
|
@@ -1176,18 +1178,25 @@ setup(
|
|
|
1176
1178
|
this.emit('\n');
|
|
1177
1179
|
}
|
|
1178
1180
|
|
|
1179
|
-
|
|
1181
|
+
emitFieldConvert(key, value, level, arr) {
|
|
1182
|
+
if(arr) {
|
|
1183
|
+
this.emit(`${key}.append(${value})\n`, level);
|
|
1184
|
+
return;
|
|
1185
|
+
}
|
|
1186
|
+
this.emit(`${key} = ${value}\n`, level);
|
|
1187
|
+
}
|
|
1188
|
+
|
|
1189
|
+
visitFromField(fieldValue, fieldName, key, value, level, arr = false) {
|
|
1180
1190
|
const deep = Math.floor(level / 4);
|
|
1181
1191
|
if (fieldValue.type === 'modelBody') {
|
|
1182
|
-
const subModelName = _subModelName(fieldName);
|
|
1183
|
-
this.emit(`temp_model = ${subModelName}\n`, level);
|
|
1184
|
-
this.
|
|
1192
|
+
const subModelName = _subModelName(_camelCase(fieldName));
|
|
1193
|
+
this.emit(`temp_model = ${subModelName}()\n`, level);
|
|
1194
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1185
1195
|
} else if (fieldValue.type === 'array' || fieldValue.fieldType === 'array') {
|
|
1186
1196
|
this.emit(`l${deep} = 0\n`, level);
|
|
1187
1197
|
this.emit(`${key} = []\n`, level);
|
|
1188
1198
|
this.emit(`for k${deep} in ${value}:\n`, level);
|
|
1189
|
-
this.
|
|
1190
|
-
this.visitFromField(fieldValue.fieldItemType || fieldValue.subType, fieldName, `${key}[l${deep}]`, `k${deep}`, level + 2);
|
|
1199
|
+
this.visitFromField(fieldValue.fieldItemType || fieldValue.subType, fieldName, `${key}`, `k${deep}`, level + 2, true);
|
|
1191
1200
|
} else if (fieldValue.fieldType === 'map' || fieldValue.type === 'map') {
|
|
1192
1201
|
this.emit(`${key} = {}\n`, level);
|
|
1193
1202
|
this.emit(`for k${deep}, v${deep} in ${value}.items():\n`, level);
|
|
@@ -1198,25 +1207,30 @@ setup(
|
|
|
1198
1207
|
const modelName = _subModelName(rest.map((item) => {
|
|
1199
1208
|
return item.lexeme;
|
|
1200
1209
|
}).join('.'));
|
|
1201
|
-
this.emit(
|
|
1210
|
+
this.emit(`temp_model = ${this.getModelName(modelName, _name(moduleId), 'module')}()\n`, level);
|
|
1211
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1202
1212
|
} else if (fieldValue.type === 'subModel') {
|
|
1203
1213
|
const [moduleId, ...rest] = fieldValue.path;
|
|
1204
1214
|
const subModelName = _subModelName([moduleId.lexeme, ...rest.map((item) => {
|
|
1205
1215
|
return item.lexeme;
|
|
1206
1216
|
})].join('.'));
|
|
1207
|
-
this.emit(
|
|
1217
|
+
this.emit(`temp_model = ${subModelName}()\n`, level);
|
|
1218
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1208
1219
|
} else if (fieldValue.idType === 'model') {
|
|
1209
1220
|
const modelName = _type(_name(fieldValue));
|
|
1210
|
-
this.emit(
|
|
1221
|
+
this.emit(`temp_model = ${modelName}()\n`, level);
|
|
1222
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1211
1223
|
} else if (fieldValue.fieldType && fieldValue.fieldType.idType === 'model') {
|
|
1212
1224
|
const modelName = _type(_name(fieldValue.fieldType));
|
|
1213
|
-
this.emit(
|
|
1225
|
+
this.emit(`temp_model = ${modelName}()\n`, level);
|
|
1226
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1214
1227
|
} else if (fieldValue.fieldType && fieldValue.fieldType.idType === 'builtin_model') {
|
|
1215
1228
|
const typeName = _type(_name(fieldValue.fieldType));
|
|
1216
1229
|
this.pushImports(typeName);
|
|
1217
|
-
this.emit(
|
|
1230
|
+
this.emit(`temp_model = ${typeName}()\n`, level);
|
|
1231
|
+
this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr);
|
|
1218
1232
|
} else {
|
|
1219
|
-
this.
|
|
1233
|
+
this.emitFieldConvert(key, value, level, arr);
|
|
1220
1234
|
}
|
|
1221
1235
|
}
|
|
1222
1236
|
|
|
@@ -1954,7 +1968,7 @@ setup(
|
|
|
1954
1968
|
current = ast.propertyPathTypes[i];
|
|
1955
1969
|
}
|
|
1956
1970
|
}
|
|
1957
|
-
this.emit(`${expr}[
|
|
1971
|
+
this.emit(`${expr}[`);
|
|
1958
1972
|
this.visitExpr(ast.accessKey, level);
|
|
1959
1973
|
this.emit(']');
|
|
1960
1974
|
}
|
package/package.json
CHANGED
|
@@ -29,8 +29,9 @@ class Client(SourceClient):
|
|
|
29
29
|
source_config: source_models.Config,
|
|
30
30
|
):
|
|
31
31
|
super().__init__(source_config)
|
|
32
|
-
|
|
32
|
+
self._configs[0] = source_config
|
|
33
33
|
test = SourceClient(source_config)
|
|
34
|
+
self.print_data(DaraCore.to_map(source_config), 'test')
|
|
34
35
|
|
|
35
36
|
def complex_1(
|
|
36
37
|
self,
|
|
@@ -978,7 +979,7 @@ class Client(SourceClient):
|
|
|
978
979
|
'b',
|
|
979
980
|
'c'
|
|
980
981
|
]
|
|
981
|
-
|
|
982
|
+
configs[3] = config
|
|
982
983
|
return configs
|
|
983
984
|
|
|
984
985
|
@staticmethod
|
|
@@ -992,7 +993,7 @@ class Client(SourceClient):
|
|
|
992
993
|
'c'
|
|
993
994
|
]
|
|
994
995
|
}
|
|
995
|
-
|
|
996
|
+
data["configs"][3] = config
|
|
996
997
|
return data.get("configs")
|
|
997
998
|
|
|
998
999
|
@staticmethod
|
|
@@ -1000,7 +1001,7 @@ class Client(SourceClient):
|
|
|
1000
1001
|
request: main_models.ComplexRequest,
|
|
1001
1002
|
config: str,
|
|
1002
1003
|
) -> None:
|
|
1003
|
-
|
|
1004
|
+
request.configs.value[0] = config
|
|
1004
1005
|
|
|
1005
1006
|
@staticmethod
|
|
1006
1007
|
def map_access(
|
|
@@ -401,10 +401,9 @@ class ComplexRequest(DaraModel):
|
|
|
401
401
|
result['numMap'] = self.num_map
|
|
402
402
|
if self.model_map is not None:
|
|
403
403
|
result['modelMap'] = {}
|
|
404
|
-
for k1, v1 in
|
|
404
|
+
for k1, v1 in self.model_map.items():
|
|
405
405
|
result['modelMap'][k1] = v1.to_map() if v1 else None
|
|
406
406
|
|
|
407
|
-
|
|
408
407
|
if self.request is not None:
|
|
409
408
|
result['request'] = self.request.to_map()
|
|
410
409
|
|
|
@@ -424,12 +423,9 @@ class ComplexRequest(DaraModel):
|
|
|
424
423
|
if self.str is not None:
|
|
425
424
|
result['srt'] = self.str
|
|
426
425
|
if self.part is not None:
|
|
427
|
-
l1 = 0
|
|
428
426
|
result['Part'] = []
|
|
429
427
|
for k1 in self.part:
|
|
430
|
-
|
|
431
|
-
result['Part'][l1] = k1.to_map() if k1 else None
|
|
432
|
-
|
|
428
|
+
result['Part'].append(k1.to_map() if k1 else None)
|
|
433
429
|
|
|
434
430
|
return result
|
|
435
431
|
|
|
@@ -444,11 +440,11 @@ class ComplexRequest(DaraModel):
|
|
|
444
440
|
if m.get('mapList') is not None:
|
|
445
441
|
self.map_list = m.get('mapList')
|
|
446
442
|
if m.get('header') is not None:
|
|
447
|
-
temp_model = ComplexRequestHeader
|
|
443
|
+
temp_model = ComplexRequestHeader()
|
|
448
444
|
self.header = temp_model.from_map(m.get('header'))
|
|
449
445
|
|
|
450
446
|
if m.get('configs') is not None:
|
|
451
|
-
temp_model = ComplexRequestConfigs
|
|
447
|
+
temp_model = ComplexRequestConfigs()
|
|
452
448
|
self.configs = temp_model.from_map(m.get('configs'))
|
|
453
449
|
|
|
454
450
|
if m.get('num') is not None:
|
|
@@ -500,10 +496,12 @@ class ComplexRequest(DaraModel):
|
|
|
500
496
|
if m.get('byt') is not None:
|
|
501
497
|
self.byt = m.get('byt')
|
|
502
498
|
if m.get('req') is not None:
|
|
503
|
-
|
|
499
|
+
temp_model = DaraRequest()
|
|
500
|
+
self.req = temp_model.from_map(m.get('req'))
|
|
504
501
|
|
|
505
502
|
if m.get('resp') is not None:
|
|
506
|
-
|
|
503
|
+
temp_model = DaraResponse()
|
|
504
|
+
self.resp = temp_model.from_map(m.get('resp'))
|
|
507
505
|
|
|
508
506
|
if m.get('map') is not None:
|
|
509
507
|
self.map = m.get('map')
|
|
@@ -512,15 +510,18 @@ class ComplexRequest(DaraModel):
|
|
|
512
510
|
if m.get('modelMap') is not None:
|
|
513
511
|
self.model_map = {}
|
|
514
512
|
for k1, v1 in m.get('modelMap').items():
|
|
515
|
-
|
|
513
|
+
temp_model = SourceClient()
|
|
514
|
+
self.model_map[k1] = temp_model.from_map(v1)
|
|
516
515
|
|
|
517
516
|
if m.get('request') is not None:
|
|
518
|
-
|
|
517
|
+
temp_model = SourceClient()
|
|
518
|
+
self.request = temp_model.from_map(m.get('request'))
|
|
519
519
|
|
|
520
520
|
if m.get('client') is not None:
|
|
521
521
|
self.client = m.get('client')
|
|
522
522
|
if m.get('instance') is not None:
|
|
523
|
-
|
|
523
|
+
temp_model = SourceClient()
|
|
524
|
+
self.instance = temp_model.from_map(m.get('instance'))
|
|
524
525
|
|
|
525
526
|
if m.get('from') is not None:
|
|
526
527
|
self.from_ = m.get('from')
|
|
@@ -536,9 +537,8 @@ class ComplexRequest(DaraModel):
|
|
|
536
537
|
l1 = 0
|
|
537
538
|
self.part = []
|
|
538
539
|
for k1 in m.get('Part'):
|
|
539
|
-
|
|
540
|
-
temp_model
|
|
541
|
-
self.part[l1] = temp_model.from_map(k1)
|
|
540
|
+
temp_model = ComplexRequestPart()
|
|
541
|
+
self.part.append(temp_model.from_map(k1))
|
|
542
542
|
|
|
543
543
|
return self
|
|
544
544
|
|
|
@@ -88,7 +88,7 @@ class MainFileModel(DaraModel):
|
|
|
88
88
|
if m.get('str') is not None:
|
|
89
89
|
self.str = m.get('str')
|
|
90
90
|
if m.get('model') is not None:
|
|
91
|
-
temp_model = MainFileModelModel
|
|
91
|
+
temp_model = MainFileModelModel()
|
|
92
92
|
self.model = temp_model.from_map(m.get('model'))
|
|
93
93
|
|
|
94
94
|
return self
|
|
@@ -152,7 +152,7 @@ class MyModelModel(DaraModel):
|
|
|
152
152
|
if m.get('str') is not None:
|
|
153
153
|
self.str = m.get('str')
|
|
154
154
|
if m.get('model') is not None:
|
|
155
|
-
temp_model = MyModelModelModel
|
|
155
|
+
temp_model = MyModelModelModel()
|
|
156
156
|
self.model = temp_model.from_map(m.get('model'))
|
|
157
157
|
|
|
158
158
|
return self
|
|
@@ -216,7 +216,7 @@ class MyModelSubmodel(DaraModel):
|
|
|
216
216
|
if m.get('stringfield') is not None:
|
|
217
217
|
self.stringfield = m.get('stringfield')
|
|
218
218
|
if m.get('model') is not None:
|
|
219
|
-
temp_model = MyModelSubmodelModel
|
|
219
|
+
temp_model = MyModelSubmodelModel()
|
|
220
220
|
self.model = temp_model.from_map(m.get('model'))
|
|
221
221
|
|
|
222
222
|
return self
|
|
@@ -265,7 +265,7 @@ class M(DaraModel):
|
|
|
265
265
|
def from_map(self, m: dict = None):
|
|
266
266
|
m = m or dict()
|
|
267
267
|
if m.get('subM') is not None:
|
|
268
|
-
temp_model =
|
|
268
|
+
temp_model = MSubM()
|
|
269
269
|
self.sub_m = temp_model.from_map(m.get('subM'))
|
|
270
270
|
|
|
271
271
|
return self
|
|
@@ -520,57 +520,39 @@ class MyModel(DaraModel):
|
|
|
520
520
|
|
|
521
521
|
if self.submodel_map is not None:
|
|
522
522
|
result['submodelMap'] = {}
|
|
523
|
-
for k1, v1 in
|
|
523
|
+
for k1, v1 in self.submodel_map.items():
|
|
524
524
|
result['submodelMap'][k1] = v1.to_map() if v1 else None
|
|
525
525
|
|
|
526
|
-
|
|
527
526
|
if self.map_model is not None:
|
|
528
527
|
result['mapModel'] = {}
|
|
529
|
-
for k1, v1 in
|
|
528
|
+
for k1, v1 in self.map_model.items():
|
|
530
529
|
result['mapModel'][k1] = v1.to_map() if v1 else None
|
|
531
530
|
|
|
532
|
-
|
|
533
531
|
if self.subarraymodel is not None:
|
|
534
|
-
l1 = 0
|
|
535
532
|
result['subarraymodel'] = []
|
|
536
533
|
for k1 in self.subarraymodel:
|
|
537
|
-
|
|
538
|
-
result['subarraymodel'][l1] = k1.to_map() if k1 else None
|
|
539
|
-
|
|
534
|
+
result['subarraymodel'].append(k1.to_map() if k1 else None)
|
|
540
535
|
|
|
541
536
|
if self.subarray is not None:
|
|
542
|
-
l1 = 0
|
|
543
537
|
result['subarray'] = []
|
|
544
538
|
for k1 in self.subarray:
|
|
545
|
-
|
|
546
|
-
result['subarray'][l1] = k1.to_map() if k1 else None
|
|
547
|
-
|
|
539
|
+
result['subarray'].append(k1.to_map() if k1 else None)
|
|
548
540
|
|
|
549
541
|
if self.ssubarray is not None:
|
|
550
|
-
l1 = 0
|
|
551
542
|
result['ssubarray'] = []
|
|
552
543
|
for k1 in self.ssubarray:
|
|
553
|
-
|
|
554
|
-
l2 = 0
|
|
555
|
-
result['ssubarray'][l1] = []
|
|
544
|
+
result['ssubarray'] = []
|
|
556
545
|
for k2 in k1:
|
|
557
|
-
|
|
558
|
-
result['ssubarray'][l1][l2] = k2.to_map() if k2 else None
|
|
559
|
-
|
|
546
|
+
result['ssubarray'].append(k2.to_map() if k2 else None)
|
|
560
547
|
|
|
561
548
|
if self.ssubmarray is not None:
|
|
562
549
|
result['ssubmarray'] = self.ssubmarray
|
|
563
550
|
if self.ssubmmarray is not None:
|
|
564
|
-
l1 = 0
|
|
565
551
|
result['ssubmmarray'] = []
|
|
566
552
|
for k1 in self.ssubmmarray:
|
|
567
|
-
|
|
568
|
-
l2 = 0
|
|
569
|
-
result['ssubmmarray'][l1] = []
|
|
553
|
+
result['ssubmmarray'] = []
|
|
570
554
|
for k2 in k1:
|
|
571
|
-
|
|
572
|
-
result['ssubmmarray'][l1][l2] = k2.to_map() if k2 else None
|
|
573
|
-
|
|
555
|
+
result['ssubmmarray'].append(k2.to_map() if k2 else None)
|
|
574
556
|
|
|
575
557
|
if self.maparray is not None:
|
|
576
558
|
result['maparray'] = self.maparray
|
|
@@ -578,22 +560,19 @@ class MyModel(DaraModel):
|
|
|
578
560
|
result['mapsubmarray'] = self.mapsubmarray
|
|
579
561
|
if self.module_model_map is not None:
|
|
580
562
|
result['moduleModelMap'] = {}
|
|
581
|
-
for k1, v1 in
|
|
563
|
+
for k1, v1 in self.module_model_map.items():
|
|
582
564
|
result['moduleModelMap'][k1] = v1.to_map() if v1 else None
|
|
583
565
|
|
|
584
|
-
|
|
585
566
|
if self.sub_model_map is not None:
|
|
586
567
|
result['subModelMap'] = {}
|
|
587
|
-
for k1, v1 in
|
|
568
|
+
for k1, v1 in self.sub_model_map.items():
|
|
588
569
|
result['subModelMap'][k1] = v1.to_map() if v1 else None
|
|
589
570
|
|
|
590
|
-
|
|
591
571
|
if self.model_map is not None:
|
|
592
572
|
result['modelMap'] = {}
|
|
593
|
-
for k1, v1 in
|
|
573
|
+
for k1, v1 in self.model_map.items():
|
|
594
574
|
result['modelMap'][k1] = v1.to_map() if v1 else None
|
|
595
575
|
|
|
596
|
-
|
|
597
576
|
if self.module_map is not None:
|
|
598
577
|
result['moduleMap'] = self.module_map
|
|
599
578
|
if self.object is not None:
|
|
@@ -645,7 +624,7 @@ class MyModel(DaraModel):
|
|
|
645
624
|
def from_map(self, m: dict = None):
|
|
646
625
|
m = m or dict()
|
|
647
626
|
if m.get('model') is not None:
|
|
648
|
-
temp_model = MyModelModel
|
|
627
|
+
temp_model = MyModelModel()
|
|
649
628
|
self.model = temp_model.from_map(m.get('model'))
|
|
650
629
|
|
|
651
630
|
if m.get('stringfield') is not None:
|
|
@@ -659,44 +638,44 @@ class MyModel(DaraModel):
|
|
|
659
638
|
if m.get('realName') is not None:
|
|
660
639
|
self.name = m.get('realName')
|
|
661
640
|
if m.get('submodel') is not None:
|
|
662
|
-
temp_model = MyModelSubmodel
|
|
641
|
+
temp_model = MyModelSubmodel()
|
|
663
642
|
self.submodel = temp_model.from_map(m.get('submodel'))
|
|
664
643
|
|
|
665
644
|
if m.get('submodelMap') is not None:
|
|
666
645
|
self.submodel_map = {}
|
|
667
646
|
for k1, v1 in m.get('submodelMap').items():
|
|
668
|
-
|
|
647
|
+
temp_model = MyModelSubmodel()
|
|
648
|
+
self.submodel_map[k1] = temp_model.from_map(v1)
|
|
669
649
|
|
|
670
650
|
if m.get('mapModel') is not None:
|
|
671
651
|
self.map_model = {}
|
|
672
652
|
for k1, v1 in m.get('mapModel').items():
|
|
673
|
-
|
|
653
|
+
temp_model = M()
|
|
654
|
+
self.map_model[k1] = temp_model.from_map(v1)
|
|
674
655
|
|
|
675
656
|
if m.get('subarraymodel') is not None:
|
|
676
657
|
l1 = 0
|
|
677
658
|
self.subarraymodel = []
|
|
678
659
|
for k1 in m.get('subarraymodel'):
|
|
679
|
-
|
|
680
|
-
temp_model
|
|
681
|
-
self.subarraymodel[l1] = temp_model.from_map(k1)
|
|
660
|
+
temp_model = MyModelSubarraymodel()
|
|
661
|
+
self.subarraymodel.append(temp_model.from_map(k1))
|
|
682
662
|
|
|
683
663
|
if m.get('subarray') is not None:
|
|
684
664
|
l1 = 0
|
|
685
665
|
self.subarray = []
|
|
686
666
|
for k1 in m.get('subarray'):
|
|
687
|
-
|
|
688
|
-
self.subarray
|
|
667
|
+
temp_model = M()
|
|
668
|
+
self.subarray.append(temp_model.from_map(k1))
|
|
689
669
|
|
|
690
670
|
if m.get('ssubarray') is not None:
|
|
691
671
|
l1 = 0
|
|
692
672
|
self.ssubarray = []
|
|
693
673
|
for k1 in m.get('ssubarray'):
|
|
694
|
-
l1 += 1
|
|
695
674
|
l2 = 0
|
|
696
|
-
self.ssubarray
|
|
675
|
+
self.ssubarray = []
|
|
697
676
|
for k2 in k1:
|
|
698
|
-
|
|
699
|
-
self.ssubarray
|
|
677
|
+
temp_model = M()
|
|
678
|
+
self.ssubarray.append(temp_model.from_map(k2))
|
|
700
679
|
|
|
701
680
|
if m.get('ssubmarray') is not None:
|
|
702
681
|
self.ssubmarray = m.get('ssubmarray')
|
|
@@ -704,12 +683,11 @@ class MyModel(DaraModel):
|
|
|
704
683
|
l1 = 0
|
|
705
684
|
self.ssubmmarray = []
|
|
706
685
|
for k1 in m.get('ssubmmarray'):
|
|
707
|
-
l1 += 1
|
|
708
686
|
l2 = 0
|
|
709
|
-
self.ssubmmarray
|
|
687
|
+
self.ssubmmarray = []
|
|
710
688
|
for k2 in k1:
|
|
711
|
-
|
|
712
|
-
self.ssubmmarray
|
|
689
|
+
temp_model = SourceClient()
|
|
690
|
+
self.ssubmmarray.append(temp_model.from_map(k2))
|
|
713
691
|
|
|
714
692
|
if m.get('maparray') is not None:
|
|
715
693
|
self.maparray = m.get('maparray')
|
|
@@ -718,17 +696,20 @@ class MyModel(DaraModel):
|
|
|
718
696
|
if m.get('moduleModelMap') is not None:
|
|
719
697
|
self.module_model_map = {}
|
|
720
698
|
for k1, v1 in m.get('moduleModelMap').items():
|
|
721
|
-
|
|
699
|
+
temp_model = SourceClient()
|
|
700
|
+
self.module_model_map[k1] = temp_model.from_map(v1)
|
|
722
701
|
|
|
723
702
|
if m.get('subModelMap') is not None:
|
|
724
703
|
self.sub_model_map = {}
|
|
725
704
|
for k1, v1 in m.get('subModelMap').items():
|
|
726
|
-
|
|
705
|
+
temp_model = MSubM()
|
|
706
|
+
self.sub_model_map[k1] = temp_model.from_map(v1)
|
|
727
707
|
|
|
728
708
|
if m.get('modelMap') is not None:
|
|
729
709
|
self.model_map = {}
|
|
730
710
|
for k1, v1 in m.get('modelMap').items():
|
|
731
|
-
|
|
711
|
+
temp_model = M()
|
|
712
|
+
self.model_map[k1] = temp_model.from_map(v1)
|
|
732
713
|
|
|
733
714
|
if m.get('moduleMap') is not None:
|
|
734
715
|
self.module_map = m.get('moduleMap')
|
|
@@ -739,10 +720,12 @@ class MyModel(DaraModel):
|
|
|
739
720
|
if m.get('writable') is not None:
|
|
740
721
|
self.writable = m.get('writable')
|
|
741
722
|
if m.get('existModel') is not None:
|
|
742
|
-
|
|
723
|
+
temp_model = M()
|
|
724
|
+
self.exist_model = temp_model.from_map(m.get('existModel'))
|
|
743
725
|
|
|
744
726
|
if m.get('request') is not None:
|
|
745
|
-
|
|
727
|
+
temp_model = DaraRequest()
|
|
728
|
+
self.request = temp_model.from_map(m.get('request'))
|
|
746
729
|
|
|
747
730
|
if m.get('complexList') is not None:
|
|
748
731
|
self.complex_list = m.get('complexList')
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# This file is auto-generated, don't edit it. Thanks.
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from alibabacloud_tea_util.util import Utils
|
|
4
5
|
from tea_python_tests.lib.util import Util
|
|
5
6
|
from typing import Generator, AsyncGenerator
|
|
6
7
|
|
|
@@ -12,12 +13,14 @@ class Client:
|
|
|
12
13
|
|
|
13
14
|
@staticmethod
|
|
14
15
|
def test() -> Generator[str, None, None]:
|
|
16
|
+
Utils.test()
|
|
15
17
|
it = Util.test_1()
|
|
16
18
|
for test in it:
|
|
17
19
|
yield test
|
|
18
20
|
|
|
19
21
|
@staticmethod
|
|
20
22
|
async def test_async() -> AsyncGenerator[str, None, None]:
|
|
23
|
+
Utils.test()
|
|
21
24
|
it = Util.test_1()
|
|
22
25
|
for test in it:
|
|
23
26
|
yield test
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
"name": "Util",
|
|
4
4
|
"version": "0.2.11",
|
|
5
5
|
"main": "./main.tea",
|
|
6
|
+
"exports": {
|
|
7
|
+
"Util": "./util.tea"
|
|
8
|
+
},
|
|
6
9
|
"releases": {
|
|
7
10
|
"go": "github.com/alibabacloud-go/tea-utils/v2/service:v2.0.4",
|
|
8
11
|
"ts": "@alicloud/tea-util:^1.4.7",
|
|
@@ -29,7 +32,10 @@
|
|
|
29
32
|
},
|
|
30
33
|
"python": {
|
|
31
34
|
"package": "alibabacloud_tea_util",
|
|
32
|
-
"clientName": "client"
|
|
35
|
+
"clientName": "client",
|
|
36
|
+
"exports": {
|
|
37
|
+
"Util": "Utils"
|
|
38
|
+
}
|
|
33
39
|
},
|
|
34
40
|
"python2": {
|
|
35
41
|
"package": "alibabacloud_tea_util",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import DARAUtil;
|
|
2
|
+
import DARAUtil.Util as Utils;
|
|
2
3
|
import "../lib/util" Util;
|
|
3
4
|
|
|
4
5
|
|
|
@@ -13,6 +14,7 @@ model Info extends BaseInfo {
|
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
static async function test(): asyncIterator[string]{
|
|
17
|
+
Utils.test();
|
|
16
18
|
var it:iterator[string] = Util.test1();
|
|
17
19
|
for(var test : it) {
|
|
18
20
|
yield test;
|
|
@@ -29,8 +29,9 @@ class Client(SourceClient):
|
|
|
29
29
|
source_config: source_models.Config,
|
|
30
30
|
):
|
|
31
31
|
super().__init__(source_config)
|
|
32
|
-
|
|
32
|
+
self._configs[0] = source_config
|
|
33
33
|
test = SourceClient(source_config)
|
|
34
|
+
self.print_data(DaraCore.to_map(source_config), 'test')
|
|
34
35
|
|
|
35
36
|
def complex_1(
|
|
36
37
|
self,
|
|
@@ -978,7 +979,7 @@ class Client(SourceClient):
|
|
|
978
979
|
'b',
|
|
979
980
|
'c'
|
|
980
981
|
]
|
|
981
|
-
|
|
982
|
+
configs[3] = config
|
|
982
983
|
return configs
|
|
983
984
|
|
|
984
985
|
@staticmethod
|
|
@@ -992,7 +993,7 @@ class Client(SourceClient):
|
|
|
992
993
|
'c'
|
|
993
994
|
]
|
|
994
995
|
}
|
|
995
|
-
|
|
996
|
+
data["configs"][3] = config
|
|
996
997
|
return data.get("configs")
|
|
997
998
|
|
|
998
999
|
@staticmethod
|
|
@@ -1000,7 +1001,7 @@ class Client(SourceClient):
|
|
|
1000
1001
|
request: main_models.ComplexRequest,
|
|
1001
1002
|
config: str,
|
|
1002
1003
|
) -> None:
|
|
1003
|
-
|
|
1004
|
+
request.configs.value[0] = config
|
|
1004
1005
|
|
|
1005
1006
|
@staticmethod
|
|
1006
1007
|
def map_access(
|