def METHOD_NAME(self, authenticate_notify):
    self._stream.write(b"\0")
    first_line = self._auth._authentication_start()
    if first_line is not None:
        if type(first_line) is not str:
            raise AuthError("authenticator gave response not type str")
        self._stream.write(f"{first_line}\r\n".encode())
        self._stream.flush()
    def line_notify(line):
        try:
            resp = self._auth._receive_line(line)
            self._stream.write(Authenticator._format_line(resp))
            self._stream.flush()
            if resp == "BEGIN":
                self._readline_source.destroy()
                authenticate_notify(None)
                return True
        except Exception as e:
            authenticate_notify(e)
            return True
    readline_source = _AuthLineSource(self._stream)
    readline_source.set_callback(line_notify)
    readline_source.add_unix_fd(self._fd, GLib.IO_IN)
    readline_source.attach(self._main_context)
    self._readline_source = readline_source