
    ڏDjQ"              	           d dl Z d dlZ G d d      Z G d d      Z G d d      Z G d d	e      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y)!    Nc                   4    e Zd ZdZd Zd Zd Zd Zd Zd Z	y)	UnicodeLiteralBuilderzAssemble a unicode string.
    c                     g | _         y N)charsselfs    bC:\Crop_Prediction\Backend\crop-ai-system\venv\Lib\site-packages\Cython/Compiler/StringEncoding.py__init__zUnicodeLiteralBuilder.__init__   s	    
    c                     t        |t              sJ dt        |              | j                  j	                  |       y )NzExpected str, got )
isinstancestrtyper   appendr	   
characterss     r
   r   zUnicodeLiteralBuilder.append   s4    *c*S.@jAQ@R,SS

*%r   c                 L    | j                   j                  t        |             y r   )r   r   chrr	   char_numbers     r
   append_charvalz$UnicodeLiteralBuilder.append_charval   s    

3{+-r   c                 &    | j                  |       y r   )r   r	   r   escape_strings      r
   append_uescapez$UnicodeLiteralBuilder.append_uescape   s    K(r   c                 J    t        dj                  | j                              S )N )EncodedStringjoinr   r   s    r
   	getstringzUnicodeLiteralBuilder.getstring   s    RWWTZZ011r   c                 &    d | j                         fS r   r!   r   s    r
   
getstringsz UnicodeLiteralBuilder.getstrings   s    dnn&''r   N)
__name__
__module____qualname____doc__r   r   r   r   r!   r$    r   r
   r   r   
   s%    &.)2(r   r   c                   :    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
y	)
BytesLiteralBuilderz*Assemble a byte string or char value.
    c                      g | _         || _        y r   )r   target_encodingr	   r-   s     r
   r   zBytesLiteralBuilder.__init__$   s    
.r   c                     t        |t              r|j                  | j                        }t        |t              sJ t        t        |                   | j                  j                  |       y r   )r   r   encoder-   bytesr   r   r   r   s     r
   r   zBytesLiteralBuilder.append(   sP    j#&#**4+?+?@J*e,Cc$z2B.CC

*%r   c                 j    | j                   j                  t        |      j                  d             y )N
ISO-8859-1)r   r   r   r0   r   s     r
   r   z"BytesLiteralBuilder.append_charval.   s$    

3{+22<@Br   c                 &    | j                  |       y r   )r   r   s      r
   r   z"BytesLiteralBuilder.append_uescape1   s    M"r   c                 `    t        dj                  | j                        | j                        S )Nr   )bytes_literalr    r   r-   r   s    r
   r!   zBytesLiteralBuilder.getstring4   s"    SXXdjj143G3GHHr   c                 "    | j                         S r   r#   r   s    r
   getcharzBytesLiteralBuilder.getchar8   s    ~~r   c                 &    | j                         d fS r   r#   r   s    r
   r$   zBytesLiteralBuilder.getstrings<   s     $''r   N)r%   r&   r'   r(   r   r   r   r   r!   r8   r$   r)   r   r
   r+   r+   !   s,    /&C#I (r   r+   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)StrLiteralBuilderzDAssemble both a bytes and a unicode representation of a string.
    c                 B    t        |      | _        t               | _        y r   )r+   _bytesr   _unicoder.   s     r
   r   zStrLiteralBuilder.__init__C   s    +O<-/r   c                 p    | j                   j                  |       | j                  j                  |       y r   )r=   r   r>   r   s     r
   r   zStrLiteralBuilder.appendG   s&    :&Z(r   c                 p    | j                   j                  |       | j                  j                  |       y r   )r=   r   r>   r   s     r
   r   z StrLiteralBuilder.append_charvalK   s&    "";/$$[1r   c                 p    | j                   j                  |       | j                  j                  |       y r   )r=   r   r>   r   r   s      r
   r   z StrLiteralBuilder.append_uescapeO   s&    =)$$[1r   c                 j    | j                   j                         | j                  j                         fS r   )r=   r!   r>   r   s    r
   r$   zStrLiteralBuilder.getstringsS   s'    %%')@)@)BCCr   N)	r%   r&   r'   r(   r   r   r   r   r$   r)   r   r
   r;   r;   @   s!    0)22Dr   r;   c                   >    e Zd ZdZd Zd Zd Zed        Zd Z	d Z
y)r   Nc                     | S r   r)   r	   memos     r
   __deepcopy__zEncodedString.__deepcopy__]       r   c                 T    | j                   J | j                  | j                         S r   encodingr0   r   s    r
   
byteencodezEncodedString.byteencode`   s"    }}(({{4==))r   c                 @    | j                   J | j                  d      S )NzUTF-8rJ   r   s    r
   
