
    AeF                         d Z ddlZddlZddlmZmZmZ ddlmZ ddl	m
Z
 	 ddlmZ dZdZi a	 	 dd	Zed
k(  r ed       ddlmZ yy# e$ r dZY (w xY w)zBuild a Pyrex file from .pyx source to .so loadable module using
the installed distutils infrastructure. Call:

out_fname = pyx_to_dll("foo.pyx")
    N)DistutilsArgErrorDistutilsErrorCCompilerError)	Extension)grok_environment_error)old_build_extTFc                 
   t         j                  j                  |       s'J dt         j                  j                  |       z         t         j                  j	                  t         j                  j                  |             \  }}	|sSt         j                  j                  |	      \  }
}|dv sJ |       t        s| dt        |        dz   } t        |
| g      }|i }|s t         j                  j                  |d      }|}|j                  j	                  d      ddd	   D ]-  }t         j                  j	                  |      \  }}||k7  s+d} n |j                  d
g       }t        sd|v rd}nd}|dg}|r|j                  d       |rr|rp|j                  d|g       |j                  dk(  s|j                  j                  d      r3t!        |d      s
ddi|_        nd|j"                  vrd|j"                  d<   t        r|r|j                  d       |j%                         }|j'                  d||z   d       ddlm}  ||      }|j,                  sg |_        |j,                  j                  |       t        rdt.        i|_        |j3                  d      }||_        |j7                         }|j9                  |       	 |j;                         }t        rt?        d       |jA                          |sJ 	 |j3                  d      }|jC                          |jE                         d   }|jF                  rZt         j                  j                  t         j                  jI                  |       t         j                  jK                  |            }|r|}t         j                  jM                  |      }tN        j                  |d      \  }}}||k(  r|}|S t         j                  jK                  |      }|dk  r|dz  }t         j                  j                  |jP                  |d|z  z         } 	 ddl)}!	 t         j                  jU                  |       rt        jV                  |        |!j[                  ||        | }nt_        d|z        |||ftN        |<   |S # t<        $ r  w xY w# tX        $ r Y w xY w# t\        $ r Y w xY w# t`        $ r tc        jd                  d       Y yt\        t         jf                  f$ rL tc        jh                         d   }"tk        |"      }#t        r"tb        jl                  jo                  |#d z           w xY w)!zUCompile a PYX file to a DLL and return the name of the generated .so
       or .dll .zCould not find %s)z.pyxz.pyNz.c)namesources_pyxbld.script_argsz	--verbosez--quiet	build_extz--forcez--build-lib__init__z	.__init__cython_directivesset_initial_path
SOURCEFILEz--pyrex-c-in-temp)script_namer   r   )Distributionbuildz%options (after parsing command line):)NNr   d      z	.reload%sz#reload count for %s reached maximum
)8ospathexistsabspathsplitsplitext
HAS_CYTHONlenr   joinr
   getDEBUGappendextendendswithhasattrr   copyupdatedistutils.distr   ext_modulesr   cmdclassget_command_obj
build_basefind_config_filesparse_config_filesparse_command_liner   printdump_option_dictsrun_commandsget_outputsinplacedirnamebasenamegetmtime_reloads	build_libshutilisfileunlinkOSErrorcopy2IOErrorImportErrorKeyboardInterruptsysexiterrorexc_infor   stderrwrite)$filenameextforce_rebuildbuild_in_temppyxbuild_dir
setup_argsreload_supportr9   r   r
   modname	extensionpackage_base_dirpackage_namepnamer   quietargssargsr   distr   cfgfilesokobj_build_extso_pathorg_path	timestamplast_timestamp	last_pathcountr;   r_pathr?   excrI   s$                                       2lib/python3.12/site-packages/pyximport/pyxbuild.py
pyx_to_dllri      s    77>>(#T%8277??8;T%TTrwwx89JD$WW--d3O+6Y6 0#i.1D8HWxj9
ww||D)4s+BFF3 "$''--0@"A%L # }R0K{*;DI#]$45688z!SXX%6%6{%C3 34);l(K%#3+@+@@<H%%&89m'(OOE	LLk) 
 ,DC $i0  )E#E%%'HH%$$& 56 I6,,[9++-a0   ggll277??8#<#%77#3#3G#<>GH((2I/7||Hm/U,NIu*#: 7 77++H5ckQJEWW\\-*A*A*2[5F*FHF!%
%  "ww~~f5 "		& 1 Xv6"(  &&KH&TUU$-w#>"m  V  ' %$% # ! !  RXX llnQ&s+JJUT\*su   	R$ ?C S  AS :S ?4R2 3S S $R/2	R>;S <S =R>>S 	S
S SS U0A$U__main__z	dummy.pyxr   )test)Nr   FNNFF)__doc__r   rG   distutils.errorsr   r   r   distutils.extensionr   distutils.utilr   Cython.Distutils.old_build_extr   r   r"   rE   r&   r=   ri   __name__ rk        rh   <module>ru      sy   
 
 
 N N ) 1IJ 	
	 W[>CCL Z{ ]  Js   A	 	AA