diff options
Diffstat (limited to 'logilab/common/interface.py')
-rw-r--r-- | logilab/common/interface.py | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/logilab/common/interface.py b/logilab/common/interface.py index 8248a27..4d4b92d 100644 --- a/logilab/common/interface.py +++ b/logilab/common/interface.py @@ -28,6 +28,7 @@ __docformat__ = "restructuredtext en" class Interface(object): """Base class for interfaces.""" + @classmethod def is_implemented_by(cls, instance: type) -> bool: return implements(instance, cls) @@ -37,7 +38,7 @@ def implements(obj: type, interface: type) -> bool: """Return true if the give object (maybe an instance or class) implements the interface. """ - kimplements = getattr(obj, '__implements__', ()) + kimplements = getattr(obj, "__implements__", ()) if not isinstance(kimplements, (list, tuple)): kimplements = (kimplements,) for implementedinterface in kimplements: @@ -62,7 +63,7 @@ def extend(klass: type, interface: type, _recurs: bool = False) -> None: kimplementsklass = tuple kimplements = [] kimplements.append(interface) - klass.__implements__ = kimplementsklass(kimplements) #type: ignore + klass.__implements__ = kimplementsklass(kimplements) # type: ignore for subklass in klass.__subclasses__(): extend(subklass, interface, _recurs=True) elif _recurs: |