from __future__ import annotations from collections.abc import Awaitable, Callable from typing import Any from quart import Quart from repub.web.admin import register_admin_routes from repub.web.publisher import register_publisher_routes from repub.web.static import register_static_routes RouteGuard = Callable[[Callable[..., Awaitable[Any]]], Callable[..., Awaitable[Any]]] def register_routes( app: Quart, *, admin_required: RouteGuard, publisher_required: RouteGuard, ) -> None: register_static_routes(app) register_admin_routes(app, admin_required=admin_required) register_publisher_routes( app, publisher_required=publisher_required, admin_required=admin_required, )