Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion dev/breeze/tests/test_selective_checks.py
Original file line number Diff line number Diff line change
Expand Up @@ -1383,7 +1383,6 @@ def test_excluded_providers():
"excluded-providers-as-string": json.dumps(
{
"3.14": [
"amazon", # Depends on lxml<6
"apache.cassandra", # Enable when the next release after 3.29.3 is available
],
}
Expand Down
3 changes: 0 additions & 3 deletions providers/amazon/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,6 @@ versions:
- 1.1.0
- 1.0.0

excluded-python-versions:
- "3.14"

integrations:
- integration-name: Amazon Athena
external-doc-url: https://aws.amazon.com/athena/
Expand Down
3 changes: 2 additions & 1 deletion providers/amazon/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,10 @@ classifiers = [
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: System :: Monitoring",
]
requires-python = ">=3.10,!=3.14.*"
requires-python = ">=3.10"

# The dependencies should be modified in place in the generated file.
# Any change in the dependencies is preserved when the file is regenerated
Expand Down
12 changes: 6 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ packages = []
"apache-airflow-providers-alibaba>=3.0.0"
]
"amazon" = [
"apache-airflow-providers-amazon>=9.0.0; python_version !=\"3.14\""
"apache-airflow-providers-amazon>=9.0.0"
]
"apache.cassandra" = [
"apache-airflow-providers-apache-cassandra>=3.7.0; python_version !=\"3.14\""
Expand Down Expand Up @@ -393,7 +393,7 @@ packages = []
"apache-airflow-core[all]",
"apache-airflow-providers-airbyte>=5.0.0",
"apache-airflow-providers-alibaba>=3.0.0",
"apache-airflow-providers-amazon>=9.0.0; python_version !=\"3.14\"",
"apache-airflow-providers-amazon>=9.0.0",
"apache-airflow-providers-apache-cassandra>=3.7.0; python_version !=\"3.14\"",
"apache-airflow-providers-apache-drill>=2.8.1",
"apache-airflow-providers-apache-druid>=3.12.0",
Expand Down Expand Up @@ -496,7 +496,7 @@ packages = []
# TODO: We can remove it once boto3 and aiobotocore both have compatible botocore version or
# boto3 have native aync support and we move away from aio aiobotocore
"aiobotocore" = [
"apache-airflow-providers-amazon[aiobotocore]>=9.6.0; python_version !=\"3.14\"",
"apache-airflow-providers-amazon[aiobotocore]>=9.6.0",
]
"apache-atlas" = [
"atlasclient>=0.1.2",
Expand All @@ -505,7 +505,7 @@ packages = []
"apache-airflow-providers-apache-hdfs",
]
"amazon-aws-auth" = [
"apache-airflow-providers-amazon[python3-saml]; python_version !=\"3.14\"",
"apache-airflow-providers-amazon[python3-saml]",
]
"cloudpickle" = [
"cloudpickle>=2.2.1",
Expand Down Expand Up @@ -536,7 +536,7 @@ packages = []
"s3fs" = [
# This is required for support of S3 file system which uses aiobotocore
# which can have a conflict with boto3 as mentioned in aiobotocore extra
"apache-airflow-providers-amazon[s3fs]; python_version !=\"3.14\"",
"apache-airflow-providers-amazon[s3fs]",
]
"uv" = [
"uv>=0.10.12",
Expand Down Expand Up @@ -1340,7 +1340,7 @@ leveldb = [
[tool.uv]
required-version = ">=0.6.3"
no-build-isolation-package = ["sphinx-redoc"]
constraint-dependencies = ["lxml==6.0.2"]
constraint-dependencies = ["lxml==6.0.2"] # Remove after https://github.com/aws/amazon-redshift-python-driver/pull/272

[tool.uv.sources]
# These names must match the names as defined in the pyproject.toml of the workspace items,
Expand Down
23 changes: 12 additions & 11 deletions scripts/tests/ci/prek/test_check_excluded_provider_markers.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,42 @@
import pytest
from check_excluded_provider_markers import _check_dependency

EXCLUDED = {
"apache-airflow-providers-amazon": ["3.14"],
}


class TestCheckDependency:
EXCLUDED = {
"apache-airflow-providers-amazon": ["3.14"],
"apache-airflow-providers-google": ["3.14"],
}

def test_no_error_when_marker_present(self):
dep = 'apache-airflow-providers-amazon>=9.0.0; python_version !="3.14"'
assert _check_dependency(dep, EXCLUDED) == []
assert _check_dependency(dep, self.EXCLUDED) == []

def test_error_when_marker_missing(self):
dep = "apache-airflow-providers-amazon>=9.0.0"
errors = _check_dependency(dep, EXCLUDED)
errors = _check_dependency(dep, self.EXCLUDED)
assert len(errors) == 1
assert '!="3.14"' in errors[0]

def test_error_when_no_marker_with_extras(self):
dep = "apache-airflow-providers-amazon[aiobotocore]>=9.6.0"
errors = _check_dependency(dep, EXCLUDED)
errors = _check_dependency(dep, self.EXCLUDED)
assert len(errors) == 1

def test_no_error_with_extras_and_marker(self):
dep = 'apache-airflow-providers-amazon[aiobotocore]>=9.6.0; python_version !="3.14"'
assert _check_dependency(dep, EXCLUDED) == []
assert _check_dependency(dep, self.EXCLUDED) == []

def test_no_error_for_non_excluded_provider(self):
dep = "apache-airflow-providers-celery>=1.0.0"
assert _check_dependency(dep, EXCLUDED) == []
assert _check_dependency(dep, self.EXCLUDED) == []

def test_no_error_for_non_provider_dependency(self):
dep = "requests>=2.28"
assert _check_dependency(dep, EXCLUDED) == []
assert _check_dependency(dep, self.EXCLUDED) == []

def test_invalid_requirement_ignored(self):
assert _check_dependency("not a valid requirement!!!", EXCLUDED) == []
assert _check_dependency("not a valid requirement!!!", self.EXCLUDED) == []

@pytest.mark.parametrize(
"excluded_versions",
Expand Down
20 changes: 10 additions & 10 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading