classSnowflakeTargetConfigs(BaseTargetConfigs):""" Target configs contain credentials and settings, specific to Snowflake. To find valid keys, head to the [Snowflake Profile]( https://docs.getdbt.com/reference/warehouse-profiles/snowflake-profile) page. Attributes: connector: The connector to use. Examples: Load stored SnowflakeTargetConfigs: ```python from prefect_dbt.cli.configs import SnowflakeTargetConfigs snowflake_target_configs = SnowflakeTargetConfigs.load("BLOCK_NAME") ``` Instantiate SnowflakeTargetConfigs. ```python from prefect_dbt.cli.configs import SnowflakeTargetConfigs from prefect_snowflake.credentials import SnowflakeCredentials from prefect_snowflake.database import SnowflakeConnector credentials = SnowflakeCredentials( user="user", password="password", account="account.region.aws", role="role", ) connector = SnowflakeConnector( schema="public", database="database", warehouse="warehouse", credentials=credentials, ) target_configs = SnowflakeTargetConfigs( connector=connector, extras={"retry_on_database_errors": True}, ) ``` """_block_type_name="dbt CLI Snowflake Target Configs"_logo_url="https://images.ctfassets.net/gm98wzqotmnx/5zE9lxfzBHjw3tnEup4wWL/9a001902ed43a84c6c96d23b24622e19/dbt-bit_tm.png?h=250"# noqa_documentation_url="https://prefecthq.github.io/prefect-dbt/cli/configs/snowflake/#prefect_dbt.cli.configs.snowflake.SnowflakeTargetConfigs"# noqatype:Literal["snowflake"]=Field(default="snowflake",description="The type of the target configs.")schema_:Optional[str]=Field(default=None,alias="schema",description="The schema to use for the target configs.",)connector:SnowflakeConnector=Field(default=...,description="The connector to use.")defget_configs(self)->Dict[str,Any]:""" Returns the dbt configs specific to Snowflake profile. Returns: A configs JSON. """all_configs_json=super().get_configs()# decouple prefect-snowflake from prefect-dbt# by mapping all the keys dbt snowflake accepts# https://docs.getdbt.com/reference/warehouse-setups/snowflake-setuprename_keys={# dbt"type":"type","schema":"schema","threads":"threads",# general"account":"account","user":"user","role":"role","database":"database","warehouse":"warehouse",# user and password"password":"password",# duo mfa / sso"authenticator":"authenticator",# key pair"private_key_path":"private_key_path","private_key_passphrase":"private_key_passphrase",# optional"client_session_keep_alive":"client_session_keep_alive","query_tag":"query_tag","connect_retries":"connect_retries","connect_timeout":"connect_timeout","retry_on_database_errors":"retry_on_database_errors","retry_all":"retry_all",}configs_json={}extras=self.extrasor{}forkeyinall_configs_json.keys():ifkeynotinrename_keysandkeynotinextras:# skip invalid keys, like fetch_size + poll_frequency_scontinue# rename key to something dbt profile expectsdbt_key=rename_keys.get(key)orkeyconfigs_json[dbt_key]=all_configs_json[key]returnconfigs_json
defget_configs(self)->Dict[str,Any]:""" Returns the dbt configs specific to Snowflake profile. Returns: A configs JSON. """all_configs_json=super().get_configs()# decouple prefect-snowflake from prefect-dbt# by mapping all the keys dbt snowflake accepts# https://docs.getdbt.com/reference/warehouse-setups/snowflake-setuprename_keys={# dbt"type":"type","schema":"schema","threads":"threads",# general"account":"account","user":"user","role":"role","database":"database","warehouse":"warehouse",# user and password"password":"password",# duo mfa / sso"authenticator":"authenticator",# key pair"private_key_path":"private_key_path","private_key_passphrase":"private_key_passphrase",# optional"client_session_keep_alive":"client_session_keep_alive","query_tag":"query_tag","connect_retries":"connect_retries","connect_timeout":"connect_timeout","retry_on_database_errors":"retry_on_database_errors","retry_all":"retry_all",}configs_json={}extras=self.extrasor{}forkeyinall_configs_json.keys():ifkeynotinrename_keysandkeynotinextras:# skip invalid keys, like fetch_size + poll_frequency_scontinue# rename key to something dbt profile expectsdbt_key=rename_keys.get(key)orkeyconfigs_json[dbt_key]=all_configs_json[key]returnconfigs_json