def __init__(self, options=default_options, client_cls=Client):
if options is None:<EOL><INDENT>options = self.default_options<EOL><DEDENT>self.options = self.default_options.copy()<EOL>self.options.update(options)<EOL>self.driver = self.options<EOL>if self.options['<STR_LIT>']:<EOL><INDENT>log.setLevel(logging.DEBUG)<EOL>log.warning('<STR_LIT>')<EOL><DEDENT>self.client = client_cls(self.options)<EOL>self._api = {<EOL>'<STR_LIT>': Users(self.client),<EOL>'<STR_LIT>': Teams(self.client),<EOL>'<STR_LIT>': Channels(self.client),<EOL>'<STR_LIT>': Posts(self.client),<EOL>'<STR_LIT>': Files(self.client),<EOL>'<STR_LIT>': Preferences(self.client),<EOL>'<STR_LIT:status>': Status(self.client),<EOL>'<STR_LIT>': Emoji(self.client),<EOL>'<STR_LIT>': Reactions(self.client),<EOL>'<STR_LIT>': System(self.client),<EOL>'<STR_LIT>': Webhooks(self.client),<EOL>'<STR_LIT>': Commands(self.client),<EOL>'<STR_LIT>': Compliance(self.client),<EOL>'<STR_LIT>': Cluster(self.client),<EOL>'<STR_LIT>': Brand(self.client),<EOL>'<STR_LIT>': OAuth(self.client),<EOL>'<STR_LIT>': Roles(self.client),<EOL>'<STR_LIT>': SAML(self.client),<EOL>'<STR_LIT>': LDAP(self.client),<EOL>'<STR_LIT>': Elasticsearch(self.client),<EOL>'<STR_LIT>': DataRetention(self.client),<EOL>}<EOL>self.websocket = None<EOL>
:param options: A dict with the values from `default_options`
:type options: dict