feat: cleaned data objects
This commit is contained in:
		@@ -340,12 +340,6 @@ class Album(Base):
 | 
			
		||||
        if len(self.song_collection) > 0:
 | 
			
		||||
            r += f" with {len(self.song_collection)} songs"
 | 
			
		||||
        return r
 | 
			
		||||
        
 | 
			
		||||
    @property
 | 
			
		||||
    def options(self) -> List[P]:
 | 
			
		||||
        options = [*self.artist_collection, self, *self.song_collection]
 | 
			
		||||
 | 
			
		||||
        return options
 | 
			
		||||
 | 
			
		||||
    def update_tracksort(self):
 | 
			
		||||
        """
 | 
			
		||||
@@ -372,18 +366,6 @@ class Album(Base):
 | 
			
		||||
                tracksort_map[i] = existing_list.pop(0)
 | 
			
		||||
                tracksort_map[i].tracksort = i
 | 
			
		||||
 | 
			
		||||
    def compile(self, merge_into: bool = False):
 | 
			
		||||
        """
 | 
			
		||||
        compiles the recursive structures,
 | 
			
		||||
        and does depending on the object some other stuff.
 | 
			
		||||
 | 
			
		||||
        no need to override if only the recursive structure should be built.
 | 
			
		||||
        override self.build_recursive_structures() instead
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        self.update_tracksort()
 | 
			
		||||
        self._build_recursive_structures(build_version=random.randint(0, 99999), merge=merge_into)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def copyright(self) -> str:
 | 
			
		||||
        if self.date is None:
 | 
			
		||||
@@ -429,7 +411,7 @@ class Artist(Base):
 | 
			
		||||
    lyrical_themes: List[str]
 | 
			
		||||
 | 
			
		||||
    general_genre: str
 | 
			
		||||
    unformated_location: str
 | 
			
		||||
    unformatted_location: str
 | 
			
		||||
 | 
			
		||||
    source_collection: SourceCollection
 | 
			
		||||
    contact_collection: Collection[Contact]
 | 
			
		||||
@@ -442,7 +424,7 @@ class Artist(Base):
 | 
			
		||||
        "name": str,
 | 
			
		||||
        "unified_name": lambda: None,
 | 
			
		||||
        "country": lambda: None,
 | 
			
		||||
        "unformated_location": lambda: None,
 | 
			
		||||
        "unformatted_location": lambda: None,
 | 
			
		||||
 | 
			
		||||
        "formed_in": ID3Timestamp,
 | 
			
		||||
        "notes": FormattedText,
 | 
			
		||||
@@ -461,17 +443,17 @@ class Artist(Base):
 | 
			
		||||
    # This is automatically generated
 | 
			
		||||
    def __init__(self, name: str = "", unified_name: str = None, country: Country = None,
 | 
			
		||||
                 formed_in: ID3Timestamp = None, notes: FormattedText = None, lyrical_themes: List[str] = None,
 | 
			
		||||
                 general_genre: str = None, unformated_location: str = None, source_list: List[Source] = None,
 | 
			
		||||
                 general_genre: str = None, unformatted_location: str = None, source_list: List[Source] = None,
 | 
			
		||||
                 contact_list: List[Contact] = None, feature_song_list: List[Song] = None,
 | 
			
		||||
                 main_album_list: List[Album] = None, label_list: List[Label] = None, **kwargs) -> None:
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
        super().__init__(name=name, unified_name=unified_name, country=country, formed_in=formed_in, notes=notes,
 | 
			
		||||
                         lyrical_themes=lyrical_themes, general_genre=general_genre,
 | 
			
		||||
                         unformated_location=unformated_location, source_list=source_list, contact_list=contact_list,
 | 
			
		||||
                         unformatted_location=unformatted_location, source_list=source_list, contact_list=contact_list,
 | 
			
		||||
                         feature_song_list=feature_song_list, main_album_list=main_album_list, label_list=label_list,
 | 
			
		||||
                         **kwargs)
 | 
			
		||||
 | 
			
		||||
    DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("feature_song_collection", "main_album_collection")
 | 
			
		||||
    DOWNWARDS_COLLECTION_STRING_ATTRIBUTES = ("main_album_collection", "feature_song_collection")
 | 
			
		||||
    UPWARDS_COLLECTION_STRING_ATTRIBUTES = ("label_collection",)
 | 
			
		||||
 | 
			
		||||
    def __init_collections__(self):
 | 
			
		||||
@@ -504,12 +486,6 @@ class Artist(Base):
 | 
			
		||||
            self.label_collection.extend(object_list)
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def options(self) -> List[P]:
 | 
			
		||||
        options = [self, *self.main_album_collection.shallow_list, *self.feature_album]
 | 
			
		||||
        print(options)
 | 
			
		||||
        return options
 | 
			
		||||
 | 
			
		||||
    def update_albumsort(self):
 | 
			
		||||
        """
 | 
			
		||||
        This updates the albumsort attributes, of the albums in
 | 
			
		||||
@@ -585,19 +561,6 @@ class Artist(Base):
 | 
			
		||||
 | 
			
		||||
        return metadata
 | 
			
		||||
 | 
			
		||||
    """
 | 
			
		||||
    def __str__(self, include_notes: bool = False):
 | 
			
		||||
        string = self.name or ""
 | 
			
		||||
        if include_notes:
 | 
			
		||||
            plaintext_notes = self.notes.get_plaintext()
 | 
			
		||||
            if plaintext_notes is not None:
 | 
			
		||||
                string += "\n" + plaintext_notes
 | 
			
		||||
        return string
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    def __repr__(self):
 | 
			
		||||
        return f"Artist(\"{self.name}\")"
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def option_string(self) -> str:
 | 
			
		||||
        r = OPTION_FOREGROUND.value + self.name + BColors.ENDC.value + OPTION_BACKGROUND.value
 | 
			
		||||
@@ -613,43 +576,6 @@ class Artist(Base):
 | 
			
		||||
 | 
			
		||||
        return r
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def options(self) -> List[P]:
 | 
			
		||||
        options = [self]
 | 
			
		||||
        options.extend(self.main_album_collection)
 | 
			
		||||
        options.extend(self.feature_song_collection)
 | 
			
		||||
        return options
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def feature_album(self) -> Album:
 | 
			
		||||
        return Album(
 | 
			
		||||
            title="features",
 | 
			
		||||
            album_status=AlbumStatus.UNRELEASED,
 | 
			
		||||
            album_type=AlbumType.COMPILATION_ALBUM,
 | 
			
		||||
            is_split=True,
 | 
			
		||||
            albumsort=666,
 | 
			
		||||
            dynamic=True,
 | 
			
		||||
            song_list=self.feature_song_collection.shallow_list
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def get_all_songs(self) -> List[Song]:
 | 
			
		||||
        """
 | 
			
		||||
        returns a list of all Songs.
 | 
			
		||||
        probably not that useful, because it is unsorted
 | 
			
		||||
        """
 | 
			
		||||
        collection = self.feature_song_collection.copy()
 | 
			
		||||
        for album in self.discography:
 | 
			
		||||
            collection.extend(album.song_collection)
 | 
			
		||||
 | 
			
		||||
        return collection
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def discography(self) -> List[Album]:
 | 
			
		||||
        flat_copy_discography = self.main_album_collection.copy()
 | 
			
		||||
        flat_copy_discography.append(self.feature_album)
 | 
			
		||||
 | 
			
		||||
        return flat_copy_discography
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
"""
 | 
			
		||||
Label
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user