
    ΅i                         % S SK r S SKrS SKJrJr  S SK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)CallableIterable)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    `/home/james-whalen/.local/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      [        :w  a  [        S5      eXR                  S[        & [        U R                  5      $ )Nr   r   Fr    ,Computed checksum digest has unexpected sizer   )zlibcrc32r   r   r$   r3   AssertionErrorbytes)r   digests     r   r$   BytesWriter.to_bytes%   sn    DJJ';'<=>GGu H 
 v;.. !OPP-3

1)*TZZ  r   )r   r   N)__name__
__module____qualname____firstlineno__r   intr%   strr/   r:   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                 D   [        U5      [        :  a  [        S5      e[        R                  " U[        S  5      R                  SSSS9n[        U5      [        :w  a  [        S5      eUS[         U:w  a  [        SUS[         < S	U< 35      eXl        [        U l        g )
Nz+Input data is too short to contain checksumr   r   Fr    r6   r   z>Bytes object is corrupted, checksum does not match. Expected: z, Got: )	r3   r   r9   r7   r8   r$   RuntimeErrorr   _i)r   rI   r;   s      r   r   BytesReader.__init__0   s    t9++ !NOOD!5!678AAu B 
 v;.. !OPP&'61!!$89<GF:O 
 
&r   c                 F    [        U R                  5      U R                  :H  $ r   )r3   r   rL   r   s    r   is_finishedBytesReader.is_finishedB   s    4::$''))r   c                     [         R                  U R                  U R                  U R                  S-    SSS9nU =R                  S-  sl        U$ r   )rB   
from_bytesr   rL   )r   results     r   read_uint64BytesReader.read_uint64E   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_strL   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   )rT   r   rL   )r   sizerS   s      r   rX   BytesReader.read_bytesO   s>    !DGGdggn54r   )r   rL   )r>   r?   r@   rA   r:   r   boolrO   rB   rT   rC   rZ   rX   rD   rE   r   r   rG   rG   /   sG    'U 't '$*T *S C# CE r   rG   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
   [   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   )rb   clear)r   rd   s     r   r    AppendingByteSerializer.__init__d   s    
 *

r   c                 `    [        5       U l        U R                  R                  [        5        g r   )r   rc   r%   r	   r   s    r   rf   AppendingByteSerializer.clearl   s    "}!!"34r   rI   c                 <    U R                  U R                  U5        g r   rb   rc   )r   rI   s     r   appendAppendingByteSerializer.appendq   s    4<<.r   elemsc                 8    U H  nU R                  U5        M     g r   )rl   )r   rn   elems      r   r#   AppendingByteSerializer.extendt   s    DKK r   c                 6    U R                   R                  5       $ r   )rc   r$   r   s    r   r$    AppendingByteSerializer.to_bytesx   s    ||$$&&r   deserialize_fnc                   [        U 5      nUR                  5       [        :w  a  [        SUR                  5        35      e/ nUR	                  5       (       d.  UR                  U" U5      5        UR	                  5       (       d  M.  U$ )NzVEncoding version mismatch in AppendingByteSerializer.to_list,                     got )rG   rT   r	   r9   rO   rl   )rI   rt   readerrS   s       r   to_listAppendingByteSerializer.to_list{   s    T"#44 ++-.0 
 $$&&MM.01 $$&&r   rk   r=   )r>   r?   r@   rA   __doc__r   r   r   __annotations__r   rf   rl   r   r#   r:   r$   staticmethodrG   listrw   rD   rE   r   r   r
   r
   [   s    
 [!,d233 Q/56 
	5
/1 / /HQK D '% ' e +9I0J tTUw  r   )r*   r7   collections.abcr   r   typingr   r   r   r	   rB   rz   __all__r   r   rG   r
   rE   r   r   <module>r      s\      . # CL 3 $
%  ! !4$ $X,gaj ,r   