"""A common config for the sample SWF workflows.""" from itertools import chain import os def merge_configs(c1, c2): """Merge two flat configs. Values from c1 get overridden by values from c2 if the keys collide. Args: c1 (dict): first config. c2 (dict): second config. Returns: dict: merge result dict. """ c1 = c1 or {} c2 = c2 or {} return {k: v for k, v in chain(c1.items(), c2.items()) if v} # Default Snowflake connection parameters excluding credentials SF_PARAMS = { 'role': os.environ.get('SNOWFLAKE_ROLE'), 'warehouse': os.environ.get('SNOWFLAKE_WAREHOUSE'), 'db': os.environ.get('SNOWFLAKE_DATABASE'), 'schema': os.environ.get('SNOWFLAKE_SCHEMA') } # Snowflake connection credentials SF_CREDENTIALS = { 'user': os.environ.get('SNOWFLAKE_USER'), 'password': os.environ.get('SNOWFLAKE_PASSWORD'), 'account': os.environ.get('SNOWFLAKE_ACCOUNT') } SF_CONFIG = merge_configs(SF_PARAMS, SF_CREDENTIALS)