"""Autorouting for freeroute. An MVP grid-based maze router and the DSN-in / SES-out pipeline that makes freeroute a Java-free replacement for the ``freerouting.jar`` step:: from freeroute.route import route ses_text = route(dsn_text) The router (:class:`GridRouter`) is intentionally simple — single-layer A* over a uniform occupancy grid, enough to reach connectivity on boards whose nets route without crossing. FreeRouting's free-space expansion-room maze, rip-up, multi-layer via search, and shove are deferred. """ from __future__ import annotations from .exact_router import ExactRouteResult, route_board_exact from .grid_router import GridRouter, RouteResult, route_board from .pipeline import ( build_exact_routing_result, build_rooms_routing_result, build_routing_result, route, route_dsn_board, route_dsn_board_exact, route_dsn_board_rooms, ) from .room_router import route_board_rooms __all__ = [ "GridRouter", "RouteResult", "route_board", "route", "route_dsn_board", "build_routing_result", "ExactRouteResult", "route_board_exact", "build_exact_routing_result", "route_dsn_board_exact", "route_board_rooms", "build_rooms_routing_result", "route_dsn_board_rooms", ]