+
    KV-j™o  ã                   ó4  € ^ 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
t
^ RIHt ^ RIHt ^RIHt R t]! RR	4      tRQR
 lt]
P*                  ! RR7      R 4       t]
P*                  ! RR7      R 4       t]
P*                  ! RR7      R 4       t]
P*                  ! RR7      R 4       t]
P*                  ! RR7      R 4       t]
P*                  ! RR7      R 4       tR tR tR tR tR t R t!]
PD                  PG                  ]PH                  RR8*  RR7      R 4       t%]
PD                  PG                  ] PL                  ! 4       R8g  ;'       g    ]PH                  RR8*  RR7      R 4       t']
PD                  PP                  R 4       t)R  t*R! t+R" t,R# t-R$ t.R% t/R& t0R' t1R( t2R) t3R* t4R+ t5R, t6R- t7]
PD                  Pq                  R.R7      R/ 4       t9R0 t:R1 t;R2 t<]
PD                  PG                  ] PL                  ! 4       R8g  R3R7      R4 4       t=R5 t>R6 t?R7 t@R8 tAR9 tBR: tC]
PD                  Pq                  R.R7      R; 4       tD]
PD                  PG                  ] PL                  ! 4       R8g  ;'       g    ]PH                  RR8*  R<R7      R= 4       tE]
PD                  PG                  ] PL                  ! 4       R8g  ;'       g    ]PH                  RR8*  R<R7      R> 4       tFR? tGR@ tHRA tIRB tJRC tKRD tLRE tMRF tNRG tORH tPRI tQRJ tRRK tSRL tTRM tURN tVRO tWRP tXR# )Sé    N)Ú
namedtuple)ÚPath)Úmain)ÚNOGIL_BUILD)Úutilc                  ó€   € \         P                  ! 4       '       g   \        P                  ! R 4       R# \	        4        R# )z$CLI command needs a Fortran compilerN)r   Úhas_fortran_compilerÚpytestÚskipÚf2pycli© ó    Úm/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/numpy/f2py/tests/test_f2py2e.pyÚcompiler_check_f2pyclir      s#   € Ü×$Ò$×&Ò&Ü�ŠÐ:Ö;äŽ	r   ÚPPathsz(finp, f90inp, pyf, wrap77, wrap90, cmodfc                ó   € \        V 4      p\        VP                  R4      VP                  R4      VP                  R4      VP                  V R24      VP                  V R24      VP                  V R24      R7      # )a8  Takes in a temporary file for testing and returns the expected output and input paths

Here expected output is essentially one of any of the possible generated
files.

..note::

     Since this does not actually run f2py, none of these are guaranteed to
     exist, and module names are typically incorrect

Parameters
----------
fname_inp : str
            The input filename
mname : str, optional
            The name of the module, untitled by default

Returns
-------
genp : NamedTuple PPaths
        The possible paths which are generated, not all of which exist
z.fz.f90ú.pyfz-f2pywrappers.fz-f2pywrappers2.f90úmodule.c)ÚfinpÚf90inpÚpyfÚwrap77Úwrap90Úcmodf)r   r   Úwith_suffixÚ	with_name)Ú	fname_inpÚmnameÚbpaths   && r   Úget_io_pathsr    %   s~   € ô. �‹O€EÜØ×Ñ˜tÓ$Ø× Ñ  Ó(Ø×Ñ˜fÓ%Ø�‰ % ¨Ð8Ó9Ø�‰ % Ð(:Ð;Ó<Ø�o‰o   xÐ0Ó1ôð r   Úsession)Úscopec                ó¨   € \         P                  ! RRRR4      P                  4       pV P                  4       R,          pVP	                  VRR7       V# )ú'Generates a single f90 file for testingÚtestsÚsrcÚclizhiworld.f90z	hello.f90Úascii©Úencoding©r   ÚgetpathÚ	read_textÚgetbasetempÚ
write_text©Útmpdir_factoryÚfdatÚfns   &  r   Úhello_world_f90r4   L   sI   € ô �<Š<˜ ¨¨}Ó=×GÑGÓI€DØ	×	#Ñ	#Ó	%¨Õ	3€BØ‡M�M�$ €MÔ)Ø€Ir   c                ó¨   € \         P                  ! RRRR4      P                  4       pV P                  4       R,          pVP	                  VRR7       V# )z(F90 file for testing warnings in gh23598r%   r&   Úcrackfortranzgh23598Warn.f90r(   r)   r+   r0   s   &  r   Úgh23598_warnr7   U   sK   € ô �<Š<˜ ¨Ð8IÓJ×TÑTÓV€DØ	×	#Ñ	#Ó	%Ð(9Õ	9€BØ‡M�M�$ €MÔ)Ø€Ir   c                ó¨   € \         P                  ! RRRR4      P                  4       pV P                  4       R,          pVP	                  VRR7       V# )z8F90 file for testing disallowed CLI arguments in ghff819r%   r&   r'   zgh_22819.pyfr(   r)   r+   r0   s   &  r   Úgh22819_clir9   ^   sI   € ô �<Š<˜ ¨¨~Ó>×HÑHÓJ€DØ	×	#Ñ	#Ó	%¨Õ	6€BØ‡M�M�$ €MÔ)Ø€Ir   c                ó¨   € \         P                  ! RRRR4      P                  4       pV P                  4       R,          pVP	                  VRR7       V# )ú'Generates a single f77 file for testingr%   r&   r'   zhi77.fzhello.fr(   r)   r+   r0   s   &  r   Úhello_world_f77r<   g   sI   € ô �<Š<˜ ¨¨xÓ8×BÑBÓD€DØ	×	#Ñ	#Ó	%¨	Õ	1€BØ‡M�M�$ €MÔ)Ø€Ir   c                ó¨   € \         P                  ! RRRR4      P                  4       pV P                  4       R,          pVP	                  VRR7       V# )r;   r%   r&   Úreturn_realzfoo77.fzfoo.fr(   r)   r+   r0   s   &  r   Úretreal_f77r?   p   sI   € ô �<Š<˜ ¨°yÓA×KÑKÓM€DØ	×	#Ñ	#Ó	%¨Õ	/€BØ‡M�M�$ €MÔ)Ø€Ir   c                óJ  € \         P                  ! RRRR4      P                  4       p\         P                  ! RRRR4      P                  4       pV P                  4       R,          pV P                  4       R,          pVP	                  VRR	7       VP	                  VRR	7       V# )
r$   r%   r&   Úf2cmapzisoFortranEnvMap.f90z.f2py_f2cmapz
f2cmap.f90Úmapfiler(   r)   r+   )r1   r2   rA   r3   Úfmaps   &    r   Ú
f2cmap_f90rD   x   sŠ   € ô �<Š<˜ ¨Ð2HÓI×SÑSÓU€DÜ�\Š\˜' 5¨(°NÓC×MÑMÓO€FØ	×	#Ñ	#Ó	%¨Õ	4€BØ×%Ñ%Ó'¨)Õ3€DØ‡M�M�$ €MÔ)Ø‡O�O�F W€OÔ-Ø€Ir   c                óô  € \        V4      pVP                  \        RRV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        VP                  P                  R4       Uu. uF&  qDP                  4       '       g   K  VP                  NK(  	  ppRV9  g   Q hRV9  g   Q hRV9   g   Q hRV9   g   Q h RRR4       R# u upi   + '       g   i     R# ; i)	zÉCheck that module names are handled correctly
gh-22819
Essentially, the -m name cannot be used to import the module, so the module
named in the .pyf needs to be used instead

