"""Helper functions related to DB actions.""" import platform import warnings from sqlalchemy import text 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 = text(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_resultproxy_dict(result_proxy): """Take a SQLAlchemy ResultProxy, and parses the values to a dictionary.""" return [dict(zip(item.keys(), item)) for item in result_proxy]