-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpyproject.toml
More file actions
88 lines (78 loc) · 2.24 KB
/
pyproject.toml
File metadata and controls
88 lines (78 loc) · 2.24 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
[project]
name = "gukebox"
version = "0.9.0"
description = "A Jukebox to play music on speakers using 'CD' with NFC tag"
authors = [{ name = "Gudsfile" }]
readme = "README.md"
license = { file = "LICENSE" }
requires-python = ">=3.9,<3.14"
dependencies = [
"pydantic==2.12.5",
"soco==0.30.14",
]
classifiers = [
"Development Status :: 4 - Beta",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
keywords = ["jukebox", "discstore", "music", "nfc"]
[project.urls]
Repository = "https://github.com/Gudsfile/jukebox"
[project.optional-dependencies]
api = [
"fastapi==0.128.7; python_version < '3.10'",
"fastapi==0.135.1; python_version >= '3.10'",
"uvicorn==0.39.0; python_version < '3.10'",
"uvicorn==0.41.0; python_version >= '3.10'",
]
ui = [
"gukebox[api]",
"fastui==0.9.0 ; python_version >= '3.10'",
"python-multipart==0.0.22; python_version >= '3.10'",
]
nfc = [
"pyserial==3.5",
"spidev==3.8",
# lgpio wheels not available for Python >= 3.13
"lgpio==0.2.2.0; python_version < '3.13'",
]
[dependency-groups]
dev = [
"pytest==8.4.2",
"pytest-mock==3.15.1",
"ruff==0.15.4",
"ty==0.0.20",
]
[tool.ruff]
line-length = 120
indent-width = 4
target-version = "py313"
extend-exclude = ["pn532/"]
[tool.ruff.lint]
extend-select = [
"SIM",
"I",
]
[tool.ty.src]
exclude = ["pn532/"]
[tool.ty.rules]
# Ignoring missing-argument rule for now as it is a false positive for pydantic 2.5.3 (necessary for python <3.10):
# "No arguments provided for required parameters `__pydantic_extra__`, `__pydantic_fields_set__`, `__pydantic_private__`"
# CI/CD will treat this rule as an error for Python >= 3.10.
missing-argument = "warn"
[build-system]
requires = ["uv_build>=0.8.7,<0.11.0"]
build-backend = "uv_build"
[tool.uv.build-backend]
module-name = ["jukebox", "discstore", "pn532"]
module-root = ""
[project.scripts]
gukebox = "jukebox.app:main"
jukebox = "jukebox.app:main"
discstore = "discstore.app:main"