U
    hâËdÅ‡  ã                   @   s.  d Z ddlZddlZddlmZ ddlmZmZ ddl	m
Z
mZmZmZmZ ddlmZ ddlmZ e d¡Zejd	ks|t‚ejejd	d
dd�Ze d¡ZejZejejejdœe Zejej ej!dœe Z"dd„ Z#edd„ ƒZ$edd„ ƒZ%edd„ ƒZ&edd�dd„ ƒZ'edd„ ƒZ(edd�dd„ ƒZ)edd „ ƒZ*ed!d"„ ƒZ+d#d$„ Z,d%d&„ Z-d'd(„ Z.d)d*„ Z/ed+d,„ ƒZ0eejej1ƒd-d.„ ƒZ2d/d0„ Z3eej1ejƒd1d2„ ƒZ4eej5ejƒd3d4„ ƒZ6ed5d6„ ƒZ7eej5ej8ƒd7d8„ ƒZ9e
ej:ƒd9d:„ ƒZ;e
e<ƒd;d<„ ƒZ=e
ej>ƒe
ej?ƒd=d>„ ƒƒZ@e
ejAƒd?d@„ ƒZBe
ejCƒdAdB„ ƒZDe
ejEƒdCdD„ ƒZFe
ejGƒdEdF„ ƒZHe
ejIƒdGdH„ ƒZJe
ejKƒdIdJ„ ƒZLe
ejMƒdKdL„ ƒZNe
ejOƒdMdN„ ƒZPe
ejQƒdOdP„ ƒZReej8dQƒeej1dQƒeejdQƒdRdS„ ƒƒƒZSeej8dTƒeej1dTƒdUdV„ ƒƒZTeej5dWƒdXdY„ ƒZUeej1dZƒeejdZƒd[d\„ ƒƒZVeej8d]ƒd^d_„ ƒZWe
eXƒd`da„ ƒZYeej8dbƒdcdd„ ƒZZeej1dbƒdedf„ ƒZ[eej8dgƒdhdi„ ƒZ\eej1dgƒdjdk„ ƒZ]eej8dlƒdmdn„ ƒZ^eej1dlƒdodp„ ƒZ_eej8dqƒeej1dqƒeejdqƒdrds„ ƒƒƒZ`eej8dtƒeej1dtƒeejdtƒdudv„ ƒƒƒZaeej8dwƒeej1dwƒeejdwƒdxdy„ ƒƒƒZbeej8dzƒeej1dzƒeejdzƒd{d|„ ƒƒƒZced}d~„ ƒZdeej8dƒeej1dƒeejdƒdœd�d‚„ƒƒƒZeeej8dƒƒeej1dƒƒeejdƒƒd�d…d†„ƒƒƒZfeej8d‡ƒeej1d‡ƒeejd‡ƒdždˆd‰„ƒƒƒZgeej8dŠƒeej1dŠƒeejdŠƒdŸd‹dŒ„ƒƒƒZheej8d�ƒeej1d�ƒeejd�ƒdŽd�„ ƒƒƒZieej8d�ƒeej1d�ƒeejd�ƒd d‘d’„ƒƒƒZjeej8d“ƒeej1d“ƒeejd“ƒd¡d”d•„ƒƒƒZkeej8d–ƒeej1d–ƒeejd–ƒd¢d—d˜„ƒƒƒZleej8d™ƒeej1d™ƒeejd™ƒdšd›„ ƒƒƒZmdS )£z=Implements operations on bytes and str (unicode) array items.é    N)Úir)ÚtypesÚcgutils)ÚoverloadÚ	intrinsicÚoverload_methodÚ
lower_castÚregister_jitable)Úis_nonelike)ÚunicodeZS1é   ÚCT)ÚreadonlyZU1)r   é   é   c                    s   ‡ fdd„}|S )Nc           	         sR   |\}}t j||d�}| |t ˆ ¡ ¡ ¡}| | ||g¡¡}| |t d¡¡S )N©Úvalueé    )	r   Úalloca_once_valueÚbitcastr   ÚIntTypeÚ
as_pointerÚloadÚgepÚzext)	ÚcontextÚbuilderÚ	signatureÚargsÚdataÚidxÚrawptrÚptrÚch©Úbitsize© úN/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numba/cpython/charseq.pyÚcodegen%   s
    z#make_deref_codegen.<locals>.codegenr&   )r%   r(   r&   r$   r'   Úmake_deref_codegen$   s    r)   c                 C   s   t  |t j¡}|tdƒfS )Né   ©r   Úuint32Zintpr)   ©Ú	typingctxr   ÚoffsetÚsigr&   r&   r'   Úderef_uint8.   s    r1   c                 C   s   t  |t j¡}|tdƒfS )Né   r+   r-   r&   r&   r'   Úderef_uint164   s    r3   c                 C   s   t  |t j¡}|tdƒfS )Nr   r+   r-   r&   r&   r'   Úderef_uint32:   s    r4   F)Z_nrtc                 C   s
   t | |ƒS )z6Access i-th item of CharSeq object via code value
    )r1   ©ÚaÚir&   r&   r'   Úcharseq_get_code@   s    r8   c                 C   s   t | |ƒ}|dkrtdƒ‚|S )zcAccess i-th item of CharSeq object via code value.

    null code is interpreted as IndexError
    r   úindex out of range)r8   Ú
