Seventh Report

What do I have completed this week?

  • Processing refactored in order to create a non-blocking implementation of the python console. The algorithm is processed in another thread asynchronously and the result is printed to the python console when the execution is finished.
  • AlgorithmDialog refactored to create a non-blocking dialog interface with a button to cancel the execution.
  • R algorithms refactored to support the progress signal.

What am I going to achieve for the next week?

  • Create a mechanism to hold the result of the algorithm taking into account that there can be several algorithms running at the same time.
  • Figure out a way to stop the execution of the algorithm. In third-party algorithms it can not be possible to just interrupt the thread loop and quit the thread. The only available option is to discard the result because the algorithms don’t have any kind of check-point that allows to verify once in while if we want to stop the execution. Kill the thread during the execution can be dangerous and it is not a good option.
  • Test the refactored algorithms.

Is there any blocking issue?

  • It took more time than I expect to create a non-blocking interface.
  • Quitting the thread execution turned out to be far more complicated due to the fact that the algorithms don’t provide any mechanism to allow quitting the thread loop during the execution.

8 thoughts on “Seventh Report

  1. It looks very good ! I would like to test asap.
    Is it possible to merge master into your branch ? I tried on my computer but I got some conflicts about Processing, so I gave up. Thanks.

    Like

  2. Ok, thanks.
    I tried to launch QGIS, but now I’ve the same bug with every plugin using Processing :
    File “/home/etienne/.qgis2/python/plugins/processing/gui/AlgorithmDialog.py”, line 19, in
    from findertools import sleep
    ImportError: No module named findertools

    Sorry I can’t create a ticket on your QGIS fork. findertools seems to be specific to mac (according to a quick look on google). I’m running kubuntu.

    Like

    • Hi Gustry,
      I made some changes in the python console in order store the algorithm results.
      Would you like to take look? A dictionary was added in general.py to store the result when the algorithm finishes. When the algorithm is finished the result is printed to the python console and the algorithm results are accessible via console through “processing.algResults”.

      The code was merged into the master branch.

      Have a nice weekend =)

      Like

Leave a comment