mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-08 00:05:09 -04:00
104 lines
4.5 KiB
Python
104 lines
4.5 KiB
Python
"""
|
|
***************************************************************************
|
|
Output.py
|
|
---------------------
|
|
Date : August 2012
|
|
Copyright : (C) 2012 by Victor Olaya
|
|
Email : volayaf at gmail dot com
|
|
***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************
|
|
"""
|
|
|
|
__author__ = "Victor Olaya"
|
|
__date__ = "August 2012"
|
|
__copyright__ = "(C) 2012, Victor Olaya"
|
|
|
|
import sys
|
|
|
|
from qgis.core import (
|
|
QgsExpressionContext,
|
|
QgsExpressionContextUtils,
|
|
QgsExpression,
|
|
QgsExpressionContextScope,
|
|
QgsProject,
|
|
QgsSettings,
|
|
QgsVectorFileWriter,
|
|
QgsProcessingUtils,
|
|
QgsProcessingParameterDefinition,
|
|
QgsProcessingOutputRasterLayer,
|
|
QgsProcessingOutputVectorLayer,
|
|
QgsProcessingOutputMapLayer,
|
|
QgsProcessingOutputHtml,
|
|
QgsProcessingOutputNumber,
|
|
QgsProcessingOutputString,
|
|
QgsProcessingOutputBoolean,
|
|
QgsProcessingOutputFolder,
|
|
QgsProcessingOutputMultipleLayers,
|
|
QgsProcessingOutputPointCloudLayer,
|
|
)
|
|
|
|
|
|
def getOutputFromString(s):
|
|
try:
|
|
if "|" in s and s.startswith("Output"):
|
|
tokens = s.split("|")
|
|
params = [t if str(t) != "None" else None for t in tokens[1:]]
|
|
clazz = getattr(sys.modules[__name__], tokens[0])
|
|
return clazz(*params)
|
|
else:
|
|
tokens = s.split("=")
|
|
if tokens[1].lower()[: len("output")] != "output":
|
|
return None
|
|
|
|
name = tokens[0]
|
|
description = tokens[0]
|
|
|
|
token = tokens[1].strip()[len("output") + 1 :]
|
|
out = None
|
|
|
|
if token.lower().strip().startswith("outputraster"):
|
|
out = QgsProcessingOutputRasterLayer(name, description)
|
|
elif token.lower().strip() == "outputvector":
|
|
out = QgsProcessingOutputVectorLayer(name, description)
|
|
elif token.lower().strip() == "outputlayer":
|
|
out = QgsProcessingOutputMapLayer(name, description)
|
|
elif token.lower().strip() == "outputmultilayers":
|
|
out = QgsProcessingOutputMultipleLayers(name, description)
|
|
# elif token.lower().strip() == 'vector point':
|
|
# out = OutputVector(datatype=[dataobjects.TYPE_VECTOR_POINT])
|
|
# elif token.lower().strip() == 'vector line':
|
|
# out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_LINE])
|
|
# elif token.lower().strip() == 'vector polygon':
|
|
# out = OutputVector(datatype=[OutputVector.TYPE_VECTOR_POLYGON])
|
|
# elif token.lower().strip().startswith('table'):
|
|
# out = OutputTable()
|
|
elif token.lower().strip().startswith("outputhtml"):
|
|
out = QgsProcessingOutputHtml(name, description)
|
|
# elif token.lower().strip().startswith('file'):
|
|
# out = OutputFile()
|
|
# ext = token.strip()[len('file') + 1:]
|
|
# if ext:
|
|
# out.ext = ext
|
|
elif token.lower().strip().startswith("outputfolder"):
|
|
out = QgsProcessingOutputFolder(name, description)
|
|
elif token.lower().strip().startswith("outputnumber"):
|
|
out = QgsProcessingOutputNumber(name, description)
|
|
elif token.lower().strip().startswith("outputstring"):
|
|
out = QgsProcessingOutputString(name, description)
|
|
elif token.lower().strip().startswith("outputboolean"):
|
|
out = QgsProcessingOutputBoolean(name, description)
|
|
elif token.lower().strip().startswith("outputPointCloud"):
|
|
out = QgsProcessingOutputPointCloudLayer(name, description)
|
|
# elif token.lower().strip().startswith('extent'):
|
|
# out = OutputExtent()
|
|
|
|
return out
|
|
except:
|
|
return None
|