-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
104 lines (90 loc) · 2 KB
/
pyproject.toml
File metadata and controls
104 lines (90 loc) · 2 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"
[project]
name = "qubed"
description = "A library that provides a tree of datacubes called Qube."
readme = "README.md"
authors = [
{name = "Tom Hodson", email = "thomas.hodson@ecmwf.int"},
]
classifiers = [
"Programming Language :: Rust",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
]
requires-python = ">= 3.11"
dynamic = ["version"]
dependencies = [
"frozendict",
"numpy>=1.26",
"protobuf",
"requests",
"objsize",
"humanize",
"pandas",
]
# Because this is a mixed rust/python project the structure is src/python/qubed rather than the more typical src/qubed
# Since this is slightly non-standard so we have to explicitly tell setuptools the python source is there.
[tool.setuptools.packages.find]
where = ["src/python"]
[project.scripts]
qubed = "qubed.__main__:main"
[tool.maturin]
python-source = "src/python"
module-name = "qubed.rust"
features = ["pyo3/extension-module"]
[tool.tox]
requires = ["tox>=4.28"]
env_list = [
"3.13",
"3.12",
"3.11",
"numpy1.x"
]
[tool.tox.gh.python]
"3.13" = ["3.13"]
"3.12" = ["3.12", "numpy1.x"]
"3.11" = ["3.11"]
[tool.tox.env_run_base]
description = "Run test under {base_python}"
deps = [".[dev,cbor,stac_server]"]
commands = [["pytest"]]
[tool.tox.env.numpy1.x]
description = "run tests with different numpy major versions"
base_python = ["py312"]
deps = [".[dev,cbor,stac_server]", "numpy<2"]
[project.optional-dependencies]
cli = [
"rich",
"click",
"psutil",
"pyfdb",
"pyyaml",
]
stac_server = [
"fastapi[standard]",
"Jinja2",
]
docs = [
"sphinx",
"sphinx-rtd-theme",
"myst_nb",
"sphinx-autobuild",
"jupyterlab",
"ipykernel",
"scipy",
]
dev = [
"pytest",
"black",
"ruff",
"flake8",
"pre-commit",
"isort",
"httpx",
]
# Support for the concise Binary Object Representation (CBOR) (RFC 8949)
cbor = [
"cbor2"
]