+
    /ip              
          ^ 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t ^ RItRt^ RIHt ^ RIHtHtHtHtHtHtHtHt ^ RIHt ^ R	IHt ^ R
IH t   ^ RI!H"t" Rt# ^ RI%t%Rt&R t(R t)]PT                  ! RRR7      R 4       t+]&'       g   ]PT                  R 4       t,0 RImt-]P\                  ! ]R]P^                  P`                  R7      .t1]2! 4       t3]2! 4       t4]'       Ed    ^ RI5t5]1Pm                  ]P\                  ! ]5R]P^                  P`                  R7      4       ] Pn                  ! ]5Pp                  4      ] Pr                  ! R4      8  d	   ]! R4      h]5Pt                  ! RR7        ^ RI;t;]1Pm                  ]P\                  ! ];R]P^                  P`                  R7      4       ];Px                  ! ]4       ]R8w  d   ]3P{                  R4       ]P|                  ! RRR 7      t?]?R8X  d   ];P                  ! ];P                  4       M]?R!8w  d   ]B! R"]? R#24      h  ^ RICtC]1Pm                  ]P\                  ! ]CR]P^                  P`                  R7      4       ]3P{                  R4       ]P                  ! R$R%]ER&7       ^ R'IFHGtG AG ^ RIHtI]1Pm                  ]P\                  ! ]IP                  R]P^                  P`                  ]P^                  P                  .R7      4       ]IP                  P                  R(R4       ]IP                  P                  R)]IP                  ! ]4      ^ ,          4       ]R8w  d   ]3P{                  R4       ]4P{                  R4        ^ RINHOtP ]1Pm                  ]P\                  ! ]PR]P^                  P`                  ]P^                  P                  .R7      4       ]4P{                  R4       ]1 U u0 uF  q P                  kK  	  up tR]R]-,
          '       d   Q h]S! ]]T4      '       d{   ]P                  ! 4       RJ9  de   ]2! ] P                  ! ]4      4      tW]WR*08w  dE   ]W]R,
          '       d   R+]R R,]W 2tX]B! ]X4      h]1 Uu. uF  pVP                  ]W9   g   K  VNK  	  upt1]PT                  ! ]1R-7      R. 4       tY]P^                  P                  ]R/R07      t[R1 t\R2 R3 lt]]PT                  R4 4       tM]'       d   ]P                  P                  ]P                  P                  ]P                  ! 4       R54      4       ]P                  P                  R6RRR77       ]P                  P                  R8RRRR]e! ]P                  4      R97       ]P                  P                  R:R84      ti]P                  P                  ]i4       ]#'       d   ]RKR; l4       tk]k]"nl        ]2! . RLO4      ]"nm        ]Pp                  R<8  d$   ]"P                  P                  ]2! . RMO4      4       . RNO]"nn        R=R>R?R>R@RARBRCRDRE/]"no        ]2! RF.4      ]"np        RG. ROO/]"nq        R]"nr        ]"P                  P{                  RH4       R# R#   ] d    Rt EL5i ; i  ]$ d    Rt# ELi ; i  ]' d    Rt& ELi ; i  ] d     ELi ; i  ] d     ELzi ; i  ] d     ELi ; i  ] d     ELWi ; i  ] d     ELi ; iu up i u upi )P    N)contextmanager)LiteralTF)get_fpu_mode)SCIPY_ARRAY_APISCIPY_DEVICEarray_namespace
default_xpis_cupyis_daskis_jaxis_torch)FPUModeChangeWarning)patch_lazy_xp_functions)_pep440)	dt_configc                   V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4       V P                  RR4        ^ RIp ^ RIHp \
        '       g7   V P                  RR
4       V P                  RR4       V P                  RR4       \        P                  R8X  d2   \        P                  R8  d   \        P                  ! RRR7       R# R# R#   \         d    T P                  RR4        Li ; i  \         d    T P                  RR	4        Li ; i)a  
Add pytest markers to avoid PytestUnknownMarkWarning

This needs to contain all markers that are SciPy-specific, as well as
dummy fallbacks for markers defined in optional test packages.

