nixpkgs/pkgs/development/python-modules/sendspin/default.nix

75 lines
1.4 KiB
Nix

{
lib,
aiosendspin-mpris,
aiosendspin,
av,
buildPythonPackage,
fetchFromGitHub,
numpy,
pulsectl-asyncio,
pychromecast,
pytest-asyncio,
pytestCheckHook,
qrcode,
readchar,
rich,
setuptools,
sounddevice,
}:
buildPythonPackage (finalAttrs: {
pname = "sendspin";
version = "7.4.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "sendspin-cli";
tag = finalAttrs.version;
hash = "sha256-B375jsOik0IdLtozH3t3hZKqoO+dtqkzX2bk5YuoO9Y=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'version = "0.0.0"' 'version = "${finalAttrs.version}"'
'';
build-system = [ setuptools ];
dependencies = [
aiosendspin
aiosendspin-mpris
av
numpy
pulsectl-asyncio
qrcode
readchar
rich
sounddevice
]
++ aiosendspin.optional-dependencies.server;
optional-dependencies = {
cast = [ pychromecast ];
};
nativeCheckInputs = [
pytest-asyncio
pytestCheckHook
];
pythonImportsCheck = [ "sendspin" ];
disabledTests = [
# requires internet
"test_multi_worker_starts_and_serves_status"
];
meta = {
description = "Synchronized audio player for Sendspin servers";
homepage = "https://github.com/Sendspin/sendspin-cli";
changelog = "https://github.com/Sendspin/sendspin-cli/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ fab ];
};
})