def __call__(self, other, default=_notag): """ XXX use TypedInterfaceConfigurable as a fallback if this interface doesn't work for some reason """ result = InterfaceClass.__call__(self, other, _notag) if result is not _notag: return result from formless.annotate import TypedInterface if TypedInterface.providedBy(other): from formless.configurable import TypedInterfaceConfigurable return TypedInterfaceConfigurable(other) if default is _notag: raise TypeError('Could not adapt', other, self) return default