From da838a8c6c4b5673a55132e4c25ca05b2d3593f7 Mon Sep 17 00:00:00 2001 From: Hadia Ahmed Date: Tue, 18 Aug 2026 15:24:11 -0700 Subject: [PATCH 1/3] [run all] remove pyarrow version and bump workflow action to avoid warnings --- .github/workflows/benchmark.yml | 6 ++--- .github/workflows/bodosql_testing.yml | 32 +++++++++--------------- .github/workflows/build_pip.yml | 6 ++--- .github/workflows/databricks_testing.yml | 10 ++++---- .github/workflows/defog_daily_update.yml | 4 +-- .github/workflows/duckdb_testing.yml | 6 ++--- .github/workflows/mysql_testing.yml | 6 ++--- .github/workflows/oracle_testing.yml | 6 ++--- .github/workflows/postgres_testing.yml | 6 ++--- .github/workflows/pr_testing.yml | 8 +++--- .github/workflows/s3_testing.yml | 6 ++--- .github/workflows/sf_masked_testing.yml | 6 ++--- .github/workflows/sf_testing.yml | 6 ++--- .github/workflows/trino_testing.yml | 6 ++--- pyproject.toml | 11 +------- tests/test_pipeline_bodosql.py | 4 --- 16 files changed, 54 insertions(+), 75 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index efaf54538..941d27138 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -42,15 +42,15 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: python-version: "3.11" - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@v10 - name: Create virtual environment run: uv venv diff --git a/.github/workflows/bodosql_testing.yml b/.github/workflows/bodosql_testing.yml index bae5dc606..29ff0033b 100644 --- a/.github/workflows/bodosql_testing.yml +++ b/.github/workflows/bodosql_testing.yml @@ -17,40 +17,32 @@ jobs: python-version: ${{ fromJSON(inputs.python-versions) }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" - - name: Install dependencies - # TODO: Remove the LD_LIBRARY_PATH step once the LLM package supports - # pyarrow>=24. The [tool.uv] override in pyproject.toml already allows - # uv sync to resolve pyarrow to 23.0.x for this environment. The - # LD_LIBRARY_PATH step is needed because bodo looks for libarrow.so.2300 - # at runtime but it isn't on the default library search path. - run: uv sync - - - name: Set Arrow library path for bodo - # TODO: Remove once the LLM package supports pyarrow>=24. - run: | - PYARROW_LIB=$(uv run --no-sync python -c "import pyarrow; print(':'.join(pyarrow.get_library_dirs()))") - echo "LD_LIBRARY_PATH=${PYARROW_LIB}:${LD_LIBRARY_PATH:-}" >> $GITHUB_ENV + - name: Create virtual environment + # uv requires an existing virtual environment to install packages. + # Running `uv venv` creates the `.venv` directory so that subsequent + # `uv pip install` commands install dependencies inside this environment. + # Without this step, `uv pip install` fails with + # "No virtual environment found". + run: uv venv - name: Confirm BodoSQL and related dependencies are installed - # TODO: remove --no-sync once the LLM package supports pyarrow>=24. - run: uv run --no-sync python -c "import bodo; import bodosql; import pyarrow; import pyiceberg; print(bodo.__version__, bodosql.__version__, pyarrow.__version__, pyiceberg.__version__)" + run: uv run python -c "import bodo; import bodosql; import pyarrow; import pyiceberg; print(bodo.__version__, bodosql.__version__, pyarrow.__version__, pyiceberg.__version__)" - name: Download TPCH DB run: ./demos/setup_tpch.sh ./tpch.db - name: Run BodoSQL Tests - # TODO: remove --no-sync once the LLM package supports pyarrow>=24. - run: uv run --no-sync pytest -m bodosql tests/ -rs + run: uv run pytest -m bodosql tests/ -rs diff --git a/.github/workflows/build_pip.yml b/.github/workflows/build_pip.yml index 3fa2c687d..2a5a09b2d 100644 --- a/.github/workflows/build_pip.yml +++ b/.github/workflows/build_pip.yml @@ -22,10 +22,10 @@ jobs: role-session-name: PyDoughBuildWheelSession role-skip-session-tagging: true - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" @@ -54,7 +54,7 @@ jobs: pattern: pydough-wheel* path: . - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v7 with: python-version: ${{ matrix.python_version }} diff --git a/.github/workflows/databricks_testing.yml b/.github/workflows/databricks_testing.yml index a44b23720..4ff5a3a11 100644 --- a/.github/workflows/databricks_testing.yml +++ b/.github/workflows/databricks_testing.yml @@ -24,10 +24,10 @@ jobs: DATABRICKS_HTTP_PATH: ${{ secrets.DATABRICKS_HTTP_PATH }} DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" @@ -54,16 +54,16 @@ jobs: DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/defog_daily_update.yml b/.github/workflows/defog_daily_update.yml index 6bae7c2ed..7b187098e 100644 --- a/.github/workflows/defog_daily_update.yml +++ b/.github/workflows/defog_daily_update.yml @@ -16,10 +16,10 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: "3.11" diff --git a/.github/workflows/duckdb_testing.yml b/.github/workflows/duckdb_testing.yml index ce88483da..14e07fd2e 100644 --- a/.github/workflows/duckdb_testing.yml +++ b/.github/workflows/duckdb_testing.yml @@ -17,16 +17,16 @@ jobs: python-version: ${{ fromJSON(inputs.python-versions) }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/mysql_testing.yml b/.github/workflows/mysql_testing.yml index 6ae205244..39ac6b647 100644 --- a/.github/workflows/mysql_testing.yml +++ b/.github/workflows/mysql_testing.yml @@ -38,16 +38,16 @@ jobs: MYSQL_HOST: 127.0.0.1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/oracle_testing.yml b/.github/workflows/oracle_testing.yml index f32ea1a99..0e0d3a33d 100644 --- a/.github/workflows/oracle_testing.yml +++ b/.github/workflows/oracle_testing.yml @@ -32,16 +32,16 @@ jobs: ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/postgres_testing.yml b/.github/workflows/postgres_testing.yml index 3ff79d098..e6a683d23 100644 --- a/.github/workflows/postgres_testing.yml +++ b/.github/workflows/postgres_testing.yml @@ -39,16 +39,16 @@ jobs: POSTGRES_HOST: 127.0.0.1 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/pr_testing.yml b/.github/workflows/pr_testing.yml index a8713cada..cb8b2fa0a 100644 --- a/.github/workflows/pr_testing.yml +++ b/.github/workflows/pr_testing.yml @@ -100,7 +100,7 @@ jobs: commitMsg: ${{ steps.get_msg.outputs.commitMsg }} steps: # Fetch the branch for the history only - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: ref: ${{ github.event.pull_request.head.sha }} sparse-checkout: . @@ -165,16 +165,16 @@ jobs: || fromJSON('["3.11", "3.12", "3.13"]') }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: # Install a specific version of uv. version: "0.6.0" diff --git a/.github/workflows/s3_testing.yml b/.github/workflows/s3_testing.yml index e435bf007..a03f159e7 100644 --- a/.github/workflows/s3_testing.yml +++ b/.github/workflows/s3_testing.yml @@ -29,16 +29,16 @@ jobs: role-to-assume: ${{ secrets.READ_LLM_FIXTURES_ROLE }} aws-region: us-east-2 - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/sf_masked_testing.yml b/.github/workflows/sf_masked_testing.yml index bac9b9d44..62cb0eab4 100644 --- a/.github/workflows/sf_masked_testing.yml +++ b/.github/workflows/sf_masked_testing.yml @@ -44,16 +44,16 @@ jobs: PYDOUGH_MASK_SERVER_PATH: ${{ secrets.PYDOUGH_MASK_SERVER_PATH }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/sf_testing.yml b/.github/workflows/sf_testing.yml index a1f6a2247..86ff66a8c 100644 --- a/.github/workflows/sf_testing.yml +++ b/.github/workflows/sf_testing.yml @@ -29,16 +29,16 @@ jobs: SF_ACCOUNT: ${{ secrets.SF_ACCOUNT }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/.github/workflows/trino_testing.yml b/.github/workflows/trino_testing.yml index 2bfa4a027..c8ee00453 100644 --- a/.github/workflows/trino_testing.yml +++ b/.github/workflows/trino_testing.yml @@ -119,16 +119,16 @@ jobs: CASSANDRA_PORT: 9042 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Setup Python ${{ matrix.python-version }} id: setup-python - uses: actions/setup-python@v4 + uses: actions/setup-python@v7 with: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v3 + uses: astral-sh/setup-uv@v10 with: version: "0.6.0" diff --git a/pyproject.toml b/pyproject.toml index f0d253b81..aa0ee7ec4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,9 +20,7 @@ classifiers = [ # Note: sqlite is included in the standard library, so it doesn't need to be listed here. # There is a bug in some unit tests when run with sqlglot>=26.8.0 -# TODO: Upgrade pyarrow once the LLM package supports pyarrow>=24. Currently -# pinned to pyarrow==22 for compatibility with the LLM integration environment. -dependencies = ["pytz", "sqlglot==26.7.0", "pandas>=2.0.0", "jupyterlab", "pyarrow==22"] +dependencies = ["pytz", "sqlglot==26.7.0", "pandas>=2.0.0", "jupyterlab", "pyarrow"] [project.urls] # TODO: Add homepage + documentation when docs are live. @@ -59,13 +57,6 @@ oracle = ["oracledb==3.4.2"] databricks = ["databricks-sql-connector==4.2.6"] duckdb = ["duckdb>=1.5.4"] -# TODO: Remove this override once the LLM package supports pyarrow>=24. -# The base dependency pins pyarrow==22 for LLM compatibility, but bodo -# (via the bodosql extra) requires pyarrow>=24,<24.1. The override ensures -# pyarrow 24 is used when bodo is installed. -[tool.uv] -override-dependencies = ["pyarrow>=24,<24.1"] - [build-system] requires = ["hatchling", "hatch-vcs"] build-backend = "hatchling.build" diff --git a/tests/test_pipeline_bodosql.py b/tests/test_pipeline_bodosql.py index 0f04e6fff..cff842af7 100644 --- a/tests/test_pipeline_bodosql.py +++ b/tests/test_pipeline_bodosql.py @@ -12,10 +12,6 @@ import pytest import datetime import logging - -# TODO: Remove this skip guard once the LLM package supports pyarrow>=24 and -# bodo can be included in the standard dev environment without conflict. -pytest.importorskip("bodo") import bodo from io import StringIO from bodo.spawn.utils import set_global_config From 7a2f4da39cf578a3ed4104d46a20c23ca98fb06c Mon Sep 17 00:00:00 2001 From: Hadia Ahmed Date: Tue, 18 Aug 2026 15:26:46 -0700 Subject: [PATCH 2/3] [run all] fix typo --- .github/workflows/benchmark.yml | 2 +- .github/workflows/bodosql_testing.yml | 2 +- .github/workflows/build_pip.yml | 2 +- .github/workflows/databricks_testing.yml | 4 ++-- .github/workflows/duckdb_testing.yml | 2 +- .github/workflows/mysql_testing.yml | 2 +- .github/workflows/oracle_testing.yml | 2 +- .github/workflows/postgres_testing.yml | 2 +- .github/workflows/pr_testing.yml | 2 +- .github/workflows/s3_testing.yml | 2 +- .github/workflows/sf_masked_testing.yml | 2 +- .github/workflows/sf_testing.yml | 2 +- .github/workflows/trino_testing.yml | 2 +- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 941d27138..f2e32ba82 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -50,7 +50,7 @@ jobs: python-version: "3.11" - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 - name: Create virtual environment run: uv venv diff --git a/.github/workflows/bodosql_testing.yml b/.github/workflows/bodosql_testing.yml index 29ff0033b..08caea0b5 100644 --- a/.github/workflows/bodosql_testing.yml +++ b/.github/workflows/bodosql_testing.yml @@ -26,7 +26,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/build_pip.yml b/.github/workflows/build_pip.yml index 2a5a09b2d..785b539b2 100644 --- a/.github/workflows/build_pip.yml +++ b/.github/workflows/build_pip.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/databricks_testing.yml b/.github/workflows/databricks_testing.yml index 4ff5a3a11..6647d5a1d 100644 --- a/.github/workflows/databricks_testing.yml +++ b/.github/workflows/databricks_testing.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" @@ -63,7 +63,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/duckdb_testing.yml b/.github/workflows/duckdb_testing.yml index 14e07fd2e..3e6a18c1e 100644 --- a/.github/workflows/duckdb_testing.yml +++ b/.github/workflows/duckdb_testing.yml @@ -26,7 +26,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/mysql_testing.yml b/.github/workflows/mysql_testing.yml index 39ac6b647..af4dc3527 100644 --- a/.github/workflows/mysql_testing.yml +++ b/.github/workflows/mysql_testing.yml @@ -47,7 +47,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/oracle_testing.yml b/.github/workflows/oracle_testing.yml index 0e0d3a33d..31adb1bf4 100644 --- a/.github/workflows/oracle_testing.yml +++ b/.github/workflows/oracle_testing.yml @@ -41,7 +41,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/postgres_testing.yml b/.github/workflows/postgres_testing.yml index e6a683d23..101ede9bf 100644 --- a/.github/workflows/postgres_testing.yml +++ b/.github/workflows/postgres_testing.yml @@ -48,7 +48,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/pr_testing.yml b/.github/workflows/pr_testing.yml index cb8b2fa0a..7e4e1d9f6 100644 --- a/.github/workflows/pr_testing.yml +++ b/.github/workflows/pr_testing.yml @@ -174,7 +174,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: # Install a specific version of uv. version: "0.6.0" diff --git a/.github/workflows/s3_testing.yml b/.github/workflows/s3_testing.yml index a03f159e7..1cbc639f0 100644 --- a/.github/workflows/s3_testing.yml +++ b/.github/workflows/s3_testing.yml @@ -38,7 +38,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/sf_masked_testing.yml b/.github/workflows/sf_masked_testing.yml index 62cb0eab4..2960e6e44 100644 --- a/.github/workflows/sf_masked_testing.yml +++ b/.github/workflows/sf_masked_testing.yml @@ -53,7 +53,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/sf_testing.yml b/.github/workflows/sf_testing.yml index 86ff66a8c..909537fec 100644 --- a/.github/workflows/sf_testing.yml +++ b/.github/workflows/sf_testing.yml @@ -38,7 +38,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" diff --git a/.github/workflows/trino_testing.yml b/.github/workflows/trino_testing.yml index c8ee00453..67a757291 100644 --- a/.github/workflows/trino_testing.yml +++ b/.github/workflows/trino_testing.yml @@ -128,7 +128,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.0.1 with: version: "0.6.0" From fc47d722a072d322e70fe90f31d2f072cf02a3b0 Mon Sep 17 00:00:00 2001 From: Hadia Ahmed Date: Wed, 19 Aug 2026 10:16:50 -0700 Subject: [PATCH 3/3] [run CI] add comment --- pyproject.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index aa0ee7ec4..098aee9d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,8 +18,13 @@ classifiers = [ "Programming Language :: Python :: 3.13", ] -# Note: sqlite is included in the standard library, so it doesn't need to be listed here. +# Note: sqlite is included in the standard library, so it doesn't need to be +# listed here. # There is a bug in some unit tests when run with sqlglot>=26.8.0 +# As of August 2026 LLM team work requires pyarrow=22.0.0, but +# BodoSQL requires latest version of pyarrow. +# So we are not specifying any version for pyarrow here to avoid conflicts and +# allow other packages to specify their own version of pyarrow. dependencies = ["pytz", "sqlglot==26.7.0", "pandas>=2.0.0", "jupyterlab", "pyarrow"] [project.urls]