docs: def iter_items(self, depth: int = 1):
          '''
          get items from directory.
          '''
          if depth is not None and not isinstance(depth, int):
              raise TypeError
          def itor(root, d):
              if d is not None:
                  d -= 1
                  if d < 0:
                      return
              for name in os.listdir(root):
                  path = os.path.join(root, name)
                  node = NodeInfo.from_path(path)
                  yield node
                  if isinstance(node, DirectoryInfo):
                      yield from itor(path, d)
          yield from itor(self._path, depth)