summaryrefslogtreecommitdiff
path: root/src/zope/component/_declaration.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/component/_declaration.py')
-rw-r--r--src/zope/component/_declaration.py17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/zope/component/_declaration.py b/src/zope/component/_declaration.py
index 5e75d85..8de5b19 100644
--- a/src/zope/component/_declaration.py
+++ b/src/zope/component/_declaration.py
@@ -15,9 +15,8 @@
"""
import sys
-from zope.component._compat import CLASS_TYPES
-class adapter(object):
+class adapter:
"""
Decorator that declares that the decorated object adapts the given
*interfaces*.
@@ -25,17 +24,19 @@ class adapter(object):
This is commonly used in conjunction with :obj:`zope.interface.implementer`
to declare what adapting the *interfaces* will provide.
"""
+
def __init__(self, *interfaces):
self.interfaces = interfaces
def __call__(self, ob):
- if isinstance(ob, CLASS_TYPES):
+ if isinstance(ob, type):
ob.__component_adapts__ = _adapts_descr(self.interfaces)
else:
ob.__component_adapts__ = self.interfaces
return ob
+
def adapts(*interfaces):
frame = sys._getframe(1)
locals = frame.f_locals
@@ -49,16 +50,20 @@ def adapts(*interfaces):
locals['__component_adapts__'] = _adapts_descr(interfaces)
+
def adaptedBy(ob):
"""
- Return the *interfaces* that *ob* will adapt, as declared by :obj:`adapter`.
+ Return the *interfaces* that *ob* will adapt, as declared by
+ :obj:`adapter`.
"""
return getattr(ob, '__component_adapts__', None)
+
def getName(ob):
- return getattr(ob, '__component_name__', u'')
+ return getattr(ob, '__component_name__', '')
+
-class _adapts_descr(object):
+class _adapts_descr:
def __init__(self, interfaces):
self.interfaces = interfaces