https://prefect.io logo
k

kodai

08/08/2023, 9:17 AM
Hello. Referencing the following page: https://prefecthq.github.io/prefect-dbt/#__code_12 When I make changes to the code placeholders according to the information on the above page and execute the Python code, it results in an error. If anyone knows a solution, please share it. Version:
Copy code
Python Version: 3.11.4
prefect-dbt Version: 0.3.1
Code:
Copy code
from prefect_dbt.cloud import DbtCloudCredentials, DbtCloudJob

dbt_cloud_credentials = DbtCloudCredentials.load("BLOCK-NAME-PLACEHOLDER")
dbt_cloud_job = DbtCloudJob.load(
    dbt_cloud_credentials=dbt_cloud_credentials,
    job_id="JOB-ID-PLACEHOLDER"
)
Error Message:
Copy code
$ python create_job_block.py
Traceback (most recent call last):
  File "/Users/k/work/prefect/dbt-snowflake/create_job_block.py", line 4, in <module>
    dbt_cloud_job = DbtCloudJob.load(
                    ^^^^^^^^^^^^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/utilities/asyncutils.py", line 255, in coroutine_wrapper
    return call()
           ^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py", line 383, in __call__
    return self.result()
           ^^^^^^^^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py", line 283, in result
    return self.future.result(timeout=timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py", line 169, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/_internal/concurrency/calls.py", line 346, in _run_async
    result = await coro
             ^^^^^^^^^^
  File "/usr/local/Caskroom/miniconda/base/lib/python3.11/site-packages/prefect/client/utilities.py", line 51, in with_injected_client
    return await fn(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^
TypeError: Block.load() got an unexpected keyword argument 'dbt_cloud_credentials'
$
a

alex

08/08/2023, 1:47 PM
Hey @kodai! That example code in the docs looks incorrect and we’ll need to fix it. This code should work:
Copy code
from prefect_dbt.cloud import DbtCloudCredentials, DbtCloudJob

dbt_cloud_credentials = DbtCloudCredentials.load("BLOCK-NAME-PLACEHOLDER")
dbt_cloud_job = DbtCloudJob(
    dbt_cloud_credentials=dbt_cloud_credentials,
    job_id="JOB-ID-PLACEHOLDER"
).save("JOB-BLOCK-NAME-PLACEHOLDER")
Would you be interested in submitting a PR to
prefect-dbt
to fix this error?
k

kodai

08/08/2023, 11:41 PM
Thank you @alex! It worked correctly! I’ll submit the PR later!