"""Fetches Heavy Rotation data from Spotify API""" from typing import Dict, Any, Literal from .spotify_client import SpotifyClient TimeRange = Literal['short_term', 'medium_term', 'long_term'] class HeavyRotationFetcher: """Fetches Heavy Rotation data from Spotify API""" def __init__(self, client: SpotifyClient): self.client = client def get_top_artists( self, time_range: TimeRange = 'short_term', limit: int = 10 ) -> Dict[str, Any]: """ Get user's top artists Args: time_range: 'short_term' (4 weeks), 'medium_term' (6 months), 'long_term' (1 year) limit: Number of artists to fetch (max 50) Returns: Dictionary with 'items' array containing artist objects """ return self.client.get('/me/top/artists', { 'time_range': time_range, 'limit': min(limit, 50), })