arguments (для макросов)
macros:
- name: <macro name>
arguments:
- name: <arg name>
type: <string>
description: <markdown_string>
Определение
Свойство arguments используется для определения параметров, которые может принимать ресурс. Каждый аргумент может иметь поле name, поле с типом, а также необязательные свойства, такие как description и default_value.
Для макросов вы можете добавить секцию arguments в свойства макроса. Это помогает документировать макрос и понимать, какие входные параметры он ожидает.
type
Начиная с dbt Core v1.10, вы можете включить проверку аргументов, которые вы определяете в документации макросов, с помощью флага изменения поведения validate_macro_args. Когда этот флаг включён, dbt будет:
- Определять аргументы на основе определения макроса и включать их в файл manifest.json, если аргументы не задокументированы.
- Выдавать предупреждение, если имена аргументов в документации не совпадают с определением макроса.
- Выдавать предупреждение, если поля
typeне соответствуют поддерживаемым форматам.
Подробнее см. в разделе о валидации аргументов макросов.
macros:
- name: <macro name>
arguments:
- name: <arg name>
type: <string>
Поддерживаемые типы
Начиная с версии dbt Core v1.10, при использовании флага validate_macro_args dbt поддерживает следующие типы аргументов макросов:
stringилиstrbooleanилиboolintegerилиintfloatanylist[<Type>], напримерlist[string]dict[<Type>, <Type>], напримерdict[str, list[int]]optional[<Type>], напримерoptional[integer]relationcolumn
Обратите внимание, что синтаксис типов напоминает Python, однако они используются исключительно для документации и валидации. Это не Python-типы.
Примеры
{% macro cents_to_dollars(column_name, scale=2) %}
({{ column_name }} / 100)::numeric(16, {{ scale }})
{% endmacro %}
macros:
- name: cents_to_dollars
arguments:
- name: column_name
type: column
description: "The name of a column"
- name: scale
type: integer
description: "The number of decimal places to round to. Default is 2."