+
    ei  c                   s    ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
Ht ^RIHt  ! R R4      t ! R R	]4      tR
 tR tR# )i    N)chainPath)Template)Backendc                   s   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltR tRtV tR# )MesonTemplatez+Template meson build file generation class.c                s   < V ^8  d   QhRS[ RS[S[,          RS[S[ ,          RS[S[ ,          RS[S[,          RS[S[,          RS[S[,          RS[S[ ,          R	S[S[ ,          R
S[ RS[ /# )   
modulenamesourcesdeps	librarieslibrary_dirsinclude_dirsobject_fileslinker_argsfortran_args
build_type
python_exe)strlistr   Zformat__classdict__   "B/usr/lib64/python3.14/site-packages/numpy/f2py/_backends/_meson.py__annotate__MesonTemplate.__annotate__   s     + ++ d+ 3i	+
 9+ 4j+ 4j+ 4j+ #Y+ 3i+ + +    c                s>   Wn         \        \        4      P                  P	                  4       R ,          V n        W n        W0n        W@n        WPn	        Ve   W`n
        M. V n
        / V n        Wpn        V	 Uu. uF9  pVP                  R4      '       d   VP                  R4      '       g   RV R2MTNK;  	  upV n        V P                   V P"                  V P$                  V P&                  V P(                  V P*                  .V n        Wn        Wn        RV n        R# u upi )zmeson.build.templateNZ'z                     )r   r   Z__file__Zparentabsolutebuild_template_pathr   r	   r
   r   r   substitutionsobjectsZ
startswithZendswithr   initialize_templatesources_substitutiondeps_substitutioninclude_substitutionlibraries_substitutionfortran_args_substitutionpipeliner   r   indent)selfr   r   r	   r
   r   r   r   r   r   r   r   Zxs   &&&&&&&&&&&& r   __init__ZMesonTemplate.__init__   s    %N!!**,/EE 	  	"(# , "D# "
! \\#..1::c??as!HJ!

 $$%%""%%''**
 %$
s   5DD(Dc                    < V ^8  d   QhRS[ /# )r   return)r   r   r   r   r   r   >   s     4 4c 4r   c                s    V P                   P                  4       '       g7   \        \        P                  R V P                   P                  4        R24      hV P                   P                  4       # )zMeson build template z does not exist.)r   is_fileZFileNotFoundErrorerrnoZENOENTr   Z	read_textr'      &r   meson_build_templateZ"MesonTemplate.meson_build_template>   sd    ''//11#,,5578"#  ''1133r   c                   < V ^8  d   QhRR/# r   r*   N r   r   r   r   r   H   s     7 7T 7r   c                s    V P                   V P                  R &   V P                  V P                  R&   V P                  V P                  R&   R# )r   Z	buildtypeZpythonN)r   r   r   r   r-   r.   r   r   Z!MesonTemplate.initialize_templateH   s>    +/??<(*.//;''+8$r   c                r0   r1   r2   r   r   r   r   r   M        
 
d 
r   c           	     s    R P                  V P                   Uu. uF  qP                   RV R2NK  	  up4      V P                  R&   R# u upi ),
'''''',Zsource_listN)joinr   r&   r   )r'   source   & r   r    Z"MesonTemplate.sources_substitutionM   sC    ,1JJ;?<<H<}Cxt,<H-
=)Hs   A
c                r0   r1   r2   r   r   r   r   r   R   s     
 
4 
r   c           	         R V P                    2P                  V P                   Uu. uF  qP                    RV R2NK  	  up4      V P                  R&   R# u upi )r4   zdependency('z'),Zdep_listN)r&   r7   r	   r   )r'   Zdepr9   r   r!   ZMesonTemplate.deps_substitutionR   sP    +.t{{m)<)A)A=AYYGYc}LS1YG*
:&G   Ac                r0   r1   r2   r   r   r   r   r   W   s     
 
 
r   c                s   R P                  \        V P                  4       UUu. uF  w  rRV RV R2NK  	  upp4      V P                  R&   R P                  V P                   Uu. uF  pVP                  RR4       RV R2NK  	  up4      V P                  R	&   R V P                   2P                  V P                   Uu. uF#  q0P                   VP                  RR4       R
2NK%  	  up4      V P                  R&   R V P                   2P                  \        \        V P                  4      4       Uu. uF  qP                   RV R
2NK  	  up4      V P                  R&   R# u uppi u upi u upi u upi )Z
Zlib_dir_z( = declare_dependency(link_args : ['''-Lz'''])Zlib_dir_declarationsZ.Z_z& = declare_dependency(link_args : ['-lz'])Zlib_declarations,Zlib_listZlib_dir_listN)	r7   Z	enumerater   r   r
   replacer&   ZrangeZlen)r'   ZiZlib_dirZlib   &   r   r#   Z$MesonTemplate.libraries_substitutionW   sw   59YY #,D,=,=">">JA 1#EgYeT">6
