
    Ae                        d dl mZ 	 d dlmZ d dlZd dl	m
Z
 ddlmZ ddlmZ dd	lmZ  G d
 de      Z G d de      Zd 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dad adad)dZd Z d*dZ!d  Z"dZ#d)d!Z$d+d"Z%i Z&d+d#Z'g Z(d$ Z)d,d%Z*d& Z+e
d,d'       Z,d( Z-y# e$ r eefZY w xY w)-    )absolute_import)
basestringN)contextmanager   )open_new_file   )
DebugFlags)Optionsc                       e Zd Zy)
PyrexErrorN__name__
__module____qualname__     6lib/python3.12/site-packages/Cython/Compiler/Errors.pyr   r          r   r   c                       e Zd Zy)PyrexWarningNr   r   r   r   r   r      r   r   r   c                    | d   }t        |t              r
J d|z         	 |j                         }dj                  |t	        d| d   dz
        | d          }d|d| d   dz
  z  d	}dd|dd}|S # t
        $ r d
}Y w xY w)Nr   zOPlease replace filename strings with Scanning.FileSourceDescriptor instances %r r      z...
 r   z^
z[unprintable code]
z<------------------------------------------------------------
)
isinstanceany_string_type	get_linesjoinmaxUnicodeDecodeError)positionsourceFss       r   contextr&      s    a[F6?3 dY\bbd8
 HHQs1hqk!m,Xa[9: $A"67 !W-AH  $#$s   A5 5BBc                 F    | rd| d   j                         | d   | d   fz  S y)Nz
%s:%d:%d: r   r   r   r   )get_error_description)r"   s    r   format_positionr)   +   s6     A A C (Xa[ : : 	:r   c                 R    |r$t        |      }t        |      }d|d|| xs d} | S )Nz
Error compiling Cython file:
r   r   )r)   r&   )messager"   pos_strconts       r   format_errorr.   1   s4    !(+x AEwPWP^[^P^_Nr   c                       e Zd ZddZd Zy)CompileErrorNc                     || _         || _        t        ||      | _        d| _        t
        j                  | | j                         ||f| _        y )NF)r"   message_onlyr.   formatted_messagereported	Exception__init__argsselfr"   r+   s      r   r6   zCompileError.__init__:   sM     #!-gx!@ 	4!7!78 w'	r   c                     | j                   S N)r3   )r9   s    r   __str__zCompileError.__str__F   s    %%%r   Nr   )r   r   r   r6   r<   r   r   r   r0   r0   8   s    
(&r   r0   c                       e Zd ZddZy)CompileWarningNc                 V    || _         t        j                  | t        |      |z          y r;   )r"   r5   r6   r)   r8   s      r   r6   zCompileWarning.__init__K   s%      	4!:W!DEr   r=   r   r   r   r6   r   r   r   r?   r?   I   s    Fr   r?   c                       e Zd Zd Zy)InternalErrorc                 D    || _         t        j                  | d|z         y )NzInternal compiler error: %sr2   r5   r6   r9   r+   s     r   r6   zInternalError.__init__T   s%    #4!?" 	r   NrA   r   r   r   rC   rC   Q   s    r   rC   c                       e Zd Zd Zy)
AbortErrorc                 D    || _         t        j                  | d|z         y )NzAbort error: %srE   rF   s     r   r6   zAbortError.__init__\   s     #4!3g!=>r   NrA   r   r   r   rH   rH   Y   s    ?r   rH   c                       e Zd ZddZy)CompilerCrashNc                 $   |rd|z   }nd}|| _         |rd||}|r*dd l}|ddj                  |j                  |            z   z  }|r%|s|dz  }||j                  j
                  d|z  }t        j                  | ||       |||||f| _        y )Nr   zCompiler crash in r   z/

