diff --git a/.github/workflows/linters-tests.yml b/.github/workflows/linters-tests.yml index 88692f5..5dcb6d3 100644 --- a/.github/workflows/linters-tests.yml +++ b/.github/workflows/linters-tests.yml @@ -78,4 +78,4 @@ jobs: poetry install --no-root - name: Run integration tests - run: tox -e integration-dbt10,integration-dbt11,integration-dbt12,integration-dbt13,integration-dbt14,integration-dbt15,integration-dbt16,integration-dbt17,integration-dbt18,integration-dbt19 + run: tox -e integration-dbt10,integration-dbt11,integration-dbt12,integration-dbt13,integration-dbt14,integration-dbt15,integration-dbt16,integration-dbt17,integration-dbt18,integration-dbt19,integration-dbt110,integration-dbt111 diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c74897..f74850a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Support for `dbt==1.10` and `dbt==1.11`. [#97] + ### Fixed - Compute unit test coverage only for models. [#95] _Thanks to @pvij!_ diff --git a/README.md b/README.md index 4f3766e..6912b36 100644 --- a/README.md +++ b/README.md @@ -263,7 +263,7 @@ the support matrix. |-------------|----------------| | <0.20 | not tested | | 0.20 - 0.21 | 0.1 | -| 1.0 - 1.9 | 0.2 - 0.4 | +| 1.0 - 1.11 | 0.2 - 0.4 | ## Related packages diff --git a/poetry.lock b/poetry.lock index e67ecc9..52a1373 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand. [[package]] name = "agate" @@ -7,7 +7,7 @@ description = "A data analysis library that is optimized for humans instead of m optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "agate-1.7.1-py2.py3-none-any.whl", hash = "sha256:23f9f412f74f97b72f82b1525ab235cc816bc8c8525d968a091576a0dbc54a5f"}, {file = "agate-1.7.1.tar.gz", hash = "sha256:eadf46d980168b8922d5d396d6258eecd5e7dbef7e6f0c0b71e968545ea96389"}, @@ -32,7 +32,7 @@ description = "Reusable constraint types to use with typing.Annotated" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"}, {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, @@ -68,7 +68,7 @@ description = "Internationalization utilities" optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, @@ -144,7 +144,7 @@ description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, @@ -182,7 +182,7 @@ description = "The Real First Universal Charset Detector. Open, modern and activ optional = false python-versions = ">=3.7.0" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, @@ -287,12 +287,28 @@ files = [ {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] -markers = {dev = "python_version >= \"3.8\"", test = "python_version >= \"3.9\""} +markers = {main = "python_version < \"3.10\"", dev = "python_version < \"3.10\" and python_version >= \"3.8\"", test = "python_version < \"3.10\""} [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +[[package]] +name = "click" +version = "8.3.3" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.10" +groups = ["main", "dev", "test"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "click-8.3.3-py3-none-any.whl", hash = "sha256:a2bf429bb3033c89fa4936ffb35d5cb471e3719e1f3c8a7c3fff0b8314305613"}, + {file = "click-8.3.3.tar.gz", hash = "sha256:398329ad4837b2ff7cbe1dd166a4c0f8900c3ca3a218de04466f38f6497f18a2"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + [[package]] name = "colorama" version = "0.4.6" @@ -304,6 +320,7 @@ files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +markers = {main = "platform_system == \"Windows\"", test = "platform_system == \"Windows\" or sys_platform == \"win32\" or python_version >= \"3.10\""} [[package]] name = "daff" @@ -312,96 +329,101 @@ description = "Diff and patch tables" optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "daff-1.3.46.tar.gz", hash = "sha256:22d0da9fd6a3275b54c926a9c97b180f9258aad65113ea18f3fec52cbadcd818"}, ] [[package]] name = "dbt-adapters" -version = "1.14.7" +version = "1.22.10" description = "The set of adapter protocols and base functionality that supports integration with dbt-core" optional = false -python-versions = ">=3.9.0" +python-versions = ">=3.10.0" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "dbt_adapters-1.14.7-py3-none-any.whl", hash = "sha256:e9e3d48147ccbee377596c4441a96364b66ef67ea56eac56f23ffad1361b5df5"}, - {file = "dbt_adapters-1.14.7.tar.gz", hash = "sha256:348f3daf28ee3a664b6b20d7061e09565f1e5cd8875c90ac59453b035c3ac382"}, + {file = "dbt_adapters-1.22.10-py3-none-any.whl", hash = "sha256:9217a2f8dd35425cafc9093dae70ea12b4b8fc414e3abce8a44d44d5c2fff563"}, + {file = "dbt_adapters-1.22.10.tar.gz", hash = "sha256:28fca9f9c2f310706ce02c8f7b0f297edca14d6bd97ad7928aac55af4ce2972f"}, ] [package.dependencies] agate = ">=1.0,<2.0" -dbt-common = ">=1.13,<2.0" +dbt-common = ">=1.36,<2.0" +dbt-protos = ">=1.0.291,<2.0" mashumaro = {version = ">=3.9,<3.15", extras = ["msgpack"]} -protobuf = ">=5.0,<6.0" +protobuf = ">=6.0,<7.0" pytz = ">=2015.7" typing-extensions = ">=4.0,<5.0" [[package]] name = "dbt-common" -version = "1.23.0" +version = "1.37.5" description = "The shared common utilities that dbt-core and adapter implementations use" optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "dbt_common-1.23.0-py3-none-any.whl", hash = "sha256:7519bb1b3e9133d6bf12f366d0ad2293a12501afd6c849534eadbd815b089930"}, - {file = "dbt_common-1.23.0.tar.gz", hash = "sha256:2ec733467dab4dbf515651a9347ce71e428986ddcb91ed4c2d5084c5e9dea2e3"}, + {file = "dbt_common-1.37.5-py3-none-any.whl", hash = "sha256:432e3f2f9ca61eace65d4d1cb99a715c3ffc343b7190a692c39f126eedf0c077"}, + {file = "dbt_common-1.37.5.tar.gz", hash = "sha256:5a575736b5ec09a110955cd9e6b6a4c67e481c9ac9f45acaa51a6da5b1dd6aaa"}, ] [package.dependencies] agate = ">=1.7.0,<1.10" colorama = ">=0.3.9,<0.5" -deepdiff = ">=7.0,<8.0" -isodate = ">=0.6,<0.7" +dbt-protos = ">=1.0.410,<2.0.0" +deepdiff = ">=7.0,<9.0" +isodate = ">=0.6,<0.8" jinja2 = ">=3.1.3,<4" jsonschema = ">=4.0,<5.0" mashumaro = {version = ">=3.9,<4.0", extras = ["msgpack"]} -pathspec = ">=0.9,<0.13" -protobuf = ">=5.0,<6.0" +pathspec = ">=0.9,<1.1" +protobuf = ">=6.0,<7.0" python-dateutil = ">=2.0,<3.0" requests = "<3.0.0" typing-extensions = ">=4.4,<5.0" [package.extras] build = ["check-wheel-contents", "twine", "wheel"] -lint = ["black (>=23.3,<24.0)", "flake8", "flake8-docstrings", "flake8-pyproject", "mypy (>=1.3,<2.0)", "pytest (>=7.3,<8.0)", "types-jinja2 (>=2.11,<3.0)", "types-jsonschema (>=4.17,<5.0)", "types-protobuf (>=5.0,<6.0)", "types-python-dateutil (>=2.8,<3.0)", "types-pyyaml (>=6.0,<7.0)", "types-requests"] +lint = ["black (>=23.3,<24.0)", "flake8", "flake8-docstrings", "flake8-pyproject", "mypy (>=1.3,<2.0)", "pytest (>=7.3,<8.0)", "types-jinja2 (>=2.11,<3.0)", "types-jsonschema (>=4.17,<5.0)", "types-protobuf (>=6.0,<7.0)", "types-python-dateutil (>=2.8,<3.0)", "types-pyyaml (>=6.0,<7.0)", "types-requests"] test = ["hypothesis (>=6.87,<7.0)", "pytest (>=7.3,<8.0)", "pytest-cov (>=4.1,<5.0)", "pytest-mock", "pytest-xdist (>=3.2,<4.0)"] [[package]] name = "dbt-core" -version = "1.9.4" +version = "1.11.8" description = "With dbt, data analysts and engineers can build analytics the way engineers build applications." optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "dbt_core-1.9.4-py3-none-any.whl", hash = "sha256:9af5e426a3d574b0c912e64f998f0d96d9ddddb768365c7fb4f6d12893210620"}, - {file = "dbt_core-1.9.4.tar.gz", hash = "sha256:783dde19c4e8a22e82ec927963779a9cc5249d746b9e3beb8ec10adc5cabd6db"}, + {file = "dbt_core-1.11.8-py3-none-any.whl", hash = "sha256:13ff79252a7ae9c9acc7de243789b72f04f7f915f05930d3407edeeea3758b6f"}, + {file = "dbt_core-1.11.8.tar.gz", hash = "sha256:1bfe0b40c958785680a1b2b894b0851f5bf780ddc058747dd1e62c389b0d3b1d"}, ] [package.dependencies] agate = ">=1.7.0,<1.10" -click = ">=8.0.2,<9.0" +click = ">=8.3.0,<9.0" daff = ">=1.3.46" -dbt-adapters = ">=1.10.1,<2.0" -dbt-common = ">=1.13.0,<2.0" +dbt-adapters = ">=1.15.5,<2.0" +dbt-common = ">=1.37.3,<2.0" dbt-extractor = ">=0.5.0,<=0.6" -dbt-semantic-interfaces = ">=0.7.4,<0.8" -Jinja2 = ">=3.1.3,<4" +dbt-protos = ">=1.0.405,<2.0" +dbt-semantic-interfaces = ">=0.9.0,<0.10" +jinja2 = ">=3.1.3,<4" +jsonschema = ">=4.19.1,<5.0" mashumaro = {version = ">=3.9,<3.15", extras = ["msgpack"]} networkx = ">=2.3,<4.0" packaging = ">20.9" pathspec = ">=0.9,<0.13" -protobuf = ">=5.0,<6.0" +protobuf = ">=6.0,<7.0" +pydantic = "<3" pytz = ">=2015.7" pyyaml = ">=6.0" requests = "<3.0.0" snowplow-tracker = ">=1.0.2,<2.0" -sqlparse = ">=0.5.0,<0.6.0" +sqlparse = ">=0.5.5,<0.6.0" typing-extensions = ">=4.4" [[package]] @@ -411,7 +433,7 @@ description = "A tool to analyze and extract information from Jinja used in dbt optional = false python-versions = ">=3.6.1" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "dbt_extractor-0.5.1-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3b91e6106b967d908b34f83929d3f50ee2b498876a1be9c055fe060ed728c556"}, {file = "dbt_extractor-0.5.1-cp38-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3614ce9f83ae4cd0dc95f77730034a793a1c090a52dcf698ba1c94050afe3a8b"}, @@ -433,41 +455,57 @@ files = [ [[package]] name = "dbt-postgres" -version = "1.9.0" +version = "1.10.0" description = "The set of adapter protocols and base functionality that supports integration with dbt-core" optional = false -python-versions = ">=3.9.0" +python-versions = ">=3.10.0" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "dbt_postgres-1.9.0-py3-none-any.whl", hash = "sha256:c85d1adb419251ac989e5f720fdbb964aa6c280da7739dc8c48d44e6f45d354a"}, - {file = "dbt_postgres-1.9.0.tar.gz", hash = "sha256:b0574e9e1e66d8a5cd627b1d464ec0278eef7342f0b5babe4f987eee9d02a143"}, + {file = "dbt_postgres-1.10.0-py3-none-any.whl", hash = "sha256:9bc9d07342edbc86c16e20b2ab02c211c30c09b03736f925d612d963cbbe4f94"}, + {file = "dbt_postgres-1.10.0.tar.gz", hash = "sha256:74dc7e8b531ab785bca9d44f3d1ee9b38c4cbac967eafe7373242ed181eb0fa2"}, ] [package.dependencies] agate = ">=1.0,<2.0" -dbt-adapters = ">=1.7.0,<2.0" +dbt-adapters = ">=1.19.0,<2.0" dbt-common = ">=1.0.4,<2.0" -dbt-core = ">=1.8.0" +dbt-core = ">=1.8.0rc1" psycopg2-binary = ">=2.9,<3.0" +[[package]] +name = "dbt-protos" +version = "1.0.474" +description = "Public proto bindings for dbt" +optional = false +python-versions = ">=3.6" +groups = ["test"] +markers = "python_version >= \"3.10\"" +files = [ + {file = "dbt_protos-1.0.474-py3-none-any.whl", hash = "sha256:ef3de3ba2a7665e26c3a245ee7b9efeb7db1c16c95332754c138484f88777cb5"}, + {file = "dbt_protos-1.0.474.tar.gz", hash = "sha256:03e036eb93537d3055cfb0dd8c7d2c61991ee1c2c2f30d3c143d6bb91faf796b"}, +] + +[package.dependencies] +protobuf = ">=3.17.1" + [[package]] name = "dbt-semantic-interfaces" -version = "0.7.4" +version = "0.9.0" description = "The shared semantic layer definitions that dbt-core and MetricFlow use" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "dbt_semantic_interfaces-0.7.4-py3-none-any.whl", hash = "sha256:63965478ef27056f20a8c9a0f59b1355ebbc15133c1a6f0d368d93996a31dd5d"}, - {file = "dbt_semantic_interfaces-0.7.4.tar.gz", hash = "sha256:dcedda6702ecabb633aa4e8ab3b1eb7f9c4301dcc0026076a4a0ef64f9e59cf0"}, + {file = "dbt_semantic_interfaces-0.9.0-py3-none-any.whl", hash = "sha256:1b54c06ba89190a47a7f0563360930a0cce869e55b484ca09d261ade0e319155"}, + {file = "dbt_semantic_interfaces-0.9.0.tar.gz", hash = "sha256:5c921257dce8bb51c9ffb5479f2bdd959e16ebfb98ee833de6daa70788c47271"}, ] [package.dependencies] click = ">=7.0,<9.0" -importlib-metadata = ">=6.0,<7" -jinja2 = ">=3.1.3,<4" +importlib-metadata = ">=6.0,<9" +jinja2 = ">=3.1.6,<4" jsonschema = ">=4.0,<5" more-itertools = ">=8.0,<11.0" pydantic = ">=1.10,<3" @@ -482,7 +520,7 @@ description = "Deep Difference and Search of any Python object/data. Recreate ob optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "deepdiff-7.0.1-py3-none-any.whl", hash = "sha256:447760081918216aa4fd4ca78a4b6a848b81307b2ea94c810255334b759e1dc3"}, {file = "deepdiff-7.0.1.tar.gz", hash = "sha256:260c16f052d4badbf60351b4f77e8390bee03a0b516246f6839bc813fb429ddf"}, @@ -562,7 +600,7 @@ description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.5" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, @@ -575,11 +613,11 @@ description = "Read metadata from Python packages" optional = false python-versions = ">=3.7" groups = ["main", "dev", "test"] -markers = "python_version >= \"3.9\" or python_version == \"3.7\"" files = [ {file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"}, {file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"}, ] +markers = {main = "python_version == \"3.7\"", dev = "python_version == \"3.7\"", test = "python_version >= \"3.9\" or python_version == \"3.7\""} [package.dependencies] zipp = ">=0.5" @@ -608,7 +646,7 @@ description = "An ISO 8601 date/time/duration parser and formatter" optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "isodate-0.6.1-py2.py3-none-any.whl", hash = "sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96"}, {file = "isodate-0.6.1.tar.gz", hash = "sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"}, @@ -635,15 +673,15 @@ colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.3" +version = "3.1.6" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "Jinja2-3.1.3-py3-none-any.whl", hash = "sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa"}, - {file = "Jinja2-3.1.3.tar.gz", hash = "sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90"}, + {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, + {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, ] [package.dependencies] @@ -659,7 +697,7 @@ description = "An implementation of JSON Schema validation for Python" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f"}, {file = "jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5"}, @@ -667,7 +705,7 @@ files = [ [package.dependencies] attrs = ">=22.2.0" -jsonschema-specifications = ">=2023.03.6" +jsonschema-specifications = ">=2023.3.6" referencing = ">=0.28.4" rpds-py = ">=0.7.1" @@ -682,7 +720,7 @@ description = "The JSON Schema meta-schemas and vocabularies, exposed as a Regis optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "jsonschema_specifications-2023.12.1-py3-none-any.whl", hash = "sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c"}, {file = "jsonschema_specifications-2023.12.1.tar.gz", hash = "sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc"}, @@ -698,7 +736,7 @@ description = "Python charting for 80% of humans." optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "leather-0.4.0-py2.py3-none-any.whl", hash = "sha256:18290bc93749ae39039af5e31e871fcfad74d26c4c3ea28ea4f681f4571b3a2b"}, {file = "leather-0.4.0.tar.gz", hash = "sha256:f964bec2086f3153a6c16e707f20cb718f811f57af116075f4c0f4805c608b95"}, @@ -740,7 +778,7 @@ description = "Safely add untrusted strings to HTML/XML markup." optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, @@ -811,7 +849,7 @@ description = "Fast and well tested serialization library" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "mashumaro-3.12-py3-none-any.whl", hash = "sha256:bc4ab7ecaca106fcde706d77cef22816149285a10727b88141599855d4603e2f"}, {file = "mashumaro-3.12.tar.gz", hash = "sha256:bb4ff10aee689edff24f6ff369843e1a826193d396b449b86ef58489bfe40c83"}, @@ -846,7 +884,7 @@ description = "More routines for operating on iterables, beyond itertools" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "more-itertools-10.2.0.tar.gz", hash = "sha256:8fccb480c43d3e99a00087634c06dd02b0d50fbf088b380de5a41a015ec239e1"}, {file = "more_itertools-10.2.0-py3-none-any.whl", hash = "sha256:686b06abe565edfab151cb8fd385a05651e1fdf8f0a14191e4439283421f8684"}, @@ -859,7 +897,7 @@ description = "MessagePack serializer" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868"}, {file = "msgpack-1.0.8-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c"}, @@ -939,7 +977,7 @@ description = "Python package for creating and manipulating graphs and networks" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "networkx-3.1-py3-none-any.whl", hash = "sha256:4f33f68cb2afcf86f28a45f43efc27a9386b535d567d2127f8f61d51dec58d36"}, {file = "networkx-3.1.tar.gz", hash = "sha256:de346335408f84de0eada6ff9fafafff9bcda11f0a0dfaa931133debb146ab61"}, @@ -975,7 +1013,7 @@ description = "An OrderedSet is a custom MutableSet that remembers its order, so optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "ordered-set-4.1.0.tar.gz", hash = "sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"}, {file = "ordered_set-4.1.0-py3-none-any.whl", hash = "sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562"}, @@ -1003,7 +1041,7 @@ description = "Parse human-readable date/time text." optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "parsedatetime-2.6-py3-none-any.whl", hash = "sha256:cb96edd7016872f58479e35879294258c71437195760746faffedb692aef000b"}, {file = "parsedatetime-2.6.tar.gz", hash = "sha256:4cb368fbb18a0b7231f4d76119165451c8d2e35951455dfee97c62a87b04d455"}, @@ -1020,7 +1058,7 @@ files = [ {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, ] -markers = {dev = "python_version >= \"3.8\"", test = "python_version >= \"3.9\""} +markers = {dev = "python_version >= \"3.8\"", test = "python_version >= \"3.10\""} [[package]] name = "platformdirs" @@ -1082,24 +1120,23 @@ virtualenv = ">=20.10.0" [[package]] name = "protobuf" -version = "5.29.4" +version = "6.33.6" description = "" optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "protobuf-5.29.4-cp310-abi3-win32.whl", hash = "sha256:13eb236f8eb9ec34e63fc8b1d6efd2777d062fa6aaa68268fb67cf77f6839ad7"}, - {file = "protobuf-5.29.4-cp310-abi3-win_amd64.whl", hash = "sha256:bcefcdf3976233f8a502d265eb65ea740c989bacc6c30a58290ed0e519eb4b8d"}, - {file = "protobuf-5.29.4-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:307ecba1d852ec237e9ba668e087326a67564ef83e45a0189a772ede9e854dd0"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:aec4962f9ea93c431d5714ed1be1c93f13e1a8618e70035ba2b0564d9e633f2e"}, - {file = "protobuf-5.29.4-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:d7d3f7d1d5a66ed4942d4fefb12ac4b14a29028b209d4bfb25c68ae172059922"}, - {file = "protobuf-5.29.4-cp38-cp38-win32.whl", hash = "sha256:1832f0515b62d12d8e6ffc078d7e9eb06969aa6dc13c13e1036e39d73bebc2de"}, - {file = "protobuf-5.29.4-cp38-cp38-win_amd64.whl", hash = "sha256:476cb7b14914c780605a8cf62e38c2a85f8caff2e28a6a0bad827ec7d6c85d68"}, - {file = "protobuf-5.29.4-cp39-cp39-win32.whl", hash = "sha256:fd32223020cb25a2cc100366f1dedc904e2d71d9322403224cdde5fdced0dabe"}, - {file = "protobuf-5.29.4-cp39-cp39-win_amd64.whl", hash = "sha256:678974e1e3a9b975b8bc2447fca458db5f93a2fb6b0c8db46b6675b5b5346812"}, - {file = "protobuf-5.29.4-py3-none-any.whl", hash = "sha256:3fde11b505e1597f71b875ef2fc52062b6a9740e5f7c8997ce878b6009145862"}, - {file = "protobuf-5.29.4.tar.gz", hash = "sha256:4f1dfcd7997b31ef8f53ec82781ff434a28bf71d9102ddde14d076adcfc78c99"}, + {file = "protobuf-6.33.6-cp310-abi3-win32.whl", hash = "sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3"}, + {file = "protobuf-6.33.6-cp310-abi3-win_amd64.whl", hash = "sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326"}, + {file = "protobuf-6.33.6-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a"}, + {file = "protobuf-6.33.6-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2"}, + {file = "protobuf-6.33.6-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3"}, + {file = "protobuf-6.33.6-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593"}, + {file = "protobuf-6.33.6-cp39-cp39-win32.whl", hash = "sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e"}, + {file = "protobuf-6.33.6-cp39-cp39-win_amd64.whl", hash = "sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf"}, + {file = "protobuf-6.33.6-py3-none-any.whl", hash = "sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901"}, + {file = "protobuf-6.33.6.tar.gz", hash = "sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135"}, ] [[package]] @@ -1109,7 +1146,7 @@ description = "psycopg2 - Python-PostgreSQL Database Adapter" optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "psycopg2-binary-2.9.9.tar.gz", hash = "sha256:7f01846810177d829c7692f1f5ada8096762d9172af1b1a28d4ab5b77c923c1c"}, {file = "psycopg2_binary-2.9.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c2470da5418b76232f02a2fcd2229537bb2d5a7096674ce61859c3229f2eb202"}, @@ -1192,7 +1229,7 @@ description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "pydantic-2.7.0-py3-none-any.whl", hash = "sha256:9dee74a271705f14f9a1567671d144a851c675b072736f0a7b2608fd9e495352"}, {file = "pydantic-2.7.0.tar.gz", hash = "sha256:b5ecdd42262ca2462e2624793551e80911a1e989f462910bb81aef974b4bb383"}, @@ -1213,7 +1250,7 @@ description = "Core functionality for Pydantic validation and serialization" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "pydantic_core-2.18.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ee9cf33e7fe14243f5ca6977658eb7d1042caaa66847daacbd2117adb258b226"}, {file = "pydantic_core-2.18.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6b7bbb97d82659ac8b37450c60ff2e9f97e4eb0f8a8a3645a5568b9334b08b50"}, @@ -1386,7 +1423,7 @@ description = "Extensions to the standard Python datetime module" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, @@ -1402,7 +1439,7 @@ description = "A Python slugify application that also handles Unicode" optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"}, {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"}, @@ -1421,7 +1458,7 @@ description = "Time expression parser" optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "pytimeparse-1.1.8-py2.py3-none-any.whl", hash = "sha256:04b7be6cc8bd9f5647a6325444926c3ac34ee6bc7e69da4367ba282f076036bd"}, {file = "pytimeparse-1.1.8.tar.gz", hash = "sha256:e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a"}, @@ -1434,7 +1471,7 @@ description = "World timezone definitions, modern and historical" optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, @@ -1447,7 +1484,6 @@ description = "YAML parser and emitter for Python" optional = false python-versions = ">=3.6" groups = ["dev", "test"] -markers = "python_version >= \"3.9\"" files = [ {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, @@ -1501,6 +1537,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] +markers = {dev = "python_version >= \"3.9\"", test = "python_version >= \"3.10\""} [[package]] name = "referencing" @@ -1509,7 +1546,7 @@ description = "JSON Referencing + Python" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "referencing-0.34.0-py3-none-any.whl", hash = "sha256:d53ae300ceddd3169f1ffa9caf2cb7b769e92657e4fafb23d34b93679116dfd4"}, {file = "referencing-0.34.0.tar.gz", hash = "sha256:5773bd84ef41799a5a8ca72dc34590c041eb01bf9aa02632b4a973fb0181a844"}, @@ -1526,7 +1563,7 @@ description = "Python HTTP for Humans." optional = false python-versions = ">=3.7" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, @@ -1569,7 +1606,7 @@ description = "Python bindings to Rust's persistent data structures (rpds)" optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "rpds_py-0.18.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e"}, {file = "rpds_py-0.18.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7"}, @@ -1709,7 +1746,7 @@ description = "Python 2 and 3 compatibility utilities" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, @@ -1722,7 +1759,7 @@ description = "Snowplow event tracker for Python. Add analytics to your Python a optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "snowplow_tracker-1.1.0-py3-none-any.whl", hash = "sha256:24ea32ddac9cca547421bf9ab162f5f33c00711c6ef118ad5f78093cee962224"}, {file = "snowplow_tracker-1.1.0.tar.gz", hash = "sha256:95d8fdc8bd542fd12a0b9a076852239cbaf0599eda8721deaf5f93f7138fe755"}, @@ -1737,19 +1774,19 @@ typing = ["mypy (>=0.971)", "types-requests (>=2.25.1,<3.0)"] [[package]] name = "sqlparse" -version = "0.5.0" +version = "0.5.5" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ - {file = "sqlparse-0.5.0-py3-none-any.whl", hash = "sha256:c204494cd97479d0e39f28c93d46c0b2d5959c7b9ab904762ea6c7af211c8663"}, - {file = "sqlparse-0.5.0.tar.gz", hash = "sha256:714d0a4932c059d16189f58ef5411ec2287a4360f17cdd0edd2d09d4c5087c93"}, + {file = "sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba"}, + {file = "sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e"}, ] [package.extras] -dev = ["build", "hatch"] +dev = ["build"] doc = ["sphinx"] [[package]] @@ -1759,7 +1796,7 @@ description = "The most basic Text::Unidecode port" optional = false python-versions = "*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93"}, {file = "text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8"}, @@ -1776,6 +1813,7 @@ files = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +markers = {test = "python_version < \"3.11\""} [[package]] name = "tox" @@ -1836,6 +1874,7 @@ files = [ {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, ] +markers = {test = "python_version >= \"3.10\""} [[package]] name = "urllib3" @@ -1844,7 +1883,7 @@ description = "HTTP library with thread-safe connection pooling, file post, and optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" groups = ["test"] -markers = "python_version >= \"3.9\"" +markers = "python_version >= \"3.10\"" files = [ {file = "urllib3-1.26.18-py2.py3-none-any.whl", hash = "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07"}, {file = "urllib3-1.26.18.tar.gz", hash = "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"}, @@ -1884,11 +1923,11 @@ description = "Backport of pathlib-compatible object wrapper for zip files" optional = false python-versions = ">=3.7" groups = ["main", "dev", "test"] -markers = "python_version >= \"3.9\" or python_version == \"3.7\"" files = [ {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, ] +markers = {main = "python_version == \"3.7\"", dev = "python_version == \"3.7\"", test = "python_version >= \"3.9\" or python_version == \"3.7\""} [package.extras] docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] @@ -1897,4 +1936,4 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.1" python-versions = "^3.7" -content-hash = "43b5d27e91e86447e5c20e66f87540fb3b9fa276a63cdfbca2fc15188c944c61" +content-hash = "bbed3efe5b6e89db2d063fd0ed2064b7974caa03730c6af3f0edff9033bbcd9a" diff --git a/pyproject.toml b/pyproject.toml index 772692e..d2f2c84 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,10 +42,19 @@ pytest = "^7" pytest-docker = "^2" packaging = "*" # Required for version comparison in tests -dbt-core = { version = "~1.9.0", python = "^3.9" } -dbt-postgres = { version = "~1.9.0", python = "^3.9" } +dbt-core = { version = "~1.11.0", python = "^3.10" } +dbt-postgres = { version = "~1.10.0", python = "^3.10" } # 1.11 not yet on PyPI importlib-metadata = { version = "*", python = "^3.9" } # Needed for a successful resolution of dbt's transitive dependencies +# click is transitively required by both typer (main, Python 3.7+) and dbt-core +# 1.11.1+ (which requires click >=8.2, which in turn requires Python 3.10+). +# Declare both constraints so poetry resolves click 8.1.x on older Python and +# click 8.3.x on Python 3.10+. +click = [ + { version = "<8.2", python = ">=3.7,<3.10" }, + { version = ">=8.3.0,<9", python = "^3.10" }, +] + [tool.poetry.scripts] dbt-coverage = 'dbt_coverage.__init__:app' diff --git a/tox.ini b/tox.ini index 97bb36b..d34b555 100644 --- a/tox.ini +++ b/tox.ini @@ -3,18 +3,18 @@ requires = tox>=4 env_list = unit - integration-{dbt10,dbt11,dbt12,dbt13,dbt14,dbt15,dbt16,dbt17,dbt18,dbt19} + integration-{dbt10,dbt11,dbt12,dbt13,dbt14,dbt15,dbt16,dbt17,dbt18,dbt19,dbt110,dbt111} [testenv:unit] description = run unit tests -basepython = python3.10 +basepython = python3.12 deps = pytest commands = pytest tests/unit {posargs} -[testenv:integration-{dbt10,dbt11,dbt12,dbt13,dbt14,dbt15,dbt16,dbt17,dbt18,dbt19}] +[testenv:integration-{dbt10,dbt11,dbt12,dbt13,dbt14,dbt15,dbt16,dbt17,dbt18,dbt19,dbt110,dbt111}] description = run integration tests with dbt version deps = pytest @@ -50,10 +50,16 @@ deps = dbt19: dbt-core~=1.9.0 dbt19: dbt-postgres~=1.9.0 + + dbt110: dbt-core~=1.10.0 + dbt110: dbt-postgres~=1.10.0 + + dbt111: dbt-core~=1.11.0 + dbt111: dbt-postgres~=1.10.0 # dbt-postgres 1.11 is not yet on PyPI basepython = dbt10: python3.9 # https://github.com/dbt-labs/dbt-core/issues/4560 dbt{11,12,13}: python3.10 # https://github.com/dbt-labs/dbt-core/issues/4562 dbt{14,15,16}: python3.11 # https://github.com/dbt-labs/dbt-core/issues/6147 - dbt{17,18,19}: python3.12 # https://github.com/dbt-labs/dbt-core/issues/9007 + dbt{17,18,19,110,111}: python3.12 # https://github.com/dbt-labs/dbt-core/issues/9007 commands = pytest tests/integration {posargs}