Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
81 lines (72 loc) · 2.37 KB
/
Copy pathpyproject.toml
File metadata and controls
81 lines (72 loc) · 2.37 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
[build-system]
requires = ["scikit-build-core>=0.12"]
build-backend = "scikit_build_core.build"
[tool.scikit-build]
wheel.packages = ["src/kotonoha"]
cmake.build-type = "Release"
# KOTONOHA_INSTALL_DIR override is load-bearing (scikit-build-core's cmake.args
# wins over the CMake default). The KOTONOHA_INSTALL_LICENSE CMake option exists
# for packagers but is intentionally NOT set OFF here: the deb/rpm specs still
# key their license declarations off the CMake-staged copy, so flipping it would
# break those builds. Left ON until those specs migrate to .dist-info/licenses/.
cmake.args = ["-DKOTONOHA_INSTALL_DIR=kotonoha"]
# Build-only sources have no business in the installed wheel (the compiled
# libkoto-layer.so is what ships).
wheel.exclude = ["**/*.cpp", "**/*.sh", "**/protocols/*.xml"]
[project]
name = "kotonoha"
version = "0.3.1"
description = "Linux desktop lyrics overlay bridge using PyQt6 and external player adapters."
readme = "README.md"
authors = [
{ name = "Locez", email = "locez@locez.com" }
]
# The default build compiles src/kotonoha/protocols/blur.xml into
# libkoto-layer.so, and that protocol is LGPL-2.1-or-later. The wheel carries
# the resulting object, so the expression has to cover it.
license = "MIT AND LGPL-2.1-or-later"
# The MIT text covers this project; the LGPL text accompanies the KDE blur
# protocol compiled into libkoto-layer.so, which the expression above names.
license-files = ["LICENSE", "LICENSES/*.txt"]
# 3.13 and newer are what development targets and what a release is checked
# against. 3.11 and 3.12 install and pass CI today, but they are not a
# guarantee: a change that only they would break is not a release blocker.
requires-python = ">=3.11"
dependencies = [
"PyQt6",
"qasync",
"aiohttp",
"dbus-fast",
]
[project.optional-dependencies]
embedded-lyrics = [
"mutagen",
]
test = [
"pytest",
"pytest-asyncio",
"ruff",
"ty",
]
[project.scripts]
kotonoha = "kotonoha.main:entry_point"
[tool.ruff]
line-length = 120
[tool.ruff.lint]
select = [
"E",
"W",
"F",
"I",
"B",
"UP",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"
[tool.uv]
package = true
[tool.ty.rules]
# The mutagen import needs a suppression when the optional embedded-lyrics extra
# is absent and has none to suppress when it is installed. Whichever way a
# checkout is set up, one of those states would otherwise fail the gate.
unused-ignore-comment = "ignore"