code: def _verify_prop(self, obj, obj_name, s):
      val = (
          lambda x: x(s, self.children) if callable(x) else x
      )  # noqa: E731
  
      if s.warn_empty and obj in [None, {}]:
          c_f.LOGGER.warning("%s is empty" % obj_name)
      if obj is not None:
          keys = val(s.keys)
          for k in obj.keys():
              assert any(
                  pattern.match(k)
                  for pattern in c_f.regex_wrapper(keys)
              ), "%s keys must be one of %s" % (
                  obj_name,
                  ", ".join(keys),
              )
          for imp_key in val(s.important):
              if not any(
                  c_f.regex_wrapper(imp_key).match(k) for k in obj
              ):
                  c_f.LOGGER.warning(
                      '%s is missing "%s"' % (obj_name, imp_key)
                  )
          for ess_key in val(s.essential):
              assert any(
                  c_f.regex_wrapper(ess_key).match(k) for k in obj
              ), '%s must contain "%s"' % (obj_name, ess_key)
  
file_path: pytorch-metric-learning/src/pytorch_metric_learning/utils/key_checker.py
imports: from .None import common_functions
label_desc: Use image node_id 5 for calling the KeyCheckerDict obj's underlying member method code with example usage: obj._verify_prop(obj, obj_name, s) without return types