CLI :: -m and a .pyf file
Úargvúf2py -m blah Ú*zblahmodule.czblah-f2pywrappers.fztest_22819-f2pywrappers.fztest_22819module.cN)r   ÚsetattrÚsysÚsplitr   Ú	switchdirÚparentr   ÚrglobÚis_fileÚname)Úcapfdr9   ÚmonkeypatchÚipathÚitemÚ	gen_pathss   &&&   r   Útest_gh22819_clirV   ‡   sÈ   € ô �Ó€EØ×Ñœ˜V }°U°GÐ%<×%BÑ%BÓ%DÔEÜ	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø+0¯<©<×+=Ñ+=¸cÔ+BÓUÑ+B 4ÇlÁlÇn”Y�T—Y”YÑ+Bˆ	ÐUØ YÔ.Ð.Ð.Ø$¨IÔ5Ð5Ð5Ø*¨iÔ7Ð7Ð7Ø# yÔ0Ð0Ñ0÷ 
&Ñ	%ùâU÷ 
&×	%Ð	%ús$   Á(C&ÂC!Â C!Â0&C&Ã!C&Ã&C7	c           	     óŒ  € \        V4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        P                  ! \        RR7      ;_uu_ 4        \        4        RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z6Only one .pyf file allowed
gh-22819
CLI :: .pyf files
rF   rG   z
 hello.pyfzOnly one .pyf file per call)ÚmatchN)r   rI   rJ   rK   r   rL   rM   r
   ÚraisesÚ
ValueErrorr   )rQ   r9   rR   rS   s   &&& r   Útest_gh22819_many_pyfr[   š   s}   € ô
 �Ó€EØ×Ñœ˜V }°U°G¸:Ð%F×%LÑ%LÓ%NÔOÜ	�Š˜Ÿ™×	%Õ	%Ü�]Š]œ:Ð-J×KÖKÜŒI÷ L÷ 