IndexError©r6   r7   Úcoder&   r&   r'   Úcharseq_get_valueG   s    
r=   c                 C   sB   t dkrt| |ƒS t dkr$t| |ƒS t dkr6t| |ƒS tdƒ‚dS )z=Access i-th item of UnicodeCharSeq object via code value
    r   r   r   z=unicode_charseq_get_code: unicode_byte_width not in [1, 2, 4]N)Úunicode_byte_widthr4   r3   r1   ÚNotImplementedErrorr5   r&   r&   r'   Úunicode_charseq_get_codeS   s    


ÿr@   c                 C   s   t  | |¡S )z,Access i-th item of UnicodeType object.
    )r   Z_get_code_pointr5   r&   r&   r'   Úunicode_get_codeb   s    rA   c                 C   s   | | S )z*Access i-th item of Bytes object.
        r&   r5   r&   r&   r'   Úbytes_get_codei   s    rB   c                 C   sD   t | tjƒrtS t | tjƒr tS t | tjƒr0tS t | tjƒr@t	S d S ©N)
Ú
isinstancer   ÚCharSeqr8   ÚBytesrB   ÚUnicodeCharSeqr@   ÚUnicodeTyperA   ©r6   r&   r&   r'   Ú_get_code_implp   s    rJ   c                 C   s<   t jt jft jt jffD ]}t| |ƒrt||ƒr dS qdS )NTF)r   rE   rF   rG   rH   rD   )r6   ÚbÚtr&   r&   r'   Ú
_same_kind{   s    

ÿrM   c                 C   s   t | tjtjfƒS rC   )rD   r   rE   rF   rI   r&   r&   r'   Ú	_is_bytesƒ   s    rN   c                 C   s   | |kpt | tjƒS rC   )rD   r   ÚOmitted)ÚxÚdefaultr&   r&   r'   Ú
is_default‡   s    rR   c                 C   s0   t | |ƒ}|dkrtdƒ‚t |t¡ t¡d S )zlAccess i-th item of UnicodeCharSeq object via unicode value

    null code is interpreted as IndexError
    r   r9   r&   )r@   r:   ÚnpÚarrayÚunicode_uintÚviewÚu1_dtyper;   r&   r&   r'   Úunicode_charseq_get_value‹   s    
rX   c              	   C   s  t  |¡| ||d�}| |jt d¡ ¡ ¡}|j}|  |¡}t d¡}	t  	||¡}
| |
|	 ¡ ¡}t 
|j|j¡}| d||¡}| |||¡}| |¡�" t  ||t 
|j|j¡d¡ W 5 Q R X t  ||¡�@}| ||jg¡}| | |¡|	¡}| || ||jg¡¡ W 5 Q R X | |
¡S )Nr   r*   ú<r   )r   Úcreate_struct_proxyr   r   r   r   r   ÚnitemsÚget_value_typeÚalloca_onceÚConstantÚtypeÚcountÚicmp_unsignedÚselectÚif_thenÚmemsetÚ	for_ranger   Úindexr   r   Ústore)r   r   ÚfromtyÚtotyÚvalZbarrÚsrcÚ
src_lengthÚltyÚdstint_tÚdst_ptrÚdstÚ
dst_lengthÚis_shorter_valuer`   ÚloopÚin_ptrÚin_valr&   r&   r'   Úbytes_to_charseq¨   s.    

ÿý"rv   c                 C   sœ   t  t¡}|| |ƒ}t|tƒr.t |jj|¡}| j	 
||¡|_||_t |jjd¡|_| j	 ||j¡|_t  |jj¡|_t  |jj¡|_t  |jj¡|_|S ©Nr   )r   rZ   Ú
bytes_typerD   Úintr   r^   r[   r_   ZnrtZmeminfo_allocZmeminfoÚitemsizeZmeminfo_datar   Zget_null_valueÚparentÚshapeÚstrides)r   r   ÚnbytesZ	bstr_ctorÚbstrr&   r&   r'   Ú_make_constant_bytesÃ   s    


r€   c                 C   sF   t | ||jjƒ}tj||d�}| ||jj¡}t ||j||j¡ |S )Nr   )	r€   r_   r`   r   r   r   r   Úmemcpyr[   )r   r   rh   ri   rj   r   r!   r"   r&   r&   r'   Úcharseq_to_bytesÕ   s
    r‚   c           
   	   C   s˜   t  |¡| ||d�}| |jt d¡ ¡ ¡}| d|jt 	|jj
