Files
SpotifyRecAlg/swingmusic/serializers/artist.py
T
Tomas Dvorak 6e8fedf534 first commit
2026-04-13 17:46:58 +02:00

44 lines
914 B
Python

from dataclasses import asdict
from swingmusic.models.artist import Artist
def serialize_for_card(artist: Artist, include: set[str] = None):
if include is None:
include = set()
try:
artist_dict = asdict(artist)
except TypeError:
return {}
props_to_remove = {
"is_favorite",
"trackcount",
"duration",
"albumcount",
"playcount",
"playduration",
"lastplayed",
"id",
"genres",
"genrehashes",
"extra",
"created_date",
"date",
"fav_userids",
"_score",
}
if include:
props_to_remove = props_to_remove - include
for key in props_to_remove:
artist_dict.pop(key, None)
artist_dict["type"] = "artist"
return artist_dict
def serialize_for_cards(artists: list[Artist]):
return [serialize_for_card(a) for a in artists]