def __of__(self, parent): base_self = aq_base(self) # Is it required ? if parent.__dict__.get(TypesTool.id) is not base_self: return OFSFolder.__of__(self, parent) return UnrestrictedMethod(base_self._migrateTypesTool)(parent)