docs: def lsl(hdfs_path, user=None, recursive=False):
      """
      Return a list of dictionaries of file properties.
  
      If ``hdfs_path`` is a file, there is only one item corresponding to
      the file itself; if it is a directory and ``recursive`` is
      :obj:`False`, each list item corresponds to a file or directory
      contained by it; if it is a directory and ``recursive`` is
      :obj:`True`, the list contains one item for every file or directory
      in the tree rooted at ``hdfs_path``.
      """
      host, port, path_ = path.split(hdfs_path, user)
      fs = hdfs(host, port, user)
      if not recursive:
          dir_list = fs.list_directory(path_)
      else:
          treewalk = fs.walk(path_)
          top = next(treewalk)
          if top['kind'] == 'directory':
              dir_list = list(treewalk)
          else:
              dir_list = [top]
      fs.close()
      return dir_list