File tree Expand file tree Collapse file tree 6 files changed +58
-41
lines changed
Expand file tree Collapse file tree 6 files changed +58
-41
lines changed Original file line number Diff line number Diff line change 6969 - name : Python Lint - PyRight
7070 env :
7171 MATURIN_PEP517_ARGS : " --profile dev"
72- run : uv run basedpyright vortex-python
72+ run : |
73+ uv sync --all-packages
74+ uv run basedpyright vortex-python
7375
7476 python-test :
7577 name : " Python (test)"
Original file line number Diff line number Diff line change @@ -238,3 +238,6 @@ sweep.timestamp
238238# Perfetto
239239trace * .json
240240trace * .pb
241+
242+ # pytest-benchmark output
243+ vortex-python /.benchmarks /
Original file line number Diff line number Diff line change @@ -14,28 +14,17 @@ build-backend = "hatchling.build"
1414packages = [" dummy" ] # Required for workspace project
1515
1616[dependency-groups ]
17- # Currently, all dev dependencies live in the root since uv doesn't have transitive dev dependencies .
18- # See: https://github.com/astral-sh/uv/issues/7541
17+ # Shared dev tooling. Member-specific dev deps live in each member's pyproject.toml .
18+ # `uv sync --all-packages` picks up dev groups from all workspace members.
1919dev = [
2020 " basedpyright>=1.31" ,
21- " duckdb>=1.1.2" ,
2221 " ipython>=8.26.0" ,
23- " maturin>=1.7.2" ,
24- " pandas-stubs>=2.2.3.241126" ,
25- " pandas[output-formatting]>=2.2.3" ,
26- " pcodec>=0.3.3" ,
2722 " pip>=23.3.2" ,
28- " polars>=1.9.0" ,
29- " pyarrow-stubs>=17.16" ,
30- " pytest-benchmark>=4.0.0" ,
3123 " pytest>=7.4.0" ,
3224 " ruff>=0.7.1" ,
33- " ray>=2.48" ,
34- " pytest-benchmark>=5.1.0" ,
3525 # forced transitive bumps
3626 " urllib3>=2.6.3" ,
3727 " filelock>=3.20.3" ,
38- " protobuf>=6.33.5" ,
3928]
4029
4130[tool .uv ]
Original file line number Diff line number Diff line change @@ -67,16 +67,22 @@ include = [
6767 { path = " python/vortex/py.typed" , format = " sdist" },
6868]
6969
70- [tool .basedpyright ]
71- exclude = [" python/vortex/_lib/store/**.pyi" ]
72-
7370[dependency-groups ]
7471dev = [
75- " basedpyright>=1.31" ,
72+ " duckdb>=1.1.2" ,
73+ " maturin>=1.7.2" ,
7674 " numpy>=2.2.2" ,
7775 " pandas-stubs>=2.2.3.241126" ,
76+ " pandas[output-formatting]>=2.2.3" ,
7877 " pcodec>=0.3.3" ,
78+ " polars>=1.9.0" ,
7979 " pyarrow-stubs>=17.16" ,
8080 " pytest-benchmark>=5.1.0" ,
8181 " pytest-xdist>=3.5.0" ,
82+ " ray>=2.48" ,
83+ # forced transitive bumps
84+ " protobuf>=6.33.5" ,
8285]
86+
87+ [tool .basedpyright ]
88+ exclude = [" python/vortex/_lib/store/**.pyi" ]
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ # SPDX-License-Identifier: Apache-2.0
3+ # SPDX-FileCopyrightText: Copyright the Vortex contributors
4+
5+ # Run Python benchmarks with a release-profile build of the native extension.
6+ #
7+ # Usage:
8+ # ./run_benchmarks.sh # run all benchmarks
9+ # ./run_benchmarks.sh -k "test_scan" # run benchmarks matching a pattern
10+ # ./run_benchmarks.sh --benchmark-only # skip non-benchmark tests (if any)
11+ #
12+ # All arguments are forwarded to pytest.
13+
14+ set -ex -o pipefail
15+
16+ ROOT=$( cd -- " $( dirname -- " ${BASH_SOURCE[0]} " ) /.." & > /dev/null && pwd )
17+ PYTHON_DIR=" $ROOT /vortex-python"
18+
19+ # Ensure all packages are synced (includes pytest-benchmark dev dependency).
20+ uv sync --all-packages
21+
22+ source " $ROOT /.venv/bin/activate"
23+
24+ # Build the native extension in release mode so benchmarks reflect production performance.
25+ maturin develop --release --manifest-path " $PYTHON_DIR /Cargo.toml"
26+
27+ # Run benchmarks. Extra args are forwarded to pytest.
28+ pytest " $PYTHON_DIR /benchmark" " $@ "
You can’t perform that action at this time.
0 commit comments