@@ -61,8 +61,8 @@ def row_to_dict(self, row):
6161 returns: dictionary of values
6262 """
6363 return_dict = {}
64- for column in row ._asdict () .keys ():
65- value = getattr ( row , column )
64+ for column in row ._mapping .keys ():
65+ value = row . _mapping [ column ]
6666
6767 if isinstance (value , datetime .date ):
6868 return_dict [column ] = value .isoformat ()
@@ -114,6 +114,10 @@ def build_connection(self, kwargs_dict):
114114 default_driver = DEFAULT_KNOWN_DRIVER_CONNECTORS .get (connection ['drivername' ], None )
115115 if default_driver :
116116 connection ['drivername' ] = default_driver
117+
118+ # Fix issue with required query param
119+ # https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.query
120+ connection ['query' ] = {}
117121
118122 # Format the connection string
119123 return URL (** connection )
@@ -123,24 +127,8 @@ def db_connection(self, kwargs_dict):
123127 """Connect to the database and instantiate necessary methods to be used
124128 later.
125129 """
126- # Get the connection details from either config or from action params
127- connection = self .resolve_connection (kwargs_dict )
128-
129- # Update Driver with a connector
130- default_driver = DEFAULT_KNOWN_DRIVER_CONNECTORS .get (connection ['drivername' ], None )
131- if default_driver :
132- connection ['drivername' ] = default_driver
133-
134- # Check if query is in de connection
135- # We use a immutabledict as required by the documentation of sqlalchemy instead of a tuple.
136- # Because sqlalchemy made for this funtions its own 'datatype' that it knows how to handle.
137- # Aimes to be compatible with tuple but not fully.
138- # https://www.programcreek.com/python/example/58798/sqlalchemy.util.immutabledict
139- if 'query' not in connection :
140- connection ['query' ] = sqlalchemy .util .immutabledict ()
141-
142130 # Format the connection string
143- database_connection_string = URL ( ** connection )
131+ database_connection_string = self . build_connection ( kwargs_dict )
144132
145133 self .engine = sqlalchemy .create_engine (database_connection_string , echo = False )
146134 self .meta = sqlalchemy .MetaData ()
0 commit comments