o
    ÔÙ¾iø  ã                   @   sX   d dl mZ d dlZd dlmZmZ d dlmZmZ G dd„ deƒZ	G dd„ deƒZ
dS )	é    )ÚUnionN)ÚloadÚsave)ÚDeserializerÚ
Serializerc                       s0   e Zd Z‡ fdd„Zdejdefdd„Z‡  ZS )ÚSafeSerializerc                    s   t ƒ  ¡  d S ©N)ÚsuperÚ__init__©Úself©Ú	__class__© úY/home/ubuntu/.local/lib/python3.10/site-packages/sglang/srt/connector/serde/safe_serde.pyr
      s   zSafeSerializer.__init__ÚtÚreturnc                 C   s   t d| ¡  ¡ iƒS ©NÚtensor_bytes)r   ÚcpuÚ
contiguous)r   r   r   r   r   Úto_bytes   s   zSafeSerializer.to_bytes)	Ú__name__Ú
__module__Ú__qualname__r
   ÚtorchÚTensorÚbytesr   Ú__classcell__r   r   r   r   r      s    r   c                       sT   e Zd Z‡ fdd„Zdeeef dejfdd„Z	deeef dejfdd„Z
‡  ZS )	ÚSafeDeserializerc                    s   t ƒ  tj¡ d S r   )r	   r
   r   Úfloat32r   r   r   r   r
      s   zSafeDeserializer.__init__Úbr   c                 C   s   t t|ƒƒd S r   )r   r   ©r   r!   r   r   r   Úfrom_bytes_normal   s   z"SafeDeserializer.from_bytes_normalc                 C   s
   |   |¡S r   )r#   r"   r   r   r   Ú
from_bytes   s   
zSafeDeserializer.from_bytes)r   r   r   r
   r   Ú	bytearrayr   r   r   r#   r$   r   r   r   r   r   r      s    $r   )Útypingr   r   Úsafetensors.torchr   r   Ú sglang.srt.connector.serde.serder   r   r   r   r   r   r   r   Ú<module>   s   	