def __init__(self, username, password, authoritative_source, auth_backend, auth_options=None):
if auth_options is None:<EOL><INDENT>auth_options = {}<EOL><DEDENT>self._logger = logging.getLogger(self.__class__.__name__)<EOL>self._cfg = NipapConfig()<EOL>self.username = username<EOL>self.password = password<EOL>self.auth_backend = auth_backend<EOL>self.authoritative_source = authoritative_source<EOL>self._auth_options = auth_options<EOL>
Constructor.

            Note that the instance variables not are set by the constructor but
            by the :func:`authenticate` method. Therefore, run the
            :func:`authenticate`-method before trying to access those
            variables!

            * `username` [string]
                Username to authenticate as.
            * `password` [string]
                Password to authenticate with.
            * `authoritative_source` [string]
                Authoritative source of the query.
            * `auth_backend` [string]
                Name of authentication backend.
            * `auth_options` [dict]
                A dict which, if authenticated as a trusted user, can override
                `username` and `authoritative_source`.