Skip to content
Closed
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
63 changes: 63 additions & 0 deletions .github/workflows/test-python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,66 @@ jobs:

- name: Run tests
run: uv run pytest tests

iceberg-compatibility:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- bounds: minimum
pyarrow: "pyarrow==23.0.1"
pyiceberg: "pyiceberg[sql-sqlite]==0.11.1"
- bounds: latest
pyarrow: "pyarrow>=23.0.1,<26"
pyiceberg: "pyiceberg[sql-sqlite]>=0.11.1,<0.12"

steps:
- uses: actions/checkout@v6

- name: Install the latest version of uv
uses: astral-sh/setup-uv@v6

- name: "Set up Python"
uses: actions/setup-python@v6
with:
python-version-file: ".python-version"

- name: Install the project
run: uv sync --locked --all-extras --dev

- name: Resolve ${{ matrix.bounds }} supported Iceberg dependencies
run: >-
uv pip install
--python .venv/bin/python
--strict
--resolution highest
--upgrade-package pyarrow
--upgrade-package pyiceberg
'${{ matrix.pyarrow }}'
'${{ matrix.pyiceberg }}'

- name: Assert resolved dependency versions
env:
BOUNDS: ${{ matrix.bounds }}
run: |
uv run --no-sync python - <<'PY'
import os
from importlib.metadata import version

from packaging.version import Version

pyarrow = Version(version("pyarrow"))
pyiceberg = Version(version("pyiceberg"))

print(f"PyArrow {pyarrow}; PyIceberg {pyiceberg}")
assert Version("23.0.1") <= pyarrow < Version("26")
assert Version("0.11.1") <= pyiceberg < Version("0.12")

if os.environ["BOUNDS"] == "minimum":
assert pyarrow == Version("23.0.1")
assert pyiceberg == Version("0.11.1")
PY

- name: Run Iceberg compatibility tests
run: uv run --no-sync pytest tests/tower/test_tables.py tests/tower/test_storage.py
9 changes: 7 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,12 @@ tower = "tower.cli:main"

[project.optional-dependencies]
ai = ["huggingface-hub>=0.34.3", "ollama>=0.5.3"]
iceberg = ["polars>=1.39.3", "pyarrow>=23.0.1", "pyiceberg>=0.11.1", "boto3>=1.35.0"]
iceberg = [
"polars>=1.39.3",
"pyarrow>=23.0.1,<26",
"pyiceberg>=0.11.1,<0.12",
"boto3>=1.35.0",
]
dbt = ["dbt-core>=1.9,<1.10"] # Can not use dbt 1.10+ due to dependency conflicts
all = ["tower[ai,iceberg,dbt]"]

Expand Down Expand Up @@ -102,5 +107,5 @@ dev = [
"mypy==1.13.0",
"openapi-python-client==0.28.1",
"pre-commit==4.0.1",
"pyiceberg[sql-sqlite]>=0.11.1",
"pyiceberg[sql-sqlite]>=0.11.1,<0.12",
]
6 changes: 3 additions & 3 deletions uv.lock

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

Loading