ldo / dbussy

Python binding for D-Bus using asyncio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

unlisten_signal error

jimparis opened this issue · comments

if rulekey in listeners :
    listeners = listeners[rulekey]
    try :
        listeners.pop(listeners.index(func))
    except ValueError :
        pass
    #end try
    if len(listeners) == 0 :
        ignore = dbus.Error.init()
        self.connection.bus_remove_match \
          (
            _signal_rule(path, fallback, interface, name),
            ignore
          )
        del listeners[rulekey]

That del raises TypeError, because listeners is no longer the dictionary due to the assignment in line 2.

Just some confusion over the meaning of the listeners variable -- fixed in 9fa9c65. Thanks for the report.

Hello @ldo. When do you plan a new release? I'm suffering from the same issue but I don't want to fork.

Same issue with the current version?

@ido I guess you mean master? This issue was discovered after releasing version 1.1?

So from 1.1:

File "/home/sven/projects/dbussy-example/venv/lib/python3.5/site-packages/ravel.py", line 644, in unlisten_propchanged
    func = func,
  File "/home/sven/projects/dbussy-example/venv/lib/python3.5/site-packages/ravel.py", line 611, in unlisten_signal
    del listeners[rulekey]
TypeError: list indices must be integers or slices, not tuple

1.1 from master works

PyPI version is old, needs updating.