Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Fix loading of blocks #64

Merged
merged 2 commits into from
Sep 19, 2022
Merged

Fix loading of blocks #64

merged 2 commits into from
Sep 19, 2022

Conversation

ahuang11
Copy link
Contributor

@ahuang11 ahuang11 commented Sep 19, 2022

Summary

With the latest release of v0.2.1, defining target configs in code and get_configs worked.

from prefect import flow
from prefect_dbt.cli.configs import SnowflakeTargetConfigs
from prefect_snowflake.credentials import SnowflakeCredentials
from prefect_snowflake.database import SnowflakeConnector

@flow()
def test_flow():
    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
    )
    return target_configs.get_configs()

print(test_flow())

However, when loading:

>>> from prefect_dbt.cli.configs import SnowflakeTargetConfigs
>>>
>>> snowflake_target_configs = SnowflakeTargetConfigs.load("my-snowflake")

Outputs:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/andrew/Applications/python/prefect/src/prefect/utilities/asyncutils.py", line 212, in wrapper
    return run_async_in_new_loop(async_fn, *args, **kwargs)
  File "/Users/andrew/Applications/python/prefect/src/prefect/utilities/asyncutils.py", line 141, in run_async_in_new_loop
    return anyio.run(partial(__fn, *args, **kwargs))
  File "/Users/andrew/mambaforge/envs/prefect-dbt/lib/python3.10/site-packages/anyio/_core/_eventloop.py", line 70, in run
    return asynclib.run(func, *args, **backend_options)
  File "/Users/andrew/mambaforge/envs/prefect-dbt/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 292, in run
    return native_run(wrapper(), debug=debug)
  File "/Users/andrew/mambaforge/envs/prefect-dbt/lib/python3.10/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/Users/andrew/mambaforge/envs/prefect-dbt/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
    return future.result()
  File "/Users/andrew/mambaforge/envs/prefect-dbt/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 287, in wrapper
    return await func(*args)
  File "/Users/andrew/Applications/python/prefect/src/prefect/blocks/core.py", line 652, in load
    return cls._from_block_document(block_document)
  File "/Users/andrew/Applications/python/prefect/src/prefect/blocks/core.py", line 554, in _from_block_document
    block._block_document_id = block_document.id
  File "pydantic/main.py", line 358, in pydantic.main.BaseModel.__setattr__
ValueError: "SnowflakeTargetConfigs" object has no field "_block_document_id"

Apparently, cannot forbid extra fields.

Relevant Issue(s)

Checklist

desertaxle
desertaxle previously approved these changes Sep 19, 2022
Co-authored-by: Alexander Streed <desertaxle@users.noreply.github.com>
@ahuang11 ahuang11 merged commit ef3ad6d into main Sep 19, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants