def METHOD_NAME(self, url):
    opts = url.translate_connect_args(username='user')
    opts.update(url.query)
    util.coerce_kw_type(opts, 'allow_local_infile', bool)
    util.coerce_kw_type(opts, 'autocommit', bool)
    util.coerce_kw_type(opts, 'buffered', bool)
    util.coerce_kw_type(opts, 'compress', bool)
    util.coerce_kw_type(opts, 'connection_timeout', int)
    util.coerce_kw_type(opts, 'connect_timeout', int)
    util.coerce_kw_type(opts, 'consume_results', bool)
    util.coerce_kw_type(opts, 'force_ipv6', bool)
    util.coerce_kw_type(opts, 'get_warnings', bool)
    util.coerce_kw_type(opts, 'pool_reset_session', bool)
    util.coerce_kw_type(opts, 'pool_size', int)
    util.coerce_kw_type(opts, 'raise_on_warnings', bool)
    util.coerce_kw_type(opts, 'raw', bool)
    util.coerce_kw_type(opts, 'ssl_verify_cert', bool)
    util.coerce_kw_type(opts, 'use_pure', bool)
    util.coerce_kw_type(opts, 'use_unicode', bool)
    # unfortunately, MySQL/connector python refuses to release a
    # cursor without reading fully, so non-buffered isn't an option
    opts.setdefault('buffered', True)
    # FOUND_ROWS must be set in ClientFlag to enable
    # supports_sane_rowcount.
    if self.dbapi is not None:
        try:
            from mysql.connector.constants import ClientFlag
            client_flags = opts.get(
                'client_flags', ClientFlag.get_default())
            client_flags |= ClientFlag.FOUND_ROWS
            opts['client_flags'] = client_flags
        except Exception:
            pass
    return [[], opts]