code: def __call__(self, attr, value):
      attr_name = attr.name
      if value is None and self.how in {"keys", "values"}:
          return
      if self.how == "keys":
          attr_name += " keys"
          for v in value:
              self.call(attr_name, v)
      elif self.how == "values":
          attr_name += " values"
          for v in value.values():
              self.call(attr_name, v)
      elif self.how is None:
          attr_name += " object"
          self.call(attr_name, value)
      else:
          raise ValueError(
              'Validator setting `how` must be one of ("keys", "values", None)'
          )
  
imports: from abc import ABC, abstractmethod
  from typing import TypeVar, Union
label_desc: Use image node_id 3 for calling the Validator obj's underlying member method code with example usage: obj.__call__(attr, value) without return types