12 26  >>)C ;;sC())OPSuTWX)2
-. ,.dkk]);)@)@AEP#}S[[c2315P*
:& 02$++-?-D-D38T=N=N9O3PQ3Pa}HQCq)3PQ.
>*! Q Rs   E&
&!E,)E16E6c                r0   r1   r2   r   r   r   r   r   m   r3   r   c           	     r:   )r4   r5   r6   Zinc_listN)r&   r7   r   r   )r'   Zincr9   r   r"   Z"MesonTemplate.include_substitutionm   sT    +.t{{m)<)A)A595F5FG5Fc}CuD)5FG*
:&Gr;   c                r0   r1   r2   r   r   r   r   r   r   s     4 44 4r   c                s    V P                   '       dD   V P                   R RP                  \        V P                   4      4       R2V P                  R&   R# RV P                  R&   R# )zfortran_args: [z, z],r   Z N)r   r&   r7   r   r   r-   r.   r   r$   Z'MesonTemplate.fortran_args_substitutionr   sZ    ;;-tyyd>O>O9P/Q.RRTU ~. 24D~.r   c                s    V P                    F
  pV! 4        K  	  \        V P                  4       4      pVP                  V P                  4      pVP                  R R4      pV# )z,,r<   )r%   r   r/   Z
substituter   r=   )r'   ZnodeZtemplateZmeson_buildr>   r   generate_meson_buildZ"MesonTemplate.generate_meson_buildz   sV    MMDF "D5578))$*<*<=!))$4r   )r   r   r	   r   r   r&   r
   r   r   r   r%   r   r   r   N)__name__
__module____qualname____firstlineno__Z__doc__r(   r/   r   r    r!   r#   r"   r$   r?   __static_attributes____classdictcell__)r   s   @r   r   r      sc     5+ +Z4 47 7

 


 


 
,
 

4 4 r   r   c                   s   a a ] tR t^t oV 3R ltV3R lR ltV3R lR ltR tV3R lR ltV3R	 lR
 lt	Rt
VtV ;t# )MesonBackendc                sZ  < \         SV `  ! V/ VB  V P                  P                  R . 4      V n        RV n        \        ;QJ d&    R V P                   4       F  '       g   K   RM	  RM! R V P                   4       4      '       d   RMRV n        \        V P                  4      V n        R# )dependenciesZbbdirc              3   s,   "   T F
  pR V9   x  K  	  R# 5i)debugNr2   )Z.0flagr9   r   Z	<genexpr>Z(MesonBackend.__init__.<locals>.<genexpr>   s     E}t7d?}s   TFrH   ZreleaseN)