d¡¡}|j}| |¡� | j |td¡ W 5 Q R X t| ||ƒ}	t  ||	j||	j¡ |	S )Nr   r*   z!=r   )z3cannot cast higher than 8-bit unicode_type to bytes)r   rZ   r   r   r   r   r   ra   Úkindr^   r_   Úlengthrc   Ú	call_convÚreturn_user_excÚ
ValueErrorr€   r�   r[   )
r   r   rh   ri   rj   Úuni_strÚsrc1Znotkind1rl   r   r&   r&   r'   Úunicode_to_bytes_castÞ   s    
ÿ þrŠ   c                    s*   ˆ t jkst‚tˆ ƒ}‡ fdd„}||fS )Nc                    s   t | |ˆ t|d ƒ ¡ S ©Nr   )rŠ   rx   Z	_getvalue)r   r   r   r   ©Úsr&   r'   r(   ö   s        ÿz"_unicode_to_bytes.<locals>.codegen)r   Zunicode_typeÚAssertionErrorrx   )r.   r�   r0   r(   r&   rŒ   r'   Ú_unicode_to_bytesð   s    r�   c              
   C   sÞ  t  |¡| ||d�}| |jt d¡ ¡ ¡}| |jt d¡ ¡ ¡}| |jt d¡ ¡ ¡}| d|jt 	|jj
d¡¡}	| d|jt 	|jj
d¡¡}
| d|jt 	|jj
d¡¡}|j}|  |¡}t dt ¡}t  ||¡}| || ¡ ¡}t 	|j
|j¡}| d	||¡}| |||¡}| |¡�& t  ||t 	|j
|jt ¡d
¡ W 5 Q R X | |	¡�X t  ||¡�@}| ||jg¡}| | |¡|¡}| || ||jg¡¡ W 5 Q R X W 5 Q R X | |
¡�€ tdk�rt  ||¡�@}| ||jg¡}| | |¡|¡}| || ||jg¡¡ W 5 Q R X n| j |tdtd |f ¡ W 5 Q R X | |¡�€ tdk�r®t  ||¡�@}| ||jg¡}| | |¡|¡}| || ||jg¡¡ W 5 Q R X n| j |tdtd |f ¡ W 5 Q R X | |¡S )Nr   r*   r2   r   z==r   r   r   rY   r   z,cannot cast 16-bit unicode_type to %s-bit %sz,cannot cast 32-bit unicode_type to %s-bit %s)r   rZ   r   r   r   r   r   ra   rƒ   r^   r_   r„   r\   r>   r]   r`   rb   rc   rd   re   r   rf   r   r   rg   r…   r†   r‡   )r   r   rh   ri   rj   rˆ   r‰   Zsrc2Zsrc4Zkind1Zkind2Zkind4rl   rm   rn   ro   rp   rq   rr   r`   rs   rt   ru   r&   r&   r'   Úunicode_to_unicode_charseqü   sz    
ÿ
ÿ
ÿ
ÿý,
$ 
ÿþ
$ 
ÿþr�   c                    sb   d ‰ t |tjƒr0t | tjƒr t‰ t | tjƒr0t‰ ˆ d k	r^| j‰dˆd  ‰‡ ‡‡fdd„}|S d S )Nzindex out of range [0, %s]r   c                    s&   |ˆk r|dkrˆ | |ƒS t ˆƒ‚d S r‹   )r:   ©r�   r7   ©Ú	get_valueZmax_iÚmsgr&   r'   Úgetitem_implU  s    
z%charseq_getitem.<locals>.getitem_impl)rD   r   ÚIntegerrE   r=   rG   rX   r`   )r�   r7   r•   r&   r’   r'   Úcharseq_getitemI  s    r—   c                    sJ   t | tjtjfƒrFt| ƒ‰ | j‰ˆdkr4dd„ }|S ‡ ‡fdd„}|S d S )Nr   c                 S   s   dS r‹   r&   rŒ   r&   r&   r'   Úlen_implb  s    zcharseq_len.<locals>.len_implc                    s6   ˆ}d}|dkr.|d }|dk r"q.ˆ | |ƒ}q|d S )Nr   r   r&   )r�   r7   r<   ©Úget_codeÚnr&   r'   r˜   f  s    )rD   r   rE   rG   rJ   r`   )r�   r˜   r&   r™   r'   Úcharseq_len\  s    rœ   c                 C   s®   t | |ƒsd S t| tjƒr2t|tjƒr2dd„ }|S t|tjƒrVt| tjƒrVdd„ }|S t| tjƒrzt|tjƒrzdd„ }|S t| tjtjfƒrªt|tjtjfƒrªdd„ }|S d S )Nc                 S   s   t | ƒ| S rC   ©Ústr©r6   rK   r&   r&   r'   Úimpl{  s    zcharseq_concat.<locals>.implc                 S   s   | t |ƒ S rC   r�   rŸ   r&   r&   r'   r    €  s    c                 S   s   t | ƒt |ƒ S rC   r�   rŸ   r&   r&   r'   r    …  s    c                 S   s   |   ¡ |  ¡   ¡ S rC   ©Ú_to_strÚ	_to_bytesrŸ   r&   r&   r'   r    Š  s    )rM   rD   r   rG   rH   rE   rF   ©r6   rK   r    r&   r&   r'   Úcharseq_concatt  s,    

ÿ
ÿ
ÿÿr¥   c                 C   sp   t | tjƒrdd„ }|S t |tjƒr0dd„ }|S t | tjtjfƒrNdd„ }|S t |tjtjfƒrldd„ }|S d S )Nc                 S   s   t | ƒ| S rC   r�   rŸ   r&   r&   r'   Úwrap’  s    zcharseq_repeat.<locals>.wrapc                 S   s   | t |ƒ S rC   r�   rŸ   r&   r&   r'   r¦   –  s    c                 S   s   |   ¡ |  ¡ S rC   r¡   rŸ   r&   r&   r'   r¦   š  s    c                 S   s   | |  ¡   ¡ S rC   r¡   rŸ   r&   r&   r'   r¦   ž  s    ©rD   r   rG   rE   rF   )r6   rK   r¦   r&   r&   r'   Úcharseq_repeat�  s    r¨   c                 C   s&   t | tjtjtjfƒr"dd„ }|S d S )Nc                 S   s   t | ƒdkS r‹   )ÚlenrI   r&   r&   r'   r    ¦  s    zcharseq_not.<locals>.implr§   )r6   r    r&   r&   r'   Úcharseq_not£  s    rª   c                    sD   t | |ƒsd S t| ƒ‰ t|ƒ‰ˆ d k	r@ˆd k	r@‡ ‡fdd„}|S d S )Nc                    sD   t | ƒ}|t |ƒkrdS t|ƒD ]}ˆ | |ƒˆ||ƒkr  dS q dS )NFT)r©   Úrange)r6   rK   r›   r7   ©Ú	left_codeÚ
right_coder&   r'   Úeq_impl²  s    zcharseq_eq.<locals>.eq_impl©rM   rJ   )r6   rK   r¯   r&   r¬   r'   Ú
charseq_eq«  s    
r±   c                 C   s>   t | |ƒsd S t| ƒ}t|ƒ}|d k	r:|d k	r:dd„ }|S d S )Nc                 S   s
   | |k S rC   r&   rŸ   r&   r&   r'   Úne_implÄ  s    zcharseq_ne.<locals>.ne_implr°   )r6   rK   r­   r®   r²   r&   r&   r'   Ú
