From 35b53037716ab14968605b23596fd9dceb81acbd Mon Sep 17 00:00:00 2001 From: Emanuele Gissi Date: Mon, 7 Aug 2023 09:24:10 +0200 Subject: [PATCH 1/2] Clean up --- qgis2fds_algorithm.py | 1 - 1 file changed, 1 deletion(-) diff --git a/qgis2fds_algorithm.py b/qgis2fds_algorithm.py index ee486d5..690514a 100644 --- a/qgis2fds_algorithm.py +++ b/qgis2fds_algorithm.py @@ -24,7 +24,6 @@ QgsProcessingParameterString, QgsProcessingParameterNumber, QgsProcessingParameterDefinition, - QgsProcessingParameterFeatureSink, QgsProcessingParameterBoolean, QgsRasterFileWriter, QgsRasterLayer, From 9c5e4447985d3f4dda7174383512155c6fd54dbd Mon Sep 17 00:00:00 2001 From: Emanuele Gissi Date: Mon, 7 Aug 2023 09:34:38 +0200 Subject: [PATCH 2/2] Fix unsafe parameters[cls.label] with get --- qgis2fds_params.py | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/qgis2fds_params.py b/qgis2fds_params.py index 9ed48c6..2328435 100644 --- a/qgis2fds_params.py +++ b/qgis2fds_params.py @@ -104,7 +104,7 @@ def get(cls, algo, parameters, context, feedback, project): value = algo.parameterAsExtent( parameters, cls.label, context, crs=project.crs() ) # in project crs - project.writeEntry("qgis2fds", cls.label, parameters[cls.label]) # protect + project.writeEntry("qgis2fds", cls.label, parameters.get(cls.label)) # protect feedback.setProgressText(f"{cls.desc}: <{value}>") return value @@ -206,7 +206,7 @@ def get(cls, algo, parameters, context, feedback, project): raise QgsProcessingException( f"DEM layer CRS <{value.crs().description()}> not valid, cannot proceed." ) - project.writeEntry("qgis2fds", cls.label, parameters[cls.label]) # protect + project.writeEntry("qgis2fds", cls.label, parameters.get(cls.label)) # protect feedback.setProgressText(f"{cls.desc}: <{value}>") return value @@ -231,12 +231,8 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): value = None - try: - if parameters[cls.label]: - value = algo.parameterAsRasterLayer(parameters, cls.label, context) - except KeyError: - value = None - parameters[cls.label] = None + if parameters.get(cls.label): + value = algo.parameterAsRasterLayer(parameters, cls.label, context) if value: # Check local url = value.source() @@ -249,7 +245,7 @@ def get(cls, algo, parameters, context, feedback, project): raise QgsProcessingException( f"Landuse layer CRS <{value.crs().description()}> not valid, cannot proceed." ) - project.writeEntry("qgis2fds", cls.label, parameters[cls.label]) # protect + project.writeEntry("qgis2fds", cls.label, parameters.get(cls.label)) # protect feedback.setProgressText(f"{cls.desc}: <{value}>") return value @@ -276,7 +272,7 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): value = None - if parameters[cls.label]: + if parameters.get(cls.label): value = algo.parameterAsFile(parameters, cls.label, context) project.writeEntry("qgis2fds", cls.label, value or "") # protect if value: @@ -314,7 +310,7 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): value = None - if parameters[cls.label]: + if parameters.get(cls.label): value = algo.parameterAsFile(parameters, cls.label, context) project.writeEntry("qgis2fds", cls.label, value or "") # protect if value: @@ -350,16 +346,13 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): value = None - try: - if parameters[cls.label]: - value = algo.parameterAsRasterLayer(parameters, cls.label, context) - except KeyError: - parameters[cls.label] = None + if parameters.get(cls.label): + value = algo.parameterAsRasterLayer(parameters, cls.label, context) if value and not value.crs().isValid(): raise QgsProcessingException( f"Texture layer CRS <{value.crs().description()}> not valid, cannot proceed." ) - project.writeEntry("qgis2fds", cls.label, parameters[cls.label]) # protect + project.writeEntry("qgis2fds", cls.label, parameters.get(cls.label)) # protect feedback.setProgressText(f"{cls.desc}: <{value}>") return value @@ -386,7 +379,7 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): - if parameters[cls.label]: + if parameters.get(cls.label): value = algo.parameterAsDouble(parameters, cls.label, context) project.writeEntryDouble("qgis2fds", cls.label, value) else: # protect @@ -446,7 +439,7 @@ def set(cls, algo, config, project): @classmethod def get(cls, algo, parameters, context, feedback, project): - if parameters[cls.label]: + if parameters.get(cls.label): value = algo.parameterAsDouble(parameters, cls.label, context) project.writeEntryDouble("qgis2fds", cls.label, value) else: # protect