Ë
    tPêjO  ã                   ó�   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ  G d„ de«      Z G d	„ d
e«      Z G d„ d«      Zy)z6
Utility class for getting routes from a FastAPI app.
é    )ÚSequence)ÚFinalÚProtocol)Ú	BaseRoute)ÚNotRequiredÚReadOnlyÚ	TypedDict)Úverbose_loggerc                   ó   — e Zd ZU eed<   y)ÚNamedEndpointÚ__name__N)r   Ú
__module__Ú__qualname__ÚstrÚ__annotations__© ó    új/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/proxy/common_utils/get_routes.pyr   r      s   … Ø„Mr   r   c                   ó‚   — e Zd ZU eedz     ed<   eee   dz     ed<   eedz     ed<   eedz     ed<   eee      ed<   y)Ú	RouteInfoNÚpathÚmethodsÚnameÚendpointÚmounted_app)	r   r   r   r   r   r   r   r   Úboolr   r   r   r   r      sR   … Ø
�3˜‘:Ñ
ÓØ�h˜s‘m dÑ*Ñ+Ó+Ø
�3˜‘:Ñ
ÓØ�s˜T‘zÑ"Ó"Ø˜X d™^Ñ,Ô,r   r   c                   ó”   — e Zd Zedededee   fd„«       Zededee   fd„«       Z	ede
dededz  fd	„«       Zed
ede
dz  fd„«       Zy)Ú	GetRoutesÚrouteÚendpoint_routeÚreturnc                 óŠ   — t        | dd«      t        | dd«      t        | dd«      t        | dd«      r|j                  nddœ}|gS )z1
        Get routes for a regular route.
        r   Nr   r   r   )r   r   r   r   )Úgetattrr   )r   r    Ú
route_infos      r   Úget_app_routeszGetRoutes.get_app_routes   sP   € ô ˜E 6¨4Ó0Ü˜u i°Ó6Ü˜E 6¨4Ó0Ü4;¸EÀ:ÈtÔ4T˜×0Ò0ÐZ^ñ	(
ˆ
ð ˆ|Ðr   c                 óÊ   — t        | dd«      }t        | dd«      }|rt        |d«      sg S t        |dd«      }|D �cg c]  }t        j                  ||«      x}�|‘Œ c}S c c}w )z;
        Get routes for a mounted sub-application.
        r   Ú ÚappNÚroutesr   )r#   Úhasattrr   Ú_mounted_sub_route_info)r   Ú
mount_pathÚsub_appÚ
sub_routesÚ	sub_routeÚsub_route_infos         r   Úget_routes_for_mounted_appz$GetRoutes.get_routes_for_mounted_app+   sz   € ô ")¨°¸Ó!;ˆ
Ü!(¨°°tÓ!<ˆÙœg g¨xÔ8ØˆIÜ.5°g¸xÈÓ.Lˆ
ð (ö
àÜ"+×"CÑ"CÀJÐPYÓ"ZÐZ�Ðgò ò
ð 	
ùò 
s   ¼!A r,   r/   Nc                 óä   — t        |dd «      xs t        |dd «      }|€y t        |dd«      }| j                  d«      |z   t        |dddg«      t        |d	d «      t        j                  |«      d
dœS )Nr   r(   r   r'   ú/r   ÚGETÚPOSTr   T)r   r   r   r   r   )r#   Úrstripr   Ú_safe_get_endpoint_name)r,   r/   Úendpoint_funcÚsub_route_paths       r   r+   z!GetRoutes._mounted_sub_route_info=   s‚   € ä'.¨y¸*ÀdÓ'KÒ'nÌwÐW`ÐbgÐimÓOnˆØÐ ØÜ%,¨Y¸ÀÓ%Cˆà×%Ñ% cÓ*¨^Ñ;Ü˜y¨)°e¸V°_ÓEÜ˜I v¨tÓ4Ü!×9Ñ9¸-ÓHØñ
ð 	
r   Úendpoint_functionc                 óö   — 	 t        | d«      rt        | dd«      }|S t        | d«      r,t        | j                  d«      r| j                  j                  S y# t        $ r t        j                  d| «       Y yw xY w)z?
        Safely get the name of the endpoint function.
        r   r'   Ú	__class__Nz)Error getting endpoint name for route: %s)r*   r#   r<   r   Ú	Exceptionr
   Ú	exception)r:   Úendpoint_names     r   r7   z!GetRoutes._safe_get_endpoint_nameK   s}   € ð

	ÜÐ(¨*Ô5Ü,3Ð4EÀzÐSUÓ,V�Ø$Ð$ÜÐ*¨KÔ8¼WÐEV×E`ÑE`ÐblÔ=mØ(×2Ñ2×;Ñ;Ð;àøÜò 	Ü×$Ñ$Ð%PÐRcÔdÙð	ús   ‚A �7A ÁA8Á7A8)r   r   r   Ústaticmethodr   r   Úlistr   r%   r1   r   Úobjectr+   r7   r   r   r   r   r      s¯   „ ØðØðà%ðð 
ˆi‰òó ðð ð
Øð
à	ˆi‰ò
ó ð
ð" ð
¨Cð 
¸Fð 
ÀyÐSWÑGWò 
ó ð
ð ð°6ð ¸cÀD¹jò ó ñr   r   N)Ú__doc__Úcollections.abcr   Útypingr   r   Ústarlette.routingr   Útyping_extensionsr   r   r	   Úlitellm._loggingr
   r   r   r   r   r   r   ú<module>rI      sB   ðñõ %ß "å 'ß >Ñ >å +ô�Hô ô-�	ô -÷@ò @r   