&Ñ	%ßK×Kú÷ 
&×	%Ð	%ús$   Á%B2ÂB	ÂB2ÂB/Â*B2Â2C	c                 óp  € \        VR R7      pVP                  pVP                  \        RRV R2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        VP                  P                  4       pRV9  g   Q h RRR4       R#   + '       g   i     R# ; i)Útest©r   rF   úf2py z -m testzintproductf2pywrap, intprN)r    r   rI   rJ   rK   r   rL   rM   r   r   r-   )rQ   r7   rR   ÚfoutlrS   Úwrappers   &&&   r   Útest_gh23598_warnrb   ¦   sˆ   € Ü˜¨VÔ4€EØ�L‰L€EØ×ÑÜˆVØ
�ˆw�hÐ×%Ñ%Ó'ô)ô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø—,‘,×(Ñ(Ó*ˆØ*°'Ô9Ð9Ñ9÷ 
&×	%×	%Ò	%ús   Á+.B$Â$B5	c                óÄ  € \        V4      p\        V4      P                  R,           pVP                  \        RRV RV 2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9   g   Q h\        V 4      P                  4       '       g   Q h RRR4       R#   + '       g   i     R# ; i)zAEnsures that a signature file is generated via the CLI
CLI :: -h
r   rF   zf2py -h Ú úSaving signatures to fileN)r   ÚstemrI   rJ   rK   r   rL   rM   r   Ú
readouterrÚexists)rQ   r4   rR   rS   ÚopathÚoutÚ_s   &&&    r   Útest_gen_pyfrl   ³   s¬   € ô �Ó!€EÜ�Ó!×&Ñ&¨Õ/€EØ×Ñœ˜V x°¨w°a¸°wÐ%?×%EÑ%EÓ%GÔHä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÔ1Ð1Ð1Ü�u�gÓ×&Ñ&×(Ò(Ð(Ñ(÷	 
&×	%×	%Ò	%ús   Á;ACÃC	c                óT  € \        V4      pVP                  \        RRV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rERV9   g   Q hRV9   g   Q h RRR4       R#   + '       g   i     R# ; i)z@Ensures that a signature file can be dumped to stdout
CLI :: -h
rF   zf2py -h stdout re   zfunction hi() ! in N©	r   rI   rJ   rK   r   rL   rM   r   rg   ©rQ   r4   rR   rS   rj   rk   s   &&&   r   Útest_gen_pyf_stdoutrp   Â   sƒ   € ô �Ó!€EØ×Ñœ˜V °u°gÐ%>×%DÑ%DÓ%FÔGÜ	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÔ1Ð1Ð1Ø$¨Ô+Ð+Ñ+÷	 
&×	%×	%Ò	%ús   Á/BÂB'	c           	     óö  € \        V4      pVP                  \        RRV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        R4      P                  RRR7       \        P                  ! \        4      ;_uu_ 4        \        4        V P                  4       w  rERV9   g   Q h RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)	zbEnsures that the CLI refuses to overwrite signature files
CLI :: -h without --overwrite-signature
rF   úf2py -h faker.pyf ú	faker.pyfú	Fake newsr(   r)   z&Use --overwrite-signature to overwriteN)r   rI   rJ   rK   r   rL   rM   r/   r
   rY   Ú
SystemExitr   rg   )rQ   r4   rR   rS   rk   Úerrs   &&&   r   Útest_gen_pyf_no_overwriterw   Ï   s®   € ô �Ó!€EØ×Ñœ˜VÐ'9¸%¸Ð%A×%GÑ%GÓ%IÔJä	�Š˜Ÿ™×	%Õ	%Üˆ[Ó×$Ñ$ [¸7Ð$ÔCÜ�]Š]œ:×&Õ&ÜŒIØ×%Ñ%Ó'‰FˆAØ;¸sÔBÐBÑB÷ '÷ 
&Ñ	%ç&×&ú÷ 
&×	%Ð	%ús$   Á?C'Â&C	ÃC'ÃC$ÃC'Ã'C8	zPython 3.12 required)Úreasonc                óB  € \        V4      pVP                  \        RRV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rERV9   g   Q h RRR4       R#   + '       g   i     R# ; i)z8Check that modules are named correctly

CLI :: defaults
rF   zf2py --backend meson -c zuntitledmodule.cN)	r   rI   rJ   rK   r   rL   rM   r   rg   ro   s   &&&   r   Útest_untitled_clirz   Þ   sw   € ô �Ó!€EØ×Ñœ˜VÐ'?À¸wÐ%G×%MÑ%MÓ%OÔPÜ	�Š˜Ÿ™×	%Õ	%ÜÔ Ø×!Ñ!Ó#‰ˆØ! SÔ(Ð(Ñ(÷ 
&×	%×	%Ò	%ús   Á&BÂB	ÚLinuxzCompiler and 3.12 requiredc           	     óž  € Rp\        WR7      pVP                  pVP                  \        RRV RV 2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rgRV9   g   Q h RRR4       VP                  \        RRR	.4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rgR
V9   g   Q h RRR4       RpVP                  \        RRV RV R2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rgRV9   g   Q h RRR4       R#   + '       g   i     EL; i  + '       g   i     L«; i  + '       g   i     R# ; i)ziCheck that no distutils imports are performed on 3.12
CLI :: --fcompiler --help-link --backend distutils
Úhir^   rF   r_   z -c --fcompiler=gfortran -m z%--fcompiler cannot be used with mesonNÚf2pyz--help-linkzUse --dep for meson buildsÚhi2z -c -m z --backend distutilsz.Cannot use distutils backend with Python>=3.12)r    r   rI   rJ   rK   r   rL   rM   r   rg   r   )rQ   r4   rR   ÚMNAMEr`   rS   rj   rk   s   &&&     r   Ú!test_no_py312_distutils_fcompilerr�   ì   su  € ð
 €EÜ˜Ô6€EØ�L‰L€EØ×ÑÜˆV�u˜U˜GÐ#?À¸wÐG×MÑMÓOôô 
�Š˜Ÿ™×	%Õ	%ÜÔ Ø×!Ñ!Ó#‰ˆØ6¸#Ô=Ð=Ñ=÷ 
&ð ×ÑÜˆV�f˜mÐ,ôô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ+¨sÔ2Ð2Ñ2÷ 
&ð €EØ×ÑÜˆV�u˜U˜G 7¨5¨'Ð1EÐF×LÑLÓNôô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ?À3ÔFÐFÑF÷ 
&Ñ	%÷ 
&×	%Ð	%ú÷ 
&×	%ú÷ 
&×	%Ð	%ús$   Á.&FÃ&F(Å#&F;ÆF%	Æ(F8	Æ;G	c                óè  € \        VRR7      pVP                  pRpRpVP                  \        RRV RV 2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP	                  4        F  p	RV	 R	2V9   d   K  Q h	  VP	                  4        F  p
R
V
 R2V9   d   K  Q h	  RRR4       R#   + '       g   i     R# ; i)z1Tests that functions can be skipped
CLI :: skip:
r]   r^   út0 t4 t8 sd s8 s4útd s0rF   r_   z -m test skip: z=buildmodule: Could not found the body of interfaced routine "ú". Skipping.úConstructing wrapper function "Ú"N©
r    r   rI   rJ   rK   r   rL   rM   r   rg   )rQ   r?   rR   r`   rS   ÚtoskipÚ	remainingrj   rv   ÚskeyÚrkeys   &&&        r   Útest_f2py_skipr�     sâ   € ô
 ˜¨FÔ3€EØ�J‰J€EØ €FØ€IØ×ÑÜˆVØ
�ˆw�o f XÐ.×4Ñ4Ó6ô8ô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×#Ñ#Ó%‰ˆØ—L‘L–NˆDàOÐPTÈvÐUaÐbØöððñ #ð —O‘OÖ%ˆDØ4°T°F¸!Ð<ÀÖCÐCÐCñ &÷ 
&×	%×	%Ò	%úó   Á18C Â.C ÃC Ã C1	c                óè  € \        VRR7      pVP                  pRpRpVP                  \        RRV RV 2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP	                  4        F  p	RV	 R	2V9   d   K  Q h	  VP	                  4        F  p
R
V
 R2V9   d   K  Q h	  RRR4       R#   + '       g   i     R# ; i)z6Test that functions can be kept by only:
