Bug report #18723

Adding a new function expression that also prints in the console halts QGIS

Added by Tudor Bărăscu over 2 years ago. Updated over 2 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:PyQGIS Console
Affected QGIS version:3.1(master) Regression?:No
Operating System:Debian Buster Easy fix?:No
Pull Request or Patch supplied:No Resolution:invalid
Crashes QGIS or corrupts data:Yes Copied to github as #:26610

Description

I have a point layer with 3 points.

I created the following function:

from qgis.core import *
from qgis.gui import *
from random import uniform

@qgsfunction(args='auto', group='QTIBIA Engineering')
def random_records(value1, value2, feature, parent):
    """ 
    Generates a random value..
    """ 
    print(value1, value2)
    return uniform(value1, value2)

If I put in the layer label: uniform(0, 100.5) QGIS halts on the third print.
So, printing from the function halts QGIS.

History

#1 Updated by Nyall Dawson over 2 years ago

  • Resolution set to invalid
  • Status changed from Open to Closed

This isn't safe to do - better to use the thread safe qgis logger classes, e.g. QgsLogger, QgsMessageLog

Also available in: Atom PDF