
    -Ph(              	       b   d dl Z d dlZdj        Z G d d          Z G d d          Z G d d          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 )$    N    c                   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    ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/Cython/Compiler/StringEncoding.py__init__zUnicodeLiteralBuilder.__init__   s    


r   c                     t          |t                    sJ dt          |                       | j                            |           d S )NzExpected str, got )
isinstancestrtyper   appendr
   
characterss     r   r   zUnicodeLiteralBuilder.append   sM    *c**SS,SjAQAQ,S,SSSS
*%%%%%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   chrr
   char_numbers     r   append_charvalz$UnicodeLiteralBuilder.append_charval   s    U"" w&
!!3t(;v'E#F#FHHH
!!3t(;v'E#F#FHHHHH
!!3{#3#355555r   c                 T    | j                             t          |                     d S r   r   r   s     r   r   z$UnicodeLiteralBuilder.append_charval!   s&    Js;//11111r   c                 0    |                      |           d S r   )r   r
   r   escape_strings      r   append_uescapez$UnicodeLiteralBuilder.append_uescape$   s    K(((((r   c                 P    t          d                    | j                            S )N )EncodedStringjoinr   r	   s    r   	getstringzUnicodeLiteralBuilder.getstring'   s    RWWTZ00111r   c                 .    d |                                  fS r   r(   r	   s    r   
getstringsz UnicodeLiteralBuilder.getstrings*   s    dnn&&''r   N)__name__
__module____qualname____doc__r   r   sys
maxunicoder   r#   r(   r+    r   r   r   r      s           & & & ~	6 	6 	6 	6	2 	2 	2) ) )2 2 2( ( ( ( (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
   r6   s     r   r   zBytesLiteralBuilder.__init__1   s    
.r   c                 
   t          |t                    r|                    | j                  }t          |t                    s$J t          t          |                                | j                            |           d S r   )r   r   encoder6   bytesr   r   r   r   s     r   r   zBytesLiteralBuilder.append5   su    j#&& 	A#**4+?@@J*e,,CCc$z2B2B.C.CCCC
*%%%%%r   c                 z    | j                             t          |                              d                     d S )N
ISO-8859-1)r   r   r   r9   r   s     r   r   z"BytesLiteralBuilder.append_charval;   s4    
3{++22<@@BBBBBr   c                 0    |                      |           d S r   )r   r!   s      r   r#   z"BytesLiteralBuilder.append_uescape>   s    M"""""r   c                 P    t          t          | j                  | j                  S r   )bytes_literal
join_bytesr   r6   r	   s    r   r(   zBytesLiteralBuilder.getstringA   s    Z
33T5IJJJr   c                 *    |                                  S r   r*   r	   s    r   getcharzBytesLiteralBuilder.getcharE   s    ~~r   c                 .    |                                  d fS r   r*   r	   s    r   r+   zBytesLiteralBuilder.getstringsI   s      $''r   N)r,   r-   r.   r/   r   r   r   r#   r(   rB   r+   r2   r   r   r4   r4   .   s         / / /& & &C C C# # #K K K     ( ( ( ( (r   r4   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   )r4   _bytesr   _unicoder7   s     r   r   zStrLiteralBuilder.__init__P   s"    +O<<-//r   c                 n    | j                             |           | j                            |           d S r   )rG   r   rH   r   s     r   r   zStrLiteralBuilder.appendT   s4    :&&&Z(((((r   c                 n    | j                             |           | j                            |           d S r   )rG   r   rH   r   s     r   r   z StrLiteralBuilder.append_charvalX   s4    "";///$$[11111r   c                 n    | j                             |           | j                            |           d S r   )rG   r   rH   r   r!   s      r   r#   z StrLiteralBuilder.append_uescape\   s4    =)))$$[11111r   c                 f    | j                                         | j                                        fS r   )rG   r(   rH   r	   s    r   r+   zStrLiteralBuilder.getstrings`   s)    %%'')@)@)B)BCCr   N)	r,   r-   r.   r/   r   r   r   r#   r+   r2   r   r   rE   rE   M   sn         0 0 0) ) )2 2 22 2 2D D D D Dr   rE   c                   L    e Zd ZdZd Zd Zd Zed             Zd Z	d Z
d ZdS )	r&   Nc                     | S r   r2   r
   memos     r   __deepcopy__zEncodedString.__deepcopy__j       r   c                 H    | j         J |                     | j                   S r   encodingr9   r	   s    r   
