[QGIS-it-user] problemi con il mio primo processing script

Salve a tutti

ho deciso di provare a salvare come script da utilizzare nel motore di processing di qgis uno script python che uso spesso.
Lo script in questione è molto simile a RandomPointsVector.py a cui ho apporto le modifiche che ritenevo necessarie e poi ho salvato nella cartella

cd /home/giacomo/.local/share/QGIS/QGIS3/profiles/default/processing/scripts

Purtroppo però quando vado ad aprire QGIS 3.10 ottengo due messaggi di errore in serie.

Questo è il primo

NotImplementedError: QgsProcessingAlgorithm.name() is abstract and must be overridden

Traceback (most recent call last):

File “/usr/share/qgis/python/plugins/processing/script/ScriptUtils.py”, line 68, in loadAlgorithm

alg = algfactory.instances.pop().createInstance()

IndexError: pop from empty list

During handling of the above exception, another exception occurred:

NotImplementedError: QgsProcessingAlgorithm.name() is abstract and must be overridden

Questo è il secondo

NotImplementedError: QgsProcessingAlgorithm.initAlgorithm() is abstract and must be overridden

NotImplementedError: QgsProcessingAlgorithm.initAlgorithm() is abstract and must be overridden

Versione Python: 3.7.3 (default, Oct 7 2019, 12:56:13) [GCC 8.3.0]

Versione di QGIS: 3.10.1-A Coruña A Coruña, ef24c526da

Qualche consiglio?

Grazie

Ciao Giacomo,

hai cambiato il nome della classe dell'algoritmo? Se si, hai anche
cambiato il metodo create instance con il nuovo nome? Devi anche dare un
nome univoco al tuo algoritmo nel metodo name.

se invece non hai cambiato né il nome dela classe né il nome del metodo
né il nome allora dovresti farlo, altrimenti Processing vede due moduli
con lo stesso nome e fa casino

a presto

MAtteo

Ciao Matteo

ho risolto con le seguenti operazioni:

  1. ho aggiunto queste funzioni

def tr(self,string):
return QCoreApplication.translate(‘Processing’, string)

def createInstance(self):
return NetPointsPolygons()

  1. ho cambiato da

class NetPointsPolygons(QgisAlgorithm):

a

class NetPointsPolygons(QgsProcessingAlgorithm):

Ora funziona

grazie

Il giorno gio 2 gen 2020 alle ore 08:45 matteo <matteo.ghetta@gmail.com> ha scritto:

Ciao Giacomo,

hai cambiato il nome della classe dell’algoritmo? Se si, hai anche
cambiato il metodo create instance con il nuovo nome? Devi anche dare un
nome univoco al tuo algoritmo nel metodo name.

se invece non hai cambiato né il nome dela classe né il nome del metodo
né il nome allora dovresti farlo, altrimenti Processing vede due moduli
con lo stesso nome e fa casino

a presto

MAtteo


QGIS-it-user mailing list
QGIS-it-user@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/qgis-it-user