Zsuperr(   Z	extra_datZgetrG   meson_build_dirZanyfc_flagsr   
_get_flags)r'   ZargsZkwargs	__class__s   &*,r   r(   ZMesonBackend.__init__   s|    $)&) NN..~rB&sEt}}EsssEt}}EEEG9 	 #4==1r   c                r)   r   	build_dirr   r   r   r   r   MesonBackend.__annotate__   s     # #D #r   c                s   \        V4      V P                  ,          p\        VP                  V P                   R 24      VP                  V P                   R24      VP                  V P                   R24      4      pV F{  p\         P
                  ! 4       VP                  ,          pVP                  4       '       d   VP                  4        \        P                  ! WE4       \        P                  ! V4       K}  	  R# )z*.soz*.pydz*.dllN)r   rJ   r    Zglobr   cwdnameexistsunlinkshutilZcopy2osZremove)r'   rO   Zwalk_dirZpath_objectsZpath_objectZ	dest_paths   &&    r   _move_exec_to_rootZMesonBackend._move_exec_to_root   s    	?T%9%99MMT__-T23MMT__-U34MMT__-U34
 (K
[%5%55I!!  "LL0IIk" (r   c                s$   < V ^8  d   QhRS[ RR/# )r   rO   r*   Nr   r   r   r   r   rP      s        4  D  r   c                s   \        V P                  V P                  V P                  V P                  V P
                  V P                  V P                  V P                  V P                  V P                  \        P                  4      pVP                  4       p\        V4      P                  RRR7       \        V4      R,          pVP!                  V4       V# )z1Writes the meson build file at specified locationTZparentsZexist_okzmeson.build)r   r   r   rG   r
   r   r   Zextra_objectsZ
flib_flagsrK   r   sysZ
executabler?   r   mkdirZ
write_text)r'   rO   Zmeson_templateZsrcZmeson_build_files   &&   r   write_meson_buildZMesonBackend.write_meson_build   s    &OOLLNNOOMMOONN
 113YdT:	?]:##C(r   c                s6    \         P                  ! WR R7       R# )T)rQ   ZcheckN)
subprocessZrun)r'   ZcommandrQ   s   &&&r   _run_subprocess_commandZ$MesonBackend._run_subprocess_command   s    wt4r   c                r)   rN   r   r   r   r   r   rP      s     A A4 Ar   c                s    R RV P                   .pV P                  W!4       R RRV P                   .pV P                  W14       R# )ZmesonZsetupcompilez-CN)rJ   r]   )r'   rO   Zsetup_commandZcompile_commands   &&  r   	run_mesonZMesonBackend.run_meson   sD     '4+?+?@$$]>"ItT5I5IJ$$_@r   c                r0   r1   r2   r   r   r   r   rP      s     0 0 0r   c                s   \        V P                  V P                  V P                  4      V n        V P	                  V P                  4       V P                  V P                  4       V P                  V P                  4       R # )N)_prepare_sourcesr   r   rO   r[   r_   rW   r-   r.   r   r^   ZMesonBackend.compile   sR    't~~Vt~~.t~~&/r   )r   rG   rK   rJ   r   )r@   rA   rB   rC   r(   rW   r[   r]   r_   r^   rD   rE   Z__classcell__)rM   r   s   @@r   rF   rF      s>     2# #    *5A A0 0 0r   rF   c                 s   VP                  4       p\        V4      P                  R R R7       V F[  p\        V4      P                  4       '       g   K$  \        V4      P	                  4       '       g   KE  \
        P                   ! WB4       K]  	  \        V  R24      \        V  R24      \        V  R24      .p\        V4      pV Fm  pVP                  4       '       g   K  \
        P                   ! WbVP                  ,          4       VP                  VP                  4       VP                  4        Ko  	  V Uu. uF4  p\        V4      P                  R8X  d   K  \        V4      P                  NK6  	  ppV# u upi )TrX   zmodule.cz-f2pywrappers2.f90z-f2pywrappers.fz.pyf)
Zcopyr   rZ   rS   r+   rU   rR   ZappendrT   Zsuffix)Zmnamer   ZbdirZextended_sourcesr8   Zgenerated_sourcesZgenerated_sources   &&&    r   r`   r`      sD   ||~JTD1<  T&\%9%9%;%;KK%  	wh w()*wo&'
 :D-""$$KK(1A1F1F*FG##$4$9$9:##%	 . '&FF|""f, 	V&  
 s   9E7E7c                 s~   . p\         P                  ! R 4      pV  F{  pVP                  V4      pV'       g   K  VP                  ^4      P	                  4       P                  4       pV Uu. uF  qfP	                  R4      NK  	  ppVP                  V4       K}  	  \        \        P                  V4      4      pV# u upi )z--f(77|90)flags=(.*)z'")
rer^   ZmatchZgroupZstripZsplitZextendr   ZdictZfromkeys)rK   Zflag_valuesZflag_patternrI   Zmatch_resultZvaluesZvalZunique_flagss   &       r   rL   rL      s    K::56L#))$/<!''*00288:F289&3ii&&F9v&  k23L	 :s   *B:)r,   rV   ra   rU   r\   rY   Z	itertoolsr    Zpathlibr   Zstringr   Z_backendr   r   rF   r`   rL   r2   r   r   <module>rb      sG     	 	   
    r rj<07 <0~4r   