docstr: We use a callable class to be able to change the ``__repr__``.
docstr_tok: ["We","use","a","callable","class","to","be","able","to","change","the","``","__repr__","``","."]
code: def __call__(self, inst, attr, value):
      """
      We use a callable class to be able to change the ``__repr__``.
      """
      if not self.interface.providedBy(value):
          msg = "'{name}' must provide {interface!r} which {value!r} doesn't.".format(
              name=attr.name, interface=self.interface, value=value
          )
          raise TypeError(
              msg,
              attr,
              self.interface,
              value,
          )
  
imports: import operator
  import re
  from contextlib import contextmanager
  from re import Pattern
  from ._config import get_run_validators, set_run_validators
  from ._make import _AndValidator, and_, attrib, attrs
  from .converters import default_if_none
  from .exceptions import NotCallableError
label_desc: Use image node_id 1 for calling the _ProvidesValidator obj's underlying member method code with example usage: obj.__call__(inst, attr, value) without return types