
    ThI                         % S SK r S SKrS SKJr  S SKJrJrJr  \" S5      rSr	\
\S'   S/rSr " S	 S
5      r " S S5      r " S S\\   5      rg)    N)Iterable)CallableGenericTypeVarT   _ENCODING_VERSIONAppendingByteSerializer   c                   b    \ rS rSrSS jrS\SS4S jrS\SS4S jrS	\	SS4S
 jr
S\	4S jrSrg)BytesWriter   returnNc                 ,    [        [        5      U l        g N)	bytearrayCHECKSUM_DIGEST_SIZE_dataselfs    `/var/www/fran/franai/venv/lib/python3.13/site-packages/torch/utils/_appending_byte_serializer.py__init__BytesWriter.__init__   s    34
    ic                 X    U R                   R                  UR                  SSSS95        g N   bigF	byteordersigned)r   extendto_bytes)r   r   s     r   write_uint64BytesWriter.write_uint64   s#    

!**Q%*FGr   sc                 p    [         R                  " UR                  S5      5      nU R                  U5        g Nzutf-8)base64	b64encodeencodewrite_bytes)r   r'   payloads      r   	write_strBytesWriter.write_str   s)    ""188G#45!r   bc                 n    U R                  [        U5      5        U R                  R                  U5        g r   )r%   lenr   r#   )r   r1   s     r   r-   BytesWriter.write_bytes!   s&    #a&!

!r   c                     [         R                  " U R                  [        S  5      R	                  SSSS9n[        U5      [        :X  d   eXR                  S[        & [        U R                  5      $ )Nr   r   Fr    r   )zlibcrc32r   r   r$   r3   bytes)r   digests     r   r$   BytesWriter.to_bytes%   sh    DJJ';'<=>GGu H 
 6{2222-3

1)*TZZ  r   )r   r   N)__name__
__module____qualname____firstlineno__r   intr%   strr/   r8   r-   r$   __static_attributes__ r   r   r   r      sO    5Hc Hd H"3 "4 "U t !% !r   r   c                   ^    \ rS rSrS\SS4S jrS\4S jrS\4S jr	S\
4S jrS\4S	 jrS
rg)BytesReader.   datar   Nc                     [        U5      [        :  d   e[        R                  " U[        S  5      R	                  SSSS9n[        U5      [        :X  d   eUS[         U:w  a  [        SUS[         < SU< 35      eXl        [        U l        g )Nr   r   Fr    r   z>Bytes object is corrupted, checksum does not match. Expected: z, Got: )r3   r   r6   r7   r$   RuntimeErrorr   _i)r   rG   r9   s      r   r   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    [        U R                  5      U R                  :H  $ r   )r3   r   rJ   r   s    r   is_finishedBytesReader.is_finished?   s    4::$''))r   c                     [         R                  U R                  U R                  U R                  S-    SSS9nU =R                  S-  sl        U$ r   )r@   
from_bytesr   rJ   )r   results     r   read_uint64BytesReader.read_uint64B   sG    JJtww1-u   
 	1r   c                 h    [         R                  " U R                  5       5      R                  S5      $ r)   )r*   	b64decode
read_bytesdecoder   s    r   read_strBytesReader.read_strI   s%     1299'BBr   c                     U R                  5       nU R                  U R                  U R                  U-    nU =R                  U-  sl        U$ r   )rR   r   rJ   )r   sizerQ   s      r   rV   BytesReader.read_bytesL   s>    !DGGdggn54r   )r   rJ   )r<   r=   r>   r?   r8   r   boolrM   r@   rR   rA   rX   rV   rB   rC   r   r   rE   rE   .   sG    'U 't ' *T *S C# CE r   rE   c                       \ rS rSr% Sr\\\/S4   \S'   \\S'   S\\\/S4   SS4S jr	SS	 jr
S
\SS4S jrS\\   SS4S jrS\4S jr\S
\S\\/\4   S\\   4S j5       rSrg)r
   X   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                0    Xl         U R                  5         g r   )r`   clear)r   rb   s     r   r    AppendingByteSerializer.__init__a   s    
 *

r   c                 `    [        5       U l        U R                  R                  [        5        g r   )r   ra   r%   r	   r   s    r   rd   AppendingByteSerializer.cleari   s    "}!!"34r   rG   c                 <    U R                  U R                  U5        g r   r`   ra   )r   rG   s     r   appendAppendingByteSerializer.appendn   s    4<<.r   elemsc                 8    U H  nU R                  U5        M     g r   )rj   )r   rl   elems      r   r#   AppendingByteSerializer.extendq   s    DKK r   c                 6    U R                   R                  5       $ r   )ra   r$   r   s    r   r$    AppendingByteSerializer.to_bytesu   s    ||$$&&r   deserialize_fnc                    [        U 5      nUR                  5       [        :X  d   e/ nUR                  5       (       d.  UR	                  U" U5      5        UR                  5       (       d  M.  U$ r   )rE   rR   r	   rM   rj   )rG   rr   readerrQ   s       r   to_listAppendingByteSerializer.to_listx   s_    T"!!#'8888$$&&MM.01 $$&&r   ri   r;   )r<   r=   r>   r?   __doc__r   r   r   __annotations__r   rd   rj   r   r#   r8   r$   staticmethodrE   listru   rB   rC   r   r   r
   r
   X   s    
 [!,d233 Q/56 
	5
/1 / /HQK D '% ' e +9I0J tTUw  r   )r*   r6   collections.abcr   typingr   r   r   r   r	   r@   rx   __all__r   r   rE   r
   rC   r   r   <module>r~      s_      $ - - CL 3 $
%  ! !2" "T(gaj (r   