o
    `۷i                     @   sj   d dl Z d dlmZ d dlZd dlmZ d dlmZ d dl	m
Z
 e	ddee dee ddfd	d
ZdS )    N)Optional)DeveloperAPI)try_import_tf)set_torch_seed	frameworkseedreturnc                 C   sv   |du rdS t | tj | | dkrt|d dS | dkr9t \}}}|dkr2|j | dS || dS dS )a   Seed global modules such as random, numpy, torch, or tf.

    This is useful for debugging and testing.

    Args:
        framework: The framework specifier (may be None).
        seed: An optional int seed. If None, will not do
            anything.
    Ntorch)r   tf2   )randomr   npr   r   set_seedset_random_seed)r   r   tf1tftfv r   Y/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/rllib/utils/debug/deterministic.pyupdate_global_seed_if_necessary   s   
r   )NN)r   typingr   numpyr   ray.rllib.utils.annotationsr   ray.rllib.utils.frameworkr   ray.rllib.utils.torch_utilsr   strintr   r   r   r   r   <module>   s    