code: def keys(
      self,
      path: Union[AimObjectKey, AimObjectPath] = (),
      level: int = 0,
  ) -> Iterator[Union[AimObjectPath, AimObjectKey]]:
      if level > 0:
          raise NotImplementedError(
              "Level iteration not supported yet."
          )
      container = self.container
      for key in path:
          container = container[key]
      for key in container.keys():
          yield key
  
imports: from copy import deepcopy
  from aim.storage.types import CustomObjectBase
  from aim.storage.types import AimObject, AimObjectKey, AimObjectPath
  from aim.storage.treearrayview import TreeArrayView
  from aim.storage.treeview import TreeView
  from typing import Any, Iterator, Tuple, Union
label_desc: Use image node_id 8 for calling the InMemoryTreeView obj's underlying member method code with example usage: obj.keys(path, level) without return types