Note that we need both the registration here *and* in `pytest.ini`.
markerszslow: Tests that are very slow.zHxslow: mark test as extremely slow (not run unless explicitly requested)z8xfail_on_32bit: mark test as failing on 32-bit platformsz;array_api_backends: test iterates on all array API backendsNz.timeout: mark a test for a non-default timeout)parse_durationz8fail_slow: mark a test for a non-default timeout failurezUparallel_threads_limit(n): run the given test function in parallel using `n` threads.z8thread_unsafe: mark the test function as single-threadedzCiterations(n): run the given test function `n` times in each threadposix
forkserverT)forcezskip_xp_backends(backends, reason=None, np_only=False, cpu_only=False, eager_only=False, exceptions=None): mark the desired skip configuration for the `skip_xp_backends` fixturezxfail_xp_backends(backends, reason=None, np_only=False, cpu_only=False, eager_only=False, exceptions=None): mark the desired xfail configuration for the `xfail_xp_backends` fixture)      )addinivalue_linepytest_timeout	Exceptionpytest_fail_slowr   PARALLEL_RUN_AVAILABLEosnamesysversion_infomultiprocessingset_start_method)configr   r   s   &  L/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/conftest.pypytest_configurer'   )   sa    I)+
IRT
IBD
IEG
I
.0 I
/1
IS 	4
 "!!	" 	F	
 	Q	

 
ww'c..8 	((TB	 93  IG	II  SQ	SSs$   .D 3D& D#"D#&EEc                 
   V P                  R 4      pVeI    \        \        P                  P	                  RR4      4      pV'       g   \        P                  ! R4       V P                  R4      pVeP   \        P                  ! ^ 4      P                  ^8  d+   \        P                  ! RVP                  ^ ,           24       \        P                  ! 4       ;_uu_ 4        \        P                  ! R\        P                   4        ^ R	IHp R
pV'       dw    \        \        P                  R,          4      p\        P*                  ! R4      '       g:   \        P,                  ! 4       ^,          p\/        Ye,          ^4      p X! TRR7       RRR4       R#   \
         d    Rp ELfi ; i  \&         d    Rp Li ; i  \(         d     RRR4       R# i ; i  \&         d     RRR4       R# i ; i  + '       g   i     R# ; i)xslowNSCIPY_XSLOW0Fz@very slow test; set environment variable SCIPY_XSLOW=1 to run itxfail_on_32bitz&Fails on our 32-bit test platform(s): ignore)threadpool_limitsTPYTEST_XDIST_WORKER_COUNTOMP_NUM_THREADSblas)user_api)get_closest_markerintr   environget
ValueErrorpytestskipnpintpitemsizexfailargswarningscatch_warningssimplefilter PytestUnraisableExceptionWarningthreadpoolctlr.   r   KeyErrorgetenv	cpu_countmax)itemmarkvr.   HAS_THREADPOOLCTLxdist_worker_countmax_openmp_threadsthreads_per_workers   &       r&   pytest_runtest_setuprO   e   s   ""7+D	BJJNN=#67A KK K L""#34DBGGAJ//!3=diil^LM 
	 	 	"	"h(O(OP	&7 $
 
%(4O)P%Q"
 99.//%'\\^q%8"%();)QST%U"%&86J5 
#	"  	A	$  	& %	&  ) 
#	"$ !  = 
#	"67 
#	"	"s   )F &G1F*G1 F=7G1.G1
GF'&F'*F:7G19F::G1=GG1GG1G."G1-G..G11H	function)scopeautousec              #     "   \        4       pRx  \        4       pW8w  d)   \        P                  ! RVR RVR R2\        ^ R7       R# R# 5i)z1
Check FPU mode was not changed during the test.
NzFPU mode changed from z#xz to z during the test)category
stacklevel)r   r?   warnr   )requestold_modenew_modes   &  r&   check_fpu_moderZ      sQ     
 ~H	~H.xm4} M! !3	C s   A	Ac                      ^# )    r]       r&   num_parallel_threadsr_      s    r^   numpyarray_api_stricttorchcupy	jax.numpy
