
    QVjiI                         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dS )    N)Iterable)CallableGenericTypeVarT   _ENCODING_VERSIONAppendingByteSerializer   c                   R    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
dS )BytesWriterreturnNc                 8    t          t                    | _        d S N)	bytearrayCHECKSUM_DIGEST_SIZE_dataselfs    `/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/utils/_appending_byte_serializer.py__init__zBytesWriter.__init__   s    344


    ic                 f    | j                             |                    ddd                     d S N   bigF	byteordersigned)r   extendto_bytes)r   r   s     r   write_uint64zBytesWriter.write_uint64   s0    
!**Q%*FFGGGGGr   sc                 ~    t          j        |                    d                    }|                     |           d S Nzutf-8)base64	b64encodeencodewrite_bytes)r   r$   payloads      r   	write_strzBytesWriter.write_str   s8    "188G#4#455!!!!!r   bc                 ~    |                      t          |                     | j                            |           d S r   )r#   lenr   r!   )r   r-   s     r   r*   zBytesWriter.write_bytes!   s8    #a&&!!!
!r   c                     t          j        | j        t          d                                        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%   sx    DJ';'<'<=>>GGu H 
 
 6{{22222-3
1))*TZ   r   r   N)__name__
__module____qualname__r   intr#   strr,   r3   r*   r"    r   r   r   r      s        5 5 5 5Hc Hd H H H H"3 "4 " " " "U t    !% ! ! ! ! ! !r   r   c                   N    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dS )	BytesReaderdatar   Nc                 l   t          |          t          k    sJ t          j        |t          d                                        ddd          }t          |          t          k    sJ |dt                   |k    r"t          d|dt                   d|          || _        t          | _        d S )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    4yy00000D!5!6!6788AAu B 
 
 6{{22222&&'611O!!$8"89O ODJO O  
 
&r   c                 <    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        dz            dd          }| xj        dz  c_        |S r   )r9   
from_bytesr   rA   )r   results     r   read_uint64zBytesReader.read_uint64B   sK    Jtw1,-u   
 
 	1r   c                 t    t          j        |                                                               d          S r&   )r'   	b64decode
read_bytesdecoder   s    r   read_strzBytesReader.read_strI   s+     1 12299'BBBr   c                     |                                  }| j        | j        | j        |z            }| xj        |z  c_        |S r   )rG   r   rA   )r   sizerF   s      r   rJ   zBytesReader.read_bytesL   s@    !!DGdgn454r   )r6   r7   r8   r3   r   boolrC   r9   rG   r:   rL   rJ   r;   r   r   r=   r=   .   s        'U 't ' ' ' ' *T * * * *S    C# C C 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dS )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                <    || _         |                                  d S r   )rQ   clear)r   rS   s     r   r   z AppendingByteSerializer.__init__a   s    
 *

r   c                 j    t                      | _        | j                            t                     d S r   )r   rR   r#   r	   r   s    r   rU   zAppendingByteSerializer.cleari   s*    "}}!!"344444r   r>   c                 <    |                      | j        |           d S r   )rQ   rR   )r   r>   s     r   appendzAppendingByteSerializer.appendn   s     4<.....r   elemsc                 :    |D ]}|                      |           d S r   )rX   )r   rY   elems      r   r!   zAppendingByteSerializer.extendq   s0     	 	DKK	 	r   c                 4    | j                                         S r   )rR   r"   r   s    r   r"   z AppendingByteSerializer.to_bytesu   s    |$$&&&r   deserialize_fnc                    t          |           }|                                t          k    sJ g }|                                s2|                     ||                     |                                2|S r   )r=   rG   r	   rC   rX   )r>   r]   readerrF   s       r   to_listzAppendingByteSerializer.to_listx   s}    T""!!##'88888$$&& 	2MM..00111 $$&& 	2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33 Q/56 
	   5 5 5 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     $ $ $ $ $ $ - - - - - - - - - - GCLL 3   $
%  ! ! ! ! ! ! ! !2" " " " " " " "T( ( ( ( (gaj ( ( ( ( (r   