
    =wg(                     *   d dl m Z  d dlmZ d dlmZ d dlmZmZ d dlmZmZ d dlm	Z	m
Z
 d Zd Z G d	 d
e      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )arrayxrange)
emptybytes)	pack_byteunpack_byte)pack_ushort_leunpack_ushort_le)pack_uint_leunpack_uint_lec              #   0   K   d}| D ]  }||z
   |} y wNr    numsbasens      K/var/www/horilla/myenv/lib/python3.12/site-packages/whoosh/util/numlists.pydelta_encoder   
   s(     D $h   c              #   0   K   d}| D ]  }||z  }|  y wr   r   r   s      r   delta_decoder      s(     D 	
r   c                   N    e Zd ZddZd Zd Zd Zd Zd Zd Z	e
d        Zd	 Zy
)GrowableArrayc                 2    t        |      | _         || _        y N)r   _allow_longs)selfinittypeallow_longss      r   __init__zGrowableArray.__init__   s    8_
'    c                 N    | j                   j                  d| j                  dS )N())	__class____name__r   r   s    r   __repr__zGrowableArray.__repr__   s    >>22DJJ??r"   c                 ,    t        | j                        S r   )lenr   r(   s    r   __len__zGrowableArray.__len__    s    4::r"   c                 ,    t        | j                        S r   )iterr   r(   s    r   __iter__zGrowableArray.__iter__#   s    DJJr"   c                 
   |dk  rd}n-|dk  rd}n%|dk  rd}n| j                   rd}nt        d|z        	 t        |t        | j                              | _        y # t        $ r t        | j                        | _        Y y w xY w)	N   Hl        il        Iqz %r is too big to fit in an array)r   OverflowErrorr   r.   
ValueErrorlist)r   maxnumnewtypes      r   _retypezGrowableArray._retype&   s    GGgGgGG BV KLL	*wTZZ(89DJ 	*djj)DJ	*s   $A #BBc                     	 | j                   j                  |       y # t        $ r/ | j                  |       | j                   j                  |       Y y w xY wr   )r   appendr6   r;   )r   r   s     r   r=   zGrowableArray.append7   sE    	!JJa  	!LLOJJa 	!s    5AAc                 :    | j                   }|D ]
  } ||        y r   )r=   )r   nsr=   r   s       r   extendzGrowableArray.extend>   s!     	A1I	r"   c                 d    t        | j                  t              r| j                  j                  S y)Nr5   )
isinstancer   typecoder(   s    r   rC   zGrowableArray.typecodeC   s#    djj%(::&&&r"   c                     t        | j                  t              r|j                  | j                         y |j                  }| j                  D ]
  } ||        y r   )rB   r   write_array
write_long)r   dbfilerF   r   s       r   to_filezGrowableArray.to_fileJ   sG    djj%(tzz***JZZ 1r"   N)BT)r'   
__module____qualname__r!   r)   r,   r/   r;   r=   r@   propertyrC   rH   r   r"   r   r   r      s?    (@ *"!
  r"   r   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)NumberEncodingNc                     t         r   NotImplementedErrorr   fnumberss      r   
