
    i	                         d Z ddlZddlmZmZmZmZmZ ddlm	Z	 er	ddl
mZ eZneZdedeee   eeef   f   ded	efd
Zy)z
Returns a random deployment from the list of healthy deployments.

If weights are provided, it will return a deployment based on the weights.

    N)TYPE_CHECKINGAnyDictListUnion)verbose_router_logger)Routerllm_router_instancehealthy_deploymentsmodelreturnc           	         dD ]"  }|d   j                  d      j                  |d      }|+|D cg c]  }|d   j                  |d       }}t        j                  d|        t        |      }|D cg c]  }||z  	 }}t        j                  d| d|        t	        j
                  t        t        |            |      d   }t        j                  d	|        ||   }	t        j                  d
| d| j                  |	      xs |	d    d|        |	xs |	d   c S  t	        j                  |      }
|
xs |
d   S c c}w c c}w )a  
    Returns a random deployment from the list of healthy deployments.

    If weights are provided, it will return a deployment based on the weights.

    If users pass `rpm` or `tpm`, we do a random weighted pick - based on `rpm`/`tpm`.

    Args:
        llm_router_instance: LitellmRouter instance
        healthy_deployments: List of healthy deployments
        model: Model name

    Returns:
        Dict: A single healthy deployment
    )weightrpmtpmr   litellm_paramsNz
weight z

 weights z by )weightsz
 selected index, z$get_available_deployment for model: z, Selected deployment: z for model: )getr   debugsumrandomchoicesrangeleninfoprint_deploymentchoice)r
   r   r   	weight_byr   mr   total_weightselected_index
deploymentitems              w/Users/manta/Documents/Projects/TheRoad-I1/.venv/lib/python3.12/site-packages/litellm/router_strategy/simple_shuffle.pysimple_shuffler%      s   , .	$Q'++,<=AA)TR?R?R!"#''	15?R   "'')G9(=>w<L;BC7v,7GC!''+gYd9+(NO#^^E#g,,?QRSTN!''*=n=M(NO,^<J!&&6ug=TUhUyUy  {E  VF  VW  JT  UV  JW  UX  Xd  ej  dk  l .A.# .( ==,-D?47%
 Ds   E7E)__doc__r   typingr   r   r   r   r   litellm._loggingr   litellm.routerr	   _RouterLitellmRouterstrr%        r$   <module>r/      sg     8 8 20MM+&+tCy$sCx.89+ + 
	+r.   