CLI :: only:
r]   r^   rƒ   r„   rF   r_   z -m test only: ú<buildmodule: Could not find the body of interfaced routine "r…   r†   r‡   Nrˆ   )rQ   r?   rR   r`   rS   r‰   Útokeeprj   rv   r‹   rŒ   s   &&&        r   Útest_f2py_onlyr’   $  sà   € ô ˜¨FÔ3€EØ�J‰J€EØ €FØ€FØ×ÑÜˆVØ
�ˆw�o f XÐ.×4Ñ4Ó6ô8ô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×#Ñ#Ó%‰ˆØ—L‘L–NˆDàNÈtÈfÐT`ÐaØöððñ #ð —L‘L–NˆDØ4°T°F¸!Ð<ÀÖCÐCÐCñ #÷ 
&×	%×	%Ò	%úrŽ   c                ó  € \        VRR7      pVP                  pRp\        V4      pRpRp	VP                  \        RRV RV	 R	V R
V 2P                  4       4       \        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  r«VP                  4        F  pRV R2V9   d   K  Q h	  VP                  4        F  pRV R2V
9   d   K  Q h	  RRR4       R#   + '       g   i     R# ; i)zZTests that it is possible to return to file processing mode
CLI :: :
BUG: numpy-gh #20520
r]   r^   rƒ   ztd s0 hiÚblahrF   r_   ú -m z only: z : r�   r…   r†   r‡   N)r    r   r   rI   rJ   rK   r   rL   rM   r   rg   )rQ   r4   r?   rR   r`   rS   r‰   Úipath2r‘   r   rj   rv   r‹   rŒ   s   &&&&          r   Útest_file_processing_switchr—   ;  sþ   € ô ˜¨FÔ3€EØ�J‰J€EØ €FÜ�/Ó"€FØ€FØ€EØ×ÑÜØØ
�ˆw�d˜5˜' ¨¨°°F°8Ð<×BÑBó 	
ôô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×#Ñ#Ó%‰ˆØ—L‘L–NˆDàNÈtÈfÐT`ÐaØöððñ #ð —L‘L–NˆDØ4°T°F¸!Ð<ÀÖCÐCÐCñ #÷ 
&×	%×	%Ò	%ús   Â8C3ÃC3Ã%C3Ã3D	c                óÌ  € Rp\        WR7      pVP                  pVP                  \        RRV RV 2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        RRR4       \        P                  ! VP                  4      '       g   Q h\        P                  ! VP                  4      '       g   Q hR#   + '       g   i     Lb; i)z@Checks the generation of files based on a module name
CLI :: -m
r}   r^   rF   r_   r•   N)r    r   rI   rJ   rK   r   rL   rM   r   r   rh   r   r   )rQ   r4   rR   r€   r`   rS   s   &&&   r   Útest_mod_gen_f77r™   Y  sž   € ð €EÜ˜Ô6€EØ�L‰L€EØ×Ñœ˜V u¨U¨G°4¸°wÐ%?×%EÑ%EÓ%GÔHÜ	�Š˜Ÿ™×	%Õ	%ÜŒ	÷ 
&ô �;Š;�u—{‘{×#Ò#Ð#Ð#ä�;Š;�u—|‘|×$Ò$Ð$Ò$÷ 
&×	%ús   Á.CÃC#	c           	     óÞ  € Rp\        WR7      pVP                  pVP                  \        RRV RV R2P	                  4       4       \
        P                  ! VP                  4      ;_uu_ 4        \        4        \        R4      P                  4       ;_uu_ 4       pVP                  4       pRV9   g   Q h R	R	R	4       R	R	R	4       R	#   + '       g   i     L; i  + '       g   i     R	# ; i)
zuCheck that pyf files are correctly generated with module structure
CLI :: -m <name> -h pyf_file
BUG: numpy-gh #20520
r}   r^   rF   r_   r•   z
 -h hi.pyfzhi.pyfzpython module hiN)r    r   rI   rJ   rK   r   rL   rM   r   r   ÚopenÚread)rQ   r<   rR   r€   r`   rS   ÚhipyfÚpyfdats   &&&     r   Útest_mod_gen_gh25263rŸ   j  s¬   € ð
 €EÜ˜Ô6€EØ�J‰J€EØ×Ñœ˜V u¨U¨G°4¸°w¸jÐ%I×%OÑ%OÓ%QÔRÜ	�Š˜Ÿ™×	%Õ	%ÜŒ	Ü�(‹^× Ñ ×"Ô" eØ—Z‘Z“\ˆFØ%¨Ô/Ð/Ñ/÷ #÷ 
&Ñ	%ç"×"ú÷ 
&×	%Ð	%ús$   Á/,CÂC	Â6CÃCÃCÃC,	c                ób  € \        VRR7      pVP                  p\        P                  ! R4      p\        P                  ! R4      pVP	                  \
        RRV R2P                  4       4       \        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP                  V4      f   Q hVP                  V4      e   Q h RRR4       VP	                  \
        RRV R	2P                  4       4       \        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP                  V4      e   Q hVP                  V4      f   Q h RRR4       R#   + '       g   i     L³; i  + '       g   i     R# ; i)
z@Lowers cases by flag or when -h is present

CLI :: --[no-]lower
r]   r^   zHI\(\)zhi\(\)rF   r_   z -m test --lowerNz -m test --no-lower)r    r   ÚreÚcompilerI   rJ   rK   r   rL   rM   r   rg   Úsearch©	rQ   r<   rR   r`   rS   ÚcapshiÚcapslorj   rk   s	   &&&      r   Útest_lower_cmodr§   z  sK  € ô
 ˜°Ô7€EØ�J‰J€EÜ�ZŠZ˜	Ó"€FÜ�ZŠZ˜	Ó"€Fà×Ñœ˜V u¨U¨GÐ3CÐ%D×%JÑ%JÓ%LÔMÜ	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ�}‰}˜SÓ!Ò-Ð-Ð-Ø�}‰}˜SÓ!Ò)Ð)Ñ)÷	 
&ð ×Ñœ˜VØ ˜wÐ&9Ð:×@Ñ@ÓBôDä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ�}‰}˜SÓ!Ò)Ð)Ð)Ø�}‰}˜SÓ!Ò-Ð-Ñ-÷	 
&Ñ	%÷ 
&×	%ú÷ 
&×	%Ð	%ús   ÂAF
Ä8AFÆ
F	ÆF.	c           	     ó–  € \        VRR7      pVP                  p\        P                  ! R4      p\        P                  ! R4      pVP	                  \
        RRV RVP                   R2P                  4       4       \        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP                  V4      f   Q hVP                  V4      e   Q h R	R	R	4       VP	                  \
        RRV RVP                   R
2P                  4       4       \        P                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rxVP                  V4      e   Q hVP                  V4      f   Q h R	R	R	4       R	#   + '       g   i     LÀ; i  + '       g   i     R	# ; i)zVLowers cases in signature files by flag or when -h is present

CLI :: --[no-]lower -h
r]   r^   z	Block: HIz	Block: hirF   r_   z -h z -m test --overwrite-signatureNz) -m test --overwrite-signature --no-lower)r    r   r¡   r¢   rI   rJ   r   rK   r   rL   rM   r   rg   r£   r¤   s	   &&&      r   Útest_lower_sigr©   ”  si  € ô
 ˜°Ô7€EØ�J‰J€Eä�ZŠZ˜Ó%€FÜ�ZŠZ˜Ó%€Fð ×ÑÜØØ
�ˆw�d˜5Ÿ9™9˜+Ð%CÐD×JÑJÓLôô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ�}‰}˜SÓ!Ò-Ð-Ð-Ø�}‰}˜SÓ!Ò)Ð)Ñ)÷	 
&ð ×ÑÜØØ
�ˆw�d˜5Ÿ9™9˜+Ð%NÐOß	‰‹ô	ô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ�}‰}˜SÓ!Ò)Ð)Ð)Ø�}‰}˜SÓ!Ò-Ð-Ñ-÷	 
&Ñ	%÷ 
&×	%ú÷ 
&×	%Ð	%ús   Â$AF$ÅAF7Æ$F4	Æ7G	c           
     ó^  € \        V4      pRpRpVP                  \        RRV RV RV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rgRV R2V9   g   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)
zFEnsures that the build directory can be specified

CLI :: --build-dir
r”   ÚtttmprF   úf2py -m rd   z --build-dir zWrote C/API module "r‡   Nrn   )rQ   r4   rR   rS   r   Úodirrj   rk   s   &&&     r   Útest_build_dirr®   »  sš   € ô
 �Ó!€EØ€EØ€DØ×Ñœ˜VØ" 5 '¨¨5¨'°¸t¸fÐE×KÑKÓMôOô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ& u g¨RÐ0°CÔ7Ð7Ñ7÷ 
&×	%×	%Ò	%ús   Á&*BÂB,	c                ó|  € \        V4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        R4      P                  RRR7       \        4        V P                  4       w  rERV9   g   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)
zPEnsures that the build directory can be specified

CLI :: --overwrite-signature
rF   rr   z --overwrite-signaturers   rt   r(   r)   re   N)
r   rI   rJ   rK   r   rL   rM   r/   r   rg   ro   s   &&&   r   Útest_overwriter°   Ì  s—   € ô
 �Ó!€EØ×ÑÜˆVØ
˜U˜GÐ#9Ð:×@Ñ@ÓBôDô 
�Š˜Ÿ™×	%Õ	%Üˆ[Ó×$Ñ$ [¸7Ð$ÔCÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÔ1Ð1Ñ1÷	 
&×	%×	%Ò	%ús   ÁAB*Â*B;	c           	     óü  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9   g   Q h\        V R24      P                  4       ;_uu_ 4       pRVP                  4       9   g   Q h R	R	R	4       R	R	R	4       R	#   + '       g   i     L; i  + '       g   i     R	# ; i)
zBEnsures that TeX documentation is written out

CLI :: --latex-doc
r”   rF   r¬   rd   z --latex-docúDocumentation is saved to fileú
module.texú\documentclassN©r   rI   rJ   rK   r   rL   rM   r   rg   r›   rœ   ©rQ   r4   rR   rS   r   rj   rk   Úotexs   &&&     r   Útest_latexdocr¸   Ý  sÌ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð>×DÑDÓFôHô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ/°3Ô6Ð6Ð6Ü�U�G˜:Ð&Ó'×,Ñ,×.Ô.°$Ø$¨¯	©	«Ô3Ð3Ñ3÷ /÷	 
&Ñ	%÷ /×.ú÷	 
&×	%Ð	%ús%   Á"A
C*Â,C	ÃC*ÃC'Ã"C*Ã*C;	c           	     óN  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9  g   Q h RRR4       R#   + '       g   i     R# ; i)zEEnsures that TeX documentation is written out

CLI :: --no-latex-doc
r”   rF   r¬   rd   z --no-latex-docr²   Nrn   ©rQ   r4   rR   rS   r   rj   rk   s   &&&    r   Útest_nolatexdocr»   ï  sˆ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°ÐA×GÑGÓIôKô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ/°sÔ:Ð:Ñ:÷ 
&×	%×	%Ò	%úó   Á"&BÂB$	c           	     óþ  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9   g   Q h\        RV R24      P                  4       ;_uu_ 4       pR	VP                  4       9  g   Q h R
R
R
4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     R
# ; i)z’Ensures that truncated documentation is written out

TODO: Test to ensure this has no effect without --latex-doc
CLI :: --latex-doc --short-latex
r”   rF   r¬   rd   z --latex-doc --short-latexr²   ú./r³   r´   Nrµ   r¶   s   &&&     r   Útest_shortlatexr¿   ÿ  sÐ   € ô �Ó!€EØ€EØ×ÑÜØØ
�5�'˜˜5˜'Ð!;Ð<×BÑBÓDôô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ/°3Ô6Ð6Ð6Ü�B�u�g˜ZÐ(Ó)×.Ñ.×0Ô0°DØ$¨D¯I©I«KÔ7Ð7Ñ7÷ 1÷	 
&Ñ	%÷ 1×0ú÷	 
&×	%Ð	%úó%   Á"AC+Â-C	ÃC+ÃC(Ã#C+Ã+C<	c           	     óþ  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9   g   Q h\        RV R24      P                  4       ;_uu_ 4       pR	VP                  4       9   g   Q h R
R
R
4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     R
# ; i)zAEnsures that RsT documentation is written out

CLI :: --rest-doc
r”   rF   r¬   rd   z --rest-docú#ReST Documentation is saved to filer¾   zmodule.restz.. -*- rest -*-Nrµ   )rQ   r4   rR   rS   r   rj   rk   Úorsts   &&&     r   Útest_restdocrÄ     sÎ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð=×CÑCÓEôGô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ4¸Ô;Ð;Ð;Ü�B�u�g˜[Ð)Ó*×/Ñ/×1Ô1°TØ%¨¯©«Ô4Ð4Ñ4÷ 2÷	 
&Ñ	%÷ 2×1ú÷	 
&×	%Ð	%úrÀ   c           	     óN  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9  g   Q h RRR4       R#   + '       g   i     R# ; i)zDEnsures that TeX documentation is written out

CLI :: --no-rest-doc
r”   rF   r¬   rd   z --no-rest-docrÂ   Nrn   rº   s   &&&    r   Útest_norestexdocrÆ   '  sˆ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð@×FÑFÓHôJô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ4¸CÔ?Ð?Ñ?÷ 
&×	%×	%Ò	%úr¼   c           	     óÈ  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        RV R24      P                  4       ;_uu_ 4       pRVP                  4       9   g   Q h R	R	R	4       R	R	R	4       R	#   + '       g   i     L; i  + '       g   i     R	# ; i)
zAEnsures that debugging wrappers are written

CLI :: --debug-capi
r”   rF   r¬   rd   z --debug-capir¾   r   z#define DEBUGCFUNCSN©
r   rI   rJ   rK   r   rL   rM   r   r›   rœ   )rQ   r4   rR   rS   r   Úocmods   &&&   r   Útest_debugcapirÊ   7  s®   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð?×EÑEÓGôIô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ü�B�u�g˜XÐ&Ó'×,Ñ,×.Ô.°%Ø)¨U¯Z©Z«\Ô9Ð9Ñ9÷ /÷ 
&Ñ	%ç.×.ú÷ 
&×	%Ð	%ús$   Á"0CÂB=	Â+CÂ=CÃCÃC!	z2Consistently fails on CI; noisy so skip not xfail.c           	     ó  € \        V 4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        P                  ! \        P                   R24      p\        P                  ! VRRR	7      pR
p\        P                  ! R4      pVP                  V8X  g   Q hVP                  V8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z=Ensures that debugging wrappers work

CLI :: --debug-capi -c
r”   rF   r¬   rd   z -c --debug-capiú -c "import blah; blah.hi()"TúUTF-8©Úcapture_outputr*   ú Hello World
a   debug-capi:Python C/API function blah.hi()
debug-capi:float hi=:output,hidden,scalar
debug-capi:hi=0
debug-capi:Fortran subroutine `f2pywraphi(&hi)'
debug-capi:hi=0
debug-capi:Building return value.
debug-capi:Python C/API function blah.hi: successful.
debug-capi:Freeing memory.
        N)r   rI   rJ   rK   r   rL   rM   r   ÚshlexÚ
