code: def dirs(self, path="/", **kwargs):
          # type: (Text, **Any) -> Iterator[Text]
          
          walker = self._make_walker(**kwargs)
          return walker.dirs(self.fs, path=path)
docs: Walk a filesystem, yielding absolute paths to directories.
  
          Arguments:
              path (str): A path to a directory.
  
          Keyword Arguments:
              ignore_errors (bool): If `True`, any errors reading a
                  directory will be ignored, otherwise exceptions will be
                  raised.
              on_error (callable): If ``ignore_errors`` is `False`, then
                  this callable will be invoked with a path and the exception
                  object. It should return `True` to ignore the error, or
                  `False` to re-raise it.
              search (str): If ``'breadth'`` then the directory will be
                  walked *top down*. Set to ``'depth'`` to walk *bottom up*.
              filter_dirs (list, optional): A list of patterns that will be used
                  to match directories paths. The walk will only open directories
                  that match at least one of these patterns.
              exclude_dirs (list): A list of patterns that will be used
                  to filter out directories from the walk, e.g. ``['*.svn',
                  '*.git']``.
              max_depth (int, optional): Maximum directory depth to walk.
  
          Returns:
              ~collections.Iterator: an iterator over directory paths
              (absolute from the filesystem root).
  
          This method invokes `Walker.dirs` with the bound `FS` object.