def create_connect_args(self, url: URL) -> Tuple[List[Any], Dict[str, Optional[Union[int, str]]]]: """Create connection arguments from the supplied URL.""" conn_args = { "autocommit": True, "DB": "C:\\Paradox", "ND": None, "AUT": 1, "CT": 4, "DQ": 0, "FOC": 0, "IS": 1, "USF": 0, "ULQ": 1, } opts = url.translate_connect_args() if not opts: opts = dict() opts["host"] = url.query.get("odbc_connect", None) if cg(opts, "host", False): supplied_args = { pair[0]: pair[1] for pair in map( lambda entry: entry.split("="), chain.from_iterable( map( lambda item: item.split(";"), unquote_plus(opts.get("host")).replace("?odbc_connect=", "").split("&"), ) ), ) } supplied_args = { value: cg(supplied_args, key) if not cl_in(value, supplied_args.keys()) else cg(supplied_args, value) for key, value in self.arg_name_map.items() } conn_args.update(supplied_args) if cg(conn_args, "driver", cg(conn_args, "drv")) is not None: conn_args["Driver"] = str(cg(conn_args, "driver", cg(conn_args, "drv"))) else: conn_args["Driver"] = "{Intersolv Paradox v3.11 (*.db)}" if cg(conn_args, "autocommit", cg(conn_args, "ac")) is not None: conn_args["autocommit"] = strtobool(cg(conn_args, "autocommit", cg(conn_args, "ac"))) else: conn_args["autocommit"] = True return ( [], {key: value for key, value in conn_args.items() if value is not None}, )
def create_connect_args( self, url: URL ) -> Tuple[List[Any], Dict[str, Optional[Union[int, str]]]]: """Create connection arguments from the supplied URL.""" conn_args = { "autocommit": True, "Driver": "{DataFlex Driver}", "DataPath": "C:\\DataFlexData", "UseSimulatedTransactions": "Y", "ConvertToLongVARCHAR": "Y", "ReturnEmptyStringsAsNULLs": "N", } opts = url.translate_connect_args() if not opts: opts = dict() opts["host"] = url.host or url.query.get("odbc_connect", "") if cg(opts, "host", False): supplied_args = { pair[0]: pair[1] for pair in map( lambda entry: entry.split("="), chain.from_iterable( map( lambda item: item.split(";"), unquote_plus(opts.get("host")).replace( "?odbc_connect=", "").split("&"), )), ) } supplied_args = { value: cg(supplied_args, key) if not cl_in(value, supplied_args.keys()) else cg( supplied_args, value) for key, value in self.arg_name_map.items() } conn_args.update({ "DSN": cg(supplied_args, "dsn"), "autocommit": strtobool( cg(conn_args, "autocommit", cg(conn_args, "ac", True))), "DBQ": cg(supplied_args, "DataPath", cg(supplied_args, "DBQ", conn_args.get("DataPath"))) }) ret_val = ( [], { key: value for key, value in conn_args.items() if all(( any((cl_in(key, self.arg_name_map.keys()), cl_in(key, self.arg_name_map.values()))), value is not None, )) }, ) return ret_val