ó
    �œ‘h~p  ã                   óz  • S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
r
S SKJr  S SKJr  SSKJr  S r\" S	S
5      rSQS jr\
R*                  " SS9S 5       r\
R*                  " SS9S 5       r\
R*                  " SS9S 5       r\
R*                  " SS9S 5       r\
R*                  " SS9S 5       r\
R*                  " SS9S 5       rS rS rS rS rS r S r!\
RD                  RG                  \RH                  S:*  SS9S 5       r%\
RD                  RG                  \ RL                  " 5       S:g  =(       d    \RH                  S:*  SS9S  5       r'\
RD                  RP                  S! 5       r)S" r*S# r+S$ r,S% r-S& r.S' r/S( r0S) r1S* r2S+ r3S, r4S- r5S. r6S/ r7\
RD                  Rq                  S0S9S1 5       r9S2 r:S3 r;S4 r<S5 r=S6 r>S7 r?S8 r@S9 rAS: rB\
RD                  Rq                  S0S9S; 5       rC\
RD                  RG                  \ RL                  " 5       S:g  =(       d    \RH                  S:*  S<S9S= 5       rD\
RD                  RG                  \ RL                  " 5       S:g  =(       d    \RH                  S:*  S<S9S> 5       rES? rFS@ rGSA rHSB rISC rJSD rKSE rLSF rMSG rNSH rOSI rPSJ rQSK rRSL rSSM rTSN rUSO rVSP rWg)Ré    N)Ú
namedtuple)ÚPath)Úmain)ÚNOGIL_BUILDé   )Úutilc                  óz   • [         R                  " 5       (       d  [        R                  " S5        g [	        5         g )Nz$CLI command needs a Fortran compiler)r   Úhas_fortran_compilerÚpytestÚskipÚf2pycli© ó    Ú`C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/f2py/tests/test_f2py2e.pyÚcompiler_check_f2pyclir      s#   € Ü×$Ò$×&Ñ&Ü�ŠÐ:Õ;ä�	r   ÚPPathsz(finp, f90inp, pyf, wrap77, wrap90, cmodfc                 óú   • [        U 5      n[        UR                  S5      UR                  S5      UR                  S5      UR                  U S35      UR                  U S35      UR                  U S35      S9$ )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                 óš   • [         R                  " SSSS5      R                  5       nU R                  5       S-  nUR	                  USS9  U$ )ú'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_f90r5   L   sI   € ô �<Š<˜ ¨¨}Ó=×GÑGÓI€DØ	×	#Ñ	#Ó	%¨Ñ	3€BØ‡M�M�$ €MÑ)Ø€Ir   c                 óš   • [         R                  " SSSS5      R                  5       nU R                  5       S-  nUR	                  USS9  U$ )z(F90 file for testing warnings in gh23598r&   r'   Úcrackfortranzgh23598Warn.f90r)   r*   r,   r1   s      r   Úgh23598_warnr8   U   sK   € ô �<Š<˜ ¨Ð8IÓJ×TÑTÓV€DØ	×	#Ñ	#Ó	%Ð(9Ñ	9€BØ‡M�M�$ €MÑ)Ø€Ir   c                 óš   • [         R                  " SSSS5      R                  5       nU R                  5       S-  nUR	                  USS9  U$ )z8F90 file for testing disallowed CLI arguments in ghff819r&   r'   r(   zgh_22819.pyfr)   r*   r,   r1   s      r   Úgh22819_clir:   ^   sI   € ô �<Š<˜ ¨¨~Ó>×HÑHÓJ€DØ	×	#Ñ	#Ó	%¨Ñ	6€BØ‡M�M�$ €MÑ)Ø€Ir   c                 óš   • [         R                  " SSSS5      R                  5       nU R                  5       S-  nUR	                  USS9  U$ )ú'Generates a single f77 file for testingr&   r'   r(   zhi77.fzhello.fr)   r*   r,   r1   s      r   Úhello_world_f77r=   g   sI   € ô �<Š<˜ ¨¨xÓ8×BÑBÓD€DØ	×	#Ñ	#Ó	%¨	Ñ	1€BØ‡M�M�$ €MÑ)Ø€Ir   c                 óš   • [         R                  " SSSS5      R                  5       nU R                  5       S-  nUR	                  USS9  U$ )r<   r&   r'   Úreturn_realzfoo77.fzfoo.fr)   r*   r,   r1   s      r   Úretreal_f77r@   p   sI   € ô �<Š<˜ ¨°yÓA×KÑKÓM€DØ	×	#Ñ	#Ó	%¨Ñ	/€BØ‡M�M�$ €MÑ)Ø€Ir   c                 ó.  • [         R                  " SSSS5      R                  5       n[         R                  " SSSS5      R                  5       nU R                  5       S-  nU R                  5       S-  nUR	                  USS	9  UR	                  USS	9  U$ )
r%   r&   r'   Úf2cmapzisoFortranEnvMap.f90z.f2py_f2cmapz
f2cmap.f90Úmapfiler)   r*   r,   )r2   r3   rB   r4   Úfmaps        r   Ú
f2cmap_f90rE   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                 óÔ  • [        U5      nUR                  [        SSU 3R                  5       5        [        R
                  " UR                  5         [        5         UR                  R                  S5       Vs/ s H%  oDR                  5       (       d  M  UR                  PM'     nnSU;  d   eSU;  d   eSU;   d   eSU;   d   e SSS5        gs  snf ! , (       d  f       g= f)	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)Úcapfdr:   ÚmonkeypatchÚipathÚitemÚ	gen_pathss         r   Útest_gh22819_clirW   ‡   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Â("CÃCÃ
C'c                 óZ  • [        U5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        R                  " [        SS9   [        5         SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)z6Only one .pyf file allowed
gh-22819
CLI :: .pyf files
rG   rH   z
 hello.pyfzOnly one .pyf file per call)ÚmatchN)r   rJ   rK   rL   r   rM   rN   r   ÚraisesÚ
ValueErrorr   )rR   r:   rS   rT   s       r   Útest_gh22819_many_pyfr\   š   st   € ô
 �Ó€EØ×Ñœ˜V }°U°G¸:Ð%F×%LÑ%LÓ%NÔOÜ	�Š˜Ÿ™Õ	%Ü�]Š]œ:Ð-JÓKÜŒI÷ L÷ 
&Ð	%ßKÕKú÷ 
&Õ	%ús$   ÁBÁ/BÁ:BÂ
B	ÂBÂ
B*c                 óP  • [        USS9nUR                  nUR                  [        SSU S3R	                  5       5        [
        R                  " UR                  5         [        5         UR                  R                  5       nSU;  d   e S S S 5        g ! , (       d  f       g = f)NÚtest©r   rG   úf2py z -m testzintproductf2pywrap, intpr)r!   r   rJ   rK   rL   r   rM   rN   r   r   r.   )rR   r8   rS   ÚfoutlrT   Úwrappers         r   Útest_gh23598_warnrc   ¦   s‚   € Ü˜¨VÑ4€EØ�L‰L€EØ×ÑÜˆVØ
�ˆw�hÐ×%Ñ%Ó'ô)ô 
�Š˜Ÿ™Õ	%ÜŒ	Ø—,‘,×(Ñ(Ó*ˆØ*°'Ó9Ð9Ñ9÷ 
&×	%Ö	%ús   Á -BÂ
B%c                 ó   • [        U5      n[        U5      R                  S-   nUR                  [        SSU SU 3R	                  5       5        [
        R                  " UR                  5         [        5         U R                  5       u  pVSU;   d   e[        U 5      R                  5       (       d   e SSS5        g! , (       d  f       g= f)zAEnsures that a signature file is generated via the CLI
CLI :: -h
r   rG   zf2py -h Ú úSaving signatures to fileN)r   ÚstemrJ   rK   rL   r   rM   rN   r   Ú
readouterrÚexists)rR   r5   rS   rT   ÚopathÚoutÚ_s          r   Útest_gen_pyfrm   ³   s¦   € ô �Ó!€EÜ�Ó!×&Ñ&¨Ñ/€EØ×Ñœ˜V x°¨w°a¸°wÐ%?×%EÑ%EÓ%GÔHä	�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÓ1Ð1Ð1Ü�u�gÓ×&Ñ&×(Ñ(Ð(Ñ(÷	 
&×	%Ö	%ús   Á/AB?Â?
Cc                 ó8  • [        U5      nUR                  [        SSU 3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pESU;   d   eSU;   d   e SSS5        g! , (       d  f       g= f)z@Ensures that a signature file can be dumped to stdout
CLI :: -h
rG   zf2py -h stdout rf   zfunction hi() ! in N©	r   rJ   rK   rL   r   rM   rN   r   rh   ©rR   r5   rS   rT   rk   rl   s         r   Útest_gen_pyf_stdoutrq   Â   s}   € ô �Ó!€EØ×Ñœ˜V °u°gÐ%>×%DÑ%DÓ%FÔGÜ	�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÓ1Ð1Ð1Ø$¨Ó+Ð+Ñ+÷	 
&×	%Ö	%ús   Á-BÂ
Bc                 óÂ  • [        U5      nUR                  [        SSU 3R                  5       5        [        R
                  " UR                  5         [        S5      R                  SSS9  [        R                  " [        5         [        5         U R                  5       u  pESU;   d   e SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)	zbEnsures that the CLI refuses to overwrite signature files
CLI :: -h without --overwrite-signature
rG   úf2py -h faker.pyf ú	faker.pyfú	Fake newsr)   r*   z&Use --overwrite-signature to overwriteN)r   rJ   rK   rL   r   rM   rN   r0   r   rZ   Ú
SystemExitr   rh   )rR   r5   rS   rT   rl   Úerrs         r   Útest_gen_pyf_no_overwriterx   Ï   s¥   € ô �Ó!€EØ×Ñœ˜VÐ'9¸%¸Ð%A×%GÑ%GÓ%IÔJä	�Š˜Ÿ™Õ	%Üˆ[Ó×$Ñ$ [¸7Ð$ÑCÜ�]Š]œ:Õ&ÜŒIØ×%Ñ%Ó'‰FˆAØ;¸sÓBÐBÑB÷ '÷ 
&Ð	%ç&Õ&ú÷ 
&Õ	%ús$   Á4CÂ%B?Â.CÂ?
C	Ã	CÃ
C)é   é   zPython 3.12 required)Úreasonc                 ó(  • [        U5      nUR                  [        SSU 3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pESU;   d   e SSS5        g! , (       d  f       g= f)z8Check that modules are named correctly

CLI :: defaults
rG   zf2py --backend meson -c zuntitledmodule.cN)	r   rJ   rK   rL   r   rM   rN   r   rh   rp   s         r   Útest_untitled_clir}   Þ   sq   € ô �Ó!€EØ×Ñœ˜VÐ'?À¸wÐ%G×%MÑ%MÓ%OÔPÜ	�Š˜Ÿ™Õ	%ÜÔ Ø×!Ñ!Ó#‰ˆØ! SÓ(Ð(Ñ(÷ 
&×	%Ö	%ús   Á%BÂ
BÚLinuxzCompiler and 3.12 requiredc           	      óP  • Sn[        XS9nUR                  nUR                  [        SSU SU 3R	                  5       5        [
        R                  " UR                  5         [        5         U R                  5       u  pgSU;   d   e SSS5        UR                  [        SSS	/5        [
        R                  " UR                  5         [        5         U R                  5       u  pgS
U;   d   e SSS5        SnUR                  [        SSU SU S3R	                  5       5        [
        R                  " UR                  5         [        5         U R                  5       u  pgSU;   d   e SSS5        g! , (       d  f       Nò= f! , (       d  f       Nœ= f! , (       d  f       g= f)ziCheck that no distutils imports are performed on 3.12
CLI :: --fcompiler --help-link --backend distutils
Úhir_   rG   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   rJ   rK   rL   r   rM   rN   r   rh   r   )rR   r5   rS   ÚMNAMEra   rT   rk   rl   s           r   Ú!test_no_py312_distutils_fcompilerr„   ì   sf  € ð
 €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$   Á#%E5Ã
%FÅ%FÅ5
FÆ
FÆ
F%c                 óÆ  • [        USS9nUR                  nSnSnUR                  [        SSU SU 3R	                  5       5        [
        R                  " UR                  5         [        5         U R                  5       u  pxUR	                  5        H  n	SU	 S	3U;   a  M   e   UR	                  5        H  n
S
U
 S3U;   a  M   e   SSS5        g! , (       d  f       g= f)z1Tests that functions can be skipped
CLI :: skip:
r^   r_   út0 t4 t8 sd s8 s4útd s0rG   r`   z -m test skip: z=buildmodule: Could not found the body of interfaced routine "ú". Skipping.úConstructing wrapper function "Ú"N©
r!   r   rJ   rK   rL   r   rM   rN   r   rh   )rR   r@   rS   ra   rT   ÚtoskipÚ	remainingrk   rw   Ú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ñ &÷ 
&×	%Ö	%úó   Á&8CÂ"CÃCÃ
C c                 óÆ  • [        USS9nUR                  nSnSnUR                  [        SSU SU 3R	                  5       5        [
        R                  " UR                  5         [        5         U R                  5       u  pxUR	                  5        H  n	SU	 S	3U;   a  M   e   UR	                  5        H  n
S
U
 S3U;   a  M   e   SSS5        g! , (       d  f       g= f)z6Test that functions can be kept by only:
CLI :: only:
r^   r_   r†   r‡   rG   r`   z -m test only: ú<buildmodule: Could not find the body of interfaced routine "rˆ   r‰   rŠ   Nr‹   )rR   r@   rS   ra   rT   rŒ   Útokeeprk   rw   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                 óì  • [        USS9nUR                  nSn[        U5      nSnSn	UR                  [        SSU SU	 S	U S
U 3R                  5       5        [        R                  " UR                  5         [        5         U R                  5       u  p«UR                  5        H  nSU S3U;   a  M   e   UR                  5        H  nSU S3U
;   a  M   e   SSS5        g! , (       d  f       g= f)zZTests that it is possible to return to file processing mode
CLI :: :
BUG: numpy-gh #20520
r^   r_   r†   ztd s0 hiÚblahrG   r`   ú -m z only: z : r“   rˆ   r‰   rŠ   N)r!   r   r   rJ   rK   rL   r   rM   rN   r   rh   )rR   r5   r@   rS   ra   rT   rŒ   Úipath2r”   r   rk   rw   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   Á98C%Â5C%ÃC%Ã%
C3c                 ó¬  • Sn[        XS9nUR                  nUR                  [        SSU SU 3R	                  5       5        [
        R                  " UR                  5         [        5         SSS5        [        R                  " UR                  5      (       d   e[        R                  " UR                  5      (       d   eg! , (       d  f       N]= f)z@Checks the generation of files based on a module name
CLI :: -m
r€   r_   rG   r`   r˜   N)r!   r   rJ   rK   rL   r   rM   rN   r   r   ri   r   r   )rR   r5   rS   rƒ   ra   rT   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           	      óª  • Sn[        XS9nUR                  nUR                  [        SSU SU S3R	                  5       5        [
        R                  " UR                  5         [        5         [        S5      R                  5        nUR                  5       nSU;   d   e S	S	S	5        S	S	S	5        g	! , (       d  f       N= f! , (       d  f       g	= f)
zuCheck that pyf files are correctly generated with module structure
CLI :: -m <name> -h pyf_file
BUG: numpy-gh #20520
r€   r_   rG   r`   r˜   z
 -h hi.pyfzhi.pyfzpython module hiN)r!   r   rJ   rK   rL   r   rM   rN   r   r   ÚopenÚread)rR   r=   rS   rƒ   ra   rT   Ú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ÂB3Â"CÂ3
C	Â=CÃ
Cc                 ó(  • [        USS9nUR                  n[        R                  " S5      n[        R                  " S5      nUR	                  [
        SSU S3R                  5       5        [        R                  " UR                  5         [        5         U R                  5       u  pxUR                  U5      c   eUR                  U5      b   e SSS5        UR	                  [
        SSU S	3R                  5       5        [        R                  " UR                  5         [        5         U R                  5       u  pxUR                  U5      b   eUR                  U5      c   e SSS5        g! , (       d  f       N¦= f! , (       d  f       g= f)
z@Lowers cases by flag or when -h is present

CLI :: --[no-]lower
r^   r_   zHI\(\)zhi\(\)rG   r`   z -m test --lowerNz -m test --no-lower)r!   r   ÚreÚcompilerJ   rK   rL   r   rM   rN   r   rh   Úsearch©	rR   r=   rS   ra   rT   ÚcapshiÚcapslork   rl   s	            r   Útest_lower_cmodrª   z  sB  € ô
 ˜°Ñ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E2Ä#AFÅ2
F Æ
Fc           	      ó\  • [        USS9nUR                  n[        R                  " S5      n[        R                  " S5      nUR	                  [
        SSU SUR                   S3R                  5       5        [        R                  " UR                  5         [        5         U R                  5       u  pxUR                  U5      c   eUR                  U5      b   e S	S	S	5        UR	                  [
        SSU SUR                   S
3R                  5       5        [        R                  " UR                  5         [        5         U R                  5       u  pxUR                  U5      b   eUR                  U5      c   e S	S	S	5        g	! , (       d  f       N³= f! , (       d  f       g	= f)zVLowers cases in signature files by flag or when -h is present

CLI :: --[no-]lower -h
r^   r_   z	Block: HIz	Block: hirG   r`   z -h z -m test --overwrite-signatureNz) -m test --overwrite-signature --no-lower)r!   r   r¤   r¥   rJ   rK   r   rL   r   rM   rN   r   rh   r¦   r§   s	            r   Útest_lower_sigr¬   ”  s`  € ô
 ˜°Ñ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FÆ
FÆ
F+c           
      óD  • [        U5      nSnSnUR                  [        SSU SU SU 3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pgSU S3U;   d   e S	S	S	5        g	! , (       d  f       g	= f)
zFEnsures that the build directory can be specified

CLI :: --build-dir
r—   ÚtttmprG   úf2py -m re   z --build-dir zWrote C/API module "rŠ   Nro   )rR   r5   rS   rT   r   Úodirrk   rl   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                 ó\  • [        U5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        S5      R                  SSS9  [        5         U R                  5       u  pESU;   d   e S	S	S	5        g	! , (       d  f       g	= f)
zPEnsures that the build directory can be specified

CLI :: --overwrite-signature
rG   rs   z --overwrite-signaturert   ru   r)   r*   rf   N)
r   rJ   rK   rL   r   rM   rN   r0   r   rh   rp   s         r   Útest_overwriter³   Ì  s‘   € ô
 �Ó!€EØ×ÑÜˆVØ
˜U˜GÐ#9Ð:×@Ñ@ÓBôDô 
�Š˜Ÿ™Õ	%Üˆ[Ó×$Ñ$ [¸7Ð$ÑCÜŒ	Ø×!Ñ!Ó#‰ˆØ*¨cÓ1Ð1Ñ1÷	 
&×	%Ö	%ús   Á>BÂ
B+c           	      óÌ  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;   d   e[        U S35      R                  5        nSUR                  5       ;   d   e S	S	S	5        S	S	S	5        g	! , (       d  f       N= f! , (       d  f       g	= f)
zBEnsures that TeX documentation is written out

CLI :: --latex-doc
r—   rG   r¯   re   z --latex-docúDocumentation is saved to fileú
module.texú\documentclassN©r   rJ   rK   rL   r   rM   rN   r   rh   rž   rŸ   ©rR   r5   rS   rT   r   rk   rl   Ú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Â3CÃ
C	ÃCÃ
C#c           	      ó4  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;  d   e SSS5        g! , (       d  f       g= f)zEEnsures that TeX documentation is written out

CLI :: --no-latex-doc
r—   rG   r¯   re   z --no-latex-docrµ   Nro   ©rR   r5   rS   rT   r   rk   rl   s          r   Útest_nolatexdocr¾   ï  s‚   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°ÐA×GÑGÓIôKô 
�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ/°sÓ:Ð:Ñ:÷ 
&×	%Ö	%úó   Á%B	Â	
Bc           	      óÎ  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;   d   e[        SU S35      R                  5        nS	UR                  5       ;  d   e S
S
S
5        S
S
S
5        g
! , (       d  f       N= f! , (       d  f       g
= f)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—   rG   r¯   re   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°DØ$¨D¯I©I«KÓ7Ð7Ñ7÷ 1÷	 
&Ð	%÷ 1Õ0ú÷	 
&Õ	%úó%   ÁACÂCÂ4CÃ
C	ÃCÃ
C$c           	      óÎ  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;   d   e[        SU S35      R                  5        nS	UR                  5       ;   d   e S
S
S
5        S
S
S
5        g
! , (       d  f       N= f! , (       d  f       g
= f)zAEnsures that RsT documentation is written out

CLI :: --rest-doc
r—   rG   r¯   re   z --rest-docú#ReST Documentation is saved to filerÁ   zmodule.restz.. -*- rest -*-Nr¸   )rR   r5   rS   rT   r   rk   rl   Úorsts           r   Útest_restdocrÇ     sÅ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð=×CÑCÓEôGô 
�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ4¸Ó;Ð;Ð;Ü�B�u�g˜[Ð)Ó*×/Ñ/Ô1°TØ%¨¯©«Ó4Ð4Ñ4÷ 2÷	 
&Ð	%÷ 2Õ1ú÷	 
&Õ	%úrÃ   c           	      ó4  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;  d   e SSS5        g! , (       d  f       g= f)zDEnsures that TeX documentation is written out

CLI :: --no-rest-doc
r—   rG   r¯   re   z --no-rest-docrÅ   Nro   r½   s          r   Útest_norestexdocrÉ   '  s‚   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'°Ð@×FÑFÓHôJô 
�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ4¸CÓ?Ð?Ñ?÷ 
&×	%Ö	%úr¿   c           	      óš  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         [        SU S35      R                  5        nSUR                  5       ;   d   e S	S	S	5        S	S	S	5        g	! , (       d  f       N= f! , (       d  f       g	= f)
zAEnsures that debugging wrappers are written

CLI :: --debug-capi
r—   rG   r¯   re   z --debug-capirÁ   r   z#define DEBUGCFUNCSN©
r   rJ   rK   rL   r   rM   rN   r   rž   rŸ   )rR   r5   rS   rT   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$   Á(B<ÂB+ÂB<Â+
B9	Â5B<Â<
C
z2Consistently fails on CI; noisy so skip not xfail.c           	      óò  • [        U 5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         [        R                  " [        R                   S35      n[        R                  " USSS	9nS
n[        R                  " S5      nUR                  U:X  d   eUR                  U:X  d   e SSS5        g! , (       d  f       g= f)z=Ensures that debugging wrappers work

CLI :: --debug-capi -c
r—   rG   r¯   re   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   rJ   rK   rL   r   rM   rN   r   ÚshlexÚ
executableÚ
subprocessÚrunÚtextwrapÚdedentÚstdoutÚstderr)r5   rS   rT   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C(Ã(
C6c           	      óF  • [        U5      nSnUR                  [        SSU SU 3R                  5       5        [        R
                  " UR                  5         [        5         SSS5        U R                  5       u  pVSU;   d   eUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;   d   e SSS5        g! , (       d  f       N£= f! , (       d  f       g= f)zgEnsures that fortran subroutine wrappers for F77 are included by default

CLI :: --[no]-wrap-functions
r—   rG   r¯   re   Nú Fortran 77 wrappers are saved toz --wrap-functionsro   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Ä
D c           	      ó4  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pVSU;  d   e SSS5        g! , (       d  f       g= f)z]Ensures that fortran subroutine wrappers for F77 can be disabled

CLI :: --no-wrap-functions
r—   rG   r¯   re   z --no-wrap-functionsrâ   Nro   r½   s          r   Útest_nowrapfuncrå   ~  sƒ   € ô
 �Ó!€EØ€EØ×Ñœ˜VØ" 5 '¨¨5¨'Ð1EÐF×LÑLÓNôPô 
�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ2¸#Ó=Ð=Ñ=÷ 
&×	%Ö	%úr¿   c           	      ó®  • [        U5      nSnUR                  [        SSU SU S3R                  5       5        [        R
                  " UR                  5         [        5         [        SU S35      R                  5        nUR                  5       nSU;   d   eS	U;   d   e S
S
S
5        S
S
S
5        g
! , (       d  f       N= f! , (       d  f       g
= f)zWAdd to the include directories

CLI :: -include
TODO: Document this in the help string
r—   rG   r¯   re   z' -include<stdbool.h> -include<stdio.h> rÁ   r   z#include <stdbool.h>z#include <stdio.h>NrË   )rR   r5   rS   rT   r   rÌ   Úocmrs          r   Útest_inclheaderrè   Ž  s¸   € ô �Ó!€EØ€EØ×ÑÜØØ
�5�'˜˜5˜'Ð!HÐIß‰‹ô	ô 
�Š˜Ÿ™Õ	%ÜŒ	Ü�B�u�g˜XÐ&Ó'×,Ñ,Ô.°%Ø—:‘:“<ˆDØ)¨TÓ1Ð1Ð1Ø'¨4Ó/Ð/Ñ/÷ /÷ 
&Ð	%ç.Õ.ú÷ 
&Õ	%ús$   Á(CÂ!B5Â$CÂ5
C	Â?CÃ
Cc                  ó   • g)z7Add to the include directories

CLI :: --include-paths
Nr   r   r   r   Útest_inclpathrê   ¥  ó   € ð 	r   c                  ó   • g)z3Add to the include directories

CLI :: --help-link
Nr   r   r   r   Ú
test_hlinkrí   ®  rë   r   c                 ój  • [        U5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pESU;   d   eSU;   d   eSU;   d   eSU;   d   eSU;   d   e S	S	S	5        g	! , (       d  f       g	= f)
zGCheck that Fortran-to-Python KIND specs can be passed

CLI :: --f2cmap
rG   rH   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 changesNro   )rR   rE   rS   rT   rk   rl   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B$Â$
B2c                 ó<  • [        U5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pE[        U5      S:X  d   e SSS5        g! , (       d  f       g= f)z!Reduce verbosity

CLI :: --quiet
rG   rH   z --quietr   N)
r   rJ   rK   rL   r   rM   rN   r   rh   Úlenrp   s         r   Ú
test_quietrò   É  ss   € ô
 �Ó!€EØ×Ñœ˜V }°U°G¸8Ð%D×%JÑ%JÓ%LÔMä	�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆÜ�3‹x˜1‹}Ð‰}÷ 
&×	%Ö	%ús   Á.BÂ
Bc                 ó*  • [        U5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         U R                  5       u  pESU;   d   e SSS5        g! , (       d  f       g= f)z%Increase verbosity

CLI :: --verbose
rG   rH   z
 --verboseÚanalyzelineNro   rp   s         r   Útest_verboserõ   ×  sq   € ô
 �Ó!€EØ×Ñœ˜V }°U°G¸:Ð%F×%LÑ%LÓ%NÔOä	�Š˜Ÿ™Õ	%ÜŒ	Ø×!Ñ!Ó#‰ˆØ Ó#Ð#Ñ#÷ 
&×	%Ö	%ús   Á%BÂ
Bc                 ó   • UR                  [        SSS/5        [        R                  " [        5         [        5         U R                  5       u  p#SSKnUR                  UR                  5       :X  d   e SSS5        g! , (       d  f       g= f)zEnsure version

CLI :: -v
rG   r�   z-vr   N)
rJ   rK   r   rZ   rv   r   rh   ÚnumpyÚ__version__Ústrip)rR   rS   rk   rl   Únps        r   Útest_versionrû   å  sb   € ð
 ×Ñœ˜V f¨d ^Ô4ä	�Š”zÕ	"ÜŒ	Ø×!Ñ!Ó#‰ˆÛØ�~‰~ §¡£Ó,Ð,Ñ,÷	 
#×	"Ö	"ús   ´AA?Á?
Bc                 ó˜  • [        U 5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         [        R                  " [        R                   S35      n[        R                  " USSS9nSnUR                  U:X  d   e S	S	S	5        g	! , (       d  f       g	= f)
z
CLI :: -c
rG   rH   z -crÏ   TrÐ   rÑ   rÓ   N)r   rJ   rK   rL   r   rM   rN   r   rÔ   rÕ   rÖ   r×   rÚ   )r5   rS   rT   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B;Â;
C	z*Compiler and Python 3.12 or newer requiredc                 ó&  • [        U 5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         [        R                   S3n[        (       a  US-  nOUS-  n[        R                  " U5      n[        R                  " USSS	9nS
nUR                  U:X  d   e[        (       a  SUR                  ;   d   eUR                  S:X  d   e SSS5        g! , (       d  f       g= f)z&
CLI :: --no-freethreading-compatible
rG   rH   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'r   N©r   rJ   rK   rL   r   rM   rN   r   rÕ   r   rÔ   rÖ   r×   rÚ   rÛ   Ú
returncode©r5   rS   rT   Ú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c                 ó  • [        U 5      nUR                  [        SSU S3R                  5       5        [        R
                  " UR                  5         [        5         [        R                   S3n[        (       a  US-  nOUS-  n[        R                  " U5      n[        R                  " USSS	9nS
nUR                  U:X  d   eUR                  S:X  d   eUR                  S:X  d   e SSS5        g! , (       d  f       g= f)z#
CLI :: --freethreading_compatible
rG   rH   z -c --freethreading-compatiblerÿ   z2import sys; assert sys._is_gil_enabled() is False"rŠ   TrÐ   rÑ   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C7Ã7
Dc                  ó   • g)z
CLI :: -c --fcompiler
Nr   r   r   r   Útest_npd_fcompilerr	  7  ó   € ð
 	r   c                  ó   • g)z
CLI :: -c --compiler
Nr   r   r   r   Útest_npd_compilerr  ?  r
  r   c                  ó   • g)z
CLI :: -c --help-fcompiler
Nr   r   r   r   Útest_npd_help_fcompilerr  G  r
  r   c                  ó   • g)z
CLI :: -c --f77exec
Nr   r   r   r   Útest_npd_f77execr  O  r
  r   c                  ó   • g)z
CLI :: -c --f90exec
Nr   r   r   r   Útest_npd_f90execr  W  r
  r   c                  ó   • g)z
CLI :: -c --f77flags
Nr   r   r   r   Útest_npd_f77flagsr  _  r
  r   c                  ó   • g)z
CLI :: -c --f90flags
Nr   r   r   r   Útest_npd_f90flagsr  g  r
  r   c                  ó   • g)z
CLI :: -c --opt
Nr   r   r   r   Útest_npd_optr  o  r
  r   c                  ó   • g)z
CLI :: -c --arch
Nr   r   r   r   Útest_npd_archr  w  r
  r   c                  ó   • g)z
CLI :: -c --noopt
Nr   r   r   r   Útest_npd_nooptr    r
  r   c                  ó   • g)z
CLI :: -c --noarch
Nr   r   r   r   Útest_npd_noarchr  ‡  r
  r   c                  ó   • g)z
CLI :: -c --debug
Nr   r   r   r   Útest_npd_debugr   �  r
  r   c                  ó   • g)z
CLI :: -c --link-<resource>
Nr   r   r   r   Útest_npd_link_autor"  —  r
  r   c                  ó   • g)z'
CLI :: -c -L/path/to/lib/ -l<libname>
Nr   r   r   r   Útest_npd_libr$  Ÿ  r
  r   c                  ó   • g)z
CLI :: -D<define>
Nr   r   r   r   Útest_npd_definer&  §  r
  r   c                  ó   • g)z
CLI :: -U<name>
Nr   r   r   r   Útest_npd_undefiner(  ¯  r
  r   c                  ó   • g)z
CLI :: -I/path/to/include/
Nr   r   r   r   Útest_npd_inclr*  ·  r
  r   c                  ó   • g)z0
CLI :: <filename>.o <filename>.so <filename>.a
Nr   r   r   r   Útest_npd_linkerr,  ¿  r
  r   )Úuntitled)XÚplatformr¤   rÔ   rÖ   rK   rØ   Úcollectionsr   Úpathlibr   r   Únumpy.f2py.f2py2er   r   Únumpy.testing._private.utilsr   r  r   r   r   r!   Úfixturer5   r8   r:   r=   r@   rE   rW   r\   rc   rm   rq   rx   ÚmarkÚskipifÚversion_infor}   Ú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   Ú<module>r9     se  ðÛ Û 	Û Û Û 
Û Ý "Ý ã å -Ý 4å òñ 
�HÐHÓ	I€ôðN ‡‚�iÑ ñó !ðð ‡‚�iÑ ñó !ðð ‡‚�iÑ ñó !ðð ‡‚�iÑ ñó !ðð ‡‚�iÑ ñó !ðð ‡‚�iÑ ñó !ðò1ò&	ò
:ò)ò
,òCð ‡�×Ñ�C×$Ñ$¨Ñ/Ð8NÐÐOñ
)ó Pð
)ð ‡�×Ñ�X—_’_Ó&¨'Ñ1×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ò.	ò	òIò$ò$ò-ð ‡�×ÑÐMÐÐNñ#ó Oð#ð ‡�×Ñ�X—_’_Ó&¨'Ñ1×Q°c×6FÑ6FÈ'Ñ6QØGð ð Iñ$óIð$ð. ‡�×Ñ�X—_’_Ó&¨'Ñ1×Q°c×6FÑ6FÈ'Ñ6QØGð ð Iñ$óIð$ò2	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ò	ó	r   