byteencodezEncodedString.byteencodem   s$    }((({{4=)))r   c                 >    | j         J |                     d          S )NzUTF-8rT   r	   s    r   
utf8encodezEncodedString.utf8encodeq   s"    }$$${{7###r   c                     | j         d u S r   )rU   r	   s    r   
is_unicodezEncodedString.is_unicodeu   s    }$$r   c                      t          |           S r   )string_contains_surrogatesr	   s    r   contains_surrogatesz!EncodedString.contains_surrogatesy   s    )$///r   c                 F    t          |                                 d          S )Nutf8)r?   rX   r	   s    r   as_utf8_stringzEncodedString.as_utf8_string|   s    T__..777r   c                     | j         |                                 }n't          |                                 | j                   }|                                S r   )rU   r`   r?   rV   as_c_string_literal)r
   ss     r   rb   z!EncodedString.as_c_string_literal   sJ    = ##%%AAdoo//??A$$&&&r   )r,   r-   r.   rU   rQ   rV   rX   propertyrZ   r]   r`   rb   r2   r   r   r&   r&   d   s         H  * * *$ $ $ % % X%0 0 08 8 8' ' ' ' '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   rf   T  )r0   r1   rg   rh   )ri   last_was_startunicode_uses_surrogate_encodingrj   s       r   string_contains_lone_surrogatesro      s     N&)n&=#g # #v::V tt0 
	#44&[[ tt!NN! tt"NNr   c                   4    e Zd ZdZd Zd Zd Zd ZdZd Z	dS )BytesLiteralNc                     | S r   r2   rO   s     r   rQ   zBytesLiteral.__deepcopy__   rR   r   c                      t          |           S r   )r:   r	   s    r   rV   zBytesLiteral.byteencode   s    T{{r   c                     J d| z              )NFz this is not a unicode string: %rr2   r	   s    r   rX   zBytesLiteral.utf8encode   s    ?84????r   c                 ,    |                      d          S )zcFake-decode the byte string to unicode to support %
        formatting of unicode strings.
        r<   )decoder	   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   rb   z BytesLiteral.as_c_string_literal   s"    $%7%=%=>>~r   )
r,   r-   r.   rU   rQ   rV   rX   rw   rZ   rb   r2   r   r   rq   rq      sn        H    @ @ @) ) ) J    r   rq   c                 `    t          | t                    sJ t          |           } || _        | S r   )r   r:   rq   rU   rc   rU   s     r   r?   r?      s/    aQAAJHr   c                 r    t          | t          t          f          sJ t          |           } ||| _        | S r   )r   r   r:   r&   rU   r}   s     r   encoded_stringr      s;    a#u&&&&&aA
Hr   c                 l    t          | t                    rt          | |          S t          | |          S r   )r   r:   r?   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                 4    g | ]}d t          |          dS )r   03o)rh   .0rj   s     r   
<listcomp>z'_to_escape_sequence.<locals>.<listcomp>   s*    555a)SVV)))555r   )reprr'   )rc   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   ASCIIz(%s)|c                 :    |                      d                   S )Nr   )group)mreplacementss    r   replace_specialsz2_build_specials_replacer.<locals>.replace_specials  s    AGGAJJ''r   c                      |           S r   r2   )rc   r   subs    r   r   z)_build_specials_replacer.<locals>.replace  s    s#Q'''r   )
_c_specialr'   r   r   r9   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                     |                      d          } | dv rt          |           dd         S | dk    rdS t          |           }|dk     s|dk    rd	|z  S | S )
Nr<   z
	\r   r   'z\'r      z\x%02X)rv   r   rh   )rj   ns     r   escape_charr     si    	AJAwwqt}	
cuAA2vvS1}r   c                 @   t          |           } 	 |                     d          S # t          $ r Y nw xY wt                      }|j        |j        }}| D ]6}|dk    r# |d|d                    d                     + ||           7|                    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 ASCII, will result in the correct byte sequence
    being written.
    r      r   r   )_replace_specialsrv   UnicodeDecodeError	bytearrayr   extendr9   )rc   s_newr   r   bs        r   rz   rz     s     	!Axx      KKE\5<FF  88FLLLL((112222F1IIII<<   s   & 
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'   )rc   limitstartchunksends        r   ry   ry   -  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   rf   r   rl   i  
   ,)	listrg   rh   r0   r1   divmodr   r'   r   )rc   utf16utf32
code_pointhighlow	code_units          r   encode_pyunicode_stringr   B  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UOO$$chhs3&?&???r   )r   )r   r0   r'   r@   r   r4   rE   r   r&   r\   ro   r:   rq   r?   r   r   getchar_from_escape_sequencetuplerg   r   ranger   r   r   r   r   rz   ry   r   r2   r   r   <module>r      s   
			 



X
( ( ( ( ( ( ( (D( ( ( ( ( ( ( (>D D D D D D D D.!' !' !' !' !'C !' !' !'H    8    5   4    + + +   
  ss3b		':':!;!;;
	7 	7 	7   -,..   ! ! !(! ! ! !*@ @ @ @ @r   