[PyKDE] weird runtime problem with _signature
Andreas Pakulat
apaku at gmx.de
Sat Jan 28 10:20:29 GMT 2006
Hi,
since upgrading to the latest PyQt4 snapshot I have an extremly weird
problem here with my "plugins".
Comparing 2 classes which have absolutely nothing to do with Qt fails
with:
/home/andreas/projects/pyfilmdbsimpleui/lib/pluginmanager.py:46: RuntimeWarning: tp_compare didn't return -1 or -2 for exception
if plugin == clz:
Traceback (most recent call last):
File "/home/andreas/projects/pyfilmdbsimpleui/widgets/mainwidget.py", line 65, in addMovie
dlg = SearchMovieDialog(self)
File "/home/andreas/projects/pyfilmdbsimpleui/widgets/searchmoviedialog.py", line 14, in __init__
plugins = pluginmanager.get_plugins(siteparserplugin.SiteParserPlugin)
File "/home/andreas/projects/pyfilmdbsimpleui/lib/pluginmanager.py", line 46, in get_plugins
if plugin == clz:
AttributeError: 'builtin_function_or_method' object has no attribute '_signature'
The code at that point is:
def get_plugins(clz):
""" Get plugin-class implementing clz"""
plugins = []
for plugin in PluginType.registered_plugins.values():
if plugin == clz:
continue
if issubclass(plugin, clz):
plugins.append(plugin)
return plugins
Where PluginType is a MetaClass collecting the plugins when the
containing module is imported:
class PluginType(type):
""" Metaclass for BasePlugin """
registered_plugins = {}
def __init__(cls, name, bases, dict):
super(PluginType, cls).__init__(name, bases, dict)
cls.registered_plugins[name] = cls
Now here comes the weird part: If I insert a print before the comparison
it works. If I debug through the function it works. Only when it runs
straight through I get the error...
This was working yesterday and from that error I guess it has something
to do with the decorators in PyQt4 (thats all I updated today) for
auto-connect.
Andreas
--
You will have good luck and overcome many hardships.
More information about the PyQt
mailing list