diff --git a/CHANGELOG.md b/CHANGELOG.md index 555dd85..2f80077 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # ChangeLog +# 2.0.9 +- Fixed the arr & map init error in from map + # 2.0.8 - Optimized the directory structure of models diff --git a/ChangeLog.md b/ChangeLog.md index 555dd85..2f80077 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,8 @@ # ChangeLog +# 2.0.9 +- Fixed the arr & map init error in from map + # 2.0.8 - Optimized the directory structure of models diff --git a/lib/generator.js b/lib/generator.js index 2cbe76e..91539af 100644 --- a/lib/generator.js +++ b/lib/generator.js @@ -1242,23 +1242,23 @@ setup( this.emit(`temp_model = ${this.getModelName(subModelName)}()\n`, level); this.emitFieldConvert(key, `temp_model.from_map(${value})`, level, arr); } else if (fieldValue.type === 'array' || fieldValue.fieldType === 'array') { - this.emit(`for k${deep} in ${value}:\n`, level); let subKey = key; if(deep > 1) { subKey = `l${deep - 1}`; - this.emit(`${subKey} = []\n`, level + 2); + this.emit(`${subKey} = []\n`, level); } + this.emit(`for k${deep} in ${value}:\n`, level); this.visitFromField(fieldValue.fieldItemType || fieldValue.subType, fieldName, `${subKey}`, `k${deep}`, level + 2, true); if(deep > 1) { this.emitFieldConvert(key, subKey, level, arr); } } else if (fieldValue.fieldType === 'map' || fieldValue.type === 'map') { - this.emit(`for k${deep}, v${deep} in ${value}.items():\n`, level); let subKey = key; if(deep > 1) { subKey = `d${deep - 1}`; - this.emit(`${subKey} = {}\n`, level + 2); + this.emit(`${subKey} = {}\n`, level); } + this.emit(`for k${deep}, v${deep} in ${value}.items():\n`, level); this.visitFromField(fieldValue.valueType, fieldName, `${subKey}[k${deep}]`, `v${deep}`, level + 2); if(deep > 1) { this.emitFieldConvert(key, subKey, level, arr); diff --git a/package.json b/package.json index 46d663a..23b9c7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@darabonba/python-generator", - "version": "2.0.8", + "version": "2.0.9", "description": "The darabonba generator for Python", "main": "lib/generator.js", "directories": { diff --git a/tests/expected/model/tea_python_tests/models/_my_model.py b/tests/expected/model/tea_python_tests/models/_my_model.py index 0e08880..0ef7055 100644 --- a/tests/expected/model/tea_python_tests/models/_my_model.py +++ b/tests/expected/model/tea_python_tests/models/_my_model.py @@ -450,8 +450,8 @@ def from_map(self, m: dict = None): self.ssubarray = [] if m.get('ssubarray') is not None: for k1 in m.get('ssubarray'): + l1 = [] for k2 in k1: - l1 = [] temp_model = main_models.M() l1.append(temp_model.from_map(k2)) self.ssubarray.append(l1) @@ -465,8 +465,8 @@ def from_map(self, m: dict = None): self.ssubmmarray = [] if m.get('ssubmmarray') is not None: for k1 in m.get('ssubmmarray'): + l1 = [] for k2 in k1: - l1 = [] temp_model = source_models.Request() l1.append(temp_model.from_map(k2)) self.ssubmmarray.append(l1) @@ -474,10 +474,10 @@ def from_map(self, m: dict = None): self.sssubmmarray = [] if m.get('sssubmmarray') is not None: for k1 in m.get('sssubmmarray'): + l1 = [] for k2 in k1: - l1 = [] + l2 = [] for k3 in k2: - l2 = [] temp_model = source_models.Request() l2.append(temp_model.from_map(k3)) l1.append(l2) @@ -498,8 +498,8 @@ def from_map(self, m: dict = None): self.arr_module_model_map = [] if m.get('arrModuleModelMap') is not None: for k1 in m.get('arrModuleModelMap'): + d1 = {} for k2, v2 in k1.items(): - d1 = {} temp_model = source_models.Request() d1[k2] = temp_model.from_map(v2) self.arr_module_model_map.append(d1) @@ -507,10 +507,10 @@ def from_map(self, m: dict = None): self.arrs_module_model_map = [] if m.get('arrsModuleModelMap') is not None: for k1 in m.get('arrsModuleModelMap'): + l1 = [] for k2 in k1: - l1 = [] + d2 = {} for k3, v3 in k2.items(): - d2 = {} temp_model = source_models.Request() d2[k3] = temp_model.from_map(v3) l1.append(d2) diff --git a/tests/expected/modelConfig/tea_python_tests/models/_my_model.py b/tests/expected/modelConfig/tea_python_tests/models/_my_model.py index 8b6053f..9369af9 100644 --- a/tests/expected/modelConfig/tea_python_tests/models/_my_model.py +++ b/tests/expected/modelConfig/tea_python_tests/models/_my_model.py @@ -450,8 +450,8 @@ def from_map(self, m: dict = None): if m.get('ssubarray') is not None: self.ssubarray = [] for k1 in m.get('ssubarray'): + l1 = [] for k2 in k1: - l1 = [] temp_model = main_models.M() l1.append(temp_model.from_map(k2)) self.ssubarray.append(l1) @@ -465,8 +465,8 @@ def from_map(self, m: dict = None): if m.get('ssubmmarray') is not None: self.ssubmmarray = [] for k1 in m.get('ssubmmarray'): + l1 = [] for k2 in k1: - l1 = [] temp_model = source_models.Request() l1.append(temp_model.from_map(k2)) self.ssubmmarray.append(l1) @@ -474,10 +474,10 @@ def from_map(self, m: dict = None): if m.get('sssubmmarray') is not None: self.sssubmmarray = [] for k1 in m.get('sssubmmarray'): + l1 = [] for k2 in k1: - l1 = [] + l2 = [] for k3 in k2: - l2 = [] temp_model = source_models.Request() l2.append(temp_model.from_map(k3)) l1.append(l2) @@ -498,8 +498,8 @@ def from_map(self, m: dict = None): if m.get('arrModuleModelMap') is not None: self.arr_module_model_map = [] for k1 in m.get('arrModuleModelMap'): + d1 = {} for k2, v2 in k1.items(): - d1 = {} temp_model = source_models.Request() d1[k2] = temp_model.from_map(v2) self.arr_module_model_map.append(d1) @@ -507,10 +507,10 @@ def from_map(self, m: dict = None): if m.get('arrsModuleModelMap') is not None: self.arrs_module_model_map = [] for k1 in m.get('arrsModuleModelMap'): + l1 = [] for k2 in k1: - l1 = [] + d2 = {} for k3, v3 in k2.items(): - d2 = {} temp_model = source_models.Request() d2[k3] = temp_model.from_map(v3) l1.append(d2)