dask.array)idmarksz2.3z'array-api-strict must be >= version 2.3z2024.12)api_versioncpuSCIPY_DEFAULT_DTYPEfloat64)defaultfloat32zUSCIPY_DEFAULT_DTYPE env var, if set, can only be either 'float64' or 'float32'. Got 'z
' instead.r-   z#cupyx.jit.rawkernel is experimentalrT   )signaljax_enable_x64jax_default_deviceallz!'--array-api-backend' must be in z; got )paramsc           	   #    "   \        V R4       \        V R4       V P                  p\        VP                  ^ 4      4      p\        '       dJ   \        W P                  R7      ;_uu_ 4        \        V4      ;_uu_ 4        Vx  RRR4       RRR4       R# Vx  R#   + '       g   i     L ; i  + '       g   i     R# ; i5i)a  Run the test that uses this fixture on each available array API library.

You can select all and only the tests that use the `xp` fixture by
passing `-m array_api_backends` to pytest.

You can select where individual tests run through the `@skip_xp_backends`,
`@xfail_xp_backends`, and `@skip_xp_invalid_arg` pytest markers.

Please read: https://docs.scipy.org/doc/scipy/dev/api-dev/array_api.html#adding-tests
r9   r=   rW   xpN)skip_or_xfail_xp_backendsparamr   emptyr   r   r	   ru   s   & r&   rv   rv   &  s      gv. gw/	B	!	%B %WGG
 B   HG    HGGs6   A)C+B/?B	B/CB,'B//C 	:	CzsTest involves masked arrays, object arrays, or other types that are not valid input when `SCIPY_ARRAY_API` is used.reasonc           	        \        V P                  P                  V R24      4      p\         Uu/ uF  q3. bK  	  ppV EF  p\	        VP
                  4      0 Rm,
          pV'       d   \        RV 24      h\	        VP
                  P                  R. 4      4      pV\        ,
          p\        V\        ,
          4      ;p'       d   \        RV R	\        \        4       24      hVP
                  P                  RR
4      '       db   VP
                  P                  R4      ;'       g    Rp	VP                  4        F'  w  r:VR8w  g   K  W79  g   K  V
P                  V	4       K)  	  MVP
                  P                  RR
4      '       dR   VP
                  P                  R4      ;'       g    Rp	\        V,
           F  pWC,          P                  V	4       K  	  MrVP
                  P                  RR
4      '       dQ   VP
                  P                  R4      ;'       g    Rp	\        V,
           F  pWC,          P                  V	4       K  	  \        VP                  4      ^8X  d   VP                  ^ ,          pV\        9  d   \        RV R\        \        4       24      hVP
                  P                  R4      ;'       g    RV 2p	WC,          P                  ^ V	4       R F#  pWP
                  9   g   K  \        V RV 24      h	  EK  \        VP                  4      ^8  g   EK  \        RVP                   24      h	  VP                  4        UU
u/ uF  w  r:V
'       g   K  W:^ ,          bK  	  up
p# u upi u up
pi )zlA helper for {skip,xfail}_xp_backends.

Return dict of {backend to skip/xfail: top reason to skip/xfail it}
_xp_backendscpu_onlynp_only
eager_onlyr{   
exceptionszInvalid kwargs: zUnknown backend(s): z; must be a subset of Fz"do not run with non-NumPy backendsr`   zTno array-agnostic implementation or delegation available for this backend and devicez*eager checks not executed on lazy backendszUnknown backend: z; must be one of z#do not run with array API backend: z is mutually exclusive with z,Please specify only one backend per marker: >   r{   r   r~   r   r   )r~   r   r   r   )listnodeiter_markersxp_known_backendssetkwargs	TypeErrorr6   r7   itemsappendxp_skip_cpu_only_backendsxp_skip_eager_only_backendslenr>   insert)rW   skip_or_xfailr   backendreasonsmarkerinvalid_kwargsr   invalid_exceptionsr{   backend_reasonskwargs   &&          r&   _backends_kwargs_from_requestr   P  sG   
 7<<,,l-KLMG*;<*;w{*;G<V]]+ /I I.~.>?@@**<<=
