
    ^hy                         S SK JrJrJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  \(       a  S SKJr  S SKJr  \r\rO\r\rS\S	\S
\4S jrS\S\S\\   4S jrg)    )TYPE_CHECKINGAnyOptional)verbose_router_logger)_async_get_cooldown_deployments)	AlertType)RouterRateLimitError)Span)Routerlitellm_router_instancerequest_kwargserror_traceback_strc                 &  #    U c  g[        U S5      (       d  gU R                  c  gSU;   a  g[        USS5      n[        U5      nUb  XT-  nUSUSS  3-  nU R                  R	                  SU S3S	[
        R                  0 S
9I Sh  vN   g N7f)aC  
Only runs if router.slack_alerting_logger is set
Sends a Slack / MS Teams alert for the LLM API call failure. Only if router.slack_alerting_logger is set.

Parameters:
    litellm_router_instance (_Router): The LitellmRouter instance.
    original_exception (Any): The original exception that occurred.

Returns:
    None
Nslack_alerting_loggerproxy_server_requestlitellm_debug_infoz

i  zLLM API call failed: ``High)messagelevel
alert_typealerting_metadata)hasattrr   getattrstr
send_alertr   llm_exceptions)r   r   r   original_exceptionr   exception_strs         [/home/james-whalen/.local/lib/python3.13/site-packages/litellm/router_utils/handle_error.pysend_llm_exception_alertr!      s     " &*,CDD44</ 	 !35I4P*+M%+t/6788M
!
7
7
B
B(q9++	 C   s   BB	B
Bmodelparent_otel_spanc                    #    [         R                  " SU S35        U R                  US9nU R                  R	                  X2S9n[        U US9I Sh  vN n[        UUU R                  US9$  N7f)zN
Raises a RouterRateLimitError if no deployment is found for the given model.
z$get_available_deployment for model: z, No deployment available)
model_name)	model_idsr#   )r   r#   N)r"   cooldown_timeenable_pre_call_checkscooldown_list)r   infoget_model_idscooldown_cacheget_min_cooldownr   r	   r(   )r   r"   r#   r&   _cooldown_time_cooldown_lists         r    #async_raise_no_deployment_exceptionr0   A   s      
.ug5NO (555GI,;;LL M N ; 7) N  $6MM$	 	s   AA/A-A/N)typingr   r   r   litellm._loggingr   &litellm.router_utils.cooldown_handlersr   )litellm.types.integrations.slack_alertingr   litellm.types.routerr	   opentelemetry.tracer
   _Spanlitellm.routerr   _RouterLitellmRouterdictr   r!   r0        r    <module>r>      sv    / / 2 R ? 510MDMD**** *Z*36JRSW.r=   