@classmethod
def from_stat(cls, obj, filename=None):
    """
        Create an `.SFTPAttributes` object from an existing ``stat`` object (an
        object returned by `os.stat`).

        :param object obj: an object returned by `os.stat` (or equivalent).
        :param str filename: the filename associated with this file.
        :return: new `.SFTPAttributes` object with the same attribute fields.
        """
    attr = cls()
    attr.st_size = obj.st_size
    attr.st_uid = obj.st_uid
    attr.st_gid = obj.st_gid
    attr.st_mode = obj.st_mode
    attr.st_atime = obj.st_atime
    attr.st_mtime = obj.st_mtime
    if filename is not None:
        attr.filename = filename
    return attr
