[project]
name = "musicmuster"
version = "4.1.10"
description = "Music player for internet radio"
authors = [{ name = "Keith Edmunds", email = "kae@midnighthax.com" }]
requires-python = ">=3.13,<4"
readme = "README.md"
dependencies = [
    "alchemical>=1.0.2",
    "alembic>=1.14.0",
    "colorlog>=6.9.0",
    "fuzzywuzzy>=0.18.0",
    "mutagen>=1.47.0",
    "mysqlclient>=2.2.5",
    "obs-websocket-py>=1.0",
    "psutil>=6.1.0",
    "pydub>=0.25.1",
    "pydymenu>=0.5.2",
    "pyfzf>=0.3.1",
    "pygame>=2.6.1",
    "pyqt6>=6.7.1",
    "pyqt6-webengine>=6.7.0",
    "pyqtgraph>=0.13.3",
    "python-levenshtein>=0.26.1",
    "python-slugify>=8.0.4",
    "python-vlc>=3.0.21203",
    "SQLAlchemy>=2.0.36",
    "stackprinter>=0.2.10",
    "tinytag>=1.10.1",
    "types-psutil>=6.0.0.20240621",
    "pyyaml (>=6.0.2,<7.0.0)",
    "audioop-lts>=0.2.1",
    "types-pyyaml>=6.0.12.20241230",
    "dogpile-cache>=1.3.4",
    "pdbpp>=0.10.3",
]

[dependency-groups]
dev = [
    "flakehell>=0.9.0,<0.10",
    "ipdb>=0.13.9,<0.14",
    "line-profiler>=4.2.0,<5",
    "mypy>=1.15.0,<2",
    "pudb",
    "pydub-stubs>=0.25.1,<0.26",
    "pytest>=8.3.4,<9",
    "pytest-qt>=4.4.0,<5",
    "black>=25.1.0,<26",
    "pytest-cov>=6.0.0,<7",
]

[tool.uv]
package = false

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.mypy]
mypy_path = "/home/kae/git/musicmuster/app"
explicit_package_bases = true
python_version = 3.11
warn_unused_configs = true
disallow_incomplete_defs = true

[tool.pytest.ini_options]
addopts = "--exitfirst --showlocals --capture=no"
pythonpath = [".", "app"]
filterwarnings = ["ignore:'audioop' is deprecated", "ignore:pkg_resources"]

[tool.vulture]
exclude = ["migrations", "app/ui", "archive"]
paths = ["app"]
make_whitelist = true

