Skip to content

Commit

Permalink
refactor: refactor utils further - combine root utils.py into misc_ut…
Browse files Browse the repository at this point in the history
…ils.py, move utils folder to plugin root (out of wizard folder)
  • Loading branch information
nmaarnio committed Sep 17, 2024
1 parent 4d1659b commit a070a61
Show file tree
Hide file tree
Showing 31 changed files with 91 additions and 102 deletions.
4 changes: 2 additions & 2 deletions eis_qgis_plugin/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
2 changes: 1 addition & 1 deletion eis_qgis_plugin/processing/eis_toolkit_invoker.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
13 changes: 0 additions & 13 deletions eis_qgis_plugin/settings.py

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
42 changes: 38 additions & 4 deletions eis_qgis_plugin/utils.py → eis_qgis_plugin/utils/misc_utils.py
Original file line number Diff line number Diff line change
@@ -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,
Expand All @@ -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(
Expand Down
File renamed without changes.
File renamed without changes.
10 changes: 5 additions & 5 deletions eis_qgis_plugin/wizard/mineral_proxies/proxy_processing.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion eis_qgis_plugin/wizard/mineral_proxies/proxy_view.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
2 changes: 1 addition & 1 deletion eis_qgis_plugin/wizard/modeling/fuzzy_modeling/fuzzy.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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 (

Expand Down
16 changes: 11 additions & 5 deletions eis_qgis_plugin/wizard/modeling/machine_learning/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
16 changes: 11 additions & 5 deletions eis_qgis_plugin/wizard/modeling/machine_learning/testing.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
6 changes: 3 additions & 3 deletions eis_qgis_plugin/wizard/modeling/machine_learning/training.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
2 changes: 1 addition & 1 deletion eis_qgis_plugin/wizard/plots/plot_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
43 changes: 0 additions & 43 deletions eis_qgis_plugin/wizard/utils/misc_utils.py

This file was deleted.

2 changes: 1 addition & 1 deletion eis_qgis_plugin/wizard/wizard_about.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
3 changes: 1 addition & 2 deletions eis_qgis_plugin/wizard/wizard_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand Down
Loading

0 comments on commit a070a61

Please sign in to comment.