Compiler crash traceback from this point on:
r   z: )	r2   	tracebackr   	format_tb	__class__r   r0   r6   r7   )r9   posr&   r+   cause
stacktracerM   s          r   r6   zCompilerCrash.__init__b   s    goGG#3:GDGE,,Z89:;G 5 EOO$<$<eDDGdC1 '7E:>	r   r;   rA   r   r   r   rK   rK   `   s    ?r   rK   c                       e Zd ZdZy)NoElementTreeInstalledExceptionzcraised when the user enabled options.gdb_debug but no ElementTree
    implementation was found
    N)r   r   r   __doc__r   r   r   rT   rT   x   s    r   rT   c                 V    | t        |       and a|rt        j                  aday d aday )Nr   )r   listing_filesysstderr	echo_file
num_errors)pathecho_to_stderrs     r   open_listing_filer^      s8     $T*JJ	 J 	Jr   c                  >    t         rt         j                          d a y y r;   )rW   closer   r   r   close_listing_filera      s     r   c           	      d   t         r|rt         d   j                  |        y | j                  ry d| _        d| z  }t        rt        j                  |       t        rt        j                  |       t        d
z  a
t        j                  rt        d      y # t        $ r( t	        t        | dd      t        | dd             dz   }Y w xY w# t        $ r( t        j                  |j                  dd	             Y w xY w# t        $ r( t        j                  |j                  dd	             Y w xY w)NTz%s
r2   z[unprintable exception message]r"   r   ASCIIreplacer   zfatal errors)error_stackappendr4   UnicodeEncodeErrorr.   getattrrW   writeencoderZ   r[   r
   	fast_failrH   )err	use_stacklines      r   report_errorrp      s   yBs# <<cMT
 ##D) & 	a
^,,  " 	H^=^ _ 'Z >@BGHD	H & D""4;;w	#BCD & AGY ?@As5   B C
 C> .CC
.C;:C;>.D/.D/c                     | t        |      t        | |      }t        j                  rt	        |      t        |       |S r;   )rC   r0   r	   debug_exception_on_errorr5   rp   )r"   r+   rm   s      r   errorrs      s>    G$$
x
)C**)C.,@Jr   c                     |t         k  ry t        | |      }d|z  }t        rt        j                  |       t        rt        j                  |       |S )Nz	note: %s
)LEVELr?   rW   rj   rZ   r"   r+   levelwarnro   s        r   r+   r+      sG    u}(G,D$D4 Kr   c                     |t         k  ry t        j                  r| rt        | |      S t	        | |      }d|z  }t
        rt
        j                  |       t        rt        j                  |       |S )Nwarning: %s
)ru   r
   warning_errorsrs   r?   rW   rj   rZ   rv   s        r   warningr|      s_    u}(Xw''(G,DT!D4 Kr   c                     |t         k  s|t        v ry t        | |      }d|z  }t        rt        j	                  |       t
        rt
        j	                  |       dt        |<   |S )Nrz   T)ru   _warn_once_seenr?   rW   rj   rZ   rv   s        r   	warn_oncer      sX    u}?2(G,DT!D4 #OGKr   c                  .    t         j                  g        y r;   )rf   rg   r   r   r   hold_errorsr      s    rr   c                 V    t         j                         }| s|D ]  }t        |        y y r;   )rf   poprp   )ignoreheld_errorsrm   s      r   release_errorsr      s-    //#K 	C	 r   c                      t         d   S )Nrc   )rf   r   r   r   r   r      s    r?r   c              #   ~   K   g }t         j                  |       	 | t        |        y # t        |        w xY ww)N)r   )rf   rg   r   )r   errorss     r   local_errorsr      s3     Fv&f%f%s   =, =:=c                  >    t         j                          t        d d = y r;   )r~   clearrf   r   r   r   resetr     s    Ar   )r   )T)r   )F).
__future__r   __builtin__r   r   ImportErrorbytesstrrX   
contextlibr   Utilsr   r   r	   r
   r5   r   r   r&   r)   r.   r0   r?   rC   rH   rK   rT   rW   r[   rZ   r^   ra   rp   rs   ru   r+   r|   r~   r   rf   r   r   r   r   r   r   r   r   <module>r      s   
 '#9  % !  	 		9 	&: &"F\ FI ? ??L ?0j 
 
	-4 	
	 
  & &}  #clO#s   C 	CC