-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
109 lines (96 loc) · 3.14 KB
/
pyproject.toml
File metadata and controls
109 lines (96 loc) · 3.14 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
105
106
107
108
109
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "phasebridge"
version = "1.0.0"
description = "PhaseBridge — strict, lossless discrete ↔ phase ↔ discrete interchange (PIF v1: θ / encoded_uint(lazy) / ψ, streaming, bundles)"
readme = "README.md"
readme-content-type = "text/markdown"
requires-python = ">=3.10"
license = { file = "LICENSE" }
authors = [{ name = "PhaseBridge Contributors" }]
keywords = ["phase", "signal", "interchange", "lossless", "PIF", "coherence", "kappa"]
classifiers = [
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Topic :: Scientific/Engineering",
"Topic :: Software Development :: Libraries",
"Development Status :: 5 - Production/Stable",
]
dependencies = [
"numpy>=1.22",
]
[project.urls]
Homepage = "https://github.com/<your-org-or-user>/phasebridge"
Documentation = "https://github.com/<your-org-or-user>/phasebridge/tree/main/docs"
Changelog = "https://github.com/<your-org-or-user>/phasebridge/blob/main/CHANGELOG.md"
Issues = "https://github.com/<your-org-or-user>/phasebridge/issues"
[project.optional-dependencies]
# Install like: pip install .[msgpack,cbor,frontends,dev]
# Serializers
msgpack = ["msgpack>=1.0.4"]
cbor = ["cbor2>=5.6.0"]
# Frontend I/O (soft deps)
pillow = ["Pillow>=9.0.0"]
soundfile = ["soundfile>=0.12.1"]
opencv = ["opencv-python>=4.8.0"]
pandas = ["pandas>=1.5.0"]
# Convenience groups
frontends = ["Pillow>=9.0.0", "soundfile>=0.12.1", "opencv-python>=4.8.0", "pandas>=1.5.0"]
serializers = ["msgpack>=1.0.4", "cbor2>=5.6.0"]
all = [
"msgpack>=1.0.4", "cbor2>=5.6.0",
"Pillow>=9.0.0", "soundfile>=0.12.1", "opencv-python>=4.8.0", "pandas>=1.5.0",
]
# Optional analytics (κ) now live outside the core
ops = ["phasebridge_ops>=0.1.0"] # optional convenience extra
# Dev/test tools
hypothesis = ["hypothesis>=6.0.0"]
dev = [
"ruff>=0.4.0",
"mypy>=1.7.0",
"pytest>=7.0.0",
"pytest-cov>=4.0.0",
"jsonschema>=4.0.0",
# useful when running the full serializer matrix locally:
"msgpack>=1.0.4",
"cbor2>=5.6.0",
# handy for running frontend tests locally:
"Pillow>=9.0.0", "soundfile>=0.12.1", "opencv-python>=4.8.0", "pandas>=1.5.0",
]
[project.scripts]
pb-encode = "phasebridge.cli.pb_encode:main"
pb-decode = "phasebridge.cli.pb_decode:main"
pb-kappa = "phasebridge.cli.pb_kappa:main"
pb-validate = "phasebridge.cli.pb_validate:main"
[tool.setuptools]
package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]
include = ["phasebridge*"]
# If you later move schemas under src/phasebridge/schemas/,
# uncomment this and drop a MANIFEST.in as needed.
# [tool.setuptools.package-data]
# "phasebridge" = ["schemas/*.json", "schemas/*.yaml"]
[tool.pytest.ini_options]
minversion = "7.0"
addopts = "-q"
testpaths = ["tests"]
[tool.ruff]
line-length = 100
target-version = "py310"
select = ["E", "F", "I"]
exclude = [
".git",
".venv",
"build",
"dist",
"__pycache__",
]
[tool.mypy]
python_version = "3.10"
strict = false
ignore_missing_imports = true