
    h$                     <    d Z ddlmZmZmZ ddlmZ  G d d      Zy)z6
Utility class for getting routes from a FastAPI app.
    )AnyDictList)	BaseRoutec            
       d    e Zd Zedededeeeef      fd       Z	ededeeeef      fd       Z
y)	GetRoutesrouteendpoint_routereturnc                     g }t        | dd      t        | dd      t        | dd      t        | dd      r|j                  ndd}|j                  |       |S )z1
        Get routes for a regular route.
        pathNmethodsnameendpoint)r   r   r   r   )getattr__name__append)r	   r
   routes
route_infos       a/var/www/Befach/backend/env/lib/python3.12/site-packages/litellm/proxy/common_utils/get_routes.pyget_app_routeszGetRoutes.get_app_routes   sc     (*E640ui6E640 5*d3 ''	

 	j!    c                    g }t        | dd      }t        | dd      }|rt        |d      r|j                  D ]  }t        |dd      xs t        |dd      }|"t        |dd      }|j                  d      |z   }|t        |dd	d
g      t        |dd      t	        |      r|j
                  nddd}|j                  |        |S )z;
        Get routes for a mounted sub-application.
        r    appNr   r   /r   GETPOSTr   T)r   r   r   r   mounted_app)r   hasattrr   rstripcallabler   r   )	r	   r   
mount_pathsub_app	sub_routeendpoint_funcsub_route_path	full_pathr   s	            r   get_routes_for_mounted_appz$GetRoutes.get_routes_for_mounted_app!   s     (*UFB/
%-ww1$^^	 '	:t D gPY[`bfHg ,%,Y%CN * 1 1# 6 GI !*#*9i%#Q '	64 @>F}>UM$:$:[_'+"J MM*- ,  r   N)r   
__module____qualname__staticmethodr   r   r   r   strr   r)    r   r   r   r   
   sl     
d38n	 * 	d38n	 r   r   N)__doc__typingr   r   r   starlette.routingr   r   r.   r   r   <module>r2      s    # " '2 2r   