
    h                         S SK r S SKrS SKr S SKJr  SrSSK	J
r
  SSKJr  S	 r " S
 S5      rg! \ a    SrS SKJr   N*f = f)    N)etreeTF)ElementTree   )Errors)EncodedStringc                     [        U [        5      (       a/  U R                  S5      (       a  U SS R                  5       (       a  gg)z
Names like '.0' are used internally for arguments
to functions creating generator expressions,
however they are not identifiers.

See https://github.com/cython/cython/issues/5552
.   NFT)
isinstancer   
startswith	isdecimal)names    U/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Debugger/DebugWriter.pyis_valid_tagr      s:     $&&??3DH$6$6$8$8    c                   :    \ rS rSrSrS rS
S jrS rS rS r	S	r
g)CythonDebugWriter   z
Class to output debugging information for cygdb

It writes debug information to cython_debug/cython_debug_info_<modulename>
in the build directory.
c                 $   [         c  [        R                  " 5       e[        R                  R                  U=(       d    [        R                  S5      U l        [         R                  " 5       U l	        S U l
        U R                  S[        SS9S9  g )Ncython_debugz1.0)version)attrs)r   r   NoElementTreeInstalledExceptionospathjoincurdir
output_dirTreeBuildertbmodule_namestartdict)selfr   s     r   __init__CythonDebugWriter.__init__&   sb    =88::'',,z'>RYYO##%

>e)<
=r   Nc                 n    [        U5      (       a%  U R                  R                  X=(       d    0 5        g g N)r   r    r"   r$   r   r   s      r   r"   CythonDebugWriter.start0   s&    GGMM$, r   c                 \    [        U5      (       a  U R                  R                  U5        g g r(   )r   r    end)r$   r   s     r   r,   CythonDebugWriter.end4   s"    GGKK r   c                     [        U5      (       a7  U R                  R                  X5        U R                  R                  U5        g g r(   )r   r    r"   r,   r)   s      r   	add_entryCythonDebugWriter.add_entry8   s2    GGMM$&GGKK r   c                    U R                   R                  S5        U R                   R                  S5        U R                   R                  5       n [        R                  " U R
                  5        [        R                  " U5      n0 n[        (       a  SUS'   SU R                  -   nUR                  " [        R                  R                  U R
                  U5      4SS0UD6  [        R                  R                  U R
                  S5      n[!        US	5       nUR                  ["        R$                  5        S S S 5        g ! [         a*  nUR                  [        R                  :w  a  e  S nAGNS nAff = f! , (       d  f       g = f)
NModuler   Tpretty_printcython_debug_info_encodingzUTF-8interpreterw)r    r,   closer   makedirsr   OSErrorerrnoEEXISTr   r   	have_lxmlr!   writer   r   opensys
executable)r$   xml_root_elementeetkwfninterpreter_pathfs           r   	serializeCythonDebugWriter.serialize=   s   HN#77==?	KK(
 /09!%B~!D$4$44
door2KWKK77<<G"C(AGGCNN# )(  	ww%,,& '	 )(s$    E  E<
E9E44E9<
F
)r!   r   r    r(   )__name__
__module____qualname____firstlineno____doc__r%   r"   r,   r/   rI   __static_attributes__ r   r   r   r      s     >-
$r   r   )r   r@   r;   lxmlr   r=   ImportError	xml.etreer   Compilerr   Compiler.StringEncodingr   r   r   rQ   r   r   <module>rW      sK    	 
 /I
  34$ 4$-  /I./s   0 A A