From 1008c90c550c4e5d3d11580d69c1a088def1c41e Mon Sep 17 00:00:00 2001 From: Lauri Kajan Date: Tue, 28 Jan 2025 09:44:19 +0200 Subject: [PATCH] Fix TypeErrors --- database/ryhti_client/ryhti_client.py | 33 ++++++++++++++++++++------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/database/ryhti_client/ryhti_client.py b/database/ryhti_client/ryhti_client.py index 6c91920..c6dc116 100644 --- a/database/ryhti_client/ryhti_client.py +++ b/database/ryhti_client/ryhti_client.py @@ -548,34 +548,51 @@ def get_attribute_value(self, attribute_value: base.AttributeValueMixin) -> Dict if attribute_value.value_data_type is AttributeValueDataType.CODE: value["code"] = attribute_value.code_value value["codeList"] = attribute_value.code_list - value["title"] = attribute_value.code_title + if attribute_value.code_title: + value["title"] = attribute_value.code_title elif attribute_value.value_data_type in ( AttributeValueDataType.NUMERIC, AttributeValueDataType.POSITIVE_NUMERIC, AttributeValueDataType.SPOT_ELEVATION, ): - value["number"] = int(attribute_value.numeric_value) - value["unitOfMeasure"] = attribute_value.unit + value["number"] = ( + int(attribute_value.numeric_value) + if attribute_value.numeric_value is not None + else None + ) + if attribute_value.unit: + value["unitOfMeasure"] = attribute_value.unit elif attribute_value.value_data_type in ( AttributeValueDataType.NUMERIC_RANGE, AttributeValueDataType.POSITIVE_NUMERIC_RANGE, ): - value["minimumValue"] = int(attribute_value.numeric_range_min) - value["maximumValue"] = int(attribute_value.numeric_range_max) - value["unitOfMeasure"] = attribute_value.unit + value["minimumValue"] = ( + int(attribute_value.numeric_range_min) + if attribute_value.numeric_range_min is not None + else None + ) + value["maximumValue"] = ( + int(attribute_value.numeric_range_max) + if attribute_value.numeric_range_max is not None + else None + ) + if attribute_value.unit: + value["unitOfMeasure"] = attribute_value.unit elif attribute_value.value_data_type in ( AttributeValueDataType.DECIMAL, AttributeValueDataType.POSITIVE_DECIMAL, ): value["number"] = attribute_value.numeric_value - value["unitOfMeasure"] = attribute_value.unit + if attribute_value.unit: + value["unitOfMeasure"] = attribute_value.unit elif attribute_value.value_data_type in ( AttributeValueDataType.DECIMAL_RANGE, AttributeValueDataType.POSITIVE_DECIMAL_RANGE, ): value["minimumValue"] = attribute_value.numeric_range_min value["maximumValue"] = attribute_value.numeric_range_max - value["unitOfMeasure"] = attribute_value.unit + if attribute_value.unit: + value["unitOfMeasure"] = attribute_value.unit elif attribute_value.value_data_type is AttributeValueDataType.IDENTIFIER: pass # TODO: implement identifier values elif attribute_value.value_data_type in (