
    hu              	          S SK r S SKrS SKrS SKr\R                  SS S:  aC  \R
                  R                  S\" \R                  SS 5      -  5        \R                  " S5        SSK	J
r
  SSKJr  SSKJrJr  SS	K
JrJrJrJr  SS
KJr  SSK	Jr  SSK	Jr  SSKJrJr  SSKJr  SSKJrJrJrJ r   S r!SRE                  \\!" \5      \\!" \ 5      5      r#\RH                  " SRE                  \#5      5      r#\ RJ                  RM                  \ RJ                  RO                  \ RJ                  RQ                  \ RJ                  RQ                  \)5      5      S5      5      r* " S S5      r+S r,S r-S r.S r/S r0 " S S5      r1 " S S5      r2 " S S \35      r4S! r5S)S" jr6S*S# jr7S+S$ jr$\Rp                  S,S% j5       r9\Rp                  S& 5       r:S' r;S-S( jr<g).    N   )      z0Sorry, Cython requires Python 3.8+, found %d.%d
   )Errors)EncodedString)PyrexScannerFileSourceDescriptor)
PyrexErrorCompileErrorerrorwarning)ModuleScope)Utils)Options)CompilationOptionsdefault_options)parse_command_line)unicode_start_ch_anyunicode_continuation_ch_anyunicode_start_ch_rangeunicode_continuation_ch_rangec           	          / n[        S[        U 5      S5       H+  nUR                  SR                  X   XS-      5      5        M-     SR	                  U5      $ )Nr   r   z{}-{}r    )rangelenappendformatjoin)chrsoutis      N/var/www/fran/franai/venv/lib/python3.13/site-packages/Cython/Compiler/Main.py_make_range_rer$   !   sK    
C1c$i#

7>>$'4!956 $773<    z[{0}{1}][{0}{2}{1}{3}]*z{0}(\.{0})*$Includesc                      \ rS rSrSrSr  S S jr\S 5       r\	S 5       r
S rS!S jrS rS	 rS"S
 jr\S 5       r\S 5       r  S#S jrS$S jrS$S jrS%S jr S&S jrS rS rS rS rS rS rS rS"S jrS r S r!S r"S r#S r$Sr%g)'Context3   Nc                    SSK JnJn  SUR                  0U l        UR                  U 5      U l        U R                  U R                  S'   Xl        [        5       U l	        X l
        X0l        XPl        0 U l        0 U l        0 U l        Ub  U R!                  U5        U R                  R#                  SS5      U l        S U l        g )Nr   )BuiltinCythonScope__builtin__cythonlegacy_implicit_noexceptF)r   r+   r,   builtin_scopemodulescreate_cython_scopecython_scopeinclude_directoriessetfuture_directivescompiler_directivescppoptionspxdsutility_pxds	_internedset_language_levelgetr/   gdb_debug_outputwriter)selfr4   r7   r8   language_levelr9   r+   r,   s           r#   __init__Context.__init__B   s     	+%(=(=>';;DA!%!2!2X#6 !$#6 	%##N3(,(@(@(D(DE_af(g%&*#r%   c                 f    U " UR                   UR                  UR                  UR                  US9$ )N)r9   )include_pathr7   cplusrA   )clsr9   s     r#   from_optionsContext.from_options]   s2    7'')D)D=='"8"8'K 	Kr%   c                 T    U R                   (       a  U R                   R                  $ S $ N)r9   shared_utility_qualified_name)r@   s    r#   rL   %Context.shared_utility_qualified_nameb   s    =A\\t||99StSr%   c                     SSK JnJnJnJnJn  [        5       nUS:X  a  SnO[        U5      nUS:  a  UR                  X2XEU/5        Xl	        Xpl
        US:  a  U R                  S   U R                  S'   g g )Nr   )print_functionunicode_literalsabsolute_importdivisiongenerator_stop3strr   r-   builtins)FuturerO   rP   rQ   rR   rS   r5   intupdaterA   r6   r1   )r@   levelrO   rP   rQ   rR   rS   r6   s           r#   r=   Context.set_language_levelf   sr    ggEF?EJEA:$$&6cq%rs#!2A:'+||M'BDLL$ r%   c                     [         X4n U R                  U   $ ! [         a     Of = f[        U5      nU(       a  X!l        XR                  U'   U$ rK   )r   r<   KeyErrorencoding)r@   valuer]   keys       r#   intern_ustringContext.intern_ustringt   sU    e.	>>#&& 		e$%N#ss    
