Dbt — передать возвращаемое значение макроса dbt в pythonPython

Программы на Python
Ответить
Anonymous
 Dbt — передать возвращаемое значение макроса dbt в python

Сообщение Anonymous »

Начиная с версии 1.5, dbt можно вызывать непосредственно из скрипта Python, например:

Код: Выделить всё

from dbt.cli.main import dbtRunner, dbtRunnerResult

# initialize
dbt = dbtRunner()

# create CLI args as a list of strings
cli_args = ["run-operation", "get_something_macro"]

# run the command
res: dbtRunnerResult = dbt.invoke(cli_args)

# inspect the results
for r in res.result:
print(f"{r}")
См.:
https://docs.getdbt.com/reference/programmatic-invocats
Допустим, у меня есть простой макрос который возвращает что-то, например:

Код: Выделить всё

{% macro get_current_catalog() %}

{{ return(target.catalog) }}

{% endmacro %}
Как мне получить возвращаемое значение в Python?
Моя единственная идея — использовать print("...") или log("...", info=True) внутри макроса и захватите стандартный вывод. Но я подумал, что должен быть лучший способ...
Может быть, кто-то из вас знает.

Подробнее здесь: https://stackoverflow.com/questions/771 ... -to-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»