mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 19:28:25 +02:00
27 lines
929 B
Python
27 lines
929 B
Python
from typing import Generator
|
|
|
|
|
|
# representation of a group of tracks
|
|
class TrackGroup:
|
|
def __init__(self, tracks: list["Track"] = None):
|
|
self.tracks = tracks if tracks is not None else []
|
|
|
|
def get_tracks(self) -> Generator["Track", None, None]:
|
|
"""
|
|
Get all the track elements
|
|
:return: track elements
|
|
"""
|
|
for track in self.tracks:
|
|
yield from track.get_tracks()
|
|
|
|
@classmethod
|
|
def from_dict(cls, group_dict: dict) -> "TrackGroup | Track":
|
|
"""
|
|
create a track group from a dict, or create a track from the dict if not a group
|
|
:param group_dict: dict containing the track information
|
|
:return: TrackGroup or Track
|
|
"""
|
|
from source.mkw.Track import Track
|
|
|
|
if "group" not in group_dict: return Track.from_dict(group_dict)
|
|
return cls(tracks=[Track.from_dict(track) for track in group_dict["group"]])
|