o
    NDiz                     @   s4  d dl Z dd Zed\ZZed\ZZed\ZZed\ZZ	ed\Z
Zed	\ZZed
\ZZed\ZZed\ZZed\ZZed\ZZe dZejZejZe dZejZejZ dd Z!dd Z"dd Z#e dZ$e dZ%e dZ&e dZ'dd Z(dd Z)dd  Z*d!d" Z+d#d$ Z,d%d& Z-dS )'    Nc                    s$   t |   j} fdd}||fS )Nc                    s     | d S )Nr   )unpack)spacker J/var/www/Datamplify/venv/lib/python3.10/site-packages/cassandra/marshal.py<lambda>   s    z_make_packer.<locals>.<lambda>)structStructpack)format_stringr   r   r   r   r   _make_packer   s   
r   z>qz>iz>hz>bz>Qz>Iz<Iz>Hz>Bz>fz>dz>BBbBz>BBhBc                 C   sF   t ddd | D d}| d d@ dkr!t| }|d|d > 8 }|S )	N c                 s   s    | ]}d | V  qdS )z%02xNr   ).0ir   r   r   	<genexpr>0   s    z varint_unpack.<locals>.<genexpr>   r            )intjoinlen)termvallen_termr   r   r   varint_unpack/   s
   r   c                 C   s
   t | S )N)r   
bit_lengthnr   r   r   r   7   s   
r   c                 C   s   d}| dkrdS | dk r"t t| d d d }d|d > |  } d}t }| dkr8|| d@  | dL } | dks)|rE|d d	@ rE|d |  t|S )
NTr       r   r   F   r   )r   abs	bytearrayappendreversebytes)bigpos
bytelengthrevbytesr   r   r   varint_pack;   s    
r,   z>ddz<ddz>dddz<dddc                 C   s   | d> | d? A S )Nr   ?   r   r   r   r   r   encode_zig_zagT   s   r.   c                 C   s   | d? | d@  A S )Nr   r   r   r   r   r   decode_zig_zagX   s   r/   c                 C   s   g }d}|t | k rS| | }|d@ dkr|}n+d| d@   }|d|? @ }|| }||k rB|d7 }|dK }|| | d@ O }||k s.|d7 }|t| |t | k s
t|S )Nr   r   r   r!   r   )r   r   r%   r/   tuple)r   valuesr   
first_byter   num_extra_bytesendr   r   r   vints_unpack\   s$   r5   c                 C   s   t  }dd | d d d D } | D ]]}t|}|dk r!|| qd}| }|d }|d| krQ|d7 }|d8 }t|d d}||d@  |dL }|d| ks1|dkr[td	| d| }|d|? |> O }|t| q|  t|S )
Nc                 S   s   g | ]}t |qS r   )r   )r   vr   r   r   
<listcomp>t   s    zvints_pack.<locals>.<listcomp>r"   r   r   r   r   r!   1Value %d is too big and cannot be encoded as vint)	r$   r.   r%   r   min
ValueErrorr#   r&   r'   )r1   r+   valuer6   r3   num_bitsreserved_bitsr   r   r   r   
vints_packr   s.   r>   c                 C   sv   | d }|d@ dkr|dfS d| d@    }|d|? @ }td|d D ]}| | }|dK }||d@ O }q$||d fS )Nr   r   r   r   r!   )r   range)r'   r2   r3   rvidxnew_byter   r   r   uvint_unpack   s   rC   c                 C   s   t  }| dk r||  nO| }d}| }|d }|d| kr?|d7 }|d8 }t|d d}||d@  |dL }|d| ks|dkrItd|  d| }|d|? |> O }|t| |  t|S )Nr   r   r   r   r!   r8   )r$   r%   r   r9   r:   r#   r&   r'   )r   r@   r6   r3   r<   r=   r   r   r   r   
uvint_pack   s*   rD   ).r	   r   
int64_packint64_unpack
int32_packint32_unpack
int16_packint16_unpack	int8_packint8_unpackuint64_packuint64_unpackuint32_packuint32_unpackuint32_le_packuint32_le_unpackuint16_packuint16_unpack
uint8_packuint8_unpack
float_packfloat_unpackdouble_packdouble_unpackr
   header_structr   header_packr   header_unpackv3_header_structv3_header_packv3_header_unpackr   r   r,   point_bepoint_le	circle_be	circle_ler.   r/   r5   r>   rC   rD   r   r   r   r   <module>   s@   





 