write_numszNumberEncoding.write_numsX       !!r"   c                     t         r   rP   r   rS   r   s      r   	read_numszNumberEncoding.read_nums[   rV   r"   c                 J    | j                  |t        t        |                  S r   )rU   r8   r   rR   s      r   write_deltaszNumberEncoding.write_deltas^   s    q$|G'<"=>>r"   c                 8    t        | j                  ||            S r   )r   rY   rX   s      r   read_deltaszNumberEncoding.read_deltasa   s    DNN1a011r"   c                 `    |j                  |       d }| j                  ||dz         D ]  } |S )N   )seekrY   )r   rS   posr3   r   s        r   getzNumberEncoding.getd   s8    	s1q5) 	A	r"   )	r'   rJ   rK   maxintrU   rY   r[   r]   rb   r   r"   r   rN   rN   U   s     F""?2r"   rN   c                   *    e Zd ZdZdZdZd Zd Zd Zy)FixedEncodingNc                 X    | j                   }|D ]  }|j                   ||              y r   )_encodewrite)r   rS   rT   rg   r   s        r   rU   zFixedEncoding.write_numss   s*    ,, 	 AGGGAJ	 r"   c              #      K   | j                   }t        |      D ]%  } ||j                  | j                               ' y wr   )_decoder   readsize)r   rS   r   rj   _s        r   rY   zFixedEncoding.read_numsy   s:     ,, 	-A!&&+,,	-s   AAc                     |j                  ||| j                  z  z          | j                  |j                  | j                              S r   )r`   rl   rj   rk   )r   rS   ra   r3   s       r   rb   zFixedEncoding.get   s7    	sQ]"#||AFF499-..r"   )	r'   rJ   rK   rg   rj   rl   rU   rY   rb   r   r"   r   re   re   n   s     GGD -/r"   re   c                       e Zd ZdZdZeZeZy)ByteEncodingr_      N)	r'   rJ   rK   rl   rc   r   rg   r   rj   r   r"   r   rp   rp      s    DFGGr"   rp   c                       e Zd ZdZdZeZeZy)UShortEncoding   i  N)	r'   rJ   rK   rl   rc   r	   rg   r
   rj   r   r"   r   rs   rs      s    DFGGr"   rs   c                       e Zd ZdZdZeZeZy)UIntEncoding       N)	r'   rJ   rK   rl   rc   r   rg   r   rj   r   r"   r   rv   rv      s    DFGGr"   rv   c                       e Zd ZdZd Zd Zy)VarintsNc                 4    |D ]  }|j                  |        y r   )write_varint)r   rS   rT   r   s       r   rU   zVarints.write_nums   s     	ANN1	r"   c              #   P   K   t        |      D ]  }|j                           y wr   )r   read_varint)r   rS   r   rm   s       r   rY   zVarints.read_nums   s%      	"A--/!	"s   $&)r'   rJ   rK   rc   rU   rY   r   r"   r   rz   rz      s    F"r"   rz   c                   R    e Zd ZdZdZdez  dz
  Zg dZg dZd Zd Z	d	 Z
d
 Zd Zy)Simple16      rt   r_   )r      r   r      	            r      r   rw      rt   r_   ))r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   )rt   rt   rt   rt   rt   rt   rt   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   )r_   r_   r_   r_   r_   r_   r_   rt   rt   rt   rt   rt   rt   rt   r_   r_   r_   r_   r_   r_   r_   )r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   r_   rt   rt   rt   rt   rt   rt   rt   )rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   rt   )	rw   r   r   r   r   r   r   r   r   )r   rw   rw   rw   rw   r   r   r   )rw   rw   rw   rw   rw   rw   rw   )r   r   r   r   rw   rw   )rw   rw   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   )
   r   r   )r   r   )r   c                     | j                   }d}|t        |      k  r? |||t        |      |z
        \  }}|j                  |       ||z  }|t        |      k  r>y y r   )	_compressr+   write_uint_le)r   rS   rT   r   r3   valuetakens          r   rU   zSimple16.write_nums   sZ    NN	#g,$WaW1ABLE5OOE"JA #g,r"   c                 z   | j                   }| j                  }| j                  }| j                  }t	        |      D ]x  }||z  }	||   |k  r||   n|}
d}d}||
k  rN|||z      d||   |   z  k  r:|||z      }|	||z  z  }	|||   |   z  }|dz  }||
k  r|||z      d||   |   z  k  r:||
k(  st|	|
fc S  t
        )Nr   r_   )_numsize_bitsize_num_bitsr   	Exception)r   inarrayinoffsetr   r   r   r   r   keyr   numbitsjxs                 r   r   zSimple16._compress   s    ====yy