'*;;"&z4E'E"FFF34F3G H4489J4K3LN O O ==Y..]]&&x0XX4XF,3MMO(g%'*C#**62 -< ]]z511]]&&x0 / /.  5zAA ''/ B ]]|U33]]&&x0 > >< 6CC ''/ D v{{q kk!nG// #4WI >3378I3J2K"M N N]]&&x0 A A5gY?  ##Av.LMM)$w.J7)%TUU M !>v{{mL a j -4MMO ,;( (GQ'',;   m =l s   M;N *N c                V    V ^8  d   QhR\         P                  R\        R,          RR/# )   rW   r   returnN)r9   r=   )r8   FixtureRequestr   )formats   "r&   __annotate__r     s.     ;% ;%v'<'< ;%-4_-E;%JN;%r^   c                    V R2V P                   9  d   R# \        WR7      pV P                  pVP                  V9   d8   W#P                  ,          pV'       g   Q h\	        \
        V4      pV! VR7       R# R# )a  
Helper of the `xp` fixture.
Skip or xfail based on the ``skip_xp_backends`` or ``xfail_xp_backends`` markers.

See the "Support for the array API standard" docs page for usage examples.

Usage
-----
::
    skip_xp_backends = pytest.mark.skip_xp_backends
    xfail_xp_backends = pytest.mark.xfail_xp_backends
    ...

    @skip_xp_backends(backend, *, reason=None)
    @skip_xp_backends(*, cpu_only=True, exceptions=(), reason=None)
    @skip_xp_backends(*, eager_only=True, exceptions=(), reason=None)
    @skip_xp_backends(*, np_only=True, exceptions=(), reason=None)

    @xfail_xp_backends(backend, *, reason=None)
    @xfail_xp_backends(*, cpu_only=True, exceptions=(), reason=None)
    @xfail_xp_backends(*, eager_only=True, exceptions=(), reason=None)
    @xfail_xp_backends(*, np_only=True, exceptions=(), reason=None)

Parameters
----------
backend : str, optional
    Backend to skip/xfail, e.g. ``"torch"``.
    Mutually exclusive with ``cpu_only``, ``eager_only``, and ``np_only``.
cpu_only : bool, optional
    When ``True``, the test is skipped/xfailed on non-CPU devices,
    minus exceptions. Mutually exclusive with ``backend``.
eager_only : bool, optional
    When ``True``, the test is skipped/xfailed for lazy backends, e.g. those
    with major caveats when invoking ``__array__``, ``__bool__``, ``__float__``,
    or ``__complex__``, minus exceptions. Mutually exclusive with ``backend``.
np_only : bool, optional
    When ``True``, the test is skipped/xfailed for all backends other
    than the default NumPy backend and the exceptions.
    Mutually exclusive with ``backend``. Implies ``cpu_only`` and ``eager_only``.
reason : str, optional
    A reason for the skip/xfail. If omitted, a default reason is used.
exceptions : list[str], optional
    A list of exceptions for use with ``cpu_only``, ``eager_only``, or ``np_only``.
    This should be provided when delegation is implemented for some,
    but not all, non-CPU/non-NumPy backends.
