Source code for suboptimumg.compsim.competition_factory

"""
Factory functions for creating Competition objects.
"""

from ..track.track_factory import from_data as track_from_data
from ..vehicle.vehicle import Car
from .competition import Competition
from .models import CompetitionData


[docs] def from_data(data: CompetitionData) -> Competition: """ Factory function to create a Competition from a CompetitionData model. Parameters ---------- data : CompetitionData A CompetitionData instance containing vehicle model, track data, and scoring Returns ------- Competition """ # Reconstruct the Car from VehicleModel mycar = Car(vehicle_model=data.vehicle_model) # Reconstruct tracks from TrackData accel = track_from_data(data.accel) skidpad = track_from_data(data.skidpad) autoX = track_from_data(data.autoX) endurance = track_from_data(data.endurance) # Create Competition instance return Competition( mycar=mycar, accel=accel, skidpad=skidpad, autoX=autoX, endurance=endurance, scoring=data.scoring, )