68 lines
2.0 KiB
TOML
68 lines
2.0 KiB
TOML
[project]
|
|
name = "beefy-player"
|
|
version = "1.0.0"
|
|
description = "A flashy terminal player for internet radio — live spectrum analyser, MPRIS / macOS Now Playing support, song history and pluggable station catalogues (SomaFM, Radio Paradise, dublab, Rinse FM and more)"
|
|
readme = "README.md"
|
|
license = "WTFPL"
|
|
license-files = ["LICENSE"]
|
|
requires-python = ">=3.10"
|
|
authors = [{ name = "beefy-player contributors" }]
|
|
keywords = ["radio", "internet-radio", "tui", "terminal", "mpris", "audio", "somafm", "tilderadio", "bassdrive", "radioparadise", "radiobrowser", "dublab"]
|
|
classifiers = [
|
|
"Environment :: Console",
|
|
"Intended Audience :: End Users/Desktop",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.10",
|
|
"Programming Language :: Python :: 3.11",
|
|
"Programming Language :: Python :: 3.12",
|
|
"Programming Language :: Python :: 3.13",
|
|
"Topic :: Multimedia :: Sound/Audio",
|
|
"Operating System :: POSIX :: Linux",
|
|
"Operating System :: MacOS",
|
|
"Environment :: MacOS X",
|
|
]
|
|
dependencies = [
|
|
"textual>=8.0,<9",
|
|
"rich>=14.2",
|
|
"httpx>=0.27",
|
|
"numpy>=2.0",
|
|
"pillow>=10.0",
|
|
"dbus-next>=0.2.3; sys_platform == 'linux'",
|
|
]
|
|
|
|
[project.scripts]
|
|
beefy-player = "beefy_player.__main__:main"
|
|
|
|
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["beefy_player"]
|
|
|
|
[tool.hatch.build.targets.wheel.force-include]
|
|
"beefy_player/theme.tcss" = "beefy_player/theme.tcss"
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"pytest>=8.0",
|
|
"pytest-asyncio>=0.24",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
asyncio_mode = "auto"
|
|
testpaths = ["tests"]
|
|
|
|
[tool.ruff]
|
|
target-version = "py310"
|
|
line-length = 100
|
|
extend-exclude = ["dist", ".venv", "build"]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E7", "E9", "F", "I", "UP", "B", "SIM", "RUF"]
|
|
ignore = ["RUF001"] # en/em dashes are part of real station metadata
|
|
# dbus-next needs short signature strings ("s", "a{sv}", "x", …) in
|
|
# annotations; they are not Python names.
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"beefy_player/mpris.py" = ["F821", "F722", "UP037"]
|