
    0Fie	                        d dl mZ d dlZd dlZd dlZd dlmZ d	dZ G d dej                  Z	 G d dej
                  ZdS )
    )annotationsN)webc                   |t                      }|t                      }| |v rd S |                    |            t          | j                                                  | j        z   D ]i}t          |j        t          j	        j
                  rt          |j        t          j        j                  r|j        j        j                            d                              d          }|j        d         }t'          j        |          D ]R\  }}}|D ]I}	|dz   |	z   }
|
                    ||                              dd          }|                    |           JSn7|                    |j        j        j                            d                     t          |j        t          j	        j                  rt/          |j        ||           kd S )Nz(.*)$/path\$)setaddlistnamed_rulesvaluesrules
isinstancematchertornadoroutingPathMatches
issubclasstargetr   StaticFileHandlerregexpatternrstriptarget_kwargsoswalkreplace
RuleRouter_descend_routes)routerroutersoutruleprefixr   d_filesfnfullpathourpaths               8lib/python3.11/site-packages/distributed/http/routing.pyr    r    
   s   %%
{eeKKV'..0011FL@ 7 7dlGO$?@@ 
	@$+w{'DEE 	@+3::7CCJJ3OO)&1#%74== ) )KAq%# ) )#$s7R<"*"2"24"@"@"H"Hs"S"S(((()) *299#>>???dk7?#=>> 	7DK#6667 7    c                      e Zd ZdZd ZdS )DirectoryHandlerz.Crawls the HTTP application to find all routesc                   t                      }t                      }| j        j        | j        gz   D ]g}dt          |          v r(|                    t          |j                             ;t          |j        ||           t          |j        ||           h| 	                    dt          |          i           d S )Nbokehpaths)r
   applicationapplicationsstrupdate	app_pathsr    default_routerwildcard_routerwritesorted)selfr#   r"   apps       r,   getzDirectoryHandler.get%   s    ee%%#0D4D3EE 	C 	CC#c((""

3s}--.... 2GSAAA 3WcBBBB

GVC[[)*****r-   N)__name__
__module____qualname____doc__r>    r-   r,   r/   r/   "   s)        88	+ 	+ 	+ 	+ 	+r-   r/   c                  2     e Zd Z fdZd
 fdZdd	Z xZS )RoutingApplicationc                     t                      j        |i | g | _        |                     ddt          fg           d S )Nz.*$z/sitemap.json)super__init__r4   add_handlersr/   )r<   argskwargs	__class__s      r,   rH   zRoutingApplication.__init__2   sM    $)&)))%#35E"F!GHHHHHr-   request"tornado.httputil.HTTPServerRequestc                     t                      j        |fi |}|r!t          |j        t          j                  s|S | j        D ]5} |j        |fi |p|}|r!t          |j        t          j                  s n6|S N)rG   find_handlerr   handler_classr   ErrorHandlerr4   )r<   rM   rK   handlerr=   rL   s        r,   rQ   zRoutingApplication.find_handler7   s     '%''&w99&99 	:g&;S=MNN 	N(  *#*7==f==H :g.CSEU#V#V ENr-   r3   web.ApplicationreturnNonec                :    | j                             |           d S rP   )r4   append)r<   r3   s     r,   add_applicationz"RoutingApplication.add_applicationD   s      -----r-   )rM   rN   )r3   rU   rV   rW   )r?   r@   rA   rH   rQ   rZ   __classcell__)rL   s   @r,   rE   rE   1   so        I I I I I
     . . . . . . . .r-   rE   )NN)
__future__r   r   tornado.httputilr   tornado.routingr   r    RequestHandlerr/   ApplicationrE   rC   r-   r,   <module>ra      s    " " " " " " 				              7 7 7 70+ + + + +s) + + +. . . . . . . . . .r-   