'Returns a dictionary of {filename: {attributes}} for all files
on the remote system (where the MLSD command is supported).
:param path: full path to the remote directory
:type path: str'

def describe_directory(self, path):

    conn = self.get_conn()
    conn.cwd(path)
    try:
        files = dict(conn.mlsd())
    except AttributeError:
        files = dict(mlsd(conn))
    return files
