def download_graph_version_to_map(self):
        """
        Calls an algorithm to download the selected graph version
        :return:
        """
        graph_name, graph_version = self.get_selected_graph_name_and_version()
        if graph_version is None:
            return

        connection_index, connection = self.read_current_connection()

        parameters = {
            DownloadGraphVersionAlgorithm.SERVER_NAME: connection_index,
            DownloadGraphVersionAlgorithm.GRAPH_NAME: graph_name,
            DownloadGraphVersionAlgorithm.GRAPH_VERSION:
            graph_version['version']
        }

        try:
            processing.execAlgorithmDialog("Graphium:DownloadGraphVersion",
                                           parameters)
        except QgsProcessingException:
            self.iface.messageBar().pushMessage(
                "Warning",
                "Could not download the selected graph version",
                level=Qgis.Critical)
예제 #2
0
def run_script_from_file(filepath: str):
    """
    Runs a Python script from a given file. Supports loading processing scripts.
    :param filepath: The .py file to load.
    """
    import sys
    import inspect
    from qgis.processing import alg
    try:
        from qgis.core import QgsApplication, QgsProcessingAlgorithm, QgsProcessingFeatureBasedAlgorithm
        from qgis.processing import execAlgorithmDialog
        _locals = {}
        exec(open(filepath.replace("\\\\", "/").encode(sys.getfilesystemencoding())).read(), _locals)
        alginstance = None
        try:
            alginstance = alg.instances.pop().createInstance()
        except IndexError:
            for name, attr in _locals.items():
                if inspect.isclass(attr) and issubclass(attr, (QgsProcessingAlgorithm, QgsProcessingFeatureBasedAlgorithm)) and attr.__name__ not in ("QgsProcessingAlgorithm", "QgsProcessingFeatureBasedAlgorithm"):
                    alginstance = attr()
                    break
        if alginstance:
            alginstance.setProvider(QgsApplication.processingRegistry().providerById("script"))
            alginstance.initAlgorithm()
            execAlgorithmDialog(alginstance)
    except ImportError:
        pass
    def update_graph_version_validity(self, graph_version, attribute,
                                      valid_date):
        selected_name = self.get_selected_graph_name()

        connection_index, connection = self.read_current_connection()

        parameters = {
            UpdateGraphVersionAttributeAlgorithm.SERVER_NAME:
            connection_index,
            UpdateGraphVersionAttributeAlgorithm.GRAPH_NAME:
            selected_name,
            UpdateGraphVersionAttributeAlgorithm.GRAPH_VERSION:
            graph_version,
            UpdateGraphVersionAttributeAlgorithm.ATTRIBUTE:
            0 if attribute == 'validFrom' else 1,
            UpdateGraphVersionAttributeAlgorithm.NEW_VALUE:
            valid_date
        }

        try:
            processing.execAlgorithmDialog(
                "Graphium:UpdateGraphVersionValidity", parameters)
        except QgsProcessingException:
            self.iface.messageBar().pushMessage(
                "Warning",
                "Could not update graph version validity",
                level=Qgis.Critical)

        # update ui
        self.switch_to_graph_version_view()
예제 #4
0
def run_script_from_file(filepath: str):
    """
    Runs a Python script from a given file. Supports loading processing scripts.
    :param filepath: The .py file to load.
    """
    try:
        from qgis.processing import execAlgorithmDialog
    except ImportError:
        return

    alg_instance = processing_algorithm_from_script(filepath)
    if alg_instance:
        execAlgorithmDialog(alg_instance)
    def activate_graph_version(self):
        """
        Calls an algorithm to activate the selected graph version
        :return:
        """
        graph_name, graph_version = self.get_selected_graph_name_and_version()
        if graph_version is None:
            return

        connection_index, connection = self.read_current_connection()

        if graph_version['state'] == 'INITIAL':
            reply = QMessageBox.question(
                self.dlg, 'Graphium',
                'Do you really want to ACTIVATE the selected graph version?',
                QMessageBox.Yes, QMessageBox.No)
            if reply == QMessageBox.Yes:
                parameters = {
                    ActivateGraphVersionAlgorithm.SERVER_NAME:
                    connection_index,
                    ActivateGraphVersionAlgorithm.GRAPH_NAME:
                    graph_name,
                    ActivateGraphVersionAlgorithm.GRAPH_VERSION:
                    graph_version['version']
                }

                try:
                    processing.execAlgorithmDialog(
                        "Graphium:ActivateGraphVersion", parameters)
                except QgsProcessingException:
                    self.iface.messageBar().pushMessage(
                        "Warning",
                        "Could not activate graph version",
                        level=Qgis.Critical)

                # update ui
                self.switch_to_graph_version_view()
        else:
            self.iface.messageBar().pushMessage(
                "Warning",
                "Cannot activate graph version with state [" +
                graph_version['state'] + "]",
                level=Qgis.Warning)
    def add_graph_version(self):
        """
        Opens an algorithm dialog to add a new graph version
        """
        graph_name, graph_version = self.get_selected_graph_name_and_version(
            False)
        connection_index, connection = self.read_current_connection()

        parameters = {
            AddGraphVersionAlgorithm.SERVER_NAME:
            connection_index,
            AddGraphVersionAlgorithm.GRAPH_NAME:
            graph_name if graph_name else '',
            AddGraphVersionAlgorithm.GRAPH_VERSION:
            graph_version['version'] if graph_version else '',
            AddGraphVersionAlgorithm.OVERRIDE_IF_EXISTS:
            False
        }

        processing.execAlgorithmDialog("Graphium:AddGraphVersion", parameters)

        # update ui
        self.switch_to_graph_version_view()
예제 #7
0
 def loadMakeMosaic(self):
     from qgis import processing
     processing.execAlgorithmDialog('DSGToolsOpProvider:mosaic')
예제 #8
0
 def __init__(self, iface):
     super(Mosaic, self).__init__()
     '''Constructor'''
     processing.execAlgorithmDialog('DSGToolsOpProvider:mosaic')
예제 #9
0
 def run_gip2graphium(self):
     processing.execAlgorithmDialog("Graphium:gip2graphiumconverter")
예제 #10
0
 def run_routing(self):
     processing.execAlgorithmDialog("Graphium:routing")
예제 #11
0
 def run_mapmatcher(self):
     # https://github.com/qgis/QGIS/blob/master/python/plugins/processing/tools/general.py
     processing.execAlgorithmDialog("Graphium:mapmatcher")