Skip to content

Commit 3b65cca

Browse files
authored
fix: Set template fields for each operator
DAGs do not render properly when template fields do not exist. Since we were defining `template_fields` at the base class, these may not be present in all subclasses. We moved `template_fields` to each subclass to fix this.
1 parent e06caeb commit 3b65cca

File tree

2 files changed

+45
-4
lines changed

2 files changed

+45
-4
lines changed

airflow_dbt_python/operators/dbt.py

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@ class DbtBaseOperator(BaseOperator):
5353
"profiles_dir",
5454
"profile",
5555
"target",
56-
"select",
57-
"models",
58-
"exclude",
5956
"state",
6057
]
6158

@@ -315,6 +312,12 @@ class DbtRunOperator(DbtBaseOperator):
315312
https://docs.getdbt.com/reference/commands/run.
316313
"""
317314

315+
template_fields = DbtBaseOperator.template_fields + [
316+
"select",
317+
"models",
318+
"exclude",
319+
]
320+
318321
def __init__(
319322
self,
320323
full_refresh: Optional[bool] = None,
@@ -344,6 +347,11 @@ class DbtSeedOperator(DbtBaseOperator):
344347
https://docs.getdbt.com/reference/commands/seed.
345348
"""
346349

350+
template_fields = DbtBaseOperator.template_fields + [
351+
"select",
352+
"exclude",
353+
]
354+
347355
def __init__(
348356
self,
349357
full_refresh: Optional[bool] = None,
@@ -374,6 +382,12 @@ class DbtTestOperator(DbtBaseOperator):
374382
https://docs.getdbt.com/reference/commands/test.
375383
"""
376384

385+
template_fields = DbtBaseOperator.template_fields + [
386+
"select",
387+
"models",
388+
"exclude",
389+
]
390+
377391
def __init__(
378392
self,
379393
data: Optional[bool] = None,
@@ -405,6 +419,12 @@ class DbtCompileOperator(DbtBaseOperator):
405419
https://docs.getdbt.com/reference/commands/compile.
406420
"""
407421

422+
template_fields = DbtBaseOperator.template_fields + [
423+
"select",
424+
"models",
425+
"exclude",
426+
]
427+
408428
def __init__(
409429
self,
410430
parse_only: Optional[bool] = None,
@@ -490,6 +510,11 @@ class DbtSnapshotOperator(DbtBaseOperator):
490510
https://docs.getdbt.com/reference/commands/snapshot.
491511
"""
492512

513+
template_fields = DbtBaseOperator.template_fields + [
514+
"select",
515+
"exclude",
516+
]
517+
493518
def __init__(
494519
self,
495520
select: Optional[list[str]] = None,
@@ -515,6 +540,12 @@ class DbtLsOperator(DbtBaseOperator):
515540
https://docs.getdbt.com/reference/commands/list.
516541
"""
517542

543+
template_fields = DbtBaseOperator.template_fields + [
544+
"select",
545+
"exclude",
546+
"resource_types",
547+
]
548+
518549
def __init__(
519550
self,
520551
resource_types: Optional[list[str]] = None,
@@ -558,6 +589,11 @@ class DbtRunOperationOperator(DbtBaseOperator):
558589
https://docs.getdbt.com/reference/commands/run-operation.
559590
"""
560591

592+
template_fields = DbtBaseOperator.template_fields + [
593+
"macro",
594+
"args",
595+
]
596+
561597
def __init__(
562598
self,
563599
macro: str,
@@ -628,6 +664,11 @@ class DbtBuildOperator(DbtBaseOperator):
628664
https://docs.getdbt.com/reference/commands/build.
629665
"""
630666

667+
template_fields = DbtBaseOperator.template_fields + [
668+
"select",
669+
"exclude",
670+
]
671+
631672
def __init__(
632673
self,
633674
full_refresh: Optional[bool] = None,

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "airflow-dbt-python"
3-
version = "0.9.1"
3+
version = "0.9.2"
44
description = "A dbt operator for Airflow that uses the dbt Python package"
55
authors = ["Tomás Farías Santana <tomas@tomasfarias.dev>"]
66
license = "MIT"

0 commit comments

Comments
 (0)