
    Ng-              	          d dl mZ d dlZd dlZej        d          dk    reeeef\  ZZ	Z
ZdZneeeef\  ZZ	Z
ZdZ e
            Z e            Zej        Z G d de          Z G d d	e          Z G d
 de          Z G d de          Zd Zd Z G d de
          Zd Zd Zd Zddddddddj        Zd e  e!e e"d                              z   Z#d Z$d  Z% e%            Z&d! Z'd" Z(d&d$Z)d% Z*dS )'    )absolute_importN   TFc                   T    e Zd ZdZd Zd Zej        dk    rd Znd Zd Z	d Z
d	 Zd
S )UnicodeLiteralBuilderzAssemble a unicode string.
    c                     g | _         d S N)charsselfs    Z/var/www/html/ai-engine/env/lib/python3.11/site-packages/Cython/Compiler/StringEncoding.py__init__zUnicodeLiteralBuilder.__init__   s    


    c                     t          |t                    r|                    d          }t          |t                    s$J t	          t          |                                | j                            |           d S )NASCII)
isinstance_bytesdecode_unicodestrtyper	   appendr   
characterss     r   r   zUnicodeLiteralBuilder.append   sq    j&)) 	4#**733J*h//FFT*5E5E1F1FFFF
*%%%%%r     c                 "   |dk    ra|dz  }| j                             t          |dz  dz                        | j                             t          |dz  dz                        d S | j                             t          |                     d S )Nr               r	   r   _unichrr   char_numbers     r   append_charvalz$UnicodeLiteralBuilder.append_charval%   s    U"" w&
!!7K4,?6+I#J#JLLL
!!7K4,?6+I#J#JLLLLL
!!7;#7#799999r   c                 T    | j                             t          |                     d S r   r    r"   s     r   r$   z$UnicodeLiteralBuilder.append_charval/   s&    Jw{3355555r   c                 0    |                      |           d S r   )r$   r   r#   escape_strings      r   append_uescapez$UnicodeLiteralBuilder.append_uescape2   s    K(((((r   c                 P    t          d                    | j                            S )N )EncodedStringjoinr	   r
   s    r   	getstringzUnicodeLiteralBuilder.getstring5   s    SXXdj11222r   c                 .    d |                                  fS r   r.   r
   s    r   
getstringsz UnicodeLiteralBuilder.getstrings8   s    dnn&&''r   N)__name__
__module____qualname____doc__r   r   sys
maxunicoder$   r)   r.   r1    r   r   r   r      s           & & & ~	: 	: 	: 	:	6 	6 	6) ) )3 3 3( ( ( ( (r   r   c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
BytesLiteralBuilderz*Assemble a byte string or char value.
    c                 "    g | _         || _        d S r   )r	   target_encodingr   r<   s     r   r   zBytesLiteralBuilder.__init__?   s    
.r   c                 
   t          |t                    r|                    | j                  }t          |t                    s$J t          t          |                                | j                            |           d S r   )	r   r   encoder<   r   r   r   r	   r   r   s     r   r   zBytesLiteralBuilder.appendC   su    j(++ 	A#**4+?@@J*f--DDs4
3C3C/D/DDDD
*%%%%%r   c                 z    | j                             t          |                              d                     d S N
ISO-8859-1)r	   r   r!   r?   r"   s     r   r$   z"BytesLiteralBuilder.append_charvalI   s4    
7;//66|DDFFFFFr   c                 0    |                      |           d S r   )r   r'   s      r   r)   z"BytesLiteralBuilder.append_uescapeL   s    M"""""r   c                 P    t          t          | j                  | j                  S r   )bytes_literal
join_bytesr	   r<   r
   s    r   r.   zBytesLiteralBuilder.getstringO   s    Z
33T5IJJJr   c                 *    |                                  S r   r0   r
   s    r   getcharzBytesLiteralBuilder.getcharS   s    ~~r   c                 .    |                                  d fS r   r0   r
   s    r   r1   zBytesLiteralBuilder.getstringsW   s      $''r   N)r2   r3   r4   r5   r   r   r$   r)   r.   rH   r1   r8   r   r   r:   r:   <   s         / / /& & &G G G# # #K K K     ( ( ( ( (r   r:   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )StrLiteralBuilderzDAssemble both a bytes and a unicode representation of a string.
    c                 T    t          |          | _        t                      | _        d S r   )r:   r   r   r   r=   s     r   r   zStrLiteralBuilder.__init__^   s"    +O<<-//r   c                 n    | j                             |           | j                            |           d S r   )r   r   r   r   s     r   r   zStrLiteralBuilder.appendb   s4    :&&&Z(((((r   c                 n    | j                             |           | j                            |           d S r   )r   r$   r   r"   s     r   r$   z StrLiteralBuilder.append_charvalf   s4    "";///$$[11111r   c                 n    | j                             |           | j                            |           d S r   )r   r   r   r$   r'   s      r   r)   z StrLiteralBuilder.append_uescapej   s4    =)))$$[11111r   c                 f    | j                                         | j                                        fS r   )r   r.   r   r
   s    r   r1   zStrLiteralBuilder.getstringsn   s)    %%'')@)@)B)BCCr   N)	r2   r3   r4   r5   r   r   r$   r)   r1   r8   r   r   rK   rK   [   sn         0 0 0) ) )2 2 22 2 2D D D D Dr   rK   c                   n    e Zd ZdZd Zd Zd Zed             Zd Z	d Z
