[Kde-bindings] Review Request 114314: Fix traceback in Python runner plugins

Harald Sitter sitter at kde.org
Thu Dec 5 11:11:17 UTC 2013


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/114314/
-----------------------------------------------------------

Review request for kde-workspace and KDE Bindings.


Bugs: https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1258088
    http://bugs.kde.org/show_bug.cgi?id=https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1258088


Repository: kde-workspace


Description
-------

Plamascript.Runner is the base of python krunner plugins. These plugins
implement the C++ signals prepare, teardown, createRunOptions and
reloadConfiguration in actual methods (the signal wiring happens in
pyrunner.py which is the loading component). As a result of this calls
to any of these methods will fall through to plasmascript.Runner whenever
the actual runner does not implement them. However plasmascript.Runner is
missing the implicit 'self' argument such that one gets silly python
backtraces like

File "/usr/share/kde4/apps/plasma_scriptengine_python/pyrunner.py", line 90, in reloadConfiguration
    self.pyrunner.reloadConfiguration()

To prevent this from happening the functions now have the implicit self
argument.

Also see:
https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1258088

CCMAIL: 1258088 at bugs.launchpad.net


Diffs
-----

  plasma/generic/scriptengines/python/plasmascript.py 0ec38eb826cd8b7a052ed47081d05a3b644b03d1 

Diff: http://git.reviewboard.kde.org/r/114314/diff/


Testing
-------

Simple runner plugin only implementing match, run and reloadConfiguration, each is called and no exceptions are thrown WRT attribute errors.

from PyKDE4 import plasmascript
from PyKDE4.plasma import Plasma
from PyKDE4.kdeui import KIcon

class KittehRunner(plasmascript.Runner):

    def match(self, context):
        print "match"

    def run(self, context, match):
        print "run"

    def reloadConfiguration(self):
        print "reloadConfig"

def CreateRunner(parent):
    return KittehRunner(parent)


Thanks,

Harald Sitter

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20131205/d9cc9b1d/attachment.html>


More information about the Kde-bindings mailing list