r}   N)r   rz   )keywordsr   rx   __name__getattrr8   )rW   r   skip_xfail_reasonsrv   r{   s   &&   r&   rw   rw     so    ` %W-=-==6 
B	{{((#KK0v6V$	 )r^   c                   \        V 4      '       d   \        P                  ! RR7       \        V 4      '       d   RR.# \	        V 4      '       d   \        P                  ! RR7       \        V 4      '       d(   V P                  4       P                  4       pR V 4       # V P                  4       P                  4       R.,           # )aG  Fixture that returns a list of all devices for the backend, plus None.
Used to test input->output device propagation.

Usage
-----
from scipy._lib._array_api import xp_device

def test_device(xp, devices):
    for d in devices:
        x = xp.asarray(..., device=d)
        y = f(x)
        assert xp_device(y) == xp_device(x)
zdata-apis/array-api-compat#293rz   ri   Nzjax-ml/jax#26000c              3   J   "   T F  qP                   R 8w  g   K  Vx  K  	  R# 5i)metaN)type).0devices   & r&   	<genexpr>devices.<locals>.<genexpr>  s     FW6v0EWs   #
#)r
   r8   r=   r   r   r   __array_namespace_info__devices)rv   r   s   & r&   r   r     s     r{{ 	<=r{{t}bzz 	./||--/779FWFF&&(002dV;;r^   z.hypothesisnondeterministic)r    deadline
print_blobdeterministic)r    r   r   databasederandomizesuppress_health_checkSCIPY_HYPOTHESIS_PROFILEc           
   #  .  "   \        4       pRR.pV F  p\        \        RR7      W&   K  	  . pV F  p\        \        R7      W&   K  	  ^ RIHp RR.pV F  p\        VP
                  R	R7      W&   K  	  . ROpV F  p\        \        R7      W&   K  	  R
\        \        RR7      R\        R\        R7      R\        RVP
                  R7      /pVP                  V4       \        R4      p	^ RI
Hp
 ^ RIpV
! 4       ;_uu_ 4        VP                  P                  R4       \        P                   ! 4       ;_uu_ 4        V '       d=   V P"                  V9   d,   \        P$                  ! R/ WP"                  ,          B  Rx  MYV '       d   V P"                  V	9   d   Rx  M;\        P&                  ! R\(        4       \        P$                  ! RR\        4       Rx  RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i5i)z]Temporarily turn (almost) all warnings to errors.

Filter out known warnings which we allow.
zscipy.linalg.normzscipy.ndimage.center_of_masszdivide by zero)rT   messagern   )	integratezscipy.special.ellip_normalzscipy.special.ellip_harm_2zThe occurrence of roundoffscipy.sparse.linalg.normzExited at iterationz
linalg.rstzthe matrix subclass is not)r   rT   z	stats.rstz"The maximum number of subdivisionsscipy.signal.normalize)_fixed_default_rngNr-   errorz.*odr.*)zscipy.stats.anderson_ksampzscipy.stats.kurtosistestzscipy.stats.normaltestr   )r-   )dictRuntimeWarningDeprecationWarningscipyr   IntegrationWarningUserWarningPendingDeprecationWarningupdater   scipy._lib._utilr   r`   randomseedr?   r@   r    filterwarningsrA   Warning)testknown_warningsdivide_by_zeror    
deprecatedr   integration_wuser_wdctlegitr   r:   s   &           r&   warnings_errors_and_rngr     s       !?
 #D#'0@$BN  #
 
D#'1C#DN   	$55
 "D#'1M1M0L$NN  "
HD#'#=N  
 'k3HI979A'::<

 	c" ,- 	8!!IINN4 ((**DII7++Ryy8QRdii50))'7;++HiAST + "!** "!!s>   DH9H>AG.	AG.	H$
