Skip to content

Commit 77880e2

Browse files
authored
Merge pull request #47 from getindata/release-0.21.0
Release 0.21.0
2 parents 0d4fdb4 + d0d5759 commit 77880e2

11 files changed

+47
-16
lines changed

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## [Unreleased]
44

5+
## [0.21.0] - 2022-02-11
6+
7+
This version brings compatibility with `dbt 1.0`.
8+
59
## [0.20.1] - 2022-02-08
610

711
## [0.20.0] - 2022-02-08
@@ -94,7 +98,9 @@
9498

9599
- Initial implementation of `dbt_airflow_manifest_parser` library.
96100

97-
[Unreleased]: https://github.com/getindata/dbt-airflow-factory/compare/0.20.1...HEAD
101+
[Unreleased]: https://github.com/getindata/dbt-airflow-factory/compare/0.21.0...HEAD
102+
103+
[0.21.0]: https://github.com/getindata/dbt-airflow-factory/compare/0.20.1...0.21.0
98104

99105
[0.20.1]: https://github.com/getindata/dbt-airflow-factory/compare/0.20.0...0.20.1
100106

dbt_airflow_factory/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version = "0.20.1"
1+
version = "0.21.0"

dbt_airflow_factory/builder.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def _make_dbt_test_task(self, model_name: str, is_in_task_group: bool) -> BaseOp
6464
self._build_task_name(model_name, command, is_in_task_group),
6565
command,
6666
model_name,
67+
additional_dbt_args=["--indirect-selection=cautious"],
6768
)
6869

6970
def _make_dbt_multiple_deps_test_task(

dbt_airflow_factory/ecs/ecs_operator.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Factories creating Airflow Operators running DBT tasks."""
22

3-
from typing import Optional
3+
from typing import List, Optional
44

55
from airflow.models.baseoperator import BaseOperator
66

@@ -24,5 +24,11 @@ def __init__(
2424
self.dbt_execution_env_parameters = dbt_execution_env_parameters
2525
self.ecs_execution_parameters = ecs_execution_parameters
2626

27-
def create(self, name: str, command: str, model: Optional[str] = None) -> BaseOperator:
27+
def create(
28+
self,
29+
name: str,
30+
command: str,
31+
model: Optional[str] = None,
32+
additional_dbt_args: Optional[List[str]] = None,
33+
) -> BaseOperator:
2834
raise NotImplementedError # TODO

dbt_airflow_factory/k8s/k8s_operator.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,18 @@ def __init__(
4242
self.dbt_execution_env_parameters = dbt_execution_env_parameters
4343
self.kubernetes_execution_parameters = kubernetes_execution_parameters
4444

45-
def create(self, name: str, command: str, model: Optional[str] = None) -> BaseOperator:
46-
return self._create(self._prepare_arguments(command, model), name)
45+
def create(
46+
self,
47+
name: str,
48+
command: str,
49+
model: Optional[str] = None,
50+
additional_dbt_args: Optional[List[str]] = None,
51+
) -> BaseOperator:
52+
return self._create(self._prepare_arguments(command, model, additional_dbt_args), name)
4753

48-
def _prepare_arguments(self, command: str, model: Optional[str]) -> List[str]:
54+
def _prepare_arguments(
55+
self, command: str, model: Optional[str], additional_dbt_args: Optional[List[str]]
56+
) -> List[str]:
4957
args = [
5058
"set -e;",
5159
f"dbt --no-write-json {command}",
@@ -55,7 +63,9 @@ def _prepare_arguments(self, command: str, model: Optional[str]) -> List[str]:
5563
f"--profiles-dir {self.dbt_execution_env_parameters.profile_dir_path}",
5664
]
5765
if model:
58-
args += [f"--models {model}"]
66+
args += [f"--select {model}"]
67+
if additional_dbt_args:
68+
args += additional_dbt_args
5969
return [" ".join(args)]
6070

6171
def _create(self, args: Optional[List[str]], name: str) -> KubernetesPodOperator:

dbt_airflow_factory/operator.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"""Factories creating Airflow Operators running DBT tasks."""
22

33
import abc
4-
from typing import Optional
4+
from typing import List, Optional
55

66
import airflow
77

@@ -20,7 +20,13 @@ class DbtRunOperatorBuilder(metaclass=abc.ABCMeta):
2020
"""
2121

2222
@abc.abstractmethod
23-
def create(self, name: str, command: str, model: Optional[str] = None) -> BaseOperator:
23+
def create(
24+
self,
25+
name: str,
26+
command: str,
27+
model: Optional[str] = None,
28+
additional_dbt_args: Optional[List[str]] = None,
29+
) -> BaseOperator:
2430
"""
2531
Create Airflow Operator running a single DBT task.
2632
@@ -30,6 +36,8 @@ def create(self, name: str, command: str, model: Optional[str] = None) -> BaseOp
3036
:type command: str
3137
:param model: models to include.
3238
:type model: Optional[str]
39+
:param additional_dbt_args: Additional arguments to pass to dbt.
40+
:type additional_dbt_args: Optional[List[str]]
3341
:return: Airflow Operator running a single DBT task.
3442
:rtype: BaseOperator
3543
"""

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.20.1
2+
current_version = 0.21.0
33

44
[bumpversion:file:setup.py]
55

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
setup(
3131
name="dbt-airflow-factory",
32-
version="0.20.1",
32+
version="0.21.0",
3333
description="Library to convert DBT manifest metadata to Airflow tasks",
3434
long_description=README,
3535
long_description_content_type="text/markdown",

tests/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"dbt_schema_version": "https://schemas.getdbt.com/dbt/manifest/v3.json",
4-
"dbt_version": "0.21.0",
4+
"dbt_version": "1.0.0",
55
"generated_at": "2021-10-19T09:11:11.955603Z",
66
"invocation_id": "a3958a44-f911-4921-a78c-5bb8d512ac25",
77
"env": {},

tests/test_dependencies.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ def test_complex_test_dependencies():
228228
)
229229

230230
def extract_model_arguments(args: str) -> List[str]:
231-
return list(filter(lambda s: not s.startswith("-"), args.split("--models ")[1].split()))
231+
return list(filter(lambda s: not s.startswith("-"), args.split("--select ")[1].split()))
232232

233233
assert (
234234
"model2_model3_test"

tests/test_tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_run_task():
3838
run_task = tasks.get_task("model.dbt_test.dim_users").run_airflow_task
3939
assert run_task.cmds == ["bash", "-c"]
4040
assert "set -e; dbt --no-write-json run " in run_task.arguments[0]
41-
assert "--models dim_users" in run_task.arguments[0]
41+
assert "--select dim_users" in run_task.arguments[0]
4242
assert '--vars "{}"' in run_task.arguments[0]
4343
assert run_task.name == "dim-users-run" if IS_FIRST_AIRFLOW_VERSION else "run"
4444
assert run_task.task_id == task_group_prefix_builder("dim_users", "run")
@@ -56,7 +56,7 @@ def test_test_task():
5656
test_task = tasks.get_task("model.dbt_test.dim_users").test_airflow_task
5757
assert test_task.cmds == ["bash", "-c"]
5858
assert "set -e; dbt --no-write-json test " in test_task.arguments[0]
59-
assert "--models dim_users" in test_task.arguments[0]
59+
assert "--select dim_users" in test_task.arguments[0]
6060
assert '--vars "{}"' in test_task.arguments[0]
6161
assert test_task.name == "dim-users-test" if IS_FIRST_AIRFLOW_VERSION else "test"
6262
assert test_task.task_id == task_group_prefix_builder("dim_users", "test")

0 commit comments

Comments
 (0)