d Z eed	          sd
 ZdS dS )r,   Nc                     | S r   r8   r   memos     r   __deepcopy__zEncodedString.__deepcopy__x       r   c                 H    | j         J |                     | j                   S r   encodingr?   r
   s    r   
byteencodezEncodedString.byteencode{   s$    }((({{4=)))r   c                 >    | j         J |                     d          S )NzUTF-8rX   r
   s    r   
utf8encodezEncodedString.utf8encode   s"    }$$${{7###r   c                     | j         d u S r   )rY   r
   s    r   
is_unicodezEncodedString.is_unicode   s    }$$r   c                      t          |           S r   )string_contains_surrogatesr
   s    r   contains_surrogatesz!EncodedString.contains_surrogates   s    )$///r   c                 F    t          |                                 d          S )Nutf8)rE   r\   r
   s    r   as_utf8_stringzEncodedString.as_utf8_string   s    T__..777r   c                     | j         |                                 }n't          |                                 | j                   }|                                S r   )rY   rd   rE   rZ   as_c_string_literal)r   ss     r   rf   z!EncodedString.as_c_string_literal   sJ    = ##%%AAdoo//??A$$&&&r   isasciic                 T    	 |                      d           dS # t          $ r Y dS w xY w)NasciiTF)r?   UnicodeEncodeErrorr
   s    r   rh   zEncodedString.isascii   sD    G$$$ t &   uus    