H.G>9HH		H2zND_regular_grid.rstzReST parser limitationzextrapolation_examples.rstzsampling_pinv.rstz__cinit__ unexpected argumentzsampling_srou.rstznan in scalar_powerzprobability_distributions.rstzintegration warningzintegrate.nquad(func,zio.rstz.text(>   rc   r`   rb   ra   rd   re   )1truerr   )N)zscipy.linalg.LinAlgErrorzscipy.fftpack.fftshiftzscipy.fftpack.ifftshiftzscipy.fftpack.fftfreqzscipy.special.sinczscipy.optimize.show_optionsr   r   z$scipy.io.matlab.MatlabObject.stridesz"scipy.io.matlab.MatlabObject.dtypez"scipy.io.matlab.MatlabOpaque.dtypez$scipy.io.matlab.MatlabOpaque.stridesz&scipy.io.matlab.MatlabFunction.stridesz$scipy.io.matlab.MatlabFunction.dtype)zscipy.io.hb_readzscipy.io.hb_writez)scipy.sparse.csgraph.connected_componentsz&scipy.sparse.csgraph.depth_first_orderz"scipy.sparse.csgraph.shortest_pathz#scipy.sparse.csgraph.floyd_warshallzscipy.sparse.csgraph.dijkstraz!scipy.sparse.csgraph.bellman_fordzscipy.sparse.csgraph.johnsonzscipy.sparse.csgraph.yenz(scipy.sparse.csgraph.breadth_first_orderz*scipy.sparse.csgraph.reverse_cuthill_mckeez$scipy.sparse.csgraph.structural_rankz*scipy.sparse.csgraph.construct_dist_matrixz%scipy.sparse.csgraph.reconstruct_pathzscipy.ndimage.value_indiceszscipy.stats.mstats.describe)zscipy.stats.distributionszscipy.optimize.cython_optimizez
scipy.testzscipy.show_configzscipy/special/_precomputez#scipy/interpolate/_interpnd_info.pyz'scipy/interpolate/_rbfinterp_pythran.pyzscipy/_build_utils/tempita.pyzscipy/_lib/array_api_compatzscipy/_lib/highszscipy/_lib/unuranzscipy/_lib/_gcutils.pyzscipy/_lib/doccer.pyzscipy/_lib/_uarrayz+scipy/linalg/_cython_signature_generator.pyzscipy/linalg/_generate_pyx.pyzscipy/linalg/_linalg_pythran.pyz$scipy/linalg/_matfuncs_sqrtm_triu.pyz1scipy/ndimage/utils/generate_label_testvectors.pyz scipy/optimize/_group_columns.pyz$scipy/optimize/_max_len_seq_inner.pyz"scipy/signal/_max_len_seq_inner.pyz%scipy/sparse/_generate_sparsetools.pyzscipy/special/_generate_pyx.pyzscipy/stats/_stats_pythran.py)zoctave_a.matzoctave_cells.matzoctave_struct.mat)tjsonr#   r   r!   r?   tempfile
contextlibr   typingr   r`   r:   r8   
hypothesishypothesis_availableImportErrorscipy._lib._fpumoder   scipy._lib._array_apir   r   r   r	   r
   r   r   r   scipy._lib._testutilsr   "scipy._lib.array_api_extra.testingr   
scipy._libr   scipy_doctest.conftestr   
HAVE_SCPDTModuleNotFoundErrorpytest_run_parallelr   r   r'   rO   fixturerZ   r_   r   rx   rI   array_api_backendsxp_available_backendsr   r   r   ra   r   parse__version__Versionset_array_api_strict_flagsrb   set_default_deviceaddrE   rl   set_default_dtyperk   r7   rc   r   FutureWarningcupyx.scipyro   	jax.numpyjaxthread_unsafer%   r   r   
dask.arrayarraydarf   xp_available_backend_ids
isinstancestrlowerloadsSCIPY_ARRAY_API_msgrv   skipifskip_xp_invalid_argr   rw   configurationset_hypothesis_home_dirpathjoin
gettempdirsettingsregister_profiler   HealthCheckr5   r6   r   load_profiler   user_context_mgrskiplistpytest_extra_ignorepytest_extra_xfail
pseudocodelocal_resourcesstrict_check	stopwords)prx   s   00r&   <module>r     s     	 
   %   ! -   7 F 0J#!
9Cx.b j$/C 0C ^^ 
#  LLv{{'E'EF   E !e ?$$LL).@%{{==?	@ ==)5569OOGHH33!	
$$LL7++002	3 	  .5 %))'2 ))19Ei##EMM2	!%%,IZ9  " 	$$LL&++002	3 	"%%f- 	;m	
 	'$$LL{;;11;;,,./	0 	

*D1

.L0I!0LM5 %))+6 	$''4$$LL;;11;;,,./	0 	$''5 /DD.C.CD'*;;;;; 	?C((!!#+??tzz/:;w&"::::236:J9KM o% $9%#8%88// #8%! ,-! .!H kk((I ) K 
> B;%| #< #<L  44
X((*M: (($4 )  (($4":#9#9: )   "zz~~.H.= ?$$%=>  I IV "9I  I( 
~~!!# ' # 	,%I!> 	7$&><2')>$I   789I 
!I "I H%] K  ! !  J  #"#v  *  $  &  (    E%s   Y !Y- *Y= 0BZ 9BZ Z ,A)Z) CZ7 +A%[ [$[<[	Y*)Y*-	Y:9Y:=	Z
	Z
ZZZ&%Z&)Z43Z47[[[[