MCPcopy
hub / github.com/encode/starlette / __init__

Method __init__

starlette/routing.py:360–381  ·  view source on GitHub ↗
(
        self,
        path: str,
        app: ASGIApp | None = None,
        routes: Sequence[BaseRoute] | None = None,
        name: str | None = None,
        *,
        middleware: Sequence[Middleware] | None = None,
    )

Source from the content-addressed store, hash-verified

358
359class Mount(BaseRoute):
360 def __init__(
361 self,
362 path: str,
363 app: ASGIApp | None = None,
364 routes: Sequence[BaseRoute] | None = None,
365 name: str | None = None,
366 *,
367 middleware: Sequence[Middleware] | None = None,
368 ) -> None:
369 assert path == "" or path.startswith("/"), "Routed paths must start with '/'"
370 assert app is not None or routes is not None, "Either 'app=...', or 'routes=' must be specified"
371 self.path = path.rstrip("/")
372 if app is not None:
373 self._base_app: ASGIApp = app
374 else:
375 self._base_app = Router(routes=routes)
376 self.app = self._base_app
377 if middleware is not None:
378 for cls, args, kwargs in reversed(middleware):
379 self.app = cls(self.app, *args, **kwargs)
380 self.name = name
381 self.path_regex, self.path_format, self.param_convertors = compile_path(self.path + "/{path:path}")
382
383 @property
384 def routes(self) -> list[BaseRoute]:

Callers

nothing calls this directly

Calls 2

RouterClass · 0.85
compile_pathFunction · 0.85

Tested by

no test coverage detected