diff --git a/eis_qgis_plugin/plugin.py b/eis_qgis_plugin/plugin.py index 00700b7b..329cc785 100644 --- a/eis_qgis_plugin/plugin.py +++ b/eis_qgis_plugin/plugin.py @@ -8,8 +8,8 @@ from qgis.PyQt.QtWidgets import QAction, QMenu, QToolButton, QWidget from qgis.utils import iface -from eis_qgis_plugin.utils import PLUGIN_PATH -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager +from eis_qgis_plugin.utils.misc_utils import PLUGIN_PATH +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager from .processing.eis_provider import EISProvider from .qgis_plugin_tools.tools.custom_logging import setup_logger, teardown_logger diff --git a/eis_qgis_plugin/processing/algorithms/prediction/mlp_classifier.py b/eis_qgis_plugin/processing/algorithms/prediction/mlp_classifier.py index a56f5b56..fd8bd438 100644 --- a/eis_qgis_plugin/processing/algorithms/prediction/mlp_classifier.py +++ b/eis_qgis_plugin/processing/algorithms/prediction/mlp_classifier.py @@ -15,7 +15,7 @@ ) from eis_qgis_plugin.processing.eis_processing_algorithm import EISProcessingAlgorithm -from eis_qgis_plugin.utils import parse_string_list_parameter_and_run_command +from eis_qgis_plugin.utils.misc_utils import parse_string_list_parameter_and_run_command class EISMlpClassifier(EISProcessingAlgorithm): diff --git a/eis_qgis_plugin/processing/algorithms/prediction/mlp_regressor.py b/eis_qgis_plugin/processing/algorithms/prediction/mlp_regressor.py index efad6c31..51dede6e 100644 --- a/eis_qgis_plugin/processing/algorithms/prediction/mlp_regressor.py +++ b/eis_qgis_plugin/processing/algorithms/prediction/mlp_regressor.py @@ -15,7 +15,7 @@ ) from eis_qgis_plugin.processing.eis_processing_algorithm import EISProcessingAlgorithm -from eis_qgis_plugin.utils import parse_string_list_parameter_and_run_command +from eis_qgis_plugin.utils.misc_utils import parse_string_list_parameter_and_run_command class EISMlpRegressor(EISProcessingAlgorithm): diff --git a/eis_qgis_plugin/processing/algorithms/raster_processing/reclassify_with_manual_breaks.py b/eis_qgis_plugin/processing/algorithms/raster_processing/reclassify_with_manual_breaks.py index 3af9f001..816e62a2 100644 --- a/eis_qgis_plugin/processing/algorithms/raster_processing/reclassify_with_manual_breaks.py +++ b/eis_qgis_plugin/processing/algorithms/raster_processing/reclassify_with_manual_breaks.py @@ -11,7 +11,7 @@ ) from eis_qgis_plugin.processing.eis_processing_algorithm import EISProcessingAlgorithm -from eis_qgis_plugin.utils import parse_string_list_parameter_and_run_command +from eis_qgis_plugin.utils.misc_utils import parse_string_list_parameter_and_run_command class EISReclassifyWithManualBreaks(EISProcessingAlgorithm): diff --git a/eis_qgis_plugin/processing/eis_toolkit_invoker.py b/eis_qgis_plugin/processing/eis_toolkit_invoker.py index 067eb0fc..6d2d7e29 100644 --- a/eis_qgis_plugin/processing/eis_toolkit_invoker.py +++ b/eis_qgis_plugin/processing/eis_toolkit_invoker.py @@ -9,7 +9,7 @@ from qgis.core import QgsProcessingFeedback, QgsProject, QgsRasterLayer -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager DEBUG = True diff --git a/eis_qgis_plugin/settings.py b/eis_qgis_plugin/settings.py deleted file mode 100644 index eae0a595..00000000 --- a/eis_qgis_plugin/settings.py +++ /dev/null @@ -1,13 +0,0 @@ -from qgis.core import QgsSettings - -_ENV_KEY = "eis_qgis_plugin/python_env_path" - - -def get_python_env_path(): - settings = QgsSettings() - return settings.value(_ENV_KEY, "") - - -def save_python_env_path(path): - settings = QgsSettings() - settings.setValue(_ENV_KEY, path) diff --git a/eis_qgis_plugin/wizard/utils/algorithm_execution.py b/eis_qgis_plugin/utils/algorithm_execution.py similarity index 97% rename from eis_qgis_plugin/wizard/utils/algorithm_execution.py rename to eis_qgis_plugin/utils/algorithm_execution.py index e428ad9d..99693ff7 100644 --- a/eis_qgis_plugin/wizard/utils/algorithm_execution.py +++ b/eis_qgis_plugin/utils/algorithm_execution.py @@ -6,7 +6,7 @@ from qgis.PyQt.QtCore import QObject, QThread, pyqtSignal from qgis.utils import iface -from eis_qgis_plugin.wizard.utils.model_feedback import EISProcessingFeedback +from eis_qgis_plugin.utils.model_feedback import EISProcessingFeedback class AlgorithmExecutor(QObject): diff --git a/eis_qgis_plugin/utils.py b/eis_qgis_plugin/utils/misc_utils.py similarity index 76% rename from eis_qgis_plugin/utils.py rename to eis_qgis_plugin/utils/misc_utils.py index 5e97e874..7d7dc46f 100644 --- a/eis_qgis_plugin/utils.py +++ b/eis_qgis_plugin/utils/misc_utils.py @@ -1,6 +1,7 @@ import os import re -from typing import Any, Dict, Optional +from enum import Enum +from typing import Any, Dict, Literal, Optional from qgis.core import ( QgsColorRamp, @@ -18,11 +19,44 @@ from eis_qgis_plugin.processing.eis_processing_algorithm import EISProcessingAlgorithm from eis_qgis_plugin.processing.eis_toolkit_invoker import EISToolkitInvoker -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path - -PLUGIN_PATH = os.path.dirname(__file__) TEMPORARY_OUTPUT = 'TEMPORARY_OUTPUT' +CLASSIFIER_METRICS = ["Accuracy", "Precision", "Recall", "F1"] +REGRESSOR_METRICS = ["MSE", "RMSE", "MAE", "R2"] +PLUGIN_PATH = os.path.dirname(os.path.dirname(__file__)) +FILE_FILTERS = { + "raster": "GeoTiff files (*.tif *.tiff)", + "vector": "", + "joblib": "Joblib files (*.joblib)" +} + +class ModelKind(str, Enum): + CLASSIFIER = "classifier" + REGRESSOR = "regressor" + + +def set_placeholder_text( + file_widget: QgsFileWidget, placeholder_text = "[Save to temporary file]" +) -> bool: + """Tries to find QLineEdit in a QgsFileWidget and set its placeholder text.""" + line_edit = file_widget.findChild(QLineEdit) + if line_edit: + line_edit.setPlaceholderText(placeholder_text) + return True + return False + + +def set_filter(file_widget: QgsFileWidget, filter: Literal["raster", "vector", "joblib"]) -> bool: + "Tries to set set specified filter to a QgsFileWidget." + if filter in FILE_FILTERS.keys(): + file_widget.setFilter(FILE_FILTERS[filter]) + return True + return False + + +def get_output_path(file_widget: QgsFileWidget) -> str: + fp = file_widget.filePath() + return fp if fp != "" else TEMPORARY_OUTPUT def set_file_widget_placeholder_text( diff --git a/eis_qgis_plugin/wizard/utils/model_feedback.py b/eis_qgis_plugin/utils/model_feedback.py similarity index 100% rename from eis_qgis_plugin/wizard/utils/model_feedback.py rename to eis_qgis_plugin/utils/model_feedback.py diff --git a/eis_qgis_plugin/wizard/utils/settings_manager.py b/eis_qgis_plugin/utils/settings_manager.py similarity index 100% rename from eis_qgis_plugin/wizard/utils/settings_manager.py rename to eis_qgis_plugin/utils/settings_manager.py diff --git a/eis_qgis_plugin/wizard/mineral_proxies/proxy_processing.py b/eis_qgis_plugin/wizard/mineral_proxies/proxy_processing.py index 3353383a..83024db0 100644 --- a/eis_qgis_plugin/wizard/mineral_proxies/proxy_processing.py +++ b/eis_qgis_plugin/wizard/mineral_proxies/proxy_processing.py @@ -5,16 +5,16 @@ from qgis.PyQt.QtWidgets import QComboBox, QLabel, QLayout, QProgressBar, QPushButton, QStackedWidget, QWidget from qgis.utils import iface -from eis_qgis_plugin.utils import ( +from eis_qgis_plugin.utils.algorithm_execution import AlgorithmExecutor +from eis_qgis_plugin.utils.misc_utils import ( add_output_layer_to_group, apply_color_ramp_to_raster_layer, get_output_layer_name, set_file_widget_placeholder_text, + set_filter, ) -from eis_qgis_plugin.wizard.utils.algorithm_execution import AlgorithmExecutor -from eis_qgis_plugin.wizard.utils.misc_utils import set_filter -from eis_qgis_plugin.wizard.utils.model_feedback import EISProcessingFeedback -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager +from eis_qgis_plugin.utils.model_feedback import EISProcessingFeedback +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager MINERAL_SYSTEM_GROUP_NAMES = { "iocg": "Mineral system proxies — IOCG", diff --git a/eis_qgis_plugin/wizard/mineral_proxies/proxy_view.py b/eis_qgis_plugin/wizard/mineral_proxies/proxy_view.py index 843396d5..f968eff4 100644 --- a/eis_qgis_plugin/wizard/mineral_proxies/proxy_view.py +++ b/eis_qgis_plugin/wizard/mineral_proxies/proxy_view.py @@ -19,7 +19,7 @@ from qgis.utils import iface from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import PLUGIN_PATH +from eis_qgis_plugin.utils.misc_utils import PLUGIN_PATH FORM_CLASS = load_ui("mineral_proxies/proxy_view.ui") diff --git a/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_anomaly.py b/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_anomaly.py index 827e4cf2..9984d56a 100644 --- a/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_anomaly.py +++ b/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_anomaly.py @@ -15,8 +15,8 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.misc_utils import get_output_path from eis_qgis_plugin.wizard.mineral_proxies.proxy_processing import EISWizardProxyProcess -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path FORM_CLASS = load_ui("mineral_proxies/proxy_workflow3_define_anomaly.ui") diff --git a/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_features.py b/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_features.py index 8afe602d..d7563e5c 100644 --- a/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_features.py +++ b/eis_qgis_plugin/wizard/mineral_proxies/workflows/distance_to_features.py @@ -14,8 +14,8 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.misc_utils import get_output_path from eis_qgis_plugin.wizard.mineral_proxies.proxy_processing import EISWizardProxyProcess -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path FORM_CLASS = load_ui("mineral_proxies/proxy_workflow1_dist_to_features.ui") diff --git a/eis_qgis_plugin/wizard/mineral_proxies/workflows/interpolate.py b/eis_qgis_plugin/wizard/mineral_proxies/workflows/interpolate.py index 4a7122a3..5bdc87cd 100644 --- a/eis_qgis_plugin/wizard/mineral_proxies/workflows/interpolate.py +++ b/eis_qgis_plugin/wizard/mineral_proxies/workflows/interpolate.py @@ -14,8 +14,8 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.misc_utils import get_output_path from eis_qgis_plugin.wizard.mineral_proxies.proxy_processing import EISWizardProxyProcess -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path FORM_CLASS = load_ui("mineral_proxies/proxy_workflow2_interpolation.ui") diff --git a/eis_qgis_plugin/wizard/modeling/fuzzy_modeling/fuzzy.py b/eis_qgis_plugin/wizard/modeling/fuzzy_modeling/fuzzy.py index 890ca6ab..b67d8d13 100644 --- a/eis_qgis_plugin/wizard/modeling/fuzzy_modeling/fuzzy.py +++ b/eis_qgis_plugin/wizard/modeling/fuzzy_modeling/fuzzy.py @@ -22,6 +22,7 @@ import eis_qgis_plugin.libs.seaborn as sns from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.misc_utils import get_output_path, set_placeholder_text from eis_qgis_plugin.wizard.modeling.fuzzy_modeling.fuzzy_memberships import ( FuzzyMembership, GaussianMembership, @@ -33,7 +34,6 @@ ) from eis_qgis_plugin.wizard.modeling.machine_learning.data_preparation import EISMLModelDataPreparation from eis_qgis_plugin.wizard.modeling.model_data_table import ModelTrainingDataTable -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path, set_placeholder_text # from eis_qgis_plugin.processing.algorithms.prediction.fuzzy_overlay import ( diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/application.py b/eis_qgis_plugin/wizard/modeling/machine_learning/application.py index 65639357..251fa44f 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/application.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/application.py @@ -16,13 +16,19 @@ from qgis.utils import iface from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import add_output_layer_to_group, apply_color_ramp_to_raster_layer, get_output_layer_name +from eis_qgis_plugin.utils.algorithm_execution import AlgorithmExecutor +from eis_qgis_plugin.utils.misc_utils import ( + add_output_layer_to_group, + apply_color_ramp_to_raster_layer, + get_output_layer_name, + get_output_path, + set_filter, + set_placeholder_text, +) +from eis_qgis_plugin.utils.model_feedback import EISProcessingFeedback +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager from eis_qgis_plugin.wizard.modeling.model_data_table import ModelDataTable from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager -from eis_qgis_plugin.wizard.utils.algorithm_execution import AlgorithmExecutor -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path, set_filter, set_placeholder_text -from eis_qgis_plugin.wizard.utils.model_feedback import EISProcessingFeedback -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager FORM_CLASS: QWidget = load_ui("modeling/application.ui") diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/ml_model_main.py b/eis_qgis_plugin/wizard/modeling/machine_learning/ml_model_main.py index a1a79d04..61087ea6 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/ml_model_main.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/ml_model_main.py @@ -2,13 +2,13 @@ from qgis.PyQt.QtWidgets import QTabWidget, QVBoxLayout, QWidget +from eis_qgis_plugin.utils.misc_utils import CLASSIFIER_METRICS, REGRESSOR_METRICS, ModelKind from eis_qgis_plugin.wizard.modeling.machine_learning.application import EISMLModelApplication from eis_qgis_plugin.wizard.modeling.machine_learning.data_preparation import EISMLModelDataPreparation from eis_qgis_plugin.wizard.modeling.machine_learning.testing import EISMLModelTesting from eis_qgis_plugin.wizard.modeling.machine_learning.training import EISMLModelTraining from eis_qgis_plugin.wizard.modeling.machine_learning.training_mlp import EISMLModelTrainingMLP from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager -from eis_qgis_plugin.wizard.utils.misc_utils import CLASSIFIER_METRICS, REGRESSOR_METRICS, ModelKind class EISMLModel(QWidget): diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/models/gradient_boosting.py b/eis_qgis_plugin/wizard/modeling/machine_learning/models/gradient_boosting.py index 5ea72670..aa5454d3 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/models/gradient_boosting.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/models/gradient_boosting.py @@ -3,8 +3,8 @@ from qgis.gui import QgsDoubleSpinBox, QgsSpinBox from qgis.PyQt.QtWidgets import QComboBox, QLabel +from eis_qgis_plugin.utils.misc_utils import ModelKind from eis_qgis_plugin.wizard.modeling.machine_learning.ml_model_main import EISMLModel -from eis_qgis_plugin.wizard.utils.misc_utils import ModelKind class EISWizardGradientBoosting(EISMLModel): diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/models/logistic_regression.py b/eis_qgis_plugin/wizard/modeling/machine_learning/models/logistic_regression.py index 66472103..fc24c3e8 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/models/logistic_regression.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/models/logistic_regression.py @@ -3,8 +3,8 @@ from qgis.gui import QgsSpinBox from qgis.PyQt.QtWidgets import QComboBox, QLabel +from eis_qgis_plugin.utils.misc_utils import ModelKind from eis_qgis_plugin.wizard.modeling.machine_learning.ml_model_main import EISMLModel -from eis_qgis_plugin.wizard.utils.misc_utils import ModelKind class EISWizardLogisticRegression(EISMLModel): diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/models/mlp.py b/eis_qgis_plugin/wizard/modeling/machine_learning/models/mlp.py index 6ea24b40..d1ad98b1 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/models/mlp.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/models/mlp.py @@ -3,8 +3,8 @@ from qgis.gui import QgsDoubleSpinBox, QgsSpinBox from qgis.PyQt.QtWidgets import QCheckBox, QComboBox, QLabel, QLineEdit +from eis_qgis_plugin.utils.misc_utils import ModelKind from eis_qgis_plugin.wizard.modeling.machine_learning.ml_model_main import EISMLModel -from eis_qgis_plugin.wizard.utils.misc_utils import ModelKind class EISWizardMLP(EISMLModel): diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/models/random_forest.py b/eis_qgis_plugin/wizard/modeling/machine_learning/models/random_forest.py index bae2ac15..216d67fc 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/models/random_forest.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/models/random_forest.py @@ -3,8 +3,8 @@ from qgis.gui import QgsSpinBox from qgis.PyQt.QtWidgets import QComboBox, QLabel +from eis_qgis_plugin.utils.misc_utils import ModelKind from eis_qgis_plugin.wizard.modeling.machine_learning.ml_model_main import EISMLModel -from eis_qgis_plugin.wizard.utils.misc_utils import ModelKind class EISWizardRandomForest(EISMLModel): diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/testing.py b/eis_qgis_plugin/wizard/modeling/machine_learning/testing.py index 8c9b4ecf..05d388c2 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/testing.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/testing.py @@ -18,13 +18,19 @@ from qgis.utils import iface from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import add_output_layer_to_group, apply_color_ramp_to_raster_layer, get_output_layer_name +from eis_qgis_plugin.utils.algorithm_execution import AlgorithmExecutor +from eis_qgis_plugin.utils.misc_utils import ( + add_output_layer_to_group, + apply_color_ramp_to_raster_layer, + get_output_layer_name, + get_output_path, + set_filter, + set_placeholder_text, +) +from eis_qgis_plugin.utils.model_feedback import EISProcessingFeedback +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager from eis_qgis_plugin.wizard.modeling.model_data_table import ModelDataTable from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager -from eis_qgis_plugin.wizard.utils.algorithm_execution import AlgorithmExecutor -from eis_qgis_plugin.wizard.utils.misc_utils import get_output_path, set_filter, set_placeholder_text -from eis_qgis_plugin.wizard.utils.model_feedback import EISProcessingFeedback -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager FORM_CLASS: QWidget = load_ui("modeling/testing.ui") diff --git a/eis_qgis_plugin/wizard/modeling/machine_learning/training.py b/eis_qgis_plugin/wizard/modeling/machine_learning/training.py index f7dfaf73..4cd03c2d 100644 --- a/eis_qgis_plugin/wizard/modeling/machine_learning/training.py +++ b/eis_qgis_plugin/wizard/modeling/machine_learning/training.py @@ -19,11 +19,11 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.algorithm_execution import AlgorithmExecutor +from eis_qgis_plugin.utils.misc_utils import set_filter +from eis_qgis_plugin.utils.model_feedback import EISProcessingFeedback from eis_qgis_plugin.wizard.modeling.ml_model_info import MLModelInfo from eis_qgis_plugin.wizard.modeling.model_data_table import ModelTrainingDataTable -from eis_qgis_plugin.wizard.utils.algorithm_execution import AlgorithmExecutor -from eis_qgis_plugin.wizard.utils.misc_utils import set_filter -from eis_qgis_plugin.wizard.utils.model_feedback import EISProcessingFeedback FORM_CLASS: QWidget = load_ui("modeling/training.ui") diff --git a/eis_qgis_plugin/wizard/plots/plot_template.py b/eis_qgis_plugin/wizard/plots/plot_template.py index d1dc8707..843a6211 100644 --- a/eis_qgis_plugin/wizard/plots/plot_template.py +++ b/eis_qgis_plugin/wizard/plots/plot_template.py @@ -5,7 +5,7 @@ from qgis.PyQt.QtWidgets import QSizePolicy, QWidget from qgis.utils import iface -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager class EISPlot(QWidget): diff --git a/eis_qgis_plugin/wizard/utils/misc_utils.py b/eis_qgis_plugin/wizard/utils/misc_utils.py deleted file mode 100644 index 3680df4b..00000000 --- a/eis_qgis_plugin/wizard/utils/misc_utils.py +++ /dev/null @@ -1,43 +0,0 @@ -from enum import Enum -from typing import Literal - -from qgis.gui import QgsFileWidget -from qgis.PyQt.QtWidgets import QLineEdit - -TEMPORARY_OUTPUT = 'TEMPORARY_OUTPUT' -CLASSIFIER_METRICS = ["Accuracy", "Precision", "Recall", "F1"] -REGRESSOR_METRICS = ["MSE", "RMSE", "MAE", "R2"] - -FILE_FILTERS = { - "raster": "GeoTiff files (*.tif *.tiff)", - "vector": "", - "joblib": "Joblib files (*.joblib)" -} - -class ModelKind(str, Enum): - CLASSIFIER = "classifier" - REGRESSOR = "regressor" - - -def set_placeholder_text( - file_widget: QgsFileWidget, placeholder_text = "[Save to temporary file]" -) -> bool: - """Tries to find QLineEdit in a QgsFileWidget and set its placeholder text.""" - line_edit = file_widget.findChild(QLineEdit) - if line_edit: - line_edit.setPlaceholderText(placeholder_text) - return True - return False - - -def set_filter(file_widget: QgsFileWidget, filter: Literal["raster", "vector", "joblib"]) -> bool: - "Tries to set set specified filter to a QgsFileWidget." - if filter in FILE_FILTERS.keys(): - file_widget.setFilter(FILE_FILTERS[filter]) - return True - return False - - -def get_output_path(file_widget: QgsFileWidget) -> str: - fp = file_widget.filePath() - return fp if fp != "" else TEMPORARY_OUTPUT diff --git a/eis_qgis_plugin/wizard/wizard_about.py b/eis_qgis_plugin/wizard/wizard_about.py index 60cd98c9..20079313 100644 --- a/eis_qgis_plugin/wizard/wizard_about.py +++ b/eis_qgis_plugin/wizard/wizard_about.py @@ -4,7 +4,7 @@ from qgis.PyQt.QtWidgets import QDialog, QLabel, QWidget from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import PLUGIN_PATH +from eis_qgis_plugin.utils.misc_utils import PLUGIN_PATH FORM_CLASS: QDialog = load_ui("wizard_about.ui") diff --git a/eis_qgis_plugin/wizard/wizard_history.py b/eis_qgis_plugin/wizard/wizard_history.py index 6c07bc49..b055ceeb 100644 --- a/eis_qgis_plugin/wizard/wizard_history.py +++ b/eis_qgis_plugin/wizard/wizard_history.py @@ -14,11 +14,10 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import clear_layout +from eis_qgis_plugin.utils.misc_utils import clear_layout, set_filter from eis_qgis_plugin.wizard.modeling.ml_model_info import MLModelInfo from eis_qgis_plugin.wizard.modeling.model_data_table import ModelHistoryTable from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager -from eis_qgis_plugin.wizard.utils.misc_utils import set_filter FORM_CLASS: QDialog = load_ui("results/wizard_model_history.ui") diff --git a/eis_qgis_plugin/wizard/wizard_main.py b/eis_qgis_plugin/wizard/wizard_main.py index f576ca4c..43ff9c7f 100644 --- a/eis_qgis_plugin/wizard/wizard_main.py +++ b/eis_qgis_plugin/wizard/wizard_main.py @@ -6,7 +6,7 @@ from qgis.PyQt.QtWidgets import QDialog, QListWidget, QStackedWidget, QVBoxLayout, QWidget from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.utils import PLUGIN_PATH +from eis_qgis_plugin.utils.misc_utils import PLUGIN_PATH from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager from eis_qgis_plugin.wizard.wizard_about import EISWizardAbout from eis_qgis_plugin.wizard.wizard_history import EISWizardHistory diff --git a/eis_qgis_plugin/wizard/wizard_modeling.py b/eis_qgis_plugin/wizard/wizard_modeling.py index 2f2d5d0e..1e2b21b9 100644 --- a/eis_qgis_plugin/wizard/wizard_modeling.py +++ b/eis_qgis_plugin/wizard/wizard_modeling.py @@ -6,13 +6,13 @@ ) from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui +from eis_qgis_plugin.utils.misc_utils import ModelKind from eis_qgis_plugin.wizard.modeling.fuzzy_modeling.fuzzy import EISWizardFuzzyModeling from eis_qgis_plugin.wizard.modeling.machine_learning.models.gradient_boosting import EISWizardGradientBoosting from eis_qgis_plugin.wizard.modeling.machine_learning.models.logistic_regression import EISWizardLogisticRegression from eis_qgis_plugin.wizard.modeling.machine_learning.models.mlp import EISWizardMLP from eis_qgis_plugin.wizard.modeling.machine_learning.models.random_forest import EISWizardRandomForest from eis_qgis_plugin.wizard.modeling.model_manager import ModelManager -from eis_qgis_plugin.wizard.utils.misc_utils import ModelKind FORM_CLASS: QDialog = load_ui("wizard_modeling.ui") diff --git a/eis_qgis_plugin/wizard/wizard_settings.py b/eis_qgis_plugin/wizard/wizard_settings.py index 0110a901..332be901 100644 --- a/eis_qgis_plugin/wizard/wizard_settings.py +++ b/eis_qgis_plugin/wizard/wizard_settings.py @@ -15,7 +15,7 @@ from eis_qgis_plugin.processing.eis_toolkit_invoker import EISToolkitInvoker from eis_qgis_plugin.qgis_plugin_tools.tools.resources import load_ui -from eis_qgis_plugin.wizard.utils.settings_manager import EISSettingsManager +from eis_qgis_plugin.utils.settings_manager import EISSettingsManager FORM_CLASS: QDialog = load_ui("wizard_settings.ui")