utf8encodezEncodedString.utf8encoded   s    }}$${{7##r   c                     | j                   d u S r   )rK   r   s    r
   
is_unicodezEncodedString.is_unicodeh   s    }}$$r   c                 6    t        | j                         d      S )Nutf8)r6   rN   r   s    r
   as_utf8_stringzEncodedString.as_utf8_stringl   s    T__.77r   c                     | j                    | j                         }|j	                         S t        | j                         | j                         }|j	                         S r   )rK   rS   r6   rL   as_c_string_literal)r	   ss     r
   rU   z!EncodedString.as_c_string_literalo   sS    == ##%A $$&& doo/?A$$&&r   )r%   r&   r'   rK   rG   rL   rN   propertyrP   rS   rU   r)   r   r
   r   r   W   s6     H*$ % %8'r   r   c                 H    t        t        |       D ]  }d|k  s	|dk  s y y)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.
       i  TF)mapord)ustringcs     r
   string_contains_lone_surrogatesr^   x   s/     g Q;1;	
 r   c                   2    e Zd ZdZd Zd Zd Zd ZdZd Z	y)BytesLiteralNc                     | S r   r)   rE   s     r
   rG   zBytesLiteral.__deepcopy__   rH   r   c                     t        |       S r   )r1   r   s    r
   rL   zBytesLiteral.byteencode   s    T{r   c                     J d| z         )Nz this is not a unicode string: %rr)   r   s    r
   rN   zBytesLiteral.utf8encode   s    ?84??r   c                 $    | j                  d      S )zcFake-decode the byte string to unicode to support %
        formatting of unicode strings.
        r3   )decoder   s    r
   __str__zBytesLiteral.__str__   s     {{<((r   Fc                 4    t        t        |             }d|z  S )Nz"%s")split_string_literalescape_byte_string)r	   values     r
   rU   z BytesLiteral.as_c_string_literal   s    $%7%=>~r   )
r%   r&   r'   rK   rG   rL   rN   rf   rP   rU   r)   r   r
   r`   r`      s(    H@) Jr   r`   c                 N    t        | t              sJ t        |       } || _        | S r   )r   r1   r`   rK   rV   rK   s     r
   r6   r6      s$    aQAAJHr   c                 ^    t        | t        t        f      sJ t        |       } ||| _        | S r   )r   r   r1   r   rK   rl   s     r
   encoded_stringrn      s/    a#u&&aA
Hr   c                 R    t        | t              rt        | |      S t        | |      S r   )r   r1   r6   rn   rl   s     r
   encoded_string_or_bytes_literalrp      s&    !UQ))a**r   
	)z\az\bz\fz\nz\rz\tz\v)\z??"    c           	          | dv rt        |       dd S | dk(  ry| dk(  rydj                  | D cg c]  }dt        |      d	 c}      S c c}w )
Nz
	   ry   z\"rx   \\r   03o)reprr    r[   )rV   r]   s     r
   _to_escape_sequencer      sY    H}Awq}	
c	
d ww15a"SVCL)5665s   Ac                     g } i t         D ]q  }dj                  |D cg c]  }d|j                  dd      z   c}      }| j                  |       t	        |      j                  d      |j                  d      <   s t        j                  ddj                  |       z  j                  d            j                  fdfd	}|S c c}w )
Nr   z[%s]rx   r~   ASCIIz(%s)|c                 ,    | j                  d         S )Nr|   )group)mreplacementss    r
   replace_specialsz2_build_specials_replacer.<locals>.replace_specials   s    AGGAJ''r   c                      |       S r   r)   )rV   r   subs    r
   replacez)_build_specials_replacer.<locals>.replace   s    #Q''r   )	
_c_specialr    r   r   r   r0   recompiler   )subexpsspecialr]   regexpr   r   r   r   s        @@@r
   _build_specials_replacerr      s    GL ]GLq&199T6#::LMv0CG0L0S0ST[0\W^^G,-] **fsxx0088A
B
F
FC((N Ms   C
c                     | j                  d      } | dv rt        |       dd S | dk(  ryt        |       }|dk  s|dk\  rd	|z  S | S )
Nr3   z
	\r|   r}   'z\'rz      z\x%02X)re   r   r[   )r]   ns     r
   escape_charr      sX    	AJAwq}	
cAA2vc1} r   c                     t        |       } 	 | j                  d      S # t        $ r Y nw xY wt               }|j                  |j
                  }}| D ]  }|dk\  r |d|z          ||        |j                  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   s   \%03o)_replace_specialsre   UnicodeDecodeError	bytearrayr   extend)rV   s_newr   r   bs        r
   ri   ri      s     	!Axx   KE\\5<<FF 89q=!1I	
 <<  s    	**c                    t        |       |k  r| S d}g }|t        |       k  r||z   }t        |       |dz
  kD  rWd| |dz
  | v rM|d| |dz
  | j                  d      z
  z  }| |dz
     dk(  r%|dz  }||k(  r||z   |dz  z
  dz
  }n| |dz
     dk(  r%|j                  | ||        |}|t        |       k  rdj                  |      S )Nr      rx   r|      z"")lenfindr   r    )rV   limitstartchunksends        r
   rh   rh     s    
1v~c!fn%-C1vA~$!CE#,"6q1SU3<,,T222Ah$&1HCe|#emuqy9A= Ah$& MM!E#,'E c!fn yy  r   c                    t        t        t        |             } | j                  d       g | }}| D ]S  }|dk\  r;t	        |dz
  d      \  }}|j                  |dz          |j                  |dz          C|j                  |       U ||k(  rg }dj                  t        t        |            dj                  t        t        |            fS )zBCreate Py_UNICODE[] representation of a given unicode string.
    r   i   i   rY   i   ,)listrZ   r[   r   divmodr    r   )r   utf16utf32
code_pointhighlows         r
   encode_pyunicode_stringr     s     c#z*+Jaz5E  %
 zG3T:ID#LL'LLv&LL$% ~88CUO$chhs3&???r   )i  )r   sysr   r+   r;   r   r   r^   r1   r`   r6   rn   rp   getchar_from_escape_sequencetuplerZ   r   ranger   r   r   r   r   ri   rh   r   r)   r   r
   <module>r      s    
 
( (.( (>D D.'C 'B5 4+  
c  s3b	':!;;
	7 -. !(!,@r   