Change in Intermediate Table Type for Python Incremental Models (dbt-snowflake 1.9.2 → 1.10.0)

The problem I’m having:

I have a dbt Python model configured with strategy = 'incremental'.

  • In dbt-snowflake v1.9.2, the intermediate table was being created as a temporary table.

  • After upgrading to dbt-snowflake v1.10.0, the Python model (via the stored procedure __dbt_sp) now saves the DataFrame as type = ‘TRANSIENT’ instead.

At the same time, I observed that SQL models do not create transient intermediate tables (dbt__temp or views) and continue to behave as before without any issues.

The context of why I’m trying to do this:

I would like to understand whether this change in behavior for Python models is intentional in dbt-snowflake 1.10.0 / higher versions, and if there is any configuration or flag available to control it.

My requirement is to have the stored procedure (__dbt_sp) create temporary tables or views, instead of transient tables.

What I’ve already tried:

  1. Tried setting transient = False, which results in the table being created as a permanent table
  2. Tried tmp_relation_type = 'view', which failed with the error:
    "python model supports only 'table'"

[base] Python models currently only support ‘table’ for tmp_relation_type but view was specified.
[base] > in macro dbt_snowflake_get_tmp_relation_type (macros/materializations/incremental.sql)
called by macro materialization_incremental_snowflake (macros/materializations/incremental.sql)
[base] > called by model DIGT_ALRT_DETC_MICR_BTCH_OTBG (resources/DIGT_ALRT_DETC_MICR_BTCH_OTBG.py)

Some example code or error messages

dbt config in python model :
        dbt.config(
            packages=["pandas", "numpy"],
            materialized="incremental",
        )