(# 	"C8OE#Cy1}$s)!CDAc'ghl3qE#JqM7IJHqL)d"c
1%Q	 c'ghl3qE#JqM7IJ Cxcz!	" r"   c              #      K   | j                   }d}||k  r>t        |j                  d            d   } ||||z
        D ]  }| |dz  } ||k  r=y y w)Nr   rw   r_   )_decompressr   rk   )r   rS   r   r   r3   r   vs          r   rY   zSimple16.read_nums   se     &&!e"166!9-a0E A. Q !es   AAAc              #      K   | j                   }| j                  }| j                  }| j                  }||z	  }||   |k  r||   n|}d}	t	        |      D ]%  }
||	z	  }|dd||   |
   z
  z	  z   |	||   |
   z  }	' y w)Nr   rx       )r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   s               r   r   zSimple16._decompress   s     ====yy

x9q=d3ia 	"AAzb5:a=&89::E#JqM!D	"s   A;A=c                    |j                  |       d}t        |j                  d            }|| j                  z	  }| j                  |   }|||z   kD  rF||z  }t        |j                  d            }|| j                  z	  }| j                  |   }|||z   kD  rF||z
  }|r|t        | j                  |   d |       z	  }|d| j                  |   |   z  dz
  z  S )Nr   rw   rt   r_   )r`   r   rk   r   r   sumr   )	r   rS   ra   r3   r   r   r   r   offsets	            r   rb   zSimple16.get  s    	sqvvay)t}}$iin$*nCKD"166!9-E4==(C))C.C	 $*n TSC&!9::ETZZ_V44q899r"   N)r'   rJ   rK   r   r   rc   r   r   rU   r   rY   r   rb   r   r"   r   r   r      sD     HH(]QF ADE&.":r"   r   c                   8    e Zd ZdZ edg d      Zd Zd Zd Zy)GIntsrx   rI   (   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 V    t        d      D cg c]  }||dz  z	  dz  dz    c}S c c}w )zWReturns a list of the sizes of the next four numbers given a key
        byte.
        rw   rt   r   r_   r   )r   r   r3   s      r   key_to_sizeszGInts.key_to_sizes.  s.    
 39)<QQ!#q(<<<s   &c                    t         }d}d}|D ]  }|dz  }|dk  r|t        |      z  }nQ|dk  r|d|z  z  }|t        |      z  }n5|dk  r|d|z  z  }|t        |      d d z  }n|d|z  z  }|t        |      z  }|dz  }|dk(  sx|j	                  |       |j                  |       d}d}t         } |r#|j	                  |       |j                  |       y y )	Nr   rt      r1   r_   i   r   rw   )r   r   r	   r   
write_byterh   )r   rS   rT   bufcountr   r   shifts           r   rU   zGInts.write_nums5  s     	!AAIE3wy|#UqEz!~a((XqEz!|Ar**qEz!|A&QJEzS! )	!. LLGGCL r"   c              #   X  K   d}d}t        |      D ]  }|dk(  r|j                         }||dz  z	  dz  }|dk(  r|j                          nR|dk(  r|j                          n:|dk(  r#t        |j	                  d      dz         d    n|j                          |dz   dz  } yw)zqRead N integers from the bytes stream dbfile. Expects that the file
        is positioned at a key byte.
        r   Nrt   r   r_    rw   )r   	read_byteread_ushort_ler   rk   read_uint_le)r   rS   r   r   r   rm   codes          r   rY   zGInts.read_numsT  s     
  	$Azkkm519%)Dqykkm#&&(($QVVAY%78;;nn&&QY!OE	$s   B(B*N)	r'   rJ   rK   rc   r   _lensr   rU   rY   r   r"   r   r   r     s)    F # 0 1E=>$r"   r   N)r   whoosh.compatr   whoosh.systemr   r   r   r	   r
   r   r   r   r   objectr   rN   re   rp   rs   rv   rz   r   r   r   r"   r   <module>r      s       $ 0 : 68F 8zV 2/N /,= ] = 	"n 	"$g:~ g:\M$N M$r"   