
    %h*
                    v    S r SSKJr  SSKr\R
                  (       a  SSKJr  SSKJr  SSKJ	r	   " S S5      r
g)	aY  
Application Dispatcher
======================

This middleware creates a single WSGI application that dispatches to
multiple other WSGI applications mounted at different URL paths.

A common example is writing a Single Page Application, where you have a
backend API and a frontend written in JavaScript that does the routing
in the browser rather than requesting different pages from the server.
The frontend is a single HTML and JS file that should be served for any
path besides "/api".

This example dispatches to an API app under "/api", an admin app
under "/admin", and an app that serves frontend files for all other
requests::

    app = DispatcherMiddleware(serve_frontend, {
        '/api': api_app,
        '/admin': admin_app,
    })

In production, you might instead handle this at the HTTP server level,
serving files or proxying to application servers based on location. The
API and admin apps would each be deployed with a separate WSGI server,
and the static files would be served directly by the HTTP server.

.. autoclass:: DispatcherMiddleware

:copyright: 2007 Pallets
:license: BSD-3-Clause
    )annotationsN)StartResponse)WSGIApplication)WSGIEnvironmentc                  H    \ rS rSrSr S     SS jjr      S	S jrSrg)
DispatcherMiddleware,   a2  Combine multiple applications as a single WSGI application.
Requests are dispatched to an application based on the path it is
mounted under.

:param app: The WSGI application to dispatch to if the request
    doesn't match a mounted path.
:param mounts: Maps path prefixes to applications for dispatching.
Nc                0    Xl         U=(       d    0 U l        g Nappmounts)selfr   r   s      V/var/www/auris/envauris/lib/python3.13/site-packages/werkzeug/middleware/dispatcher.py__init__DispatcherMiddleware.__init__6   s    
 l    c                N   UR                  SS5      nSnSU;   aB  X0R                  ;   a  U R                  U   nOHUR                  SS5      u  p6SU U 3nSU;   a  MB  U R                  R                  X0R                  5      nUR                  SS5      nXs-   US'   XAS'   U" X5      $ )N	PATH_INFO /   SCRIPT_NAME)getr   rsplitr   )r   environstart_responsescript	path_infor   	last_itemoriginal_script_names           r   __call__DispatcherMiddleware.__call__>   s     ["-	Vm$kk&) &c1 5FI;yk2I Vm ++//&((3C&{{="=!5!>(7++r   r   r   )r   r   r   z!dict[str, WSGIApplication] | NonereturnNone)r   r   r   r   r$   zt.Iterable[bytes])__name__
__module____qualname____firstlineno____doc__r   r"   __static_attributes__ r   r   r   r   ,   sJ     59## 2# 
	#,&,8E,	,r   r   )r*   
__future__r   typingtTYPE_CHECKING_typeshed.wsgir   r   r   r   r,   r   r   <module>r2      s-   B # ??,..%, %,r   