'')r2   r3   r4   rY   rU   rZ   r\   propertyr^   ra   rd   rf   hasattrr   rh   r8   r   r   r,   r,   r   s         H  * * *$ $ $ % % X%0 0 08 8 8' ' ' 78Y'' 	 	 	 	 	 r   r,   c                 n    t          t          |           D ]}|dk    r dS d|cxk    rdk    rn  dS dS )z
    Check if the unicode string contains surrogate code points
    on a CPython platform with wide (UCS-4) or narrow (UTF-16)
    Unicode, i.e. characters that would be spelled as two
    separate code units on a narrow platform.
    r   Tr     F)mapord)ustringcs     r   r`   r`      s`     g  u9944Q    &     44 !5r   c                     d}t           j        dk    }t          t          |           D ].}|dk     s|dk    r|r dS |s dS |dk    r|r dS d}'|s dS d}/|S )a  
    Check if the unicode string contains lone surrogate code points
    on a CPython platform with wide (UCS-4) or narrow (UTF-16)
    Unicode, i.e. characters that would be spelled as two
    separate code units on a narrow platform, but that do not form a pair.
    Fr   r   ro   T  )r6   r7   rp   rq   )rr   last_was_startunicode_uses_surrogate_encodingrs   s       r   string_contains_lone_surrogatesrx      s     N&)n&=#g # #v::V tt0 
	#44&[[ tt!NN! tt"NNr   c                   V    e Zd ZdZd Zd Zd Zd ZdZd Z	 e
ed          sd	 ZdS dS )
BytesLiteralNc                     | S r   r8   rS   s     r   rU   zBytesLiteral.__deepcopy__   rV   r   c                 ~    t           rt          |           S |                     d                              d          S rA   )
IS_PYTHON3r   r   r?   r
   s    r   rZ   zBytesLiteral.byteencode   s9     	B$<< ;;|,,33LAAAr   c                     J d| z              )NFz this is not a unicode string: %rr8   r
   s    r   r\   zBytesLiteral.utf8encode   s    ?84????r   c                 ,    |                      d          S )zcFake-decode the byte string to unicode to support %
        formatting of unicode strings.
        rB   )r   r
   s    r   __str__zBytesLiteral.__str__   s     {{<(((r   Fc                 D    t          t          |                     }d|z  S )Nz"%s")split_string_literalescape_byte_string)r   values     r   rf   z BytesLiteral.as_c_string_literal   s"    $%7%=%=>>~r   rh   c                     dS )NTr8   r
   s    r   rh   zBytesLiteral.isascii   s    4r   )r2   r3   r4   rY   rU   rZ   r\   r   r^   rf   rm   r   rh   r8   r   r   rz   rz      s        H  B B B@ @ @) ) ) J   769%% 	 	 	 	 	 r   rz   c                 `    t          | t                    sJ t          |           } || _        | S r   )r   bytesrz   rY   rg   rY   s     r   rE   rE      s/    aQAAJHr   c                 r    t          | t          t          f          sJ t          |           } ||| _        | S r   )r   r   r   r,   rY   r   s     r   encoded_stringr      s<    a(E*+++++aA
Hr   c                 l    t          | t                    rt          | |          S t          | |          S r   )r   r   rE   r   r   s     r   encoded_string_or_bytes_literalr      s4    !U +Q)))a***r   
	)z\az\bz\fz\nz\rz\tz\v)\z??"    c                     | dv rt          |           dd         S | dk    rdS | dk    rdS d                    d	 | D                       S )
Nz
	   r   z\"r   \\r+   c                 2    g | ]}d t          |          z  S )z\%03o)rq   .0rs   s     r   
