"""create_label_top_releases_table task.""" from garcon import task from snowflake_connector.snowflake_conn import get_session from snowflake_connector.snowflake_conn import SQLLoader from activity_detector import base_config from activity_detector.flows.analytics_digest import config sql_loader = SQLLoader(config.QUERY_PATH) @task.decorate(timeout=600) def create_label_top_releases_table( activity, start_date, end_date, growth_start_date, growth_end_date): """Create summary analytics digest label top 10 releases table. Args: activity (ActivityWorker): garcon activity worker start_date (str): the start date end_date (str): the end date growth_start_date (str): the growth start date growth_end_date (str): the growth end date Returns: None """ create_sql = sql_loader.load_query('create_label_top_releases_table') create_sql = create_sql.replace('{env}', base_config.ENVIRONMENT) create_query_params = {'start_date': start_date, 'end_date': end_date} alter_sql = sql_loader.load_query('alter_streams_table') alter_sql = alter_sql.replace( '{table_name}', 'summary_analytics_digest_label_top_releases') update_sql = sql_loader.load_query('update_releases_streams_table') update_sql = update_sql.replace('{env}', base_config.ENVIRONMENT) update_sql = update_sql.replace( '{table_name}', 'summary_analytics_digest_label_top_releases') update_query_params = { 'start_date': growth_start_date, 'end_date': growth_end_date} with get_session() as session: session.execute(create_sql, create_query_params) session.execute(alter_sql) session.execute(update_sql, update_query_params)