Source code for spotify_py_sdk.endpoints.recommendations

from typing import Union

from .endpoints_base import EndpointsBase
from spotify_py_sdk.types import *


[docs] class RecommendationsRequestRequiredArguments: def __init__(self, seed_artists: Optional[list[str]] = None, seed_genres: Optional[list[str]] = None, seed_tracks: Optional[list[str]] = None): self.seed_artists = seed_artists self.seed_genres = seed_genres self.seed_tracks = seed_tracks
[docs] class RecommendationsRequest(RecommendationsRequestRequiredArguments): def __init__(self): # TODO super().__init__() pass
[docs] class RecommendationSeed: def __init__(self, id: str, href: str, type: str, initial_pool_size: int, after_filtering_size: int, after_relinking_size: int): self.id = id self.href = href self.type = type self.initial_pool_size = initial_pool_size self.after_filtering_size = after_filtering_size self.after_relinking_size = after_relinking_size
[docs] class RecommendationsResponse: def __init__(self, seeds: list[RecommendationSeed], tracks: list[Track]): self.seeds = seeds self.tracks = tracks
[docs] class Recommendations(EndpointsBase): def __init__(self, api): super().__init__(api)
[docs] def get(self, request: Union[RecommendationsRequestRequiredArguments, RecommendationsRequest]): param_obj = {} for prop, value in request.__dict__.items(): param_obj[prop] = value params = EndpointsBase.params_for(param_obj) return self.get_request(f"recommendations{params}")
[docs] def genre_seeds(self): return self.get_request("recommendations/available-genre-seeds")