mirror of
https://github.com/Dvorinka/SpotifyRecAlg.git
synced 2026-06-03 20:13:03 +00:00
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
"""
|
|
Swing Music API package.
|
|
|
|
The package intentionally avoids eager imports so a broken or optional API
|
|
module cannot crash process boot.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import importlib
|
|
|
|
_MODULES = {
|
|
"album": "swingmusic.api.album",
|
|
"artist": "swingmusic.api.artist",
|
|
"collections": "swingmusic.api.collections",
|
|
"colors": "swingmusic.api.colors",
|
|
"favorites": "swingmusic.api.favorites",
|
|
"folder": "swingmusic.api.folder",
|
|
"imgserver": "swingmusic.api.imgserver",
|
|
"playlist": "swingmusic.api.playlist",
|
|
"search": "swingmusic.api.search",
|
|
"settings": "swingmusic.api.settings",
|
|
"lyrics": "swingmusic.api.lyrics",
|
|
"plugins": "swingmusic.api.plugins",
|
|
"scrobble": "swingmusic.api.scrobble",
|
|
"home": "swingmusic.api.home",
|
|
"getall": "swingmusic.api.getall",
|
|
"auth": "swingmusic.api.auth",
|
|
"stream": "swingmusic.api.stream",
|
|
"backup_and_restore": "swingmusic.api.backup_and_restore",
|
|
"spotify": "swingmusic.api.spotify",
|
|
"spotify_settings": "swingmusic.api.spotify_settings",
|
|
"enhanced_search": "swingmusic.api.enhanced_search",
|
|
"universal_downloader": "swingmusic.api.universal_downloader",
|
|
"music_catalog": "swingmusic.api.music_catalog",
|
|
"upload": "swingmusic.api.upload",
|
|
"downloads": "swingmusic.api.downloads",
|
|
"setup": "swingmusic.api.setup",
|
|
"plugins_lyrics": "swingmusic.api.plugins.lyrics",
|
|
"plugins_mixes": "swingmusic.api.plugins.mixes",
|
|
"dragonfly": "swingmusic.api.dragonfly",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str):
|
|
module_path = _MODULES.get(name)
|
|
if module_path is None:
|
|
raise AttributeError(f"module 'swingmusic.api' has no attribute '{name}'")
|
|
|
|
module = importlib.import_module(module_path)
|
|
globals()[name] = module
|
|
return module
|
|
|
|
|
|
__all__ = sorted(_MODULES.keys())
|