diff options
Diffstat (limited to 'src/zope/interface/interface.py')
-rw-r--r-- | src/zope/interface/interface.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/zope/interface/interface.py b/src/zope/interface/interface.py index 53049e2..7447641 100644 --- a/src/zope/interface/interface.py +++ b/src/zope/interface/interface.py @@ -890,10 +890,10 @@ class InterfaceClass(_InterfaceClassBase): try: invariant(obj) except Invalid as error: - if errors is not None: - errors.append(error) - else: - raise + if errors is not None: + errors.append(error) + else: + raise if errors: raise Invalid(errors) @@ -925,18 +925,22 @@ class InterfaceClass(_InterfaceClassBase): keys.update(base.getDirectTaggedValueTags()) return keys - def __repr__(self): # pragma: no cover + def __repr__(self): try: return self._v_repr except AttributeError: - name = self.__name__ - m = self.__ibmodule__ - if m: - name = '%s.%s' % (m, name) + name = str(self) r = "<%s %s>" % (self.__class__.__name__, name) self._v_repr = r # pylint:disable=attribute-defined-outside-init return r + def __str__(self): + name = self.__name__ + m = self.__ibmodule__ + if m: + name = '%s.%s' % (m, name) + return name + def _call_conform(self, conform): try: return conform(self) |