def _parseRemoteInterface(self, iname, attrs): remote_attrs = {} remote_name = attrs.get("__remote_name__", iname) # and see if there is a __remote_name__ . We delete it because # InterfaceClass doesn't like arbitrary attributes if "__remote_name__" in attrs: del attrs["__remote_name__"] # determine all remotely-callable methods names = [ name for name in list(attrs.keys()) if ((type(attrs[name]) == types.FunctionType and not name. startswith("_")) or IConstraint.providedBy(attrs[name])) ] # turn them into constraints. Tag each of them with their name and # the RemoteInterface they came from. for name in names: m = attrs[name] if not IConstraint.providedBy(m): m = RemoteMethodSchema(method=m) m.name = name m.interface = self remote_attrs[name] = m # delete the methods, so zope's InterfaceClass doesn't see them. # Particularly necessary for things defined with IConstraints. del attrs[name] return remote_name, remote_attrs
def _parseRemoteInterface(self, iname, attrs): remote_attrs = {} remote_name = attrs.get("__remote_name__", iname) # and see if there is a __remote_name__ . We delete it because # InterfaceClass doesn't like arbitrary attributes if attrs.has_key("__remote_name__"): del attrs["__remote_name__"] # determine all remotely-callable methods names = [ name for name in attrs.keys() if ( (type(attrs[name]) == types.FunctionType and not name.startswith("_")) or IConstraint.providedBy(attrs[name]) ) ] # turn them into constraints. Tag each of them with their name and # the RemoteInterface they came from. for name in names: m = attrs[name] if not IConstraint.providedBy(m): m = RemoteMethodSchema(method=m) m.name = name m.interface = self remote_attrs[name] = m # delete the methods, so zope's InterfaceClass doesn't see them. # Particularly necessary for things defined with IConstraints. del attrs[name] return remote_name, remote_attrs
def adapt_obj_to_iconstraint(iface, t): if iface is not IConstraint: return None assert not IConstraint.providedBy(t) # not sure about this c = constraintMap.get(t, None) if c: return c for (typ, constraintMaker) in constraintTypeMap: if isinstance(t, typ): c = constraintMaker(t) if c: return c # RIFoo means accept either a Referenceable that implements RIFoo, or a # RemoteReference that points to just such a Referenceable. This is # hooked in by remoteinterface.py, when it calls addToConstraintTypeMap # we are the only way to make constraints raise UnknownSchemaType("can't make constraint from '%s' (%s)" % (t, type(t)))
def adapt_obj_to_iconstraint(iface, t): if iface is not IConstraint: return None assert not IConstraint.providedBy(t) # not sure about this c = constraintMap.get(t, None) if c: return c for (typ, constraintMaker) in constraintTypeMap: if isinstance(t, typ): c = constraintMaker(t) if c: return c # RIFoo means accept either a Referenceable that implements RIFoo, or a # RemoteReference that points to just such a Referenceable. This is # hooked in by remoteinterface.py, when it calls addToConstraintTypeMap # we are the only way to make constraints raise UnknownSchemaType("can't make constraint from '%s' (%s)" % (t, type(t)))