"""Helper functions related to DB actions.""" import platform import warnings def run_bind_query(session, sql, params=None): """Run a snowflake query with bound params. Args: session (SQLAlchemy.orm.session.Session): database session sql (str): SQL to execute params (dict): key/val pairs for parameterized queries Returns: ResultProxy """ if params is None: params = dict() if platform.system() == 'Darwin': with warnings.catch_warnings(): warnings.simplefilter("ignore") results = session.execute(sql, params=params) else: results = session.execute(sql, params=params) return results def run_query(session, sql, params=None): """Run a snowflake query with params. Args: session (SQLAlchemy.orm.session.Session): database session sql (str): SQL to execute params (dict): key/val pairs for parameterized queries Returns: ResultProxy """ if params is None: params = dict() sql = sql.format(**params) if platform.system() == 'Darwin': with warnings.catch_warnings(): warnings.simplefilter("ignore") results = session.execute(sql) else: results = session.execute(sql) return results def zip_snowflake_dict(result_proxy): """Take a SQLAlchemy ResultProxy, and parses the values to a dictionary.""" return_list = [dict(zip(item.keys(), item)) for item in result_proxy] return return_list