o
    c²“ir  ã                   @   s´  d dl mZ d dlZd dlZd dlZd dl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 )é    )ÚDeveloperAPIN)ÚcloudpickleTz‰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   úO/home/ubuntu/.local/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   Úunpack/   s
   

r   c                 C   s   t | ƒrt| ƒ} | S r   )Úis_compressedr   r   r   r   r   Úunpack_if_needed8   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)#Úray.rllib.utils.annotationsr   ÚloggingÚtimer   Únumpyr   Úrayr   r
   Ú	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`    
ÿú	



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