from typing import List import snowflake.connector import config from utils.snowflake.gras_data.queries import ArtistsByParticipantNoQuery from utils.snowflake.gras_data.models import ArtistsResult class ArtistsImporter: def __init__(self): self.snowflake_connector = snowflake.connector.connect( user=config.SNOWFLAKE_USER, password=config.SNOWFLAKE_PASS, account=config.SNOWFLAKE_ACCOUNT, database=config.PROJECTS_SNOWFLAKE_DB, schema=config.PROJECTS_SNOWFLAKE_SCHEMA, warehouse=config.SNOWFLAKE_WAREHOUSE, ) def fetch(self, gras_ids: List[str]) -> List[ArtistsResult]: with self.snowflake_connector as con: data = con.cursor().execute(ArtistsByParticipantNoQuery().artists_query(gras_ids)).fetchall() return [ArtistsResult._make(result) for result in data]