-
Notifications
You must be signed in to change notification settings - Fork 16
/
pyproject.toml
72 lines (61 loc) · 2.74 KB
/
pyproject.toml
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
[tool.poetry]
name = "ndscan"
version = "v0.4.0"
description = "Composable experiment fragments and multi-dimensional scans for ARTIQ"
authors = ["David Nadlinger <code@klickverbot.at>"]
license = "LGPLv3+"
[tool.poetry.dependencies]
python = "^3.10"
numpy = "^1.24.2"
h5py = "^3.8.0"
pyqtgraph = "^0.13.3"
# Earlier versions of qasync had horrendous threading issues on Windows, which (for not
# entirely obvious reasons) mostly show up on Python 3.10 and up.
qasync = { version = ">=0.27.1" }
sipyco = { git = "https://github.com/m-labs/sipyco.git" }
oitg = { git = "https://github.com/oxfordiontrapgroup/oitg.git" }
# For ARTIQ, we are running into an annoying Poetry limitation (?): We would like to be
# able to specify a Git repository source, as ARTIQ is not on PyPI, and additionally we
# tend to depend on unreleased versions. Additionally, however, we want to be able to
# use ndscan as a dependency, e.g. from downstream metapackages, where we might also
# want to depend on a particular version of ARTIQ (for instance, an Oxford-internal
# development branch for things that have not made it upstream yet). Currently, there
# does not seem a way for us to just specify a "fallback" Git source; Poetry appears to
# always consider two differing Git dependencies to be in conflict with each other.
#
# Thus, for the time being, we leave it up to the user to provide a suitable version of
# ARTIQ and only specify the Qt dependency. Thus far, ndscan still works against both
# Qt 5 and Qt 6, but since early ARTIQ 9, upstream ARTIQ has switched to Qt 6. If
# working against older versions of ARTIQ is of interest, we can revisit the way the
# dependencies are specified here.
artiq = { version = ">=8.0.dev0" }
pyqt6 = { version = "^6.5.2" }
[tool.poetry.group.dev.dependencies]
poethepoet = "^0.22.1"
toml = "^0.10.2"
# Pin exact versions of linters to avoid inconsistencies between CI environments.
# YAPF 0.33–0.40 split before comparison operators, rather than after, not matching the
# default behaviour for arithmetic operators, so stay on 0.32 for now – though at some
# point we might just update and not care.
yapf = "0.32.0"
flake8 = "6.1.0"
# To generate documentation.
sphinx = "^7.2.6"
sphinx-rtd-theme = "^1.3.0"
matplotlib = "^3.8.0"
[tool.poetry.scripts]
ndscan_dataset_janitor = "ndscan.dataset_janitor:main"
ndscan_to_txt = "ndscan.to_txt:main"
ndscan_show = "ndscan.show:main"
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
style = "pep440"
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
build-backend = "poetry.core.masonry.api"
[tool.poe.tasks]
fmt = "yapf -i -r examples ndscan test"
fmt-test = "yapf -d -r examples ndscan test"
lint = "flake8 examples ndscan test"
test = "python -m unittest discover -v test"