Skip to content

Commit d3a1c65

Browse files
Rashad Kanavathnyalldawson
authored andcommittedMar 20, 2019
Remove OtbSettings class and put constants for key names in OtbUtils
1 parent 07d17a0 commit d3a1c65

File tree

4 files changed

+57
-84
lines changed

4 files changed

+57
-84
lines changed
 

‎python/plugins/processing/algs/otb/OtbAlgorithmProvider.py

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636

3737
from processing.core.ProcessingConfig import ProcessingConfig, Setting
3838
from processing.algs.otb.OtbUtils import OtbUtils
39-
from processing.algs.otb.OtbSettings import OtbSettings
4039
from processing.algs.otb.OtbAlgorithm import OtbAlgorithm
4140

4241
class OtbAlgorithmProvider(QgsProcessingProvider):
@@ -50,35 +49,35 @@ def __init__(self):
5049
def load(self):
5150
group = self.name()
5251
ProcessingConfig.settingIcons[group] = self.icon()
53-
ProcessingConfig.addSetting(Setting(group, OtbSettings.ACTIVATE, self.tr('Activate'), True))
54-
ProcessingConfig.addSetting(Setting(group, OtbSettings.FOLDER,
52+
ProcessingConfig.addSetting(Setting(group, OtbUtils.ACTIVATE, self.tr('Activate'), True))
53+
ProcessingConfig.addSetting(Setting(group, OtbUtils.FOLDER,
5554
self.tr("OTB folder"),
5655
OtbUtils.otbFolder(),
5756
valuetype=Setting.FOLDER,
5857
validator=self.validateOtbFolder
5958
))
60-
ProcessingConfig.addSetting(Setting(group, OtbSettings.APP_FOLDER,
59+
ProcessingConfig.addSetting(Setting(group, OtbUtils.APP_FOLDER,
6160
self.tr("OTB application folder"),
6261
OtbUtils.appFolder(),
6362
valuetype=Setting.MULTIPLE_FOLDERS,
6463
validator=self.validateAppFolders
6564
))
66-
ProcessingConfig.addSetting(Setting(group, OtbSettings.SRTM_FOLDER,
65+
ProcessingConfig.addSetting(Setting(group, OtbUtils.SRTM_FOLDER,
6766
self.tr("SRTM tiles folder"),
6867
OtbUtils.srtmFolder(),
6968
valuetype=Setting.FOLDER
7069
))
71-
ProcessingConfig.addSetting(Setting(group, OtbSettings.GEOID_FILE,
70+
ProcessingConfig.addSetting(Setting(group, OtbUtils.GEOID_FILE,
7271
self.tr("Geoid file"),
7372
OtbUtils.geoidFile(),
7473
valuetype=Setting.FOLDER
7574
))
76-
ProcessingConfig.addSetting(Setting(group, OtbSettings.MAX_RAM_HINT,
75+
ProcessingConfig.addSetting(Setting(group, OtbUtils.MAX_RAM_HINT,
7776
self.tr("Maximum RAM to use"),
7877
OtbUtils.maxRAMHint(),
7978
valuetype=Setting.STRING
8079
))
81-
ProcessingConfig.addSetting(Setting(group, OtbSettings.LOGGER_LEVEL,
80+
ProcessingConfig.addSetting(Setting(group, OtbUtils.LOGGER_LEVEL,
8281
self.tr("Logger level"),
8382
OtbUtils.loggerLevel(),
8483
valuetype=Setting.STRING,
@@ -89,14 +88,14 @@ def load(self):
8988
return True
9089

9190
def unload(self):
92-
for setting in OtbSettings.keys():
91+
for setting in OtbUtils.settingNames():
9392
ProcessingConfig.removeSetting(setting)
9493

9594
def isActive(self):
96-
return ProcessingConfig.getSetting(OtbSettings.ACTIVATE)
95+
return ProcessingConfig.getSetting(OtbUtils.ACTIVATE)
9796

9897
def setActive(self, active):
99-
ProcessingConfig.setSettingValue(OtbSettings.ACTIVATE, active)
98+
ProcessingConfig.setSettingValue(OtbUtils.ACTIVATE, active)
10099

101100
def createAlgsList(self):
102101
algs = []

‎python/plugins/processing/algs/otb/OtbSettings.py

Lines changed: 0 additions & 60 deletions
This file was deleted.

‎python/plugins/processing/algs/otb/OtbUtils.py

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,51 +31,85 @@
3131
__revision__ = '$Format:%H$'
3232

3333
import os
34+
import sys
3435
import re
3536
import subprocess
3637

3738
from processing.core.ProcessingConfig import ProcessingConfig
3839
from qgis.core import (Qgis, QgsApplication, QgsMessageLog)
3940
from qgis.PyQt.QtCore import QCoreApplication
40-
from processing.algs.otb.OtbSettings import OtbSettings
41-
4241

4342
class OtbUtils:
43+
# Checkbox to enable/disable otb provider (bool).
44+
ACTIVATE = "OTB_ACTIVATE"
45+
46+
# Path to otb installation folder (string, directory).
47+
FOLDER = "OTB_FOLDER"
48+
49+
# Path to otb application folder. multiple paths are supported (string, directory).
50+
APP_FOLDER = "OTB_APP_FOLDER"
51+
52+
# A string to hold current version number. Useful for bug reporting.
53+
VERSION = "OTB_VERSION"
54+
55+
# Default directory were DEM tiles are stored. It should only contain ```.hgt`` or or georeferenced ``.tif`` files. Empty if not set (no directory set).
56+
SRTM_FOLDER = "OTB_SRTM_FOLDER"
57+
58+
# Default path to the geoid file that will be used to retrieve height of DEM above ellipsoid. Empty if not set (no geoid set).
59+
GEOID_FILE = "OTB_GEOID_FILE"
60+
61+
# Default maximum memory that OTB should use for processing, in MB. If not set, default value is 128 MB.
62+
# This is set through environment variable ``OTB_MAX_RAM_HINT``
63+
MAX_RAM_HINT = 'OTB_MAX_RAM_HINT'
64+
65+
# ``OTB_LOGGER_LEVEL``: Default level of logging for OTB. Should be one of ``DEBUG``, ``INFO``, ``WARNING``, ``CRITICAL`` or ``FATAL``, by increasing order of priority. Only messages with a higher priority than the level of logging will be displayed. If not set, default level is ``INFO``.
66+
LOGGER_LEVEL = 'OTB_LOGGER_LEVEL'
67+
68+
@staticmethod
69+
def settingNames():
70+
return [
71+
OtbUtils.ACTIVATE,
72+
OtbUtils.FOLDER,
73+
OtbUtils.SRTM_FOLDER,
74+
OtbUtils.GEOID_FILE,
75+
OtbUtils.LOGGER_LEVEL,
76+
OtbUtils.MAX_RAM_HINT
77+
]
4478

4579
@staticmethod
4680
def version():
47-
return ProcessingConfig.getSetting(OtbSettings.VERSION) or '0.0.0'
81+
return ProcessingConfig.getSetting(OtbUtils.VERSION) or '0.0.0'
4882

4983
@staticmethod
5084
def loggerLevel():
51-
return ProcessingConfig.getSetting(OtbSettings.LOGGER_LEVEL) or 'INFO'
85+
return ProcessingConfig.getSetting(OtbUtils.LOGGER_LEVEL) or 'INFO'
5286

5387
@staticmethod
5488
def maxRAMHint():
55-
return ProcessingConfig.getSetting(OtbSettings.MAX_RAM_HINT) or ''
89+
return ProcessingConfig.getSetting(OtbUtils.MAX_RAM_HINT) or ''
5690

5791
@staticmethod
5892
def otbFolder():
59-
if ProcessingConfig.getSetting(OtbSettings.FOLDER):
60-
return os.path.normpath(os.sep.join(re.split(r'\\|/', ProcessingConfig.getSetting(OtbSettings.FOLDER))))
93+
if ProcessingConfig.getSetting(OtbUtils.FOLDER):
94+
return os.path.normpath(os.sep.join(re.split(r'\\|/', ProcessingConfig.getSetting(OtbUtils.FOLDER))))
6195
else:
6296
return None
6397

6498
@staticmethod
6599
def appFolder():
66-
app_folder = ProcessingConfig.getSetting(OtbSettings.APP_FOLDER)
100+
app_folder = ProcessingConfig.getSetting(OtbUtils.APP_FOLDER)
67101
if app_folder:
68102
return os.pathsep.join(app_folder.split(';'))
69103
else:
70104
return None
71105

72106
@staticmethod
73107
def srtmFolder():
74-
return ProcessingConfig.getSetting(OtbSettings.SRTM_FOLDER) or ''
108+
return ProcessingConfig.getSetting(OtbUtils.SRTM_FOLDER) or ''
75109

76110
@staticmethod
77111
def geoidFile():
78-
return ProcessingConfig.getSetting(OtbSettings.GEOID_FILE) or ''
112+
return ProcessingConfig.getSetting(OtbUtils.GEOID_FILE) or ''
79113

80114
@staticmethod
81115
def getExecutableInPath(path, exe):

‎python/plugins/processing/tests/OtbAlgorithmsTest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
from processing.modeler.ModelerParametersDialog import ModelerParametersDialog
4949
from processing.algs.otb.OtbAlgorithm import OtbAlgorithm
5050
from processing.algs.otb.OtbAlgorithmProvider import OtbAlgorithmProvider
51-
from processing.algs.otb.OtbSettings import OtbSettings
51+
from processing.algs.otb.OtbUtils import OtbUtils
5252
from processing.algs.otb.OtbChoiceWidget import OtbParameterChoice, OtbChoiceWidgetWrapper
5353
import AlgorithmsTestBase
5454

@@ -165,8 +165,8 @@ def setUpClass(cls):
165165
from processing.core.Processing import Processing
166166
Processing.initialize()
167167
ProcessingConfig.setSettingValue("OTB_ACTIVATE", True)
168-
ProcessingConfig.setSettingValue(OtbSettings.FOLDER, OTB_INSTALL_DIR)
169-
ProcessingConfig.setSettingValue(OtbSettings.APP_FOLDER, os.path.join(OTB_INSTALL_DIR, 'lib', 'otb', 'applications'))
168+
ProcessingConfig.setSettingValue(OtbUtils.FOLDER, OTB_INSTALL_DIR)
169+
ProcessingConfig.setSettingValue(OtbUtils.APP_FOLDER, os.path.join(OTB_INSTALL_DIR, 'lib', 'otb', 'applications'))
170170
ProcessingConfig.readSettings()
171171
# Refresh OTB Algorithms after settings are changed.
172172
for p in QgsApplication.processingRegistry().providers():

0 commit comments

Comments
 (0)
Please sign in to comment.