executableÚ
subprocessÚrunÚtextwrapÚdedentÚstdoutÚstderr)r4   rR   rS   r   Úcmd_runÚroutÚeoutÚeerrs   &&      r   Útest_debugcapi_bldrÝ   G  sÖ   € ô �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'Ð1AÐB×HÑHÓJôLô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ü—+’+¤§¡Ð 0Ð0NÐOÓPˆÜ�~Š~˜g°dÀWÔMˆØˆÜ�Šð 	 ó 	ˆð �{‰{˜dÔ"Ð"Ð"Ø�{‰{˜dÔ"Ð"Ñ"÷! 
&×	%×	%Ò	%ús   Á"B	C6Ã6D	c           	     óv  € \        V4      pRpVP                  \        RRV RV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        RRR4       V P                  4       w  rVRV9   g   Q hVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9   g   Q h RRR4       R#   + '       g   i     L°; i  + '       g   i     R# ; i)zgEnsures that fortran subroutine wrappers for F77 are included by default

CLI :: --[no]-wrap-functions
r”   rF   r¬   rd   Nú Fortran 77 wrappers are saved toz --wrap-functionsrn   rº   s   &&&    r   Útest_wrapfunc_defrà   e  sü   € ô �Ó!€EØ€EØ×Ñœ˜V x°¨w°a¸°wÐ%?×%EÑ%EÓ%GÔHä	�Š˜Ÿ™×	%Õ	%ÜŒ	÷ 
&à×ÑÓ�F€CØ.°#Ô5Ð5Ð5ð ×Ñœ˜VØ" 5 '¨¨5¨'Ð1BÐC×IÑIÓKôMô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ2°cÔ9Ð9Ñ9÷ 
&Ñ	%÷ 
&×	%ú÷ 
&×	%Ð	%ús   Á!DÃ#&D'ÄD$	Ä'D8	c           	     óN  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rVRV9  g   Q h RRR4       R#   + '       g   i     R# ; i)z]Ensures that fortran subroutine wrappers for F77 can be disabled