charseq_ne½  s    
r³   c                    sD   t | |ƒsd S t| ƒ‰ t|ƒ‰ˆ d k	r@ˆd k	r@‡ ‡fdd„}|S d S )Nc                    sZ   t | ƒ}t |ƒ}t||ƒ}t|ƒD ].}ˆ | |ƒˆ||ƒ }}||kr"||k   S q"||k S rC   )r©   Úminr«   )r6   rK   ÚnaÚnbr›   r7   ÚcaÚcbr¬   r&   r'   Últ_implÐ  s    
zcharseq_lt.<locals>.lt_implr°   )r6   rK   r¹   r&   r¬   r'   Ú
charseq_ltÉ  s    
	rº   c                 C   s>   t | |ƒsd S t| ƒ}t|ƒ}|d k	r:|d k	r:dd„ }|S d S )Nc                 S   s   || k S rC   r&   rŸ   r&   r&   r'   Úgt_implã  s    zcharseq_gt.<locals>.gt_implr°   )r6   rK   r­   r®   r»   r&   r&   r'   Ú
charseq_gtÜ  s    
r¼   c                 C   s>   t | |ƒsd S t| ƒ}t|ƒ}|d k	r:|d k	r:dd„ }|S d S )Nc                 S   s
   | |k S rC   r&   rŸ   r&   r&   r'   Úle_implï  s    zcharseq_le.<locals>.le_implr°   )r6   rK   r­   r®   r½   r&   r&   r'   Ú
charseq_leè  s    
r¾   c                 C   s>   t | |ƒsd S t| ƒ}t|ƒ}|d k	r:|d k	r:dd„ }|S d S )Nc                 S   s
   | |k  S rC   r&   rŸ   r&   r&   r'   Úge_implû  s    zcharseq_ge.<locals>.ge_implr°   )r6   rK   r­   r®   r¿   r&   r&   r'   Ú
charseq_geô  s    
rÀ   c                 C   sP   t | |ƒsd S t| ƒ}t|ƒ}|d k	rL|d k	rLt| ƒr@dd„ }ndd„ }|S d S )Nc                 S   s   |  ¡ |   ¡ kS rC   ©r¢   rŸ   r&   r&   r'   Úcontains_impl  s    z'charseq_contains.<locals>.contains_implc                 S   s   t |ƒt | ƒkS rC   r�   rŸ   r&   r&   r'   rÂ     s    )rM   rJ   rN   )r6   rK   r­   r®   rÂ   r&   r&   r'   Úcharseq_contains   s    

