[Zope-CMF] Weird error
Charlie Clark
charlie at begeistert.org
Thu Apr 17 07:52:28 EDT 2008
Hi,
whilst trying out some Zope 3 stuff (implementedBy, providedBy) I
managed to screw up some portal objects but I'm not quite sure how and
I've no idea how to fix them.
I effectively did something like:
for obj in folder.contentValues:
if IMyInterface.implementedBy(obj):
do_something_with_object()
If I understand things correctly this should not affect the objects
themselves at all but it does and leads to the following error when I
subsequently try and access them.
Traceback (most recent call last):
File "/opt/Zope-2.10/lib/python/ZODB/Connection.py", line 761, in
setstate
self._setstate(obj)
File "/opt/Zope-2.10/lib/python/ZODB/Connection.py", line 819, in
_setstate
self._reader.setGhostState(obj, p)
File "/opt/Zope-2.10/lib/python/ZODB/serialize.py", line 604, in
setGhostState
state = self.getState(pickle)
File "/opt/Zope-2.10/lib/python/ZODB/serialize.py", line 597, in
getState
return unpickler.load()
File "/opt/Zope-2.10/lib/python/zope/interface/declarations.py",
line 352, in implementedByFallback
raise TypeError("ImplementedBy called for non-factory", cls)
TypeError: (<exceptions.TypeError instance at 0x348cc88>, <built-in
function implementedBy>, (<Container at >,))
Any idea how I can fix this?
It turns out that I need to use .providedBy() rather
than .implementedBy() although I'm not too clear of the distinction.
Charlie
--
Charlie Clark
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-938-5360
GSM: +49-178-782-6226
More information about the Zope-CMF
mailing list