+ @property
+ def genres(self):
+ """Fetches Genres for the track
+ Multivalue genre are dealt with:
+
+ * when genre tag is multivalued
+ * when single tag uses coma or semi-colon separator
+ """
+ if not self.genre:
+ return []
+ genres = self.genre.split(SEPARATOR)
+ for sep in [',', ';']:
+ if sep in self.genre:
+ genres = [g for multi in genres for g in multi.split(sep) if g]
+ return list(map(str.strip, genres))
+
+ @property
+ def Artist(self):
+ """Get the :class:`sima.lib.meta.Artist` associated to this track"""
+ if not self.artist:
+ if not self.musicbrainz_artistid:
+ return Artist(name='[unknown]',
+ mbid='125ec42a-7229-4250-afc5-e057484327fe')
+ return Artist(name='[unknown]', **self.__dict__)
+ return Artist(**self.__dict__)
+
+ @property
+ def Album(self):
+ """Get the :class:`sima.lib.meta.Album` associated to this track"""
+ if not self.album:
+ return Album(name='[unknown]', **self.__dict__)
+ return Album(name=self.album, **self.__dict__)
+