From ad39ddf83f96a90d2cc5085e05668fe1fc82b450 Mon Sep 17 00:00:00 2001 From: Bradlee Speice Date: Sat, 3 Jul 2021 23:57:24 -0400 Subject: [PATCH] Add a release date precision enum --- spotify_model/__init__.py | 3 ++- spotify_model/album.py | 4 +++- spotify_model/extra.py | 13 +++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 spotify_model/extra.py diff --git a/spotify_model/__init__.py b/spotify_model/__init__.py index 45da82a..5ee33b2 100644 --- a/spotify_model/__init__.py +++ b/spotify_model/__init__.py @@ -3,6 +3,7 @@ Client-agnostic model for marshalling Spotify data types. """ from .album import SearchAlbum +from .extra import ReleaseDatePrecision from .paging import Paging -__all__ = ["Paging", "SearchAlbum"] +__all__ = ["Paging", "ReleaseDatePrecision", "SearchAlbum"] diff --git a/spotify_model/album.py b/spotify_model/album.py index 9cb839b..e0d750c 100644 --- a/spotify_model/album.py +++ b/spotify_model/album.py @@ -6,6 +6,8 @@ from typing import Any, Dict, List, Union from pydantic import BaseModel, Field +from .extra import ReleaseDatePrecision + class SearchAlbum(BaseModel): "Album as returned by the search API. Doesn't quite return a SimplifiedAlbum." @@ -19,7 +21,7 @@ class SearchAlbum(BaseModel): images: List[Dict[str, Any]] name: str release_date: str - release_date_precision: str + release_date_precision: ReleaseDatePrecision total_tracks: int type_: str = Field(alias="type") uri: str diff --git a/spotify_model/extra.py b/spotify_model/extra.py new file mode 100644 index 0000000..3d64f80 --- /dev/null +++ b/spotify_model/extra.py @@ -0,0 +1,13 @@ +""" +Extra type definitions that don't necessarily belong in other categories. +""" + +from enum import Enum + + +class ReleaseDatePrecision(Enum): + "Release date precision" + + YEAR = "year" + MONTH = "month" + DAY = "day"