Source code for bot_api.mapper.initial_position_mapper
from ..initial_position import InitialPosition
from robocode_tank_royale.schema import InitialPosition as InitialPositionSchema
[docs]
class InitialPositionMapper:
"""Utility class for mapping initial positions."""
[docs]
@staticmethod
def map(source: InitialPosition | None) -> InitialPositionSchema | None:
"""Map a bot-api initial position to a schema initial position."""
if source is None:
return None
# Create a schema InitialPosition object
# The Python schema classes use snake_case for attributes
initial_position :InitialPositionSchema = InitialPositionSchema()
initial_position.x = source.x if hasattr(source, 'x') else None # type: ignore
initial_position.y = source.y if hasattr(source, 'y') else None # type: ignore
initial_position.direction = source.direction if hasattr(source, 'direction') else None # type: ignore
return initial_position