implemented abstract class
This commit is contained in:
parent
68031b9cdd
commit
6b496971c9
@ -53,7 +53,67 @@ class Page:
|
||||
if it is true it fetches only the most important information (only one level)
|
||||
if an Artist is passed in, it fetches only the discography of the artist, and not the
|
||||
tracklist of every album of the artist.
|
||||
:return detailed_music_object:
|
||||
:return detailed_music_object: IT MODIFIES THE INPUT OBJ
|
||||
"""
|
||||
|
||||
raise NotImplementedError
|
||||
if type(music_object) == Song:
|
||||
return cls.fetch_song_details(music_object, simple=simple)
|
||||
|
||||
if type(music_object) == Album:
|
||||
return cls.fetch_album_details(music_object, simple=simple)
|
||||
|
||||
if type(music_object) == Artist:
|
||||
return cls.fetch_artist_details(music_object, simple=simple)
|
||||
|
||||
raise NotImplementedError(f"MusicObject {type(music_object)} has not been implemented yet")
|
||||
|
||||
def fetch_song_details(cls, song: Song, simple: bool = False) -> Song:
|
||||
"""
|
||||
for a general description check cls.fetch_details
|
||||
|
||||
:param song: song without much data
|
||||
:param simple:
|
||||
when True it only fetches the artist and the album, and the attributes of those,
|
||||
who can be gotten with one api request
|
||||
when False it fetches everything including, but not limited to:
|
||||
- Lyrics
|
||||
- Album + Tracklist (for tracksort)
|
||||
|
||||
:return detailed_song: it modifies the input song
|
||||
"""
|
||||
|
||||
raise NotImplementedError()
|
||||
|
||||
def fetch_album_details(cls, album: Album, simple: bool = False) -> Album:
|
||||
"""
|
||||
for a general description check cls.fetch_details
|
||||
|
||||
:param album: album without much data
|
||||
:param simple:
|
||||
when True it only fetches the artist and the tracklist, and the attributes of those,
|
||||
which can be gotten with one api request
|
||||
when False it fetches everything including, but not limited to:
|
||||
- Lyrics of every song
|
||||
- Artist, Album, Tracklist
|
||||
- every attribute of those
|
||||
|
||||
:return detailed_artist: it modifies the input artist
|
||||
"""
|
||||
|
||||
raise NotImplementedError()
|
||||
|
||||
def fetch_artist_details(cls, artist: Artist, simple: bool = False) -> Artist:
|
||||
"""
|
||||
for a general description check cls.fetch_details
|
||||
|
||||
:param artist: artist without much data
|
||||
:param simple:
|
||||
when True it only fetches the discographie, meaning every album, but not every tracklist
|
||||
when False it fetches everything including, but not limited to:
|
||||
- the whole discography
|
||||
- the tracklist of every album in the discography
|
||||
|
||||
:return detailed_artist: it modifies the input artist
|
||||
"""
|
||||
|
||||
raise NotImplementedError()
|
||||
|
Loading…
Reference in New Issue
Block a user