"""Snowflake connector class for the Rhapsody tasks.""" from snowflake_connector.etl_connector import SQLLoader from snowflake_connector.etl_connector import SnowflakeSQLExecutor # Load SQL templates sql_loader = SQLLoader(__file__) class AppleExecutor(SnowflakeSQLExecutor): """Helper class to abstract Snowflake operations.""" def cleanup_staging_sos(self, params, labelids_clause=None): """Clean up staging_sos table. Args: params (dict): Params to bind with the SQL template. labelids_clause (str): AND clause to direct format the SQL template. """ sql_template = sql_loader.load_query('delete_from_staging_sos') sql_template = sql_template.format(labelids_clause=labelids_clause) sql, non_identifier_params = self.validator.format_identifiers( sql_template, params) self.execute(sql, params=non_identifier_params) def populate_staging_sos(self, params, labelids_clause=None): """Load staging staging_sos data with Apple Music data. Args: params (dict): Params to bind with the SQL template. labelids_clause (str): AND clause to direct format the SQL template. """ sql_template = sql_loader.load_query( 'populate_staging_with_apple_music_data') sql_template = sql_template.format(labelids_clause=labelids_clause) sql, non_identifier_params = self.validator.format_identifiers( sql_template, params) self.execute(sql, params=non_identifier_params)