from __future__ import annotations
from typing import TYPE_CHECKING
from ..._shared import _copy_docstring
from ._shared import PrivateQobuzResourceAPI
from .users import PrivateUsersAPI
if TYPE_CHECKING:
from typing import Any
from ...._types import Collection
[docs]
class PrivateDynamicAPI(PrivateQobuzResourceAPI):
"""
Dynamic Tracks API endpoints for the private Qobuz API.
.. important::
This class is managed by
:class:`~minim.api.qobuz.PrivateQobuzAPIClient` and should not be
instantiated directly.
"""
__slots__ = ()
[docs]
@_copy_docstring(PrivateUsersAPI.get_personalized_playlists)
def get_personalized_playlists(self) -> list[dict[str, Any]]:
return self._client.users.get_personalized_playlists()
[docs]
@_copy_docstring(PrivateUsersAPI.get_personalized_playlist_tracks)
def get_personalized_playlist_tracks(
self,
playlist_type: str,
/,
*,
limit: int | None = None,
offset: int | None = None,
) -> dict[str, Any]:
return self._client.users.get_personalized_playlist_tracks(
playlist_type, limit=limit, offset=offset
)
[docs]
@_copy_docstring(PrivateUsersAPI.get_track_recommendations)
def get_track_recommendations(
self,
seed_track_ids: int | str | Collection[int | str],
/,
exclude_track_ids: int | str | Collection[int | str] | None = None,
*,
limit: int | None = None,
) -> dict[str, Any]:
return self._client.users.get_track_recommendations(
seed_track_ids, exclude_track_ids=exclude_track_ids, limit=limit
)