2026-10-30 04:17:48 +00:00
[ project ]
2026-11-03 16:10:25 -05:00
name = "beefy-player"
2026-10-30 04:17:48 +00:00
version = "0.1.0"
2026-11-03 18:44:40 -05:00
description = "A flashy terminal player for internet radio — live spectrum analyser, MPRIS / macOS Now Playing support, song history and pluggable station catalogues (SomaFM, tilderadio and Bassdrive included)"
2026-10-30 04:17:48 +00:00
readme = "README.md"
license = "WTFPL"
license-files = [ "LICENSE" ]
requires-python = ">=3.10"
2026-11-03 16:10:25 -05:00
authors = [{ name = "beefy-player contributors" }]
2026-11-03 18:44:40 -05:00
keywords = [ "radio" , "internet-radio" , "tui" , "terminal" , "mpris" , "audio" , "somafm" , "tilderadio" , "bassdrive" ]
2026-10-30 04:17:48 +00:00
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" ,
2026-10-30 18:43:26 -04:00
"Operating System :: POSIX :: Linux" ,
"Operating System :: MacOS" ,
"Environment :: MacOS X" ,
2026-10-30 04:17:48 +00:00
]
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 ]
2026-11-03 16:10:25 -05:00
beefy-player = "beefy_player.__main__:main"
2026-10-30 04:17:48 +00:00
[ build-system ]
requires = [ "hatchling" ]
build-backend = "hatchling.build"
[ tool . hatch . build . targets . wheel ]
2026-11-03 16:10:25 -05:00
packages = [ "beefy_player" ]
2026-10-30 04:17:48 +00:00
[ tool . hatch . build . targets . wheel . force-include ]
2026-11-03 16:10:25 -05:00
"beefy_player/theme.tcss" = "beefy_player/theme.tcss"
2026-10-30 04:17:48 +00:00
[ 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" ]
2026-11-03 16:10:25 -05:00
ignore = [ "RUF001" ] # en/em dashes are part of real station metadata
2026-10-30 04:17:48 +00:00
# dbus-next needs short signature strings ("s", "a{sv}", "x", …) in
# annotations; they are not Python names.
[ tool . ruff . lint . per-file-ignores ]
2026-11-03 16:10:25 -05:00
"beefy_player/mpris.py" = [ "F821" , "F722" , "UP037" ]