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

Reply via email to