rÃ   Úisasciic                    s   t | ƒ‰ ‡ fdd„}|S )Nc                    s*   t t| ƒƒD ]}ˆ | |ƒdkr dS qdS )Né   FT)r«   r©   r‘   ©rš   r&   r'   r      s    zcharseq_isascii.<locals>.impl©rJ   ©r�   r    r&   rÆ   r'   Úcharseq_isascii  s    rÉ   Ú	_get_kindc                    s   t | ƒ‰ ‡ fdd„}|S )Nc                    sN   d}t t| ƒƒD ]}ˆ | |ƒ}||kr|}q|dkr:tjS |dkrHtjS tjS )Nr   iÿÿ  éÿ   )r«   r©   r   ÚPY_UNICODE_4BYTE_KINDÚPY_UNICODE_2BYTE_KINDÚPY_UNICODE_1BYTE_KIND)r�   Zmax_coder7   r<   rÆ   r&   r'   r    '  s    
zcharseq_get_kind.<locals>.implrÇ   rÈ   r&   rÆ   r'   Úcharseq_get_kind"  s    rÏ   r£   c                 C   s   dd„ }|S )z»Convert unicode_type object to Bytes object.

    Note: The usage of _to_bytes method can be eliminated once all
    Python bytes operations are implemented for numba Bytes objects.

    c                 S   s   t | ƒS rC   )r�   rŒ   r&   r&   r'   r    =  s    z"unicode_to_bytes_mth.<locals>.implr&   rÈ   r&   r&   r'   Úunicode_to_bytes_mth5  s    rÐ   r¢   c                    s   t | ƒ‰ ‡ fdd„}|S )zÄConvert bytes array item or bytes instance to UTF-8 str.

    Note: The usage of _to_str method can be eliminated once all
    Python bytes operations are implemented for numba Bytes objects.
    c                    sJ   t | ƒ}|  ¡ }t tj||¡}t|ƒD ]}ˆ | |ƒ}t |||¡ q(|S rC   )r©   rÄ   r   Ú_empty_stringrÎ   r«   Ú_set_code_point)r�   r›   Úis_asciiÚresultr7   r<   rÆ   r&   r'   Ú