&&c                     SSK Jn  [        U[        5      (       ah  UR                  S:X  aX  [        X[        R                  " 5       5      n[        XPR                  5      nUR                  X5      nUR                  Xu5      nU$ UR                  (       aV  SSK Jn	  U	R                  U 5      n
UR                  XU5      nUR!                  XzU	R"                  S9nUR                  Xq5      nU$ UR                  XU5      nUR                  Xq5      nU$ )Nr   Pipelinepyx)ParseTreeTransforms)before)r   rd   
isinstancer
   
_file_typeCompilationSourceosgetcwdcreate_default_resultobjr9   create_pyx_as_pxd_pipelinerun_pipelinein_utility_coderf   CnameDirectivesTransformcreate_pxd_pipelineinsert_into_pipelineInterpretCompilerDirectives)r@   source_descscopemodule_namerd   sourceresult_sinkpipelineresultrf   	transforms              r#   process_pxdContext.process_pxd   s    k#788[=S=SW\=\&{MF26<<HK::4MH**8<F  ((-+DDTJI33DMH44*FF 5 HH **8AF   33DMH**8AFr%   c                 .    [         R                  " U5      $ rK   )r   report_error)r@   excs     r#   nonfatal_errorContext.nonfatal_error   s    ""3''r%   c           	          UR                  S5      nUR                  5       nU Vs/ s H  oUS4PM     nnUS:w  aN  SnS H4  nU R                  XS S U(       + S9nU(       d  M#  U R                  U5      n  O   UR	                  XF45        U$ s  snf )N.TrB   F).py.pyx)suffix
source_possource_file_pathsys_path)splitpopsearch_include_directories_is_init_filer   )	r@   qualified_namerelative_importqualified_name_parts	last_partp
is_packager   paths	            r#   _split_qualified_nameContext._split_qualified_name   s    -33C8(,,.	3GH3GaD	3GH
" J)66"dUYhwdw 7 y4!%!3!3D!9J * !''(?@##  Is   Bc                 X    U (       a"  [         R                  R                  U 5      S;   $ S$ )N)z__init__.pyxz__init__.pyz__init__.pxdF)rk   r   basename)r   s    r#   r   Context._is_init_file   s%    \`rww%)XXkfkkr%   c                     U(       d  g [         R                  R                  U5      nSU;   a6  U[         R                  R                  U5      S   :X  a  [	        U SU-  SS9  g g g )Nr   r   ^Dotted filenames ('%s') are deprecated. Please use the normal Python package directory layout.r   rY   )rk   r   r   splitextr   )pospxd_pathnamer   pxd_filenames       r#   _check_pxd_filenameContext._check_pxd_filename   sf    ww''5. ^rww7G7G7UVW7X%XC NP\]deg &Y r%   c           
         SnU(       a  [        SU< SU< SU< SU< 35        S nS n	U(       a*  U(       a  UR                  U5      n
OUR                  n
UnS nOUn
[        R	                  U
5      (       d  [        U=(       d    USS4SU-  5      eU(       ax  U(       a  [        S5        UR                  U5      nU(       dN  U R                  XU(       + S9n	U R                  X9U
5        U	(       a   U R                  U	5      nUR                  XS	9nU(       dD  U(       a  [        S
5        U(       a  Un
U nU R                  XS9 H  u  pUR                  XS	9nM     U(       a  [        SU-  5        UR                  (       Gd  U(       a  [        S5        U	(       d  U(       a  [        S5        U R                  XU=(       a    U(       + S9n	U R                  X9U
5        U(       a  [        SU	-  5        U	(       d}  U(       av  SUl        U R                  U
SX6(       + S9nU(       a%  UR                  [        R                   5      (       a  O-[#        USU
R%                  S[&        R(                  5      -  5        U	(       a  SUl         U(       a  [        SU	-  5        UR%                  S[&        R(                  5      [&        R*                  R-                  U	5      S   -   nU	R                  U5      (       d  U	n[/        X5      nU R1                  XU
5      u  nnU(       a  UeUu  nnUU4U R2                  U'   U$ U$ ! [
         a     U$ f = f)Nr   z#Context.find_module: module_name = z, from_module = z, pos = z, need_pxd = z'%s' is not a valid module namez...trying relative importr   )
as_packagez...trying absolute import)r   z...scope = %sz...pxd not loadedz...looking for pxd filez......found %sTr   )r   r   r   z'%s.pxd' not foundr   zContext.find_module: Parsing %sr   )printqualify_namer   module_name_patternmatchr   lookup_submodulefind_pxd_filer   r   find_submoduler   pxd_file_loadedr   endswithr   PACKAGE_FILESr   replacerk   sepr   r   r
   r}   r:   )r@   rw   from_moduler   need_pxdabsolute_fallbackr   debug_find_modulerv   r   r   r   namepackage_pathnamerel_pathru   errr{   pxd_codenodes	pxd_scopes                       r#   find_moduleContext.find_module   s    [#x9 : !,!9!9+!F "-!;!;#"(N"((88s9{Aq&9@;NP P  1200=E#11.TcPc1d((NK!%!3!3L!AJ'66{6ZE 12 !,E$($>$>~$>$o ,,T,I %p/E)*$$$ )*$34  $11.PXPpap]p1q((NK$*\9:# -1E)'+'F'F&uOb (G (d$',<,E,EeFYFY,Z,Zc#7.:P:PQTVXV\V\:]#]^(,%(?,NO*223?"''BRBRS_B`abBccH'00::#/"6|"NK"&"2"2;~"VKC!	17.]I.;Y-GDIIk* u $ s   B/L8 8
MMc                 z    U R                  USX#US9nUc%  [        R                  (       a  U R                  XUS9$ U$ )N.pxdr   r   r   r   r   )r   r   cimport_from_pyxfind_pyx_file)r@   r   r   r   r   pxds         r#   r   Context.find_pxd_file  sL     --6c_o . q;733%%nH%MM
r%   c                 &    U R                  USX#US9$ )Nr   r   )r   )r@   r   r   r   r   s        r#   r   Context.find_pyx_file$  s(     ..6c_o / q 	qr%   c                 T    U R                  XSUS9nU(       d  [        USU-  5        U$ )NT)r   includer   z'%s' not found)r   r   )r@   filenamer   r   r   s        r#   find_include_fileContext.find_include_file*  s:     ..dEU / W#'(23r%   c                     U R                   nU(       a  U[        R                  -   n[        U[        /-   5      n[        XqU=(       d    SX4U5      $ )Nr   )r4   sysr   tuplestandard_include_pathr   )r@   r   r   r   r   r   r   include_dirss           r#   r   "Context.search_include_directories3  sN    //'#((2L\-B,CCD)&,B
M]_ 	_r%   c                 .    [         R                  " U5      $ rK   )r   find_root_package_dir)r@   	file_paths     r#   r   Context.find_root_package_dir=  s    **955r%   c                 B    [         R                  " U[        U5      5      $ rK   )r   check_package_dirr   )r@   dirpackage_namess      r#   r   Context.check_package_dir@  s    &&sE-,@AAr%   c                 <   [         R                  R                  U5      (       d  g[        R                  " U5      n[        R
                  " X5      (       a  g[        R                  " US5      n[         R                  R                  U5      (       a  [        R
                  " XC5      (       a  gU R                  U5       HY  u  pVUS:X  a  U R                  XaS9nOUS:X  a  U R                  XaS9nOM3  U(       d  M<  [        R
                  " Xs5      (       d  MY    g   g)Nr   r   cimport)r   r   r   )
rk   r   existsr   modification_timefile_newer_thanreplace_suffixread_dependency_filer   r   )r@   source_pathoutput_pathc_timepxd_pathkindr   dep_paths           r#   c_file_out_of_dateContext.c_file_out_of_dateC  s    ww~~k**((5  55''V<77>>(##(=(=h(O(O33K@JDy --d-Q"::4:^xE11(CC A r%   c                 j    U R                  U5       VVs/ s H  u  p#US:X  d  M  UPM     snn$ s  snnf )Nr   )r   )r@   r   r   r   s       r#   find_cimported_module_names#Context.find_cimported_module_namesW  s<    (,(A(A+(N ((N*$I% (N ( 	( (s   //c                 .    [         R                  " U5      $ rK   )r   is_package_dir)r@   dir_paths     r#   r   Context.is_package_dir[  s    ##H--r%   c                 6   [         R                  " US5      n[        R                  R	                  U5      (       aG  [        U5       nS U 5        Vs/ s H  nSU;   d  M  UR                  SS5      PM     nnS S S 5        U$ gs  snf ! , (       d  f       W$ = f)Nz.depc              3   @   #    U  H  oR                  5       v   M     g 7frK   )strip).0ls     r#   	<genexpr>/Context.read_dependency_file.<locals>.<genexpr>c  s     '=1a		1s    r    )r   r   rk   r   r   openr   )r@   r   r   flinechunkss         r#   r   Context.read_dependency_file^  s    ''V<77>>(##h1'=1'=,'=t!Tk .4::c1-'=  ,   M,   Ms$   B	
B!B7B	B		
Bc                 :    U R                   R                  US 5      $ rK   )r1   r>   )r@   r   s     r#   r   Context.lookup_submodulei  s    ||d++r%   c                 h    U R                  U5      nU(       d  [        US XS9nX0R                  U'   U$ )N)parent_modulecontextr   )r   r   r1   )r@   r   r   rv   s       r#   r   Context.find_submodulem  s8    %%d+ $ME!&LLr%   c           	      z   [        U[        5      (       d  [        S5      eU R                  Ul        [        R
                  " 5       n UR                  5        nSSKJn  [        XaUR                  X S9nUR                  XU5      n	U R                  R                  (       a"   SSKJn
  U
R                  UR"                  5        S S S 5        [        R
                  " 5       U:  a
  [)        5       eW	$ ! [          a    [        S5      ef = f! , (       d  f       NL= f! [$         a  nU R'                  X5      eS nAff = f)N$Only file sources for code supportedr   )Parsing)source_encodingrv   r  r   )ConcreteSyntaxTreezLFormal grammar can only be used with compiled Cython with an available pgen.)rh   r
   RuntimeErrorr8   r   get_errors_countget_file_objectr   r	  r	   r]   p_moduler9   formal_grammarParserr  ImportErrorr   UnicodeDecodeError_report_decode_errorr   )r@   ru   rv   r   full_module_name
num_errorsr   r	  streer  es               r#   parseContext.parsev  s   +';<<EFFHH	,,.
	<,,.!% 1::).@''0@A<<..l? '//0D0DE /" ""$z1.  ' l*jl ll /. " 	< ++K;;	<sO   D A	D	"C0(D	D 0DD		
DD D 
D:$D55D:c                 l   UR                   S   nUR                   S   nUR                   S   nSnS=px[        UR                  SSS9 n	[        U	S5       H-  u  pjU[	        U
5      -  nX:  d  M  XH[	        U
5      -
  -
  S-   n  O   S S S 5        [        XU4SU< S	U< S
35      $ ! , (       d  f       N%= f)Nr   r   r   z	iso8859-1r   )r]   newlinezjDecoding error, missing or incorrect coding=<encoding-name> at top of source (cannot decode with encoding z: ))argsr   r   	enumerater   r   )r@   ru   r   msgpositionr]   r   columnidxr   datas              r#   r  Context._report_decode_error  s    hhrl88A;88A;+&&bIQ'1o
s4y ?%s4y9A=F	 . J k0PXZ]_` 	` JIs   #B%/B%%
B3c                    [         R                  R                  U5      u  p4[         R                  R                  U5      u  pVSU;   a  U$ U/nU R	                  U5      (       aR  [         R                  R                  U5      u  pX:X  a  O+UR                  U	5        UnU R	                  U5      (       a  MR  UR                  5         SR                  U5      $ Nr   )rk   r   r   r   r   r   reverser   )
r@   r   r9   r   r   rw   _namesparentpackage_names
             r#   extract_module_nameContext.extract_module_name  s     d+))(3+!!#&&#%77==#5 F}LL&C !!#&& 	xxr%   c                     [         R                  " 5         UR                  (       a(  [        R                  " UR
                  S5      =o2l        OS n[         R                  " X1R                  S9  g )Nz.lis)r   echo_to_stderr)	r   init_threaduse_listing_filer   r   main_source_filelisting_fileopen_listing_fileerrors_to_stderr)r@   r9   r{   r   s       r#   setup_errorsContext.setup_errors  sO    ##).)=)=f>U>UW])^^D&D  d;S;STr%   c                    UR                   R                  n[        U[        5      (       d  [	        S5      e[
        R                  " 5         [
        R                  " 5       Ul        UR                  S:  a  SnU(       aZ  UR                  (       aH   [        R                  " UR                  [        R                  " UR                  5      5        S Ul	        g g g ! [         a     Nf = f)Nr  r   T)compilation_sourceru   rh   r
   r  r   close_listing_filer  r  c_filer   castrate_filerk   statr   OSError)r@   r   r9   r{   ru   s        r#   teardown_errorsContext.teardown_errors  s    //;;+';<<EFF!!#"335q C6==##FMM277;;O;O3PQ !FM !3  s   ?C 
C'&C')r<   r7   r8   r3   r6   r?   r4   rA   r/   r1   r9   r:   r;   )FNNrK   )F)NNr   TF)NTNNN)NNFFN)&__name__
__module____qualname____firstlineno__r3   rA   rB   classmethodrH   propertyrL   r=   r`   r}   r   r   staticmethodr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r/  r9  rB  __static_attributes__r   r%   r#   r(   r(   3   s     LNEJ.2+6 K K T TC
(($& l l g g MN<AZxq rv_6B((.	,8`$"U!r%   r(   c                    UR                   (       a  SnOSn[        R                  " X5      nUR                  (       a  [        R
                  R                  XR                  5      n[        R
                  R                  U5      (       a=  [        R
                  R                  U[        R
                  R                  U5      5      $ U$ U$ )Nz.cppz.c)	rF   r   r   output_filerk   r   r   isdirr   )source_filenamecwdr9   c_suffixsuggested_file_nameout_paths         r#   get_output_filenamerU    s    }}..I77<<%8%8977==""77<<"''*:*:;N*OPPO""r%   c                     [        5       nU R                  R                  Ul        Xl        U R                  n[        UR                  U R                  U5      Ul        UR                  Ul        U$ rK   )	CompilationResultru   r   r5  r<  rU  rQ  r>  embedded_metadata)r<  r9   r{   ru   s       r#   rm   rm     sa     F0<<EEF 2$00K'(<(<*..9FM&88FMr%   c                    [         R                  " 5       n[         R                  R                  U 5      nU=(       d    UR	                  X5      n[        U5      n[        R                  " U5        UR                  (       a<  UR                  S[         R                  5      U-   nUR                  U5      (       d  U nOUn[        Xg5      n[        XU5      $ r)  )rk   rl   r   abspathr/  r   r   $raise_error_if_module_name_forbidden'relative_path_in_code_position_commentsr   r   r   r
   rj   )	rx   
source_extr  r9   r  rQ  abs_pathr   ru   s	            r#   setup_source_objectr_    s    
))+Cwwv&H'W7+F+Fv+W$%56	../?@66#++C8:E  **H&x:K[C@@r%   c                    [         R                  " 5       n[        XU5      nUR                  Xu5      nU(       a_  UR	                  Xx5        [         R
                  R                  U 5      S   n	UR                  U	SS  5        [        X	X!U5      n [        X5      $ [        XX#5      n
U(       a  UR                  XuU
5        U
$ )Nr   )rk   rl   rU  lookup_cacheload_from_cacher   r   configure_language_defaultsr_  rm   ro   store_to_cache)rx   r9   r  r  cachefingerprintrQ  output_filenamecachedr]  r{   s              r#   run_cached_pipelineri    s    
))+C)&w?O=Fo6WW%%f-a0
++JqrN;$V9IT[\'88&+;EF_6BMr%   c                 4   SSK Jn  UR                  (       a"  [        R                  R                  SU -  5        [        R                  R                  U 5      S   n[        R                  R                  U 5      nUR                  USS  5        [        XX!U5      n [        X5      nUR                  c  [        R                  R                  UR                  5      S   S-   n[        R                  R                  U5      (       a/  [!        USS9 n	SU	R#                  S	5      ;   a  S
Ul        S S S 5        UR%                  5       S:X  d  U(       d  UR'                  X1U5      n
OUR)                  X1U5      n
UR+                  X5        SU R,                  ;   a{  S[        R                  R                  [        R                  R/                  U5      5      S   ;   a8  [1        U R2                  SS4S[        R                  R/                  U5      -  SS9  [4        R6                  " SUR                  [4        R8                  R:                  5      (       a)  UR<                  (       d  [1        U R2                  SS4SSS9  UR?                  X5      u  pURA                  XU5        Ucd  URB                  (       aS  SSK"J#n  U" U5      RI                  URJ                  5      n[L        RN                  " UR                  URJ                  U5        U$ ! , (       d  f       GN= f)Nr   rc   zCompiling %s
r   z.htmlzUTF-8)r]   z<!-- Generated by Cythond   Tr   r   r   r   z[.]c(pp|[+][+]|xx)$z:Filename implies a c++ file but Cython is not in c++ mode.r   create_dependency_tree)(r   rd   verboser   stderrwriterk   r   r   rZ  rc  r_  rm   annotater>  r   r   readlowercreate_py_pipelinecreate_pyx_pipeliner9  r  r   r   ru   research	RegexFlag
IGNORECASEr8   ro   rB  depfileBuild.Dependenciesrm  all_dependenciesr5  r   write_depfile)rx   r9   r  r  rd   r]  r^  r{   html_filename	html_filerz   r   enddatarm  dependenciess                  r#   ro   ro     sd   

)F23!!&)!,Jwwv&H''
127 5EPWXF%f6F((7:WD77>>-((mg6)-1DD'+G$ 7
 U"*..wH//&I)
f%%%#1A1A"''BRBRS[B\1]^_1`*`##Q*JLNGGL\L\]eLfgno	q 
yy&r||7N7NOOX_XcXc##Q*L	 ((:LCC&1
{w?-g6GGH_H_`FMM6+B+BLQM7 76s   L
Lc                       \ rS rSrSrS rSrg)rj   iB  z_
Contains the data necessary to start up a compilation pipeline for
a single compilation unit.
c                 (    Xl         X l        X0l        g rK   )ru   r  rQ  )r@   ru   r  rQ  s       r#   rB   CompilationSource.__init__G  s    & 0r%   )rQ  r  ru   N)rE  rF  rG  rH  __doc__rB   rL  r   r%   r#   rj   rj   B  s    r%   rj   c                   B    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrS rSrg)rW  iM  a:  
Results from the Cython compiler:

c_file           string or None   The generated C source file
h_file           string or None   The generated C header file
i_file           string or None   The generated .pxi file
api_file         string or None   The generated C API .h file
listing_file     string or None   File of error messages
object_file      string or None   Result of compiling the C file
extension_file   string or None   Result of linking the object file
num_errors       integer          Number of compilation errors
compilation_source CompilationSource
Nr   c                     U R                   U R                  U R                  U R                  4 Vs/ s H  nU(       d  M  UPM     sn$ s  snf rK   )r>  h_filei_fileapi_file)r@   source_files     r#   get_generated_source_files,CompilationResult.get_generated_source_filesf  sF    ,0KKdkkSWS`S`+a
+aK +a
 	
 
s   A	 A	r   )rE  rF  rG  rH  r  r>  r  r  r  r6  object_fileextension_filer5  r  r  rL  r   r%   r#   rW  rW  M  s<     FFFHLKNJ
r%   rW  c                   "    \ rS rSrSrSrS rSrg)CompilationResultSetim  z
Results from compiling multiple Pyrex source files. A mapping
from source file paths to CompilationResult instances. Also
has the following attributes:

num_errors   integer   Total number of compilation errors
r   c                 J    X U'   U =R                   UR                   -  sl         g rK   )r  )r@   rx   r{   s      r#   addCompilationResultSet.addx  s    V6,,,r%   r   N)rE  rF  rG  rH  r  r  r  rL  r   r%   r#   r  r  m  s     J-r%   r  c           
          SSK Jn  SSKJn  [        R                  U5      nU" U5      nU R                  XR                  U5      UU" UR                  (       a  SOSUR                  S95      $ )Nr   rl  )FingerprintFlagszc++c)
np_pythran)
r{  rm  Build.Cacher  r(   rH   transitive_fingerprintr|  rF   r  )re  rx   r9   rm  r  r  r  s          r#   get_fingerprintr  }  sa    ?2&&w/-g6++55f=w $]]E&11
 	
r%   c                     Uc  [         R                  U5      nU(       a"  U=(       d    [        X0U5      n[        XX$X55      $ [	        XX$5      $ )z
compile_single(source, options, full_module_name, cache, context, fingerprint)

Compile the given Pyrex implementation file and return a CompilationResult.
Always compiles a single file; does not perform timestamp checking or
recursion.
)r(   rH   r  ri  ro   )rx   r9   r  re  r  rf  s         r#   compile_singler    sK     &&w/!L_UG%L"64DubbF-=GGr%   c           	      x   [        U 5      S:  a  UR                  (       a  [        S5      eU  Vs/ s H"  n[        R                  R                  U5      PM$     n n[        5       n[        5       nUR                  nSn[        R                  " 5       nU  H  nX4;  d  M
  [        X8U5      n	Uc  [        R                  U5      nUR                  X95      n
U(       a  U
(       a(  [        X1UR                  X'S9nUR                  X;5        SnUR                  U5        M     U(       a  UR!                  5         U$ s  snf )z
compile_multiple(sources, options, cache)

Compiles the given sequence of Pyrex implementation files and returns
a CompilationResultSet. Performs timestamp checking, caching and/or recursion
if these are specified in the options.
r   z>Full module name can only be set for single source compilationN)r  re  r  )r   rw   r  rk   r   rZ  r5   r  
timestampsrl   rU  r(   rH   r   r  r  cleanup_cache)sourcesr9   re  rx   	processedresultsr  r  rQ  rg  out_of_dater{   s               r#   compile_multipler    s    7|aG// ; < 	< 6==W6rwwv&WG=I"$G##JG
))+C"1&wGO!..w7!44VMK;''J]J]ej|F+ MM&!  N+ >s   )D7c                    [        SSU0UD6nSnUR                  (       a  UR                  (       d  [        R                  (       a1  UR                  (       a  [
        R                  R                  S5        O+SSKJ	n  UR                  SL a  SOUR                  nU" U5      n[        U [        5      (       a   UR                  (       d  [        XX$5      $ U /n [        XU5      $ )a  
compile(source [, options], [, <option> = <value>]...)

Compile one or more Pyrex implementation files, with optional timestamp
checking and recursing on dependencies.  The source argument may be a string
or a sequence of strings.  If it is a string and no recursion or timestamp
checking is requested, a CompilationResult is returned, otherwise a
CompilationResultSet is returned.
defaultsNz/Cache is ignored when annotations are enabled.
r   )CacheTr   )r   re  rq  r   rn  r   ro  rp  r  r  rh   strr  r  r  )rx   r9   r  kwdsre  r  
cache_paths          r#   compiler    s     !<G<t<G E}}w//

  !ST+!($!6GMMJ*%E&#!!!&3CKKFU33r%   c                    U(       a8  U(       d1  US   n[        U[        5      (       d  [        S5      eUR                  nU(       aE  U(       a$  [        R
                  R                  U5      4U -   n O[        R                  " U5      4U -   n UnU(       a  Xr-  nU  HJ  n[        R
                  R                  X5      n	[        R
                  R                  U	5      (       d  MH  U	s  $    U(       d  UR                  S5      n
[        U
SS 5      nU
S   n/ nU  HQ  n[        R                  " X5      u  pUc  M   U(       a  UR                  U5        M:  [        XU5      n	U	(       d  MO  U	s  $    U H  n[        XU5      n	U	(       d  M  U	s  $    g)a  
Search the list of include directories for the given file name.

If a source file path or position is given, first searches the directory
containing that file.  Returns None if not found, but does not report an error.

The 'include' option will disable package dereferencing.
r   r  r   Nr  )rh   r
   r  r   rk   r   dirnamer   r   r   r   r   r   r   r   search_module_in_dir)dirsr   r   r   r   r   	file_descdotted_filenamer  r   r,  r   rw   namespace_dirspackage_diris_namespaces                   r#   r   r     sb    #F	)%9::EFF$--GGOO$457$>D//0@ACdJD %O!ww||G577>>$K  $$S)eCRj)Bi G(-(?(?(W%K&"))+6+KfM4K  *K'&IDt *
 r%   c                     [         R                  " XU5      nU(       d<  U(       a5  [         R                  " [        R                  R	                  X5      SU5      nU$ )NrB   )r   find_versioned_filerk   r   r   )r  rw   r   r   s       r#   r  r    sE     $$[vFD F((k)OQ[]cdKr%   c                      [        SS9$ )Nr   )command_line)mainr   r%   r#   setuptools_mainr  1  s    q!!r%   c                 X   [         R                  SS  nSnU (       a   [        U5      u  p4O[        [        5      nUnWR                  (       a  [        R                  " 5         UR                  S:w  a   [        R                   " UR                  5         UR"                  (       a  SSKJn  U" U5        g [)        WU5      nUR*                  S:  a  SnU(       a  [         R                  " S5        g g ! [         ad  n[	        SR                  [         R                  S   UR                  5      [         R                  S9  [         R                  " S5         S nAGNS nAff = f! [,        [.        4 a7  n[         R                  R1                  [3        U5      S-   5        Sn S nANS nAff = f)	Nr   r   z#{}: No such file or directory: '{}')filer   r   )generate_shared_module
)r   argvr   FileNotFoundErrorr   r   r   ro  exitr   r   show_versionr   print_versionworking_pathrk   chdirshared_c_file_pathBuild.SharedModuler  r  r  rA  r   rp  r  )r  r   any_failuresr9   r  r  r  r{   s           r#   r  r  5  sB   88AB<DL	1$7GW
 %_5R
%%&%%C"7+'*q L  3 ! 	7>>sxx{AJJW^a^h^hiHHQKK	, Z  

Q$'s6   C1 E" 4E" 1
E;AEE"F)2-F$$F))NNNrK   rD  )r   NFN)r   )=rk   rv  r   ioversion_inforo  rp  r   r  r   r   StringEncodingr   Scanningr	   r
   r   r   r   r   Symtabr   r   r   r   r   CmdLiner   Lexiconr   r   r   r   r$   r   r   r  r   rZ  r   r  __file__r   r(   rU  rm   r_  ri  ro   rj   rW  dictr  r  r  r  cached_functionr   r  r  r  r   r%   r#   <module>r     s   
 	 
 	BQ& JJH5QTQaQabdcdQeKffgHHQK  ) 8 < <    8 'M M 066.)?@013  jj!7!78K!LM  GGLL!:;ZHJ W! W!t# A$(+h 
 
@-4 - 
H&"J4B 7 7t  "" r%   