This is an automated email from the ASF dual-hosted git repository. hutcheb pushed a commit to branch plc4py/integration-test in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/plc4py/integration-test by this push: new d67822e2dd fix(plc4py): Fix some discriminated enums d67822e2dd is described below commit d67822e2ddd42d1144e4ce9adc9ca56e6940156a Author: Ben Hutcheson <ben.hut...@gmail.com> AuthorDate: Mon May 6 19:55:30 2024 +0200 fix(plc4py): Fix some discriminated enums --- .../templates/python/complex-type-template.python.ftlh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh b/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh index b179f1acaf..6bb5783bdb 100644 --- a/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh +++ b/code-generation/language-python/src/main/resources/templates/python/complex-type-template.python.ftlh @@ -401,9 +401,9 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()></#if>(<#if ty length_in_bits += ${simpleTypeReference.sizeInBits} </#if> <#elseif helper.isEnumField(field)> - length_in_bits += ${helper.getEnumBaseTypeReference(discriminatorField.type).sizeInBits} + length_in_bits += ${helper.getEnumBaseTypeReference(discriminatorField.type).sizeInBits} <#else> - length_in_bits += self.${helper.camelCaseToSnakeCase(discriminatorField.name)}.length_in_bits() + length_in_bits += self.${helper.camelCaseToSnakeCase(discriminatorField.name)}.length_in_bits() </#if> <#break> <#case "enum"> @@ -621,7 +621,7 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()></#if>(<#if ty <#assign simpleTypeReference = typedField.type.asSimpleTypeReference().orElseThrow()> ${helper.camelCaseToSnakeCase(namedField.name)}: ${helper.getLanguageTypeNameForField(field)} = read_buffer.${helper.getDataReaderCall(discriminatorField.type)}(logical_name="${namedField.name}", bit_length=${simpleTypeReference.sizeInBits}${helper.getFieldOptions(typedField, parserArguments)}<#if hasParserArguments>, ${parsedList}</#if>) <#else> - ${helper.camelCaseToSnakeCase(namedField.name)}: ${helper.getLanguageTypeNameForField(field)} = read_buffer.${helper.getDataReaderCall(discriminatorField.type)}(logical_name="${namedField.name}"${helper.getFieldOptions(typedField, parserArguments)}<#if hasParserArguments>, ${parsedList}</#if>) + ${helper.camelCaseToSnakeCase(namedField.name)}: ${helper.getLanguageTypeNameForField(field)} = read_buffer.${helper.getDataReaderCall(discriminatorField.type)}logical_name="${namedField.name}"${helper.getFieldOptions(typedField, parserArguments)}<#if hasParserArguments>, ${parsedList}</#if>) </#if> @@ -668,8 +668,10 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()></#if>(<#if ty <#assign typedField = field.asTypedField().orElseThrow()> <#assign namedField = field.asNamedField().orElseThrow()> ${helper.camelCaseToSnakeCase(namedField.name)}: ${helper.getLanguageTypeNameForTypeReference(optionalField.type, false)} = None - ${helper.camelCaseToSnakeCase(namedField.name)} = read_buffer.${helper.getDataReaderCall(optionalField.type)}(logical_name="${namedField.name}"<#if optionalField.conditionExpression.present></#if>${helper.getFieldOptions(typedField, parserArguments)}<#if hasParserArguments>, ${parsedList}</#if>) - + <#if optionalField.conditionExpression.present> + if ${helper.toSerializationExpression(optionalField, helper.boolTypeReference, optionalField.conditionExpression.get(), parserArguments)}: + ${helper.camelCaseToSnakeCase(namedField.name)} = <#if typedField.type.isEnumTypeReference()>read_buffer.${helper.getDataReaderCall(optionalField.type)}bit_length=${helper.getEnumBaseTypeReference(typedField.type).sizeInBits}, logical_name="${namedField.name}"${helper.getFieldOptions(typedField, parserArguments)}<#if hasParserArguments>, ${parsedList}</#if>)<#else><#if optionalField.type.isComplexTypeReference()>read_buffer.${helper.getDataReaderCall(optionalField.type)}logic [...] + </#if> <#break> <#case "padding"> <#assign paddingField = field.asPaddingField().orElseThrow()>