def open(self, path, flags, attr):
return SFTP_OP_UNSUPPORTED<EOL>
Open a file on the server and create a handle for future operations
on that file.  On success, a new object subclassed from `.SFTPHandle`
should be returned.  This handle will be used for future operations
on the file (read, write, etc).  On failure, an error code such as
``SFTP_PERMISSION_DENIED`` should be returned.

``flags`` contains the requested mode for opening (read-only,
write-append, etc) as a bitset of flags from the ``os`` module:

    - ``os.O_RDONLY``
    - ``os.O_WRONLY``
    - ``os.O_RDWR``
    - ``os.O_APPEND``
    - ``os.O_CREAT``
    - ``os.O_TRUNC``
    - ``os.O_EXCL``

(One of ``os.O_RDONLY``, ``os.O_WRONLY``, or ``os.O_RDWR`` will always
be set.)

The ``attr`` object contains requested attributes of the file if it
has to be created.  Some or all attribute fields may be missing if
the client didn't specify them.

.. note:: The SFTP protocol defines all files to be in "binary" mode.
    There is no equivalent to Python's "text" mode.

:param str path:
    the requested path (relative or absolute) of the file to be opened.
:param int flags:
    flags or'd together from the ``os`` module indicating the requested
    mode for opening the file.
:param .SFTPAttributes attr:
    requested attributes of the file if it is newly created.
:return: a new `.SFTPHandle` or error code.