-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
98 lines (89 loc) · 3.07 KB
/
Copy pathpyproject.toml
File metadata and controls
98 lines (89 loc) · 3.07 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
[build-system]
# 77+ for PEP 639 (`license` as an SPDX expression + `license-files`).
requires = ["setuptools>=77"]
build-backend = "setuptools.build_meta"
[project]
# Distribution name differs from the import package on purpose: `vstimd` is the
# server, `vstimd-client` is what you install to talk to it — `import vstimd`.
name = "vstimd-client"
dynamic = ["version"]
description = "Python client for the vstimd visual stimulus server (ZMQ + protobuf)"
readme = "README.md"
# The client is LGPL, not AGPL like the rest of vstimd: experiment scripts
# import it directly, and copyleft that reaches into a lab's own code is a
# barrier to adoption the server does not have.
#
# LGPLv3 is GPLv3 plus additional permissions, so both texts ship: LICENSE is
# the LGPL, LICENSE.GPL the GPLv3 it builds on.
license = "LGPL-3.0-only"
license-files = ["LICENSE", "LICENSE.GPL"]
requires-python = ">=3.12"
authors = [
{ name = "Joscha Schmiedt", email = "joscha@schmiedt.dev" },
]
keywords = [
"psychopy",
"visual-stimulus",
"neuroscience",
"vision-science",
"zmq",
"zeromq",
"protobuf",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Topic :: Scientific/Engineering",
"Topic :: Multimedia :: Graphics",
"Typing :: Typed",
]
dependencies = [
"pyzmq>=25",
"protobuf>=5",
# Pure-Python mDNS backend for `vstimd-client discover`. A dependency
# rather than an extra because discovery is how you find a rig in the
# first place, and the alternative backend (avahi-browse) exists only on
# Linux with a running avahi-daemon.
"zeroconf>=0.132",
]
[project.optional-dependencies]
# Kept as a no-op so `vstimd-client[discover]`, which 0.1.0rc1 documented,
# keeps resolving. zeroconf is now a plain dependency.
discover = []
[project.scripts]
vstimd-client = "vstimd.cli.main:run"
[project.urls]
Homepage = "https://github.com/braemons/vstimd"
Repository = "https://github.com/braemons/vstimd"
"Bug Tracker" = "https://github.com/braemons/vstimd/issues"
Changelog = "https://github.com/braemons/vstimd/blob/main/client/python/CHANGELOG.md"
[dependency-groups]
# grpcio-tools bundles protoc and is required for `make proto`
dev = [
"pytest>=8",
"grpcio-tools>=1.62",
"ty>=0.0.1a1",
"sphinx>=8",
"myst-parser>=4",
"furo>=2024",
"sphinx-copybutton>=0.5",
"sphinx-autodoc-typehints>=2",
]
[tool.ty.src]
# Only check hand-written source; skip generated proto stubs.
include = ["vstimd"]
exclude = ["vstimd/_proto"]
[tool.setuptools.dynamic]
version = { attr = "vstimd._version.__version__" }
[tool.setuptools.packages.find]
where = ["."]
include = ["vstimd*"]
# py.typed marks the package as typed (PEP 561); the .pyi files are the
# generated protobuf stubs, which are useless to a type checker if dropped.
[tool.setuptools.package-data]
"*" = ["py.typed", "*.pyi"]