<listcomp>z'_to_escape_sequence.<locals>.<listcomp>  s#    555a3q66)555r   )reprr-   )rg   s    r   _to_escape_sequencer     s^    H}}Awwqt}	
cu	
du ww551555666r   c                     g } i t           D ]n}d                    d |D                       }|                     |           t          |                              d          |                    d          <   ot          j        dd                    |           z                      d                    j        fdfd}|S )Nr+   c                 @    g | ]}d |                     dd          z  S )z[%s]r   r   )replacer   s     r   r   z,_build_specials_replacer.<locals>.<listcomp>   s+    LLLq&199T6#:#::LLLr   r   z(%s)|c                 :    |                      d                   S )Nr   )group)mreplacementss    r   replace_specialsz2_build_specials_replacer.<locals>.replace_specials$  s    AGGAJJ''r   c                      |           S r   r8   )rg   r   subs    r   r   z)_build_specials_replacer.<locals>.replace&  s    s#Q'''r   )
_c_specialr-   r   r   r?   recompiler   )subexpsspecialregexpr   r   r   r   s       @@@r   _build_specials_replacerr     s    GL ] ]LLGLLLMMv0CG0L0L0S0ST[0\0\W^^G,,--
*fsxx00088AA
B
B
FC( ( ( ( (( ( ( ( ( (Nr   c                     t           r|                     d          } | dv rt          |           dd         S | dk    rdS t          |           }|dk     s|dk    rd	|z  S | S )
NrB   z
	\r   r   'z\'r      z\x%02X)r}   r   r   rq   )rs   ns     r   escape_charr   -  sq     #HH\""JAwwqt}	
cuAA2vvS1}r   c                 
   t          |           } 	 |                     d          S # t          $ r Y nw xY wt          rit	                      }|j        |j        }}| D ]5}|dk    r" |d|z                      d                     * ||           6|                    d          S g }|j        }| D ]1}t          |          }|dk    r |d|z             & ||           2t          |                              d          S )zEscape a byte string so that it can be written into C code.
    Note that this returns a Unicode string instead which, when
    encoded as ISO-8859-1, will result in the correct byte sequence
    being written.
    r      z\%3orB   )
_replace_specialsr   UnicodeDecodeErrorr}   	bytearrayr   extendr?   rq   rF   )rg   s_newr   r   blrs   os           r   r   r   ;  s3    	!Axx       2u| 	 	ACxx!++G445555q				||L))) 	 	AAACxxw{####q				!}}##L111s   & 
33  c                    t          |           |k     r| S d}g }|t          |           k     r||z   }t          |           |dz
  k    rmd| |dz
  |         v r^|d| |dz
  |                             d          z
  z  }| |dz
           dk    r)|dz  }||k    r||z   |dz  z
  dz
  }n| |dz
           dk    )|                    | ||                    |}|t          |           k     d                    |          S )Nr      r   r      z"")lenfindr   r-   )rg   limitstartchunksends        r   r   r   Z  s$   
1vv~~c!ffnn%-C1vvA~~$!CE#I,"6"6q1SU3Y<,,T2222Ah$&&1HCe||#emuqy9A= Ah$&& MM!E#I,'''E c!ffnn yy   r   c                    t          t          t          |                     dgz   } t          j        dk    rlg | }}| D ]d}|dk    rGt          |dz
  d          \  }}|                    |dz              |                    |dz              O|                    |           ene| g }}| D ]^}d|cxk    rdk    r:n n7|r5d|d         cxk    rdk    r"n n|d         |}}|d	z  d
z  |d	z  z   dz   |d<   I|                    |           _||k    rg }d                    t          t          |                    d                    t          t          |                    fS )zBCreate Py_UNICODE[] representation of a given unicode string.
    r   r   r   r   r   ro   r   ru   i  
   ,)	listrp   rq   r6   r7   divmodr   r-   r   )rg   utf16utf32
code_pointhighlow	code_units          r   encode_pyunicode_stringr   o  s    	Sa[[QCA
~  1u 	) 	)JW$$":#7>>	cTF]+++S6\****Z((((	) "u 	( 	(I,,,,f,,,,,,6U2Y;X;X;X;XRX;X;X;X;X;X!"Iyc"Ulr1cEkBWLb		Y''''~~88C%(())388C%4H4H+I+IIIr   )r   )+
__future__r   r   r6   version_infor   r   chrr   _strr   r!   r}   unicodeunichrempty_bytesempty_unicoder-   rF   objectr   r:   rK   r,   r`   rx   rz   rE   r   r   getchar_from_escape_sequencetuplerp   ranger   r   r   r   r   r   r   r   r8   r   r   <module>r      s  
 ' & & & & & 				 



A!&)3s&:#HdFGJJ&-sC&?#HdFGJfhh


"( "( "( "( "(F "( "( "(J( ( ( ( (& ( ( (>D D D D D D D D.+ + + + +H + + +\    8         6      F    + + +   
  ss3b		':':!;!;;
	7 	7 	7   -,..   2 2 2>! ! ! !*J J J J Jr   