music-assistant: restructure dependencies

This restructures dependencies and optional-dependencies to match the
structure of upstream's pyproject.toml again.

As part of this, a few dependencies were found to be redundant, either
because they have been replaced by another already added dependency,
partially vendored, or dropped:

- [asyncio-throttle] has been vendored
- [eyed3] was replaced by mutagen
- [faust-cchardet] was replaced by chardet
- [memory-tempfile] was dropped
- [pytest-timeout] was dropped

[asyncio-throttle]: https://github.com/music-assistant/server/commit/289fe77997cd47823b322354c6c64ae3144101fb
[eyed3]: https://github.com/music-assistant/server/commit/c597dc391b57ab332cbff82e7c667d9a70c8f32e
[faust-cchardet]: https://github.com/music-assistant/server/commit/ce545c64278d2c7f8228a7183ae243ae80b88d92
[memory-tempfile]: https://github.com/music-assistant/server/commit/ecdab7a5559814c1ce296a15bb50cb8ac5d0e596
[pytest-timeout]: https://github.com/music-assistant/server/commit/b061cc934ed9815ba3118ff9e9836c43d320d15a
This commit is contained in:
emilylange
2025-12-21 03:32:32 +01:00
parent 335cd00a38
commit 7cefc996d4
+33 -41
View File
@@ -103,56 +103,48 @@ python.pkgs.buildPythonApplication rec {
"uv"
];
dependencies =
with python.pkgs;
[
aiohttp
chardet
mashumaro
orjson
]
++ optional-dependencies.server;
dependencies = with python.pkgs; [
# Only packages required in pyproject.toml
aiodns
aiofiles
aiohttp
aiohttp-asyncmdnsresolver
aiohttp-fast-zlib
aiorun
aiosqlite
brotli
certifi
chardet
colorlog
cryptography
mashumaro
music-assistant-frontend
music-assistant-models
mutagen
orjson
pillow
podcastparser
propcache
python-slugify
shortuuid
unidecode
xmltodict
zeroconf
];
optional-dependencies = with python.pkgs; {
server = [
aiodns
aiofiles
aiohttp
aiorun
aiosqlite
asyncio-throttle
brotli
certifi
colorlog
cryptography
eyed3
faust-cchardet
ifaddr
mashumaro
memory-tempfile
music-assistant-frontend
music-assistant-models
mutagen
orjson
pillow
podcastparser
python-slugify
shortuuid
unidecode
xmltodict
zeroconf
# Required subset of optional-dependencies in pyproject.toml
test = [
pytest-aiohttp
pytest-cov-stub
syrupy
];
};
nativeCheckInputs =
with python.pkgs;
[
pytest-aiohttp
pytest-cov-stub
pytest-timeout
pytestCheckHook
syrupy
pytest-timeout
]
++ lib.concatAttrValues optional-dependencies
++ (providerPackages.jellyfin python.pkgs)