tostr_implL  s      ÿ
z&charseq_to_str_mth.<locals>.tostr_implrÇ   )r�   rÕ   r&   rÆ   r'   Úcharseq_to_str_mthB  s    	rÖ   Ú__str__c                    s   t | ƒ‰ ‡ fdd„}|S )Nc                    sX   t | ƒ}|  ¡ }|dko|  ¡ }t |||¡}t|ƒD ]}ˆ | |ƒ}t |||¡ q6|S rw   )r©   rÊ   rÄ   r   rÑ   r«   rÒ   )r�   r›   rƒ   rÓ   rÔ   r7   r<   rÆ   r&   r'   Ústr_impl\  s    
zcharseq_str.<locals>.str_implrÇ   )r�   rØ   r&   rÆ   r'   Úcharseq_strX  s    
rÙ   c                 C   s   t | tjƒrdd„ S d S )Nc                 S   s   | S rC   r&   rŒ   r&   r&   r'   Ú<lambda>l  ó    zcharseq_bytes.<locals>.<lambda>)rD   r   rE   rŒ   r&   r&   r'   Úcharseq_bytesi  s    rÜ   Ú__hash__c                 C   s   dd„ }|S )Nc                 S   s   t t| ƒƒS rC   )Úhashrž   rŒ   r&   r&   r'   r    q  s    z"unicode_charseq_hash.<locals>.implr&   rÈ   r&   r&   r'   Úunicode_charseq_hasho  s    rß   c                 C   s   dd„ }|S )Nc                 S   s   t |  ¡ ƒS rC   )rÞ   r¢   rŒ   r&   r&   r'   r    x  s    zcharseq_hash.<locals>.implr&   rÈ   r&   r&   r'   Úcharseq_hashv  s    rà   Úisupperc                 C   s   dd„ }|S )Nc                 S   s   t | ƒ ¡   S rC   )rž   rá   rŒ   r&   r&   r'   r    „  s    z%unicode_charseq_isupper.<locals>.implr&   rÈ   r&   r&   r'   Úunicode_charseq_isupper‚  s    râ   c                 C   s   dd„ }|S )Nc                 S   s   |   ¡  ¡   S rC   )r¢   rá   rŒ   r&   r&   r'   r    Œ  s    zcharseq_isupper.<locals>.implr&   rÈ   r&   r&   r'   Úcharseq_isupperŠ  s    rã   Úupperc                 C   s   dd„ }|S )Nc                 S   s   t | ƒ ¡ S rC   )rž   rä   rŒ   r&   r&   r'   r    ”  s    z#unicode_charseq_upper.<locals>.implr&   rÈ   r&   r&   r'   Úunicode_charseq_upper’  s    rå   c                 C   s   dd„ }|S )Nc                 S   s   |   ¡  ¡  ¡ S rC   )r¢   rä   r£   rŒ   r&   r&   r'   r    ›  s    zcharseq_upper.<locals>.implr&   rÈ   r&   r&   r'   Úcharseq_upper™  s    ræ   Úfindc                 C   s²   t | tjƒr<t |tjƒr$dd„ }|S t |tjƒr<dd„ }|S t | tjƒrft |tjtjfƒrfdd„ }|S t | tjƒrŠt |tjƒrŠdd„ }|S t | tjƒr®t |tjƒr®dd„ }|S d S )Nc                 S   s   t | ƒ t |ƒ¡S rC   ©rž   rç   rŸ   r&   r&   r'   r    §  s    z"unicode_charseq_find.<locals>.implc                 S   s   t | ƒ |¡S rC   rè   rŸ   r&   r&   r'   r    «  s    c                 S   s   |   ¡  |  ¡ ¡S rC   ©r¢   rç   rŸ   r&   r&   r'   r    °  s    c                 S   s   |   t|ƒ¡S rC   )rç   rž   rŸ   r&   r&   r'   r    µ  s    c                 S   s   |   ¡  |  ¡ ¡S rC   ré   rŸ   r&   r&   r'   r    º  s    ©rD   r   rG   rH   rE   rF   r¤   r&   r&   r'   Úunicode_charseq_find¡  s&    rë   Úrfindc                 C   s²   t | tjƒr<t |tjƒr$dd„ }|S t |tjƒr<dd„ }|S t | tjƒrft |tjtjfƒrfdd„ }|S t | tjƒrŠt |tjƒrŠdd„ }|S t | tjƒr®t |tjƒr®dd„ }|S d S )Nc                 S   s   t | ƒ t |ƒ¡S rC   ©rž   rì   rŸ   r&   r&   r'   r    Å  s    z#unicode_charseq_rfind.<locals>.implc                 S   s   t | ƒ |¡S rC   rí   rŸ   r&   r&   r'   r    É  s    c                 S   s   |   ¡  |  ¡ ¡S rC   ©r¢   rì   rŸ   r&   r&   r'   r    Î  s    c                 S   s   |   t|ƒ¡S rC   )rì   rž   rŸ   r&   r&   r'   r    Ó  s    c                 S   s   |   ¡  |  ¡ ¡S rC   rî   rŸ   r&   r&   r'   r    Ø  s    rê   r¤   r&   r&   r'   Úunicode_charseq_rfind¿  s&    rï   Ú
startswithc                 C   sp   t | tjƒr<t |tjƒr$dd„ }|S t |tjƒr<dd„ }|S t | tjtjfƒrlt |tjtjfƒrldd„ }|S d S )Nc                 S   s   t | ƒ t |ƒ¡S rC   ©rž   rð   rŸ   r&   r&   r'   r    ã  s    z(unicode_charseq_startswith.<locals>.implc                 S   s   t | ƒ |¡S rC   rñ   rŸ   r&   r&   r'   r    ç  s    c                 S   s   |   ¡  |  ¡ ¡S rC   )r¢   rð   rŸ   r&   r&   r'   r    ì  s    rê   r¤   r&   r&   r'   Úunicode_charseq_startswithÝ  s    rò   Úendswithc                 C   sp   t | tjƒr<t |tjƒr$dd„ }|S t |tjƒr<dd„ }|S t | tjtjfƒrlt |tjtjfƒrldd„ }|S d S )Nc                 S   s   t | ƒ t |ƒ¡S rC   ©rž   ró   rŸ   r&   r&   r'   r    ÷  s    z&unicode_charseq_endswith.<locals>.implc                 S   s   t | ƒ |¡S rC   rô   rŸ   r&   r&   r'   r    û  s    c                 S   s   |   ¡  |  ¡ ¡S rC   )r¢   ró   rŸ   r&   r&   r'   r       s    rê   r¤   r&   r&   r'   Úunicode_charseq_endswithñ  s    rõ   c                 C   s   dd„ | D ƒS )Nc                 S   s   g | ]}|  ¡ ‘qS r&   )r£   )Ú.0r�   r&   r&   r'   Ú
<listcomp>  s     z_map_bytes.<locals>.<listcomp>r&   )Úseqr&   r&   r'   Ú
_map_bytes  s    rù   Úsplitéÿÿÿÿc                 C   sô   |dks"t |tjtjtjfƒs"d S t | tjƒrŽt |tjƒrHd
dd„}|S t |tjƒrbddd„}|S t|ƒrŽt|dƒr€ddd„}n
ddd„}|S t | tj	tj
fƒ� rðt |tj	tj
fƒrÂddd„}|S t|ƒ� rðt|dƒrâddd„}n
dd	d„}|S d S )Nrû   c                 S   s   t | ƒjt |ƒ|d�S ©N)ÚsepÚmaxsplit©rž   rú   ©r6   rý   rþ   r&   r&   r'   r      s    z#unicode_charseq_split.<locals>.implc                 S   s   t | ƒj||d�S rü   rÿ   r   r&   r&   r'   r      s    c                 S   s   t | ƒ ¡ S rC   rÿ   r   r&   r&   r'   r      s    c                 S   s   t | ƒj|d�S ©N)rþ   rÿ   r   r&   r&   r'   r       s    c                 S   s   t |  ¡ j| ¡ |d�ƒS r  ©rù   r¢   rú   r   r&   r&   r'   r    %  s    ÿc                 S   s   t |  ¡  ¡ ƒS rC   r  r   r&   r&   r'   r    +  s    c                 S   s   t |  ¡ j|d�ƒS r  r  r   r&   r&   r'   r    .  s    )Nrû   )Nrû   )Nrû   )Nrû   )Nrû   )Nrû   )Nrû   )rD   r   rO   r–   ZIntegerLiteralrG   rH   r
   rR   rE   rF   )r6   rý   rþ   r    r&   r&   r'   Úunicode_charseq_split
  s6    ÿÿ







