airflow-dbt-python 3.0.3__tar.gz → 3.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/PKG-INFO +2 -2
  2. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/README.md +1 -1
  3. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/__version__.py +1 -1
  4. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/target.py +35 -0
  5. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/configs.py +25 -2
  6. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/version.py +4 -0
  7. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python.egg-info/PKG-INFO +2 -2
  8. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/pyproject.toml +1 -1
  9. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/LICENSE +0 -0
  10. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/__init__.py +0 -0
  11. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/__init__.py +0 -0
  12. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/dbt.py +0 -0
  13. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/fs/__init__.py +0 -0
  14. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/fs/gcs.py +0 -0
  15. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/fs/git.py +0 -0
  16. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/fs/local.py +0 -0
  17. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/hooks/fs/s3.py +0 -0
  18. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/operators/__init__.py +0 -0
  19. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/operators/dbt.py +0 -0
  20. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/__init__.py +0 -0
  21. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/enums.py +0 -0
  22. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/env.py +0 -0
  23. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python/utils/url.py +0 -0
  24. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python.egg-info/SOURCES.txt +0 -0
  25. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python.egg-info/dependency_links.txt +0 -0
  26. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python.egg-info/requires.txt +0 -0
  27. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/airflow_dbt_python.egg-info/top_level.txt +0 -0
  28. {airflow_dbt_python-3.0.3 → airflow_dbt_python-3.1.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airflow-dbt-python
3
- Version: 3.0.3
3
+ Version: 3.1.0
4
4
  Summary: A collection of Airflow operators, hooks, and utilities to execute dbt commands
5
5
  Author-email: Tomás Farías Santana <tomas@tomasfarias.dev>
6
6
  License-Expression: MIT
@@ -51,7 +51,7 @@ Dynamic: license-file
51
51
 
52
52
  [![PyPI version](https://img.shields.io/pypi/v/airflow-dbt-python?style=plastic)](https://pypi.org/project/airflow-dbt-python/)
53
53
  [![CI testing](https://github.com/tomasfarias/airflow-dbt-python/actions/workflows/ci.yaml/badge.svg)](https://github.com/tomasfarias/airflow-dbt-python/actions)
54
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
54
+ [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
55
55
  [![Test coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/tomasfarias/81ef37701aa088d18db8a58ce07c79c7/raw/covbadge.json)](https://github.com/tomasfarias/airflow-dbt-python/actions)
56
56
  [![Documentation](https://readthedocs.org/projects/airflow-dbt-python/badge/?version=latest)](https://airflow-dbt-python.readthedocs.io/en/latest/?badge=latest)
57
57
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/airflow-dbt-python?style=plastic)](https://pypi.org/project/airflow-dbt-python/)
4
4
  [![CI testing](https://github.com/tomasfarias/airflow-dbt-python/actions/workflows/ci.yaml/badge.svg)](https://github.com/tomasfarias/airflow-dbt-python/actions)
5
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
5
+ [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
6
6
  [![Test coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/tomasfarias/81ef37701aa088d18db8a58ce07c79c7/raw/covbadge.json)](https://github.com/tomasfarias/airflow-dbt-python/actions)
7
7
  [![Documentation](https://readthedocs.org/projects/airflow-dbt-python/badge/?version=latest)](https://airflow-dbt-python.readthedocs.io/en/latest/?badge=latest)
8
8
 
@@ -3,4 +3,4 @@
3
3
  __author__ = "Tomás Farías Santana"
4
4
  __copyright__ = "Copyright 2021 Tomás Farías Santana"
5
5
  __title__ = "airflow-dbt-python"
6
- __version__ = "3.0.3"
6
+ __version__ = "3.1.0"
@@ -492,3 +492,38 @@ class DbtSparkHook(DbtConnectionHook):
492
492
  ),
493
493
  ]
494
494
  conn_extra_params = []
495
+
496
+
497
+ class DbtTrinoHook(DbtConnectionHook):
498
+ """A hook to interact with dbt using a Trino connection."""
499
+
500
+ conn_type = "trino"
501
+ hook_name = "dbt Trino Hook"
502
+ airflow_conn_types = (conn_type,)
503
+
504
+ conn_params = [
505
+ "host",
506
+ DbtConnectionParam("schema", default="public"),
507
+ DbtConnectionParam("login", "user"),
508
+ "password",
509
+ DbtConnectionParam("port", default=443),
510
+ ]
511
+
512
+ conn_extra_params = [
513
+ DbtConnectionParam("type", default="trino"),
514
+ DbtConnectionParam("method", default="none"),
515
+ DbtConnectionParam("http_scheme", default="https"),
516
+ DbtConnectionParam("verify", default=True),
517
+ DbtConnectionParam("database", "catalog", "hive"),
518
+ "catalog",
519
+ "host",
520
+ "port",
521
+ DbtConnectionParam("user", "user"),
522
+ "password",
523
+ "schema",
524
+ "session_properties",
525
+ "http_headers",
526
+ "role",
527
+ "client_tags",
528
+ "source",
529
+ ]
@@ -39,7 +39,10 @@ from dbt.task.test import TestTask
39
39
  from dbt.tracking import initialize_from_flags
40
40
 
41
41
  from airflow_dbt_python.utils.enums import FromStrEnum, LogFormat, Output
42
- from airflow_dbt_python.utils.version import DBT_INSTALLED_GTE_1_9
42
+ from airflow_dbt_python.utils.version import (
43
+ DBT_INSTALLED_GTE_1_9,
44
+ DBT_INSTALLED_GTE_1_10_7,
45
+ )
43
46
 
44
47
 
45
48
  def parse_yaml_args(args: Optional[Union[str, dict[str, Any]]]) -> dict[str, Any]:
@@ -360,7 +363,11 @@ class BaseConfig:
360
363
 
361
364
  runtime_config = self.create_runtime_config(project, profile)
362
365
 
363
- if issubclass(self.dbt_task, ConfiguredTask) and runtime_config:
366
+ if (
367
+ issubclass(self.dbt_task, ConfiguredTask)
368
+ and runtime_config
369
+ and not DBT_INSTALLED_GTE_1_10_7
370
+ ):
364
371
  manifest = parse_manifest(
365
372
  runtime_config,
366
373
  write_perf_info=write_perf_info,
@@ -370,6 +377,22 @@ class BaseConfig:
370
377
  task: BaseTask = self.dbt_task(
371
378
  args=local_flags, config=runtime_config, manifest=manifest
372
379
  )
380
+ elif (
381
+ issubclass(self.dbt_task, ConfiguredTask)
382
+ and runtime_config
383
+ and DBT_INSTALLED_GTE_1_10_7
384
+ ):
385
+ manifest = parse_manifest(
386
+ runtime_config,
387
+ write_perf_info=write_perf_info,
388
+ write=False,
389
+ write_json=False,
390
+ # TODO: Support for catalog integrations
391
+ active_integrations=[], # type: ignore
392
+ )
393
+ task = self.dbt_task(
394
+ args=local_flags, config=runtime_config, manifest=manifest
395
+ )
373
396
  elif issubclass(self.dbt_task, DepsTask):
374
397
  task = self.dbt_task(args=local_flags, project=project)
375
398
  elif issubclass(self.dbt_task, DebugTask):
@@ -16,11 +16,15 @@ DBT_1_8 = VersionSpecifier(
16
16
  DBT_1_9 = VersionSpecifier(
17
17
  major="1", minor="9", patch="0", matcher=Matchers.GREATER_THAN_OR_EQUAL
18
18
  )
19
+ DBT_1_10_7 = VersionSpecifier(
20
+ major="1", minor="10", patch="7", matcher=Matchers.GREATER_THAN_OR_EQUAL
21
+ )
19
22
  DBT_2_0 = VersionSpecifier(
20
23
  major="2", minor="0", patch="0", matcher=Matchers.GREATER_THAN_OR_EQUAL
21
24
  )
22
25
 
23
26
  DBT_INSTALLED_GTE_1_9 = installed.compare(DBT_1_9) == 1
27
+ DBT_INSTALLED_GTE_1_10_7 = installed.compare(DBT_1_10_7) == 1
24
28
 
25
29
  DBT_INSTALLED_1_8 = DBT_1_8 < installed < DBT_1_9
26
30
  DBT_INSTALLED_1_9 = DBT_1_9 < installed < DBT_2_0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airflow-dbt-python
3
- Version: 3.0.3
3
+ Version: 3.1.0
4
4
  Summary: A collection of Airflow operators, hooks, and utilities to execute dbt commands
5
5
  Author-email: Tomás Farías Santana <tomas@tomasfarias.dev>
6
6
  License-Expression: MIT
@@ -51,7 +51,7 @@ Dynamic: license-file
51
51
 
52
52
  [![PyPI version](https://img.shields.io/pypi/v/airflow-dbt-python?style=plastic)](https://pypi.org/project/airflow-dbt-python/)
53
53
  [![CI testing](https://github.com/tomasfarias/airflow-dbt-python/actions/workflows/ci.yaml/badge.svg)](https://github.com/tomasfarias/airflow-dbt-python/actions)
54
- [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
54
+ [![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
55
55
  [![Test coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/tomasfarias/81ef37701aa088d18db8a58ce07c79c7/raw/covbadge.json)](https://github.com/tomasfarias/airflow-dbt-python/actions)
56
56
  [![Documentation](https://readthedocs.org/projects/airflow-dbt-python/badge/?version=latest)](https://airflow-dbt-python.readthedocs.io/en/latest/?badge=latest)
57
57
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "airflow-dbt-python"
3
- version = "3.0.3"
3
+ version = "3.1.0"
4
4
  description = "A collection of Airflow operators, hooks, and utilities to execute dbt commands"
5
5
  authors = [{ name = "Tomás Farías Santana", email = "tomas@tomasfarias.dev" }]
6
6
  license = "MIT"