-
Notifications
You must be signed in to change notification settings - Fork 19
Expand file tree
/
Copy pathpyproject.toml
More file actions
61 lines (57 loc) · 2.16 KB
/
Copy pathpyproject.toml
File metadata and controls
61 lines (57 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Virtual root of the uv workspace.
#
# This file exists purely so that the *development and CI* environment can be
# locked (see `uv.lock`). It intentionally has no `[project]` table: the root is
# not a distributable package, it is only a container for the workspace members
# (`py/` -> pgpq, `json/` -> arrow-json) and for the dependency groups used by
# the Makefile and by CI.
#
# The published metadata of the two packages lives in `py/pyproject.toml` and
# `json/pyproject.toml` and is deliberately *not* pinned here: runtime
# requirements stay as ranges (`pyarrow>=11`), and the `[test]` / `[bench]`
# extras are kept intact so wheels remain installable with `pip install pgpq[test]`.
# The groups below mirror those extras (union of both packages) so that the lock
# covers everything the test suites need.
[tool.uv.workspace]
members = ["py", "json"]
[dependency-groups]
test = [
"pytest>=7.0.0",
"pytest-cov>=7.0.0",
"maturin>=1.14.1",
"pre-commit>=4.5.1",
"testing.postgresql>=1.3.0",
"psycopg[binary]>=3.3.4",
"pyarrow>=22.0.0",
"hypothesis>=6.0.0",
# Only used by the arrow-json test suite (`json/pyproject.toml` [test]).
"polars>=0.16.1",
]
bench = [
"jupyter>=1.0.0",
"requests",
"duckdb",
]
# Coverage settings for `pytest --cov` (pytest runs with this file's directory as
# its rootdir, so coverage picks the config up from here).
#
# Only the thin pure-Python wrappers -- `py/python/pgpq/*.py` and
# `json/python/arrow_json/*.py` -- can be measured this way: everything else in
# these packages is compiled Rust behind pyo3, and is covered by the Rust suite
# (`cargo llvm-cov`) instead.
[tool.coverage.run]
# Emit repo-relative paths so the Codecov report lines up with the files in the
# repository rather than with an absolute runner path.
relative_files = true
# Both locally (`maturin develop`) and in CI (`uv pip install <wheel>`) the
# packages under test are *installed*, so coverage records them under
# `site-packages/`. Map those back onto the source tree.
[tool.coverage.paths]
pgpq = [
"py/python/pgpq",
"*/site-packages/pgpq",
]
arrow_json = [
"json/python/arrow_json",
"*/site-packages/arrow_json",
]