o
    `Û·is  ã                   @   s´  d dl Z d dlZd dlZd dlZd dlmZ d dlm	Z	 e 
e¡Zzd dlZdZW n ey9   e d¡ dZY nw e	dd„ ƒZe	d	d
„ ƒZe	dd„ ƒZe	dd„ ƒZe	dd„ ƒZe	dd„ ƒZedkrØdZe e¡ d¡Zd Ze ¡ Ze ¡ e dk rŠeeƒ ed7 Ze ¡ e dk szeeƒZed  ee d d ¡ƒ ed  e!ed e"eƒ dƒ¡ƒ d Ze ¡ Ze ¡ e dk rÉeeƒ ed7 Ze ¡ e dk s¹ed  ee d d ¡ƒ dS dS )é    N)Úcloudpickle)ÚDeveloperAPITz‰lz4 not available, disabling sample compression. This will significantly impact RLlib performance. To install lz4, run `pip install lz4`.Fc                   C   s   t S ©N)ÚLZ4_ENABLED© r   r   úQ/home/ubuntu/vllm_env/lib/python3.10/site-packages/ray/rllib/utils/compression.pyÚcompression_supported   s   r   c                 C   s.   t rt | ¡} tj | ¡} t | ¡ d¡} | S )NÚascii)	r   ÚpickleÚdumpsÚlz4ÚframeÚcompressÚbase64Ú	b64encodeÚdecode©Údatar   r   r   Úpack   s
   
r   c                 C   s   t | tjƒr
t| ƒ} | S r   )Ú
isinstanceÚnpÚndarrayr   r   r   r   r   Úpack_if_needed)   s   r   c                 C   s(   t rt | ¡} tj | ¡} t | ¡} | S r   )r   r   Ú	b64decoder   r   Ú
decompressr
   Úloadsr   r   r   r   Úunpack0   s
   

r   c                 C   s   t | ƒrt| ƒ} | S r   )Úis_compressedr   r   r   r   r   Úunpack_if_needed9   s   r   c                 C   s   t | tƒp	t | tƒS r   )r   ÚbytesÚstrr   r   r   r   r   @   s   r   Ú__main__i € )é    éP   r#   é   é   zCompression speed: {} MB/sr$   g    €„.AzCompression ratio: {}é   zDecompression speed: {} MB/s)#r   ÚloggingÚtimeÚnumpyr   Úrayr   r
   Úray.rllib.utils.annotationsr   Ú	getLoggerÚ__name__ÚloggerÚ	lz4.framer   r   ÚImportErrorÚwarningr   r   r   r   r   r   ÚsizeÚonesÚreshaper   ÚcountÚstartÚ
compressedÚprintÚformatÚroundÚlenr   r   r   r   Ú<module>   s`    
ÿú	






þ þî