<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hello everyone,</div><div><br></div>Is there a simple way to pipe processing algorithms within a processing script?<div>I know you can pipe algorithm using a model, but I'd like to pipe them directly inside my custom algorithm</div><div><br></div><div>I know I can call processing.run from within the processAlgorithm function, but I do not see how to use the result of this call as my custom algorithm output.</div><div><br></div><div>When you create a new processing script from the template, here is what you get</div><div><br></div><div>...</div><div><div>    def initAlgorithm(self, config=None):</div><div>        """</div><div>        Here we define the inputs and output of the algorithm, along</div><div>        with some other properties.</div><div>        """</div><div>        self.addParameter(</div><div>            QgsProcessingParameterFeatureSource(</div><div>                self.INPUT,</div><div>                <a href="http://self.tr">self.tr</a>('Input layer'),</div><div>                [QgsProcessing.TypeVectorAnyGeometry]</div><div>            )</div><div>        )</div><div>        self.addParameter(</div><div>            QgsProcessingParameterFeatureSink(</div><div>                self.OUTPUT,</div><div>                <a href="http://self.tr">self.tr</a>('Output layer')</div><div>            )</div><div>        )</div><div><br></div><div>    def processAlgorithm(self, parameters, context, feedback):</div><div>        """</div><div>        Here is where the processing itself takes place.</div><div>        """</div><div><br></div><div>        source = self.parameterAsSource(</div><div>            parameters,</div><div>            self.INPUT,</div><div>            context</div><div>        )</div><div>            </div><div>        (sink, dest_id) = self.parameterAsSink(</div><div>            parameters,</div><div>            self.OUTPUT,</div><div>            context,</div><div>            source.fields(),</div><div>            source.wkbType(),</div><div>            source.sourceCrs()</div><div>        )</div><div><br></div><div>        total = 100.0 / source.featureCount() if source.featureCount() else 0</div><div>        features = source.getFeatures()</div><div><br></div><div>        for current, feature in enumerate(features):</div><div>            if feedback.isCanceled():</div><div>                break</div><div>            sink.addFeature(feature, QgsFeatureSink.FastInsert)</div><div>            feedback.setProgress(int(current * total))</div><div><br></div><div>        if True:</div><div>            buffered_layer = processing.run("native:buffer", {</div><div>                'INPUT': dest_id,</div><div>                'DISTANCE': 1.5,</div><div>                'SEGMENTS': 5,</div><div>                'END_CAP_STYLE': 0,</div><div>                'JOIN_STYLE': 0,</div><div>                'MITER_LIMIT': 2,</div><div>                'DISSOLVE': False,</div><div>                'OUTPUT': 'memory:'</div><div>            }, context=context, feedback=feedback)['OUTPUT']</div><div>            </div><div>            </div><div>       <b><font color="#ff0000"> # How to return buffered_layer as my algorithm's OUTPUT ????  </font></b> </div><div>            </div><div>        return {self.OUTPUT: dest_id}</div></div><div>...</div></div></div></div></div>