CLI :: --no-wrap-functions
r”   rF   r¬   rd   z --no-wrap-functionsrß   Nrn   rº   s   &&&    r   Útest_nowrapfuncrâ   ~  s‰   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'Ð1EÐF×LÑLÓNôPô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ2¸#Ô=Ð=Ñ=÷ 
&×	%×	%Ò	%úr¼   c           	     óÞ  € \        V4      pRpVP                  \        RRV RV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        RV R24      P                  4       ;_uu_ 4       pVP                  4       pRV9   g   Q hR	V9   g   Q h R
R
R
4       R
R
R
4       R
#   + '       g   i     L; i  + '       g   i     R
# ; i)zWAdd to the include directories

CLI :: -include
TODO: Document this in the help string
r”   rF   r¬   rd   z' -include<stdbool.h> -include<stdio.h> r¾   r   z#include <stdbool.h>z#include <stdio.h>NrÈ   )rQ   r4   rR   rS   r   rÉ   Úocmrs   &&&    r   Útest_inclheaderrå   Ž  sÁ   € ô �Ó!€EØ€EØ×ÑÜØØ
�5�'˜˜5˜'Ð!HÐIß‰‹ô	ô 
�Š˜Ÿ™×	%Õ	%ÜŒ	Ü�B�u�g˜XÐ&Ó'×,Ñ,×.Ô.°%Ø—:‘:“<ˆDØ)¨TÔ1Ð1Ð1Ø'¨4Ô/Ð/Ñ/÷ /÷ 
&Ñ	%ç.×.ú÷ 
&×	%Ð	%ús$   Á"0CÂ#C	Â6CÃCÃCÃC,	zCompiler requiredc                ó(  € \        V4      pRpRpRpVP                  \        RRV RV RV RV 2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        V4      P                  4        \        4        \        V R	24      P                  4       ;_uu_ 4       pVP                  4       pR
V9   g   Q hRV R2V9   g   Q h RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zLEnsures that the extra object can be specified when using meson backend
    r”   r«   zextra.orF   z!f2py --backend meson --build-dir r•   z -c rd   z/meson.buildzobjects:z'''N)r   rI   rJ   rK   r   rL   rM   Útouchr   r›   rœ   )	rQ   r4   rR   rS   r   r­   ÚobjÚ
mesonbuildÚmblds	   &&&      r   Útest_cli_objrë   ¤  sò   € ô �Ó!€EØ€EØ€DØ
€CØ×Ñœ˜VØ;¸D¸6ÀÀeÀWÈDÐQTÐPUÐUVÐW\ÐV]Ð^×dÑdÓfôhô 
�Š˜Ÿ™×	%Õ	%ÜˆS‹	�‰ÔÜÔ Ü�T�F˜,Ð'Ó(×-Ñ-×/Ô/°:Ø—?‘?Ó$ˆDØ Ô%Ð%Ð%Ø˜˜˜S�> TÔ)Ð)Ñ)÷ 0÷ 
&Ñ	%÷ 0×/ú÷ 
&×	%Ð	%ús%   Á+AD Â3'C-	ÃD Ã-C=Ã8D Ä D	c                 ó   € R# )z7Add to the include directories

CLI :: --include-paths
Nr   r   r   r   Útest_inclpathrí   ¸  ó   € ñ 	r   c                 ó   € R# )z3Add to the include directories

CLI :: --help-link
Nr   r   r   r   Ú
test_hlinkrð   Á  rî   r   c                óŒ  € \        V4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rERV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q hRV9   g   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)
zGCheck that Fortran-to-Python KIND specs can be passed

CLI :: --f2cmap
rF   rG   z --f2cmap mapfilez!Reading f2cmap from 'mapfile' ...z&Mapping "real(kind=real32)" to "float"z'Mapping "real(kind=real64)" to "double"z,Mapping "integer(kind=int64)" to "long_long"z0Successfully applied user defined f2cmap changesNrn   )rQ   rD   rR   rS   rj   rk   s   &&&   r   Útest_f2cmaprò   Ê  s°   € ô
 �Ó€EØ×Ñœ˜V }°U°GÐ;LÐ%M×%SÑ%SÓ%UÔVä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ2°cÔ9Ð9Ð9Ø;¸sÔBÐBÐBØ<ÀÔCÐCÐCØAÀSÔHÐHÐHØAÀSÔHÐHÑH÷ 
&×	%×	%Ò	%ús   ÁA
B2Â2C	c                óV  € \        V4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rE\        V4      ^ 8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z!Reduce verbosity

CLI :: --quiet
rF   rG   z --quietN)
r   rI   rJ   rK   r   rL   rM   r   rg   Úlenro   s   &&&   r   Ú
test_quietrõ   Ü  sy   € ô
 �Ó!€EØ×Ñœ˜V }°U°G¸8Ð%D×%JÑ%JÓ%LÔMä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆÜ�3‹x˜1Œ}Ð‰}÷ 
&×	%×	%Ò	%ús   Á/BÂB(	c                óD  € \        V4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        V P                  4       w  rERV9   g   Q h RRR4       R#   + '       g   i     R# ; i)z%Increase verbosity

CLI :: --verbose
rF   rG   z
 --verboseÚanalyzelineNrn   ro   s   &&&   r   Útest_verboserø   ê  sw   € ô
 �Ó!€EØ×Ñœ˜V }°U°G¸:Ð%F×%LÑ%LÓ%NÔOä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ Ô#Ð#Ñ#÷ 
&×	%×	%Ò	%ús   Á&BÂB	c                ó:  € VP                  \        RRR.4       \        P                  ! \        4      ;_uu_ 4        \        4        V P                  4       w  r#^ RIpVP                  VP                  4       8X  g   Q h RRR4       R#   + '       g   i     R# ; i)zEnsure version

CLI :: -v
rF   r~   z-vN)
rI   rJ   r
   rY   ru   r   rg   ÚnumpyÚ__version__Ústrip)rQ   rR   rj   rk   Únps   &&   r   Útest_versionrþ   ø  sh   € ð
 ×Ñœ˜V f¨d ^Ô4ä	�Š”z×	"Õ	"ÜŒ	Ø×!Ñ!Ó#‰ˆÛØ�~‰~ §¡£Ô,Ð,Ñ,÷	 
#×	"×	"Ò	"ús   ¼AB	Â	B	c                ó¸  € \        V 4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        P                  ! \        P                   R24      p\        P                  ! VRRR7      pRpVP                  V8X  g   Q h R	R	R	4       R	#   + '       g   i     R	# ; i)
z
CLI :: -c
rF   rG   z -crÌ   TrÍ   rÎ   rÐ   N)r   rI   rJ   rK   r   rL   rM   r   rÑ   rÒ   rÓ   rÔ   r×   )r4   rR   rS   rÙ   rÚ   rÛ   s   &&    r   Útest_npdistopr     s�   € ô
 �Ó!€EØ×Ñœ˜V }°U°G¸3Ð%?×%EÑ%EÓ%GÔHä	�Š˜Ÿ™×	%Õ	%ÜŒ	Ü—+’+¤§¡Ð 0Ð0NÐOÓPˆÜ�~Š~˜g°dÀWÔMˆØˆØ�{‰{˜dÔ"Ð"Ñ"÷ 
&×	%×	%Ò	%ús   ÁA CÃC	z*Compiler and Python 3.12 or newer requiredc                ó^  € \        V 4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        P                   R2p\        '       d   VR,          pM	VR,          p\        P                  ! V4      p\        P                  ! VRRR	7      pR
pVP                  V8X  g   Q h\        '       d   RVP                  9   g   Q hVP                  ^ 8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z&
CLI :: --no-freethreading-compatible
rF   rG   z! -c --no-freethreading-compatibleú -c "import blah; blah.hi();z1import sys; assert sys._is_gil_enabled() is True"r‡   TrÍ   rÎ   rÐ   zHThe global interpreter lock (GIL) has been enabled to load module 'blah'N©r   rI   rJ   rK   r   rL   rM   r   rÒ   r   rÑ   rÓ   rÔ   r×   rØ   Ú
returncode©r4   rR   rS   ÚcmdrÙ   rÚ   rÛ   s   &&     r   Ú test_no_freethreading_compatibler    sé   € ô �Ó!€EØ×Ñœ˜V }°U°GÐ;\Ð%]×%cÑ%cÓ%eÔfä	�Š˜Ÿ™×	%Õ	%ÜÔ Ü—‘Ð Ð =Ð>ˆß‹;ØÐGÕG‰Cà�4�KˆCÜ—+’+˜cÓ"ˆÜ�~Š~˜g°dÀWÔMˆØˆØ�{‰{˜dÔ"Ð"Ð"ß‹;Ø]Ðae×alÑalÔlÐlÐlØ�‰ !Ô#Ð#Ñ#÷ 
&×	%×	%Ò	%ús   ÁBDÃ*&DÄD,	c                óF  € \        V 4      pVP                  \        RRV R2P                  4       4       \        P
                  ! VP                  4      ;_uu_ 4        \        4        \        P                   R2p\        '       d   VR,          pM	VR,          p\        P                  ! V4      p\        P                  ! VRRR	7      pR
pVP                  V8X  g   Q hVP                  R8X  g   Q hVP                  ^ 8X  g   Q h RRR4       R#   + '       g   i     R# ; i)z#
CLI :: --freethreading_compatible
rF   rG   z -c --freethreading-compatibler  z2import sys; assert sys._is_gil_enabled() is False"r‡   TrÍ   rÎ   rÐ   Ú Nr  r  s   &&     r   Útest_freethreading_compatibler
  /  sá   € ô �Ó!€EØ×Ñœ˜V }°U°GÐ;YÐ%Z×%`Ñ%`Ó%bÔcä	�Š˜Ÿ™×	%Õ	%ÜÔ Ü—‘Ð Ð =Ð>ˆß‹;ØÐHÕH‰Cà�4�KˆCÜ—+’+˜cÓ"ˆÜ�~Š~˜g°dÀWÔMˆØˆØ�{‰{˜dÔ"Ð"Ð"Ø�{‰{˜bÔ Ð Ð Ø�‰ !Ô#Ð#Ñ#÷ 
&×	%×	%Ò	%ús   ÁB'DÄD 	c                 ó   € R# )z
CLI :: -c --fcompiler
Nr   r   r   r   Útest_npd_fcompilerr  J  ó   € ñ
 	r   c                 ó   € R# )z
CLI :: -c --compiler
Nr   r   r   r   Útest_npd_compilerr  R  r  r   c                 ó   € R# )z
CLI :: -c --help-fcompiler
Nr   r   r   r   Útest_npd_help_fcompilerr  Z  r  r   c                 ó   € R# )z
CLI :: -c --f77exec
Nr   r   r   r   Útest_npd_f77execr  b  r  r   c                 ó   € R# )z
CLI :: -c --f90exec
Nr   r   r   r   Útest_npd_f90execr  j  r  r   c                 ó   € R# )z
CLI :: -c --f77flags
Nr   r   r   r   Útest_npd_f77flagsr  r  r  r   c                 ó   € R# )z
CLI :: -c --f90flags
Nr   r   r   r   Útest_npd_f90flagsr  z  r  r   c                 ó   € R# )z
CLI :: -c --opt
Nr   r   r   r   Útest_npd_optr  ‚  r  r   c                 ó   € R# )z
CLI :: -c --arch
Nr   r   r   r   Útest_npd_archr  Š  r  r   c                 ó   € R# )z
CLI :: -c --noopt
Nr   r   r   r   Útest_npd_nooptr  ’  r  r   c                 ó   € R# )z
CLI :: -c --noarch
Nr   r   r   r   Útest_npd_noarchr!  š  r  r   c                 ó   € R# )z
CLI :: -c --debug
Nr   r   r   r   Útest_npd_debugr#  ¢  r  r   c                 ó   € R# )z
CLI :: -c --link-<resource>
Nr   r   r   r   Útest_npd_link_autor%  ª  r  r   c                 ó   € R# )z'
CLI :: -c -L/path/to/lib/ -l<libname>
Nr   r   r   r   Útest_npd_libr'  ²  r  r   c                 ó   € R# )z
CLI :: -D<define>
Nr   r   r   r   Útest_npd_definer)  º  r  r   c                 ó   € R# )z
CLI :: -U<name>
Nr   r   r   r   Útest_npd_undefiner+  Â  r  r   c                 ó   € R# )z
CLI :: -I/path/to/include/
Nr   r   r   r   Útest_npd_inclr-  Ê  r  r   c                 ó   € R# )z0
CLI :: <filename>.o <filename>.so <filename>.a
Nr   r   r   r   Útest_npd_linkerr/  Ò  r  r   )Úuntitled)é   é   )YÚplatformr¡   rÑ   rÓ   rJ   rÕ   Úcollectionsr   Úpathlibr   r
   Únumpy.f2py.f2py2er   r   Únumpy.testing._private.utilsr   r	  r   r   r   r    Úfixturer4   r7   r9   r<   r?   rD   rV   r[   rb   rl   rp   rw   ÚmarkÚskipifÚversion_inforz   Úsystemr�   Úxfailr�   r’   r—   r™   rŸ   r§   r©   r®   r°   r¸   r»   r¿   rÄ   rÆ   rÊ   r   rÝ   rà   râ   rå   rë   rí   rð   rò   rõ   rø   rþ   r   r  r
  r  r  r  r  r  r  r  r  r  r  r!  r#  r%  r'  r)  r+  r-  r/  r   r   r   Ú<module>r>     s¤  ðÛ Û 	Û Û Û 
Û Ý "Ý ã å -Ý 4å òñ 
�HÐHÓ	I€ôðN ‡‚�iÔ ñó !ðð ‡‚�iÔ ñó !ðð ‡‚�iÔ ñó !ðð ‡‚�iÔ ñó !ðð ‡‚�iÔ ñó !ðð ‡‚�iÔ ñó !ðò1ò&	ò
:ò)ò
,òCð ‡�×Ñ�C×$Ñ$¨Ñ/Ð8NÐÓOñ
)ó Pð
)ð ‡�×Ñ�X—_’_Ó&¨'Ñ1×SÐS°s×7GÑ7GÈ7Ñ7RÐ\xÐÓyñGó zðGð> ‡�×ÑñDó ðDò.Dò.Dò<%ò"0ò .ò4$.òN8ò"2ò"4ò$;ò 8ò,5ò$@ò :ð  ‡�×ÑÐMÐÓNñ#ó Oð#ò::ò2>ò 0ð, ‡�×Ñ�X—_’_Ó&¨'Ñ1Ð;NÐÓOñ*ó Pð*ò&	ò	òIò$ò$ò-ð ‡�×ÑÐMÐÓNñ#ó Oð#ð ‡�×Ñ�X—_’_Ó&¨'Ñ1×QÐQ°c×6FÑ6FÈ'Ñ6QØGð ó Iñ$óIð$ð. ‡�×Ñ�X—_’_Ó&¨'Ñ1×QÐQ°c×6FÑ6FÈ'Ñ6QØGð ó Iñ$óIð$ò2	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ô	r   