+
    Y°³j>E  ã                   óÚ  € R t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIt^ RIt^ RIH	t	H
t
 ^ RIHt R t. RNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*NR+NR,NR-NR.NR/NR0NR1NR2NR3NR4NR5NR6NR7NR8NR9NR:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRtNRuNRvNRwNt]
'       d#   ]P                  R94       ]P                  R:4       Rx t. ROt]P$                  P'                  RyRz7      R{ 4       t. R€OtR| tR} t]P$                  P1                  R�. R‚NRƒNR„NR…NR†NR‡NRˆNR‰NRŠNR‹NRŒNR�NRŽNR�NR�NR‘NR’NR“NR”NR•NR–NR—NR˜NR™NRšNR›NRœNR�NRžNRŸNR NR¡NR¢NR£NR¤NR¥NR¦NR§NR¨NR©NRªNR«NR¬NR­NR®NR¯NR°NR±NR²NR³NR´NRµNR¶NR·NR¸NR¹NRºNR»NR¼NR½NR¾NR¿NRÀNRÁNRÂNRÃNRÄNRÅNRÆNRÇNRÈNRÉNRÊNRËNRÌNRÍNRÎNRÏNRÐNRÑNRÒNRÓNRÔNRÕNRÖNR×NRØNRÙNRÚNRÛNRÜNRÝNRÞNRßNRàNRáNRâNRãNRäNRåNRæNRçNRèNRéNRêNRëN4      R~ 4       tR# )ìzo
This test script is adopted from:
    https://github.com/numpy/numpy/blob/main/numpy/tests/test_public_api.py