r  Úljustú c                 C   s°   t | tjƒrXt|dƒr$d	dd„}|S t |tjƒr>d
dd„}|S t |tjƒrXddd„}|S t | tjtjfƒr¬t|dƒs~t|dƒrŒddd„}|S t |tjtjfƒr¬ddd„}|S d S )Nr  c                 S   s   t | ƒ |¡S rC   ©rž   r  ©r6   ÚwidthÚfillcharr&   r&   r'   r    ;  s    z#unicode_charseq_ljust.<locals>.implc                 S   s   t | ƒ |t |ƒ¡S rC   r  r  r&   r&   r'   r    ?  s    c                 S   s   t | ƒ ||¡S rC   r  r  r&   r&   r'   r    C  s    ó    c                 S   s   |   ¡  |¡ ¡ S rC   ©r¢   r  r£   r  r&   r&   r'   r    H  s    c                 S   s   |   ¡  ||  ¡ ¡ ¡ S rC   r  r  r&   r&   r'   r    L  s    )r  )r  )r  )r  )r  ©rD   r   rG   rR   rH   rE   rF   ©r6   r  r	  r    r&   r&   r'   Úunicode_charseq_ljust5  s"    





r  Úrjustc                 C   s°   t | tjƒrXt|dƒr$d	dd„}|S t |tjƒr>d
dd„}|S t |tjƒrXddd„}|S t | tjtjfƒr¬t|dƒs~t|dƒrŒddd„}|S t |tjtjfƒr¬ddd„}|S d S )Nr  c                 S   s   t | ƒ |¡S rC   ©rž   r  r  r&   r&   r'   r    W  s    z#unicode_charseq_rjust.<locals>.implc                 S   s   t | ƒ |t |ƒ¡S rC   r  r  r&   r&   r'   r    [  s    c                 S   s   t | ƒ ||¡S rC   r  r  r&   r&   r'   r    _  s    r
  c                 S   s   |   ¡  |¡ ¡ S rC   ©r¢   r  r£   r  r&   r&   r'   r    d  s    c                 S   s   |   ¡  ||  ¡ ¡ ¡ S rC   r  r  r&   r&   r'   r    h  s    )r  )r  )r  )r  )r  r  r  r&   r&   r'   Úunicode_charseq_rjustQ  s"    





r  Úcenterc                 C   s°   t | tjƒrXt|dƒr$d	dd„}|S t |tjƒr>d
dd„}|S t |tjƒrXddd„}|S t | tjtjfƒr¬t|dƒs~t|dƒrŒddd„}|S t |tjtjfƒr¬ddd„}|S d S )Nr  c                 S   s   t | ƒ |¡S rC   ©rž   r  r  r&   r&   r'   r    s  s    z$unicode_charseq_center.<locals>.implc                 S   s   t | ƒ |t |ƒ¡S rC   r  r  r&   r&   r'   r    w  s    c                 S   s   t | ƒ ||¡S rC   r  r  r&   r&   r'   r    {  s    r
  c                 S   s   |   ¡  |¡ ¡ S rC   ©r¢   r  r£   r  r&   r&   r'   r    €  s    c                 S   s   |   ¡  ||  ¡ ¡ ¡ S rC   r  r  r&   r&   r'   r    „  s    )r  )r  )r  )r  )r  r  r  r&   r&   r'   Úunicode_charseq_centerm  s"    





r  Úzfillc                 C   s:   t | tjƒrdd„ }|S t | tjtjfƒr6dd„ }|S d S )Nc                 S   s   t | ƒ |¡S rC   )rž   r  ©r6   r  r&   r&   r'   r    Ž  s    z#unicode_charseq_zfill.<locals>.implc                 S   s   |   ¡  |¡ ¡ S rC   )r¢   r  r£   r  r&   r&   r'   r    ’  s    r§   )r6   r  r    r&   r&   r'   Úunicode_charseq_zfill‰  s    r  Úlstripc                 C   s¢   t | tjƒrVt|ƒr"ddd„}|S t |tjƒr<ddd„}|S t |tjƒrVd	dd„}|S t | tjtjfƒržt|ƒr~d
dd„}|S t |tjtjfƒržddd„}|S d S )Nc                 S   s   t | ƒ ¡ S rC   ©rž   r  ©r6   Úcharsr&   r&   r'   r    �  s    z$unicode_charseq_lstrip.<locals>.implc                 S   s   t | ƒ t |ƒ¡S rC   r  r  r&   r&   r'   r    ¡  s    c                 S   s   t | ƒ |¡S rC   r  r  r&   r&   r'   r    ¥  s    c                 S   s   |   ¡  ¡  ¡ S rC   ©r¢   r  r£   r  r&   r&   r'   r    ª  s    c                 S   s   |   ¡  |  ¡ ¡ ¡ S rC   r  r  r&   r&   r'   r    ®  s    )N)N)N)N)N©rD   r   rG   r
   rH   rE   rF   ©r6   r  r    r&   r&   r'   Úunicode_charseq_lstrip—  s"    




