Source code for day10.lib.direction

"""direction Enum."""
from enum import Enum


[docs] class Direction(Enum): """Cardinal (NSEW) direction Enum.""" NORTH = 1 SOUTH = 2 EAST = 3 WEST = 4
[docs] def opposite(self) -> "Direction": """Return opposite direction. e.g. ``E``<->``W`` and ``N``<->``S`` Raises: AssertionError: if direction is invalid Returns: Direction: opposite direction. """ if self == Direction.NORTH: return Direction.SOUTH if self == Direction.SOUTH: return Direction.NORTH if self == Direction.EAST: return Direction.WEST if self == Direction.WEST: return Direction.EAST raise AssertionError("invalid direction")