import music_kraken from music_kraken.objects import Song, Album, Artist, Collection if __name__ == "__main__": artist: Artist = Artist( name="artist", main_album_list=[ Album( title="album", song_list=[ Song( title="song", album_list=[ Album( title="album", albumsort=123, main_artist=Artist(name="artist"), ), ], ), Song( title="other_song", album_list=[ Album(title="album", albumsort=423), ], ), ] ), Album(title="album", barcode="1234567890123"), ] ) other_artist: Artist = Artist( name="artist", main_album_list=[ Album( title="album", song_list=[ Song( title="song", album_list=[ Album( title="album", albumsort=123, main_artist=Artist(name="other_artist"), ), ], ), Song( title="other_song", album_list=[ Album(title="album", albumsort=423), ], ), ] ), Album(title="album", barcode="1234567890123"), ] ) artist.merge(other_artist) a = artist.main_album_collection[0] b = a.song_collection[0].album_collection[0] c = a.song_collection[1].album_collection[0] d = b.song_collection[0].album_collection[0] e = d.song_collection[0].album_collection[0] f = e.song_collection[0].album_collection[0] g = f.song_collection[0].album_collection[0] print(a.id, a.title, a.barcode, a.albumsort) print(b.id, b.title, b.barcode, b.albumsort) print(c.id, c.title, c.barcode, c.albumsort) print(d.id, d.title, d.barcode, d.albumsort) print(e.id, e.title, e.barcode, e.albumsort) print(f.id, f.title, f.barcode, f.albumsort) print(g.id, g.title, g.barcode, g.albumsort) print() d.title = "new_title" print(a.id, a.title, a.barcode, a.albumsort) print(b.id, b.title, b.barcode, b.albumsort) print(c.id, c.title, c.barcode, c.albumsort) print(d.id, d.title, d.barcode, d.albumsort) print(e.id, e.title, e.barcode, e.albumsort) print(f.id, f.title, f.barcode, f.albumsort) print(g.id, g.title, g.barcode, g.albumsort) print() print(artist.main_album_collection._indexed_values)