Hi developers,

I am developing a Python processing algorithm with some child algorithms. I am struggling to find a way to access a child algorithm's output vector layer. I want to use isChildAlgorithm=True in order to correctly set the feedback progress.

* If I use processing.run(...) with setting the parameter isChildAlgorithm to False (= default), the vector layer (via sink) is returned as a QgsVectorLayer. * If I set isChildAlgorithm to True, only the dest_id is returned as a string. I did not find a solution on how I retrieve the corresponding QgsVectorLayer. * Is it intentional that the vector layer is returned as QgsVectorLayer or str (dest_id), depending on the isChildAlgorithm parameter?
* How can I access output QgsVectorLayer from a child algorithm?

This is a minimum example where you can modify the is_child_algorithm parameter:

parameters = {
    'INPUT': QgsVectorLayer('Point?crs=epsg:31258', 'locations', "memory"),
    'DISTANCE': 10,
    'OUTPUT': 'TEMPORARY_OUTPUT'
}
result = processing.run("native:buffer", parameters, is_child_algorithm=False )
vector_layer = result['OUTPUT']
print(str(type(vector_layer)))

Best regards
Simon

--
Simon Gröchenig MSc
MTA - Mobility & Transport Analytics

Salzburg Research Forschungsgesellschaft mbH
Jakob-Haringer-Straße 5/3 | 5020 Salzburg, Austria
T: +43.662.2288-314
[email protected]
http://www.salzburgresearch.at
_______________________________________________
QGIS-Developer mailing list
[email protected]
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to