N)Úimport_module)ÚPUBLIC_MODULESÚ_without_fortran©Úxp_available_backendsc                 ó‚   € \        \        \        4      4      \        \        \        \        4      4      4      8X  g   Q hR# )zSAssert that output of dir has only one "testing/tester"
attribute without duplicateN)ÚlenÚdirÚscipyÚset© ó    Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/scipy/_lib/tests/test_public_api.pyÚtest_dir_testingr      s'   € ô Œs”5‹z‹?œc¤#¤c¬%£j£/Ó2Ô2Ð2Ò2r   úscipy.constants.codataúscipy.constants.constantsúscipy.fftpack.basiczscipy.fftpack.convolveúscipy.fftpack.helperúscipy.fftpack.pseudo_diffsúscipy.fftpack.realtransformsúscipy.integrate.dopúscipy.integrate.odepackúscipy.integrate.quadpackúscipy.integrate.vodeúscipy.interpolate.dfitpackúscipy.interpolate.fitpackúscipy.interpolate.fitpack2úscipy.interpolate.interpndúscipy.interpolate.interpolateúscipy.interpolate.ndgriddataúscipy.interpolate.polyintúscipy.interpolate.rbfúscipy.io.arff.arffreadúscipy.io.harwell_boeingúscipy.io.idlúscipy.io.matlab.byteordercodesúscipy.io.matlab.mioúscipy.io.matlab.mio4úscipy.io.matlab.mio5úscipy.io.matlab.mio5_paramsúscipy.io.matlab.mio5_utilsúscipy.io.matlab.mio_utilsúscipy.io.matlab.miobaseúscipy.io.matlab.streamsúscipy.io.mmioúscipy.io.netcdfúscipy.linalg.basicúscipy.linalg.decompúscipy.linalg.decomp_choleskyúscipy.linalg.decomp_luúscipy.linalg.decomp_qrúscipy.linalg.decomp_schurúscipy.linalg.decomp_svdúscipy.linalg.matfuncsúscipy.linalg.miscúscipy.linalg.special_matricesú
scipy.misczscipy.misc.commonzscipy.misc.doccerúscipy.ndimage.filtersúscipy.ndimage.fourierúscipy.ndimage.interpolationúscipy.ndimage.measurementsúscipy.ndimage.morphologyzscipy.odr.modelszscipy.odr.odrpackúscipy.optimize.cobylazscipy.optimize.cython_optimizeúscipy.optimize.lbfgsbúscipy.optimize.linesearchúscipy.optimize.minpackúscipy.optimize.minpack2úscipy.optimize.moduleTNCúscipy.optimize.nonlinúscipy.optimize.optimizeúscipy.optimize.slsqpúscipy.optimize.tncúscipy.optimize.zerosúscipy.signal.bsplinesúscipy.signal.filter_designúscipy.signal.fir_filter_designúscipy.signal.lti_conversionúscipy.signal.ltisysúscipy.signal.signaltoolsúscipy.signal.spectralúscipy.signal.splineúscipy.signal.waveformsúscipy.signal.waveletsúscipy.signal.windows.windowsúscipy.sparse.baseúscipy.sparse.bsrúscipy.sparse.compressedúscipy.sparse.constructúscipy.sparse.cooúscipy.sparse.cscúscipy.sparse.csrúscipy.sparse.dataúscipy.sparse.diaúscipy.sparse.dokúscipy.sparse.extractúscipy.sparse.lilúscipy.sparse.linalg.dsolveúscipy.sparse.linalg.eigenúscipy.sparse.linalg.interfaceúscipy.sparse.linalg.isolveúscipy.sparse.linalg.matfuncsúscipy.sparse.sparsetoolsúscipy.sparse.spfuncsúscipy.sparse.sputilsúscipy.spatial.ckdtreeúscipy.spatial.kdtreeúscipy.spatial.qhullú scipy.spatial.transform.rotationúscipy.special.add_newdocsúscipy.special.basiczscipy.special.cython_specialúscipy.special.orthogonalúscipy.special.sf_errorúscipy.special.specfunúscipy.special.spfun_statsúscipy.stats.biasedurnúscipy.stats.kdeúscipy.stats.morestatsúscipy.stats.mstats_basicúscipy.stats.mstats_extrasúscipy.stats.mvnúscipy.stats.statsc                óh   € RV 9   g   RV 9   g   RV 9   d   R# V \         9   d   R# V \        9   d   R# R# )z%Check if this needs to be considered.z._z.testsz.setupFT)r   ÚPRIVATE_BUT_PRESENT_MODULES)Únames   &r   Úis_unexpectedr~   š   s4   € àˆt„|�x 4Ô'¨8°tÔ+;ÙàŒ~ÔÙàÔ*Ô*Ùár   z^crashes in pkgutil.walk_packages, see https://github.com/data-apis/array-api-compat/issues/343)Úreasonc                 óÔ  € R p . p\         P                  ! 4       ;_uu_ 4        \         P                  ! RR\        4       \        P
                  ! \        P                  \        P                  R,           V R7       F7  w  r#p\        V4      '       g   K  V\        9  g   K&  VP                  V4       K9  	  RRR4       V'       d   \        RV 24      hR#   + '       g   i     L(; i)zp
Test that we don't add anything that looks like a new public module by
accident.  Check is based on filenames.
c                 óT   € 0 RmpV F  pRV 2pW09   g   K  V\         9  g   K   R# 	  h )Úcupyzarray_api_compat.N>   r‚   Útorchú
dask.arrayr   )r}   ÚbackendsÚbackendÚpaths   &   r   Úignore_errorsÚ4test_all_modules_are_expected.<locals>.ignore_errors¾   s4   € ò
 3ˆÛˆGØ& w iÐ0ˆDØŽ| Ô/DÖ DÚñ  ð 	r   Úignorer:   Ú.)r‡   ÚprefixÚonerrorNzFound unexpected modules: )ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚpkgutilÚwalk_packagesr
   Ú__path__Ú__name__r~   Ú	SKIP_LISTÚappendÚAssertionError)rˆ   ÚmodnamesÚ_Úmodnames       r   Útest_all_modules_are_expectedrœ   µ   s­   € ò
