
    rhI                         U d dl Z d dlZd dlmZ d dlmZmZmZ  ed      ZdZ	e
ed<   dgZdZ G d	 d
      Z G d d      Z G d dee         Zy)    N)Iterable)CallableGenericTypeVarT   _ENCODING_VERSIONAppendingByteSerializer   c                   P    e Zd ZddZdeddfdZdeddfdZdeddfd	Z	defd
Z
y)BytesWriterreturnNc                 ,    t        t              | _        y N)	bytearrayCHECKSUM_DIGEST_SIZE_dataselfs    y/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/torch/utils/_appending_byte_serializer.py__init__zBytesWriter.__init__   s    34
    ic                 ^    | j                   j                  |j                  ddd             y N   bigF	byteordersigned)r   extendto_bytes)r   r   s     r   write_uint64zBytesWriter.write_uint64   s#    

!**Q%*FGr   sc                 n    t        j                  |j                  d            }| j                  |       y Nzutf-8)base64	b64encodeencodewrite_bytes)r   r$   payloads      r   	write_strzBytesWriter.write_str   s)    ""188G#45!r   bc                 n    | j                  t        |             | j                  j                  |       y r   )r#   lenr   r!   )r   r-   s     r   r*   zBytesWriter.write_bytes!   s&    #a&!

!r   c                     t        j                  | j                  t        d        j	                  ddd      }t        |      t        k(  sJ || j                  dt         t        | j                        S )Nr   r   Fr   r   )zlibcrc32r   r   r"   r/   bytes)r   digests     r   r"   zBytesWriter.to_bytes%   sj    DJJ';'<=>GGu H 
 6{2222-3

1)*TZZ  r   r   N)__name__
__module____qualname__r   intr#   strr,   r3   r*   r"    r   r   r   r      sO    5Hc Hd H"3 "4 "U t !% !r   r   c                   L    e Zd ZdeddfdZdefdZdefdZde	fdZ
defdZy)	BytesReaderdatar   Nc                    t        |      t        k\  sJ t        j                  |t        d        j	                  ddd      }t        |      t        k(  sJ |dt         |k7  rt        d|dt         d|      || _        t        | _        y )Nr   r   Fr   r   z>Bytes object is corrupted, checksum does not match. Expected: z, Got: )r/   r   r1   r2   r"   RuntimeErrorr   _i)r   r>   r4   s      r   r   zBytesReader.__init__/   s    4y0000D!5!678AAu B 
 6{2222&'61!!$89<GF:O 
 
&r   c                 F    t        | j                        | j                  k(  S r   )r/   r   rA   r   s    r   is_finishedzBytesReader.is_finished?   s    4::$''))r   c                     t         j                  | j                  | j                  | j                  dz    dd      }| xj                  dz  c_        |S r   )r9   
from_bytesr   rA   )r   results     r   read_uint64zBytesReader.read_uint64B   sG    JJtww1-u   
 	1r   c                 f    t        j                  | j                               j                  d      S r&   )r'   	b64decode
read_bytesdecoder   s    r   read_strzBytesReader.read_strI   s%     1299'BBr   c                     | j                         }| j                  | j                  | j                  |z    }| xj                  |z  c_        |S r   )rG   r   rA   )r   sizerF   s      r   rJ   zBytesReader.read_bytesL   s>    !DGGdggn54r   )r6   r7   r8   r3   r   boolrC   r9   rG   r:   rL   rJ   r;   r   r   r=   r=   .   sG    'U 't ' *T *S C# CE r   r=   c                       e Zd ZU dZeeegdf   ed<   eed<   deeegdf   ddfdZddZ	d	eddfd
Z
dee   ddfdZdefdZed	edeegef   dee   fd       Zy)r
   z
    Provides efficient serialization and deserialization of list of bytes
    Note that this does not provide any guarantees around byte order
    N_serialize_fn_writerserialize_fnr   c                2    || _         | j                          y r   )rQ   clear)r   rS   s     r   r   z AppendingByteSerializer.__init__a   s    
 *

r   c                 `    t               | _        | j                  j                  t               y r   )r   rR   r#   r	   r   s    r   rU   zAppendingByteSerializer.cleari   s    "}!!"34r   r>   c                 <    | j                  | j                  |       y r   )rQ   rR   )r   r>   s     r   appendzAppendingByteSerializer.appendn   s    4<<.r   elemsc                 4    |D ]  }| j                  |        y r   )rX   )r   rY   elems      r   r!   zAppendingByteSerializer.extendq   s     	DKK	r   c                 6    | j                   j                         S r   )rR   r"   r   s    r   r"   z AppendingByteSerializer.to_bytesu   s    ||$$&&r   deserialize_fnc                    t        |       }|j                         t        k(  sJ g }|j                         s(|j	                   ||             |j                         s(|S r   )r=   rG   r	   rC   rX   )r>   r]   readerrF   s       r   to_listzAppendingByteSerializer.to_listx   sY    T"!!#'8888$$&MM.01 $$&r   r5   )r6   r7   r8   __doc__r   r   r   __annotations__r   rU   rX   r   r!   r3   r"   staticmethodr=   listr`   r;   r   r   r
   r
   X   s    
 [!,d233 Q/56 
	5
/1 / /HQK D '% ' e +9I0J tTUw  r   )r'   r1   collections.abcr   typingr   r   r   r   r	   r9   rb   __all__r   r   r=   r
   r;   r   r   <module>rh      s_      $ - - CL 3 $
%  ! !2" "T(gaj (r   