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,
)