r!  Úrstripc                 C   s¢   t | tjƒrVt|ƒr"ddd„}|S t |tjƒr<ddd„}|S t |tjƒrVd	dd„}|S t | tjtjfƒržt|ƒr~d
dd„}|S t |tjtjfƒržddd„}|S d S )Nc                 S   s   t | ƒ ¡ S rC   ©rž   r"  r  r&   r&   r'   r    ¹  s    z$unicode_charseq_rstrip.<locals>.implc                 S   s   t | ƒ t |ƒ¡S rC   r#  r  r&   r&   r'   r    ½  s    c                 S   s   t | ƒ |¡S rC   r#  r  r&   r&   r'   r    Á  s    c                 S   s   |   ¡  ¡  ¡ S rC   ©r¢   r"  r£   r  r&   r&   r'   r    Æ  s    c                 S   s   |   ¡  |  ¡ ¡ ¡ S rC   r$  r  r&   r&   r'   r    Ê  s    )N)N)N)N)Nr  r   r&   r&   r'   Úunicode_charseq_rstrip³  s"    




r%  Ústripc                 C   s¢   t | tjƒrVt|ƒr"ddd„}|S t |tjƒr<ddd„}|S t |tjƒrVd	dd„}|S t | tjtjfƒržt|ƒr~d
dd„}|S t |tjtjfƒržddd„}|S d S )Nc                 S   s   t | ƒ ¡ S rC   ©rž   r&  r  r&   r&   r'   r    Õ  s    z#unicode_charseq_strip.<locals>.implc                 S   s   t | ƒ t |ƒ¡S rC   r'  r  r&   r&   r'   r    Ù  s    c                 S   s   t | ƒ |¡S rC   r'  r  r&   r&   r'   r    Ý  s    c                 S   s   |   ¡  ¡  ¡ S rC   ©r¢   r&  r£   r  r&   r&   r'   r    â  s    c                 S   s   |   ¡  |  ¡ ¡ ¡ S rC   r(  r  r&   r&   r'   r    æ  s    )N)N)N)N)Nr  r   r&   r&   r'   Úunicode_charseq_stripÏ  s"    




r)  Újoinc                 C   s:   t | tjƒrdd„ }|S t | tjtjfƒr6dd„ }|S d S )Nc                 S   s   dd„ |D ƒ}t | ƒ |¡S )Nc                 S   s   g | ]}t |ƒ‘qS r&   r�   ©rö   Úpr&   r&   r'   r÷   ó  s     ú6unicode_charseq_join.<locals>.impl.<locals>.<listcomp>)rž   r*  ©r6   ÚpartsÚ_partsr&   r&   r'   r    ò  s    z"unicode_charseq_join.<locals>.implc                 S   s    dd„ |D ƒ}|   ¡  |¡ ¡ S )Nc                 S   s   g | ]}|  ¡ ‘qS r&   rÁ   r+  r&   r&   r'   r÷   ú  s     r-  )r¢   r*  r£   r.  r&   r&   r'   r    ù  s    r§   )r6   r/  r    r&   r&   r'   Úunicode_charseq_joinë  s    r1  )Nrû   )r  )r  )r  )N)N)N)nÚ__doc__ÚoperatorÚnumpyrS   Zllvmliter   Z
numba.corer   r   Znumba.core.extendingr   r   r   r   r	   Znumba.core.cgutilsr
   Znumba.cpythonr   ZdtypeZs1_dtyperz   rŽ   rF   Zuint8rx   rW   r>   Zuint16r,   rU   rÎ   rÍ   rÌ   Zunicode_kindr)   r1   r3   r4   r8   r=   r@   rA   rB   rJ   rM   rN   rR   rX   rE   rv   r€   r‚   rH   rŠ   r�   rG   r�   Úgetitemr—   r©   rœ   ÚaddÚiaddr¥   Úmulr¨   Únot_rª   Úeqr±   Úner³   Últrº   Úgtr¼   Úler¾   ÚgerÀ   ÚcontainsrÃ   rÉ   rÏ   rÐ   rÖ   rÙ   ÚbytesrÜ   rß   rà   râ   rã   rå   ræ   rë   rï   rò   rõ   rù   r  r  r  r  r  r!  r%  r)  r1  r&   r&   r&   r'   Ú<module>   s@  	

þþ














L


















































(























