Peter Bengtsson wrote at 2008-7-3 15:41 +0100: >from cStringIO import StringIO > >def workflowscripts2methods(self): > out = StringIO() > > print >>out, "Star converting workflow scripts into External Methods" > > pw = self.portal_workflow > for workflow in pw.objectValues('Workflow'): > for container in workflow.objectValues('Workflow Scripts'): > meta_type = 'Script (Python)' > for script in container.objectValues(meta_type): > assert script.meta_type == meta_type > print >>out, "script (%r, %s)" % (script.meta_type, >script.absolute_url_path()) > > > value = out.getvalue() > print value > return value > > >I'm getting an AssertionError on this!!!
For efficiency reasons, a "Folder" maintains the meta types used for filtering "object*" in a separate structure (this is the "_objects" attribute for normal folders). Your "AssertionError" indicates that this structure is inconsistent with the true objects. As long as a folder is only modified by the official "Folder" api ("_setObject", "_delObject" and higher level functions), consistency is garanteed. However, lower level functions can destroy the consistency. It is not a problem with "objectValues". The problem must be elsewhere. -- Dieter _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )