parameters: (ftp, path=".")
return_statement: return minfo
docstring: Fall back to using `dir` instead of `mlsd` if not supported.
  
      This parses a Linux style `ls -l` response to `dir`, but the response may
      be platform dependent.
  
      Parameters
      ----------
      ftp: ftplib.FTP
      path: str
          Expects to be given path, but defaults to ".".
docstring_summary: Fall back to using `dir` instead of `mlsd` if not supported.
docstring_tokens: Fall back to using dir instead of mlsd if not supported .
function: def _mlsd2(ftp, path="."):
      """
      Fall back to using `dir` instead of `mlsd` if not supported.
  
      This parses a Linux style `ls -l` response to `dir`, but the response may
      be platform dependent.
  
      Parameters
      ----------
      ftp: ftplib.FTP
      path: str
          Expects to be given path, but defaults to ".".
      """
      lines = []
      minfo = []
      ftp.dir(path, lines.append)
      for line in lines:
          line = line.split()
          this = (
              line[-1],
              {
                  "modify": " ".join(line[5:8]),
                  "unix.owner": line[2],
                  "unix.group": line[3],
                  "unix.mode": line[0],
                  "size": line[4],
              },
          )
          if "d" == this[1]["unix.mode"][0]:
              this[1]["type"] = "dir"
          else:
              this[1]["type"] = "file"
          minfo.append(this)
      return minfo
function_tokens: def _mlsd2 ( ftp , path = "." ) : lines = [ ] minfo = [ ] ftp . dir ( path , lines . append ) for line in lines : line = line . split ( ) this = ( line [ - 1 ] , { "modify" : " " . join ( line [ 5 : 8 ] ) , "unix.owner" : line [ 2 ] , "unix.group" : line [ 3 ] , "unix.mode" : line [ 0 ] , "size" : line [ 4 ] , } , ) if "d" == this [ 1 ] [ "unix.mode" ] [ 0 ] : this [ 1 ] [ "type" ] = "dir" else : this [ 1 ] [ "type" ] = "file" minfo . append ( this ) return minfo