ð €Hä	×	 Ò	 ×	"Õ	"Ü×Ò ¨,Ô8JÔKÜ$×2Ò2¼¿¹Ü:?¿.¹.È3Õ:NØ;H÷J‰MˆA˜ô ˜W×%Ô%¨'¼Ö*Bð —‘ Ö(ñJ÷ 
#÷ ÜÐ9¸(¸ÐDÓEÐEñ ÷ 
#×	"ús   £A-CÂCÂ"CÃC'	c                 ó:  € R p \         P                  ! 4       ;_uu_ 4        \         P                  ! RR\        4       V ! R4      pRRR4       \         F  pXP                  V ! V4      4       K  	  X'       d   \        RV 24      hR#   + '       g   i     LL; i)z“
Method checking all objects. The pkgutil-based method in
`test_all_modules_are_expected` does not catch imports into a namespace,
only filenames.
c                 ó¦  € . p\         P                  ! V 4      p\        VR 4      '       d   VP                  pM\	        V4      pV Fˆ  pVP                  R4      '       d   K  V R,           V,           p\        \        W$4      \        P                  4      '       g   KW  \        V4      '       g   Kj  V\        9  g   Kw  VP                  V4       KŠ  	  V# )Ú__all__rš   r‹   )Ú	importlibr   ÚhasattrrŸ   r	   Ú
startswithÚ
isinstanceÚgetattrÚtypesÚ
ModuleTyper~   ÚSKIP_LIST_2r—   )Úmod_nameÚmembersÚmoduleÚobjnamesÚobjnameÚfullobjnames   &     r   Úfind_unexpected_membersÚ@test_all_modules_are_expected_2.<locals>.find_unexpected_membersð   sœ   € ØˆÜ×(Ò(¨Ó2ˆÜ�6˜9×%Ò%Ø—~‘~‰Hä˜6“{ˆHãˆGØ×%Ñ% c×*Ô*Ø&¨�n¨wÕ6�Üœg fÓ6¼×8HÑ8H×IÔIÜ$ [×1Ô1°kÌÖ6TØŸ™ {Ö3ñ  ð ˆr   rŠ   r:   r
   Nz3Found unexpected object(s) that look like modules: )rŽ   r�   r�   r‘   r   Úextendr˜   )r®   Úunexpected_membersr›   s      r   Útest_all_modules_are_expected_2r²   é   s‹   € òô  
×	 Ò	 ×	"Õ	"Ü×Ò ¨<Ô9KÔLÙ4°WÓ=Ð÷ 
#÷ "ˆØ×!Ñ!Ñ"9¸'Ó"BÖCñ "÷ Üð )Ø);Ð(<ð>ó ?ð 	?ñ ÷ 
#×	"ús   ¡%B
Â
B	c                 ó  € R p . p\          F$  pV ! V4      '       d   K  VP                  V4       K&  	  V'       d   \        RV 24      h\        P                  ! RR7      ;_uu_ 4        \        P
                  ! R\        R7       \        P
                  ! R\        R7       \         F$  pV ! V4      '       d   K  VP                  V4       K&  	  RRR4       V'       d   \        RV 24      hR#   + '       g   i     L(; i)	zô
Check that all submodules listed higher up in this file can be imported
Note that if a PRIVATE_BUT_PRESENT_MODULES entry goes missing, it may
simply need to be removed from the list (deprecation may or may not be
needed - apply common sense).
c                 ód   €  \         P                  ! V 4       R#   \        \        3 d     R # i ; i)FT)r    r   ÚImportErrorÚAttributeError)Úmodule_names   &r   Úcheck_importableÚ-test_api_importable.<locals>.check_importable  s3   € ð	Ü×#Ò# KÔ0ñ øô œ^Ð,ô 	Úð	ús   ‚ š/®/z3Modules in the public API that cannot be imported: T)ÚrecordÚalways)ÚcategoryNzNModules that are not really public but looked public and can not be imported: )	r   r—   r˜   rŽ   r�   Úsimplefilterr‘   ÚImportWarningr|   )r¸   Úmodule_namesr·   s      r   Útest_api_importablerÀ     sÞ   € òð €Lß%ˆÙ ×,Ô,Ø×Ñ Ö,ñ &÷ Üð *Ø*6¨ð9ó :ð 	:ô 
×	 Ò	 ¨×	-Ö	-Ü×Ò˜hÔ1CÕDÜ×Ò˜h´Õ?ß6ˆKÙ# K×0Ô0Ø×#Ñ# KÖ0ñ 7÷ 
.÷ Üð @à ,˜~ð/ó 0ð 	0ñ ÷ 
.×	-ús   Á)AC0Â;C0Ã0D 	c                 ó:  € \        V 4      pVf   RV P                  R4      ^,           2pMRV P                  R4      ^,           RV 2p\        V4      pVP                   FO  p\        WER 4      f   Q hRV RV R2p\        P
                  ! VR7      ;_uu_ 4        \        W%4       R R R 4       KQ  	  RV  R2p\        P                  ! \        VR7      ;_uu_ 4        \        VR	4       R R R 4       R #   + '       g   i     K¥  ; i  + '       g   i     R # ; i)
Nzscipy.r‹   zPlease import `z` from the `z`...)ÚmatchÚ`z` is deprecated...Úekki)r   ÚsplitrŸ   r¤   ÚpytestÚdeprecated_callÚraisesr¶   )r·   Úcorrect_modulerª   Úimport_nameÚcorrect_importÚ	attr_nameÚmessages   &&     r   Ú$test_private_but_present_deprecationrÎ   1  s  € ô^ ˜;Ó'€FØÒØ˜{×0Ñ0°Ó5°aÕ8Ð9Ð:‰à˜{×0Ñ0°Ó5°aÕ8Ð9¸¸>Ð:JÐKˆä" ;Ó/€Nð —^”^ˆ	ä�~°$Ó7ÒCÐCÐCØ# I ;¨l¸;¸-ÀtÐLˆÜ×#Ò#¨'×2Ö2Ü�FÔ&÷ 3Ñ2ñ	 $ð �+�Ð0Ð1€GÜ	�Š”~¨W×	5Ö	5Ü�˜Ô÷ 
6Ñ	5÷ 3×2Ð2ú÷ 
6×	5Ð	5ús   ÂC5ÃD	Ã5DÄ	D	)zscipy.conftestzscipy.versionzscipy.special.libsf_error_stateúscipy.integrate.lsoda)z
scipy.charz	scipy.reczscipy.emathz
scipy.mathzscipy.randomzscipy.ctypeslibzscipy.marÏ   )r·   rÉ   )r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r   N)r    N)r!   N)r#   N)r$   N)r.   N)r/   N)r"   Úarff)r%   Úmatlab)r+   rÑ   )r&   rÑ   )r'   rÑ   )r)   rÑ   )r*   rÑ   )r(   rÑ   )r,   rÑ   )r-   rÑ   )r0   N)r1   N)r2   N)r3   N)r4   N)r5   N)r6   N)r7   N)r8   N)r9   N)r;   N)r<   N)r=   N)r>   N)r?   N)r@   N)rA   N)rB   N)rC   N)rD   N)rE   N)rF   N)rG   N)rH   N)rI   N)rJ   N)rK   N)rL   N)rM   N)rN   N)rO   N)rP   N)rQ   N)rR   N)rS   N)rT   N)rU   Úwindows)rV   N)rW   N)rX   N)rY   N)rZ   N)r[   N)r\   N)r]   N)r^   N)r_   N)r`   N)ra   N)rb   Úlinalg)rc   rÓ   )rd   rÓ   )re   rÓ   )rf   rÓ   )rg   N)rh   N)ri   N)rj   N)rk   N)rl   N)rm   Ú	transform)rn   N)ro   N)rp   N)rq   N)rr   N)rs   N)rt   N)ru   N)rv   N)rw   Úmstats)rx   rÕ   )ry   N)rz   N)Ú__doc__r’   r¥   r    rŽ   r   rÆ   r
   Úscipy._lib._public_apir   r   Úscipy.conftestr   r   r|   Úremover~   r–   ÚmarkÚthread_unsaferœ   r§   r²   rÀ   ÚparametrizerÎ   r   r   r   Ú<module>rÝ      s—  ðñó
 Û Û Û Ý #ã ã ç CÝ 0ò3ðsØðsàðsð ðsð ð	sð
 ðsð !ðsð #ðsð ðsð ðsð ðsð ðsð !ðsð  ðsð !ðsð !ðsð  $ð!sð" #ð#sð$  ð%sð& ð'sð( ð)sð* ð+sð, ð-sð. %ð/sð0 ð1sð2 ð3sð4 ð5sð6 "ð7sð8 !ð9sð:  ð;sð< ð=sð> ð?sð@ ðAsðB ðCsðD ðEsðF ðGsðH #ðIsðJ ðKsðL ðMsðN  ðOsðP ðQsðR ðSsðT ðUsðV $ðWsðX ðYsðZ ð[sð\ ð]sð^ ð_sð` ðasðb "ðcsðd !ðesðf ðgsðh ðisðj ðksðl ðmsðn %ðosðp ðqsðr  ðssðt ðusðv ðwsðx ðysðz ð{sð| ð}sð~ ðsð@ ðAsðB ðCsðD ðEsðF !ðGsðH %ðIsðJ "ðKsðL ðMsðN ðOsðP ðQsðR ðSsðT ðUsðV ðWsðX #ðYsðZ ð[sð\ ð]sð^ ð_sð` ðasðb ðcsðd ðesðf ðgsðh ðisðj ðksðl ðmsðn ðosðp ðqsðr !ðssðt  ðusðv $ðwsðx !ðysðz #ð{sð| ð}sð~ ðsð@ ðAsðB ðCsðD ðEsðF ðGsðH 'ðIsðJ  ðKsðL ðMsðN #ðOsðP ðQsðR ðSsðT ðUsðV  ðWsðX ðYsðZ ð[sð\ ð]sð^ ð_sð`  ðasðb ðcsðd ðesÐ ÷j Ø×&Ñ&Ð'9Ô:Ø×&Ñ&Ð':Ô;òò€	ð ‡�×ÑðGð ó Iñ FóIð FòJ	€ò ?òF"0ðJ ‡�×ÑÐ:ði7Ð:ð i7Ø=ði7à7ði7ð 9ði7ð ?ð	i7ð
 Aði7ð 8ði7ð <ði7ð =ði7ð 9ði7ð ?ði7ð >ði7ð ?ði7ð ?ði7ð Bði7ð Aði7ð  >ð!i7ð" :ð#i7ð$ <ð%i7ð& 1ð'i7ð( 2ð)i7ð* 4ð+i7ð, =ð-i7ð. Gð/i7ð0 Bð1i7ð2 <ð3i7ð4 =ð5i7ð6 Dð7i7ð8 Cð9i7ð: =ð;i7ð< @ð=i7ð> @ð?i7ð@ 7ðAi7ðB 8ðCi7ðD AðEi7ðF ;ðGi7ðH ;ðIi7ðJ >ðKi7ðL <ðMi7ðN :ðOi7ðP 6ðQi7ðR BðSi7ðT :ðUi7ðV :ðWi7ðX @ðYi7ðZ ?ð[i7ð\ =ð]i7ð^ :ð_i7ð` :ðai7ðb >ðci7ðd ;ðei7ðf <ðgi7ðh =ðii7ðj :ðki7ðl <ðmi7ðn 9ðoi7ðp 7ðqi7ðr 9ðsi7ðt :ðui7ðv ?ðwi7ðx Cðyi7ðz @ð{i7ð| 8ð}i7ð~ =ði7ð@ :ðAi7ðB 8ðCi7ðD ;ðEi7ðF :ðGi7ðH FðIi7ðJ 6ðKi7ðL 5ðMi7ðN <ðOi7ðP ;ðQi7ðR 5ðSi7ðT 5ðUi7ðV 5ðWi7ðX 6ðYi7ðZ 5ð[i7ð\ 5ð]i7ð^ 9ð_i7ð` 5ðai7ðb Cðci7ðd Bðei7ðf Fðgi7ðh Cðii7ðj Eðki7ðl =ðmi7ðn 9ðoi7ðp 9ðqi7ðr :ðsi7ðt 9ðui7ðv 8ðwi7ðx Lðyi7ðz >ð{i7ð| 8ð}i7ð~ =ði7ð@ ;ðAi7ðB :ðCi7ðD >ðEi7ðF :ðGi7ðH 4ðIi7ðJ :ðKi7ðL AðMi7ðN BðOi7ðP 4ðQi7ðR 6ðSi7ój8ñV óWj8òV r   