class_docstr: Identifies suboject of a class and applies
  functions recursively on them.
  
  Parameters
  ----------
  object: Any
      an object containing other (sub)objects
  base: Type
      the base class of the subobjects (to filter out other items)
  attribute: str
      the attribute containing the subobjects
  
  Note
  ----
  The current implementation is rather inefficient and could probably be
  improved a lot if this becomes critical
class_docstr_tok: ["Identifies","suboject","of","a","class","and","applies","functions","recursively","on","them",".","Parameters","--","--","--","--","--","object",":","Any","an","object","containing","other","(","sub",")","objects","base",":","Type","the","base","class","of","the","subobjects","(","to","filter","out","other","items",")","attribute",":","str","the","attribute","containing","the","subobjects","Note","--","--","The","current","implementation","is","rather","inefficient","and","could","probably","be","improved","a","lot","if","this","becomes","critical"]
docstr: Returns a dict {key: subobject}
docstr_tok: ["Returns","a","dict","{","key",":","subobject","}"]
code: def items(self) -> tp.Iterator[tp.Tuple[tp.Any, X]]:
      """Returns a dict {key: subobject}"""
      container = getattr(self.obj, self.attribute)
      if not isinstance(container, (list, dict)):
          raise TypeError("Subcaller only work on list and dict")
      iterator = (
          enumerate(container)
          if isinstance(container, list)
          else container.items()
      )
      for key, val in iterator:
          if isinstance(val, self.cls):
              yield key, val
  
imports: import os
  import sys
  import shutil
  import tempfile
  import subprocess
  from pathlib import Path
  import numpy
  from nevergrad.common import typing
label_desc: Use image node_id 3 for calling the Subobjects obj's underlying member method code with example usage: obj.items() without return types