On Fri, 1 Feb 2019 at 19:18, Bjørn Burr Nyberg <bjorn.nyb...@uib.no> wrote: > > Hi Nyall, > > Thank you for your time! I really appreciate it and will definitely implement > those suggestions as well. > > I am using QGIS 3.4 however the bug seems to be resolved with the your > suggestions and if I save the script to the processing toolbox rather than > run it from the editor. >
Is it 3.4.4? Nyall > Kind regards, > Bjorn > > -----Original Message----- > From: Nyall Dawson <nyall.daw...@gmail.com> > Sent: Friday, February 01, 2019 12:21 AM > To: Bjørn Burr Nyberg <bjorn.nyb...@uib.no> > Cc: qgis-developer@lists.osgeo.org > Subject: Re: [QGIS-Developer] free variable 'self' referenced before > assignment in enclosing scope > > On Thu, 31 Jan 2019 at 02:46, Bjørn Burr Nyberg <bjorn.nyb...@uib.no> wrote: > > > > Dear QGIS community, > > > > In the spirit of open-source I am trying to convert a set of scripts that > > ive designed in ArcMap to QGIS 3.x. I hope that this will enable a broader > > community of individuals to use the workflows ive designed. The original > > scripts can be found at > > https://github.com/BjornNyberg/NetworkGT/tree/master/Scripts > > Great! > > > My problem is that in my first attempt to convert the scripts, QGIS either > > crashes or gives the following error. > > > > 2019-01-30T16:51:27 WARNING Traceback (most recent call last): > > File > > "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\processing\gui\AlgorithmDialog.py", > > line 238, in on_complete > > self.feedback.pushInfo(self.tr('Execution completed in > > {0:0.2f} seconds').format(time.time() - start_time)) > > NameError: free variable 'self' referenced before assignment > > in enclosing scope > > > > This was a bug fixed already - are you on QGIS 3.4? > > Anyone, the problem stems from this line: > > templines = st.run('native:splitwithlines',parameters) > > This should be: > > templines = > st.run('native:splitwithlines',parameters,context=context, > feedback=feedback) > > I.e. you need to pass the child algorithm the context and feedback > objects given to your algorithm, to allow that child algorithm to push > feedback messages and access existing map layers. > > > Two other suggestions: > > except Exception as e: > > feedback.pushInfo(QCoreApplication.translate('Sample_Area','%s'%(e))) > > Here this would be better as: > > except Exception as e: > > feedback.reportError(QCoreApplication.translate('Sample_Area','%s'%(e))) > > (reportError instead of pushInfo) > > And > > for part in geom: #Check for multipart polyline > parts.append(QgsGeometry.fromPolyline(part)) #intersected geometry > > This should be > > for part in geom.asGeometryCollection(): #Check for multipart polyline > parts.append(QgsGeometry.fromPolyline(part)) #intersected geometry > > (or, nicer for 3.4): > > for part in geom.parts(): #Check for multipart polyline > parts.append(QgsGeometry.fromPolyline(part)) #intersected geometry > > > Hope that helps! > Nyall > > > > > > > > I have established that this error occurs at the very end of the script > > when calling ' return {self.Branches:dest_id,self.Nodes:dest_id2}'. I do > > not believe that I have explicitly defined self anywhere in the > > processAlgorithm function itself. The algorithms themselves work as > > intended and the shapefiles are created before the program crashes. > > > > I am not a programmer by trait so I'm not entirely sure how to problem > > solve this error and any help would be most appreciated. I can also provide > > a test dataset if that is helpful. > > > > Cheers, > > Bjorn > > ----------------------------- > > Postdoctoral Fellow > > Department of Earth Science, University of Bergen > > PO Box 7803, 5020, Bergen, Norway > > +47 485 024 08 > > > > > > _______________________________________________ > > QGIS-Developer mailing list > > QGIS-Developer@lists.osgeo.org > > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer _______________________________________________ QGIS-Developer mailing list QGIS-Developer@lists.osgeo.org List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer