Ë
    Ð[;j_s  ã            
       ó  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
Zd dlZ	 d dlZdZd dlmZ d dlmZmZmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lm Z  	 d dl!m"Z" dZ#	 d dl%Z%dZ&d„ Z(d„ Z) ejT                  dd¬«      d„ «       Z+e&sejT                  d„ «       Z,h d£Z- ej\                  edej^                  j`                  ¬«      gZ1 e2«       Z3 e2«       Z4e�r`	 d dl5Z5e1jm                   ej\                  e5dej^                  j`                  ¬«      «        e jn                  e5jp                  «       e jr                  d«      k  r ed«      ‚ e5jt                  d¬«       	 d dl;Z;e1jm                   ej\                  e;dej^                  j`                  ¬«      «        e;jx                  e«       edk7  re3j{                  d«        ej|                  dd¬«      Z?e?dk(  r e;j€                  e;j‚                  «       ne?dk7  r eBd e?› d!�«      ‚	 d dlCZCe1jm                   ej\                  eCd"ej^                  j`                  ¬«      «       e3j{                  d"«        ejˆ                  d#d$eE¬%«       d d&lFmGZG [G	 d dlHZIe1jm                   ej\                  eIj                  d'ej^                  j`                  ej^                  j”                  g¬«      «       eIj–                  j™                  d(d«       eIj–                  j™                  d) eIjš                  e«      d    «       edk7  re3j{                  d'«       e4j{                  d'«       	 d dlNmOZP e1jm                   ej\                  ePd*ej^                  j`                  ej^                  j”                  g¬«      «       e4j{                  d*«       e1D � ch c]  } | j¢                  ’Œ c} ZReRe-z
  rJ ‚ eSeeT«      rd ejª                  «       d+vrQ e2 e j¬                  e«      «      ZWeWd,hk7  r3eWeRz
  rd-eR› d.eW› �ZX eBeX«      ‚e1D �cg c]  }|j¢                  eWv r|‘Œ c}Z1 ejT                  e1¬/«      d0„ «       ZYej^                  jµ                  ed1¬2«      Z[d3„ Z\d4ejº                  d5e	d6   d7dfd8„Z^ejT                  d9„ «       ZMerÊej¾                  jÁ                  ejÂ                  jÅ                   ejÆ                  «       d:«      «       ejÈ                  jË                  d;dd¬<«       ejÈ                  jË                  d=dddd efejÎ                  «      ¬>«       ejÐ                  jÓ                  d?d=«      ZjejÈ                  j×                  ej«       e#r£edNd@„«       Zlele"_m         e2g dA¢«      e"_n        ejp                  dBk  r#e"jÜ                  j™                   e2g dC¢«      «       g dD¢e"_o        dEdEdFdGdHdIœe"_p         e2dJg«      e"_q        dKg dL¢ie"_r        de"_s        e"jè                  j{                  dM«       yy# e$ r dZY �Œíw xY w# e$$ r dZ#Y �ŒÆw xY w# e'$ r dZ&Y �ŒÍw xY w# e$ r Y �Œßw xY w# e$ r Y �Œ?w xY w# e$ r Y �Œáw xY w# e$ r Y �Œw xY w# e$ r Y �ŒÄw xY wc c} w c c}w )Oé    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                 ón  — | j                  dd«       | j                  dd«       | j                  dd«       | j                  dd«       | j                  dd«       | j                  dd«       	 dd	l}	 ddlm} t
        s6| j                  dd«       | j                  dd«       | j                  dd«       t        j                  dk(  r,t        j                  dk  rt        j                  dd¬«       y	y	y	# t        $ r | j                  dd
«       Y Œ w xY w# t        $ r | j                  dd«       Y Œºw xY w)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 backendsz±skip_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` fixturez´xfail_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` fixturer   Nz.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)Úforce)Úaddinivalue_lineÚpytest_timeoutÚ	ExceptionÚpytest_fail_slowr   ÚPARALLEL_RUN_AVAILABLEÚosÚnameÚsysÚversion_infoÚmultiprocessingÚset_start_method)Úconfigr   r   s      úWG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\scipy/conftest.pyÚpytest_configurer'   )   s^  € ð ×Ñ˜IØ)ô+à
×Ñ˜IØRôTà
×Ñ˜IØBôDà
×Ñ˜IØEôGà
×Ñ˜Ið
.ô0ð ×Ñ˜Ið
/ô1ð
IÛðSõ 	4õ
 "Ø×ÑØð!ô	"ð 	×ÑØØFô	
ð 	×ÑØØQô	
ô
 
‡w�w�'Òœc×.Ñ.°Ò8ô 	×(Ñ(¨¸TÖBð	 9Ðøô3 ò IØ×ÑØÐGö	IðIûô ò SØ×ÑØÐQö	SðSús$   Á.C5 Á3D Ã5DÄDÄD4Ä3D4c                 óx  — | j                  d«      }|�A	 t        t        j                  j	                  dd«      «      }|st        j                  d«       | j                  d«      }|�Gt        j                  d«      j                  dk  r%t        j                  d	|j                  d   › �«       t        j                  «       5  t        j                  d
t        j                   «       	 ddlm} d}|rc	 t        t        j                  d   «      }t        j*                  d«      s1t        j,                  «       dz  }t/        ||z  d«      }	  |d¬«       d d d «       y # t
        $ r d}Y �Œ/w xY w# t&        $ r d}Y Œ�w xY w# t(        $ r Y d d d «       y w xY w# t&        $ r Y d d d «       y w xY w# 1 sw Y   y xY w)NÚxslowÚSCIPY_XSLOWÚ0Fz@very slow test; set environment variable SCIPY_XSLOW=1 to run itÚxfail_on_32bitr   é   z&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_setuprR   e   s¡  € Ø×"Ñ" 7Ó+€DØÐð	Ü”B—J‘J—N‘N =°#Ó6Ó7ˆAñ Ü�K‰Kð Kô Là×"Ñ"Ð#3Ó4€DØÐœBŸG™G A›J×/Ñ/°!Ò3Ü�‰Ð=¸d¿i¹iÈ¹l¸^ÐLÔMô 
×	 Ñ	 Õ	"Ü×Ñ˜h¬×(OÑ(OÔPð	&Ý7à $Ðñ
 ð
Ü%(¬¯©Ð4OÑ)PÓ%QÐ"ô
 —9‘9Ð.Ô/Ü%'§\¡\£^°qÑ%8Ð"Ü%(Ð);Ð?QÑ)QÐSTÓ%UÐ"ðÙ%Ð&8À6ÕJ÷5 
#Ð	"øô ò 	Ø‹Að	ûô$ ò 	&à %Òð	&ûô ò à÷) 
#Ð	"ð$ûô !ò ð ÷= 
#Ð	"ð6ú÷7 
#Ð	"úsƒ   •)E Ã%F0Ã)E1Ã1F0Ã4FÄ;F0Å
FÅE.Å-E.Å1E?Å<F0Å>E?Å?F0Æ	FÆF0ÆFÆF0Æ	F-Æ"F0Æ,F-Æ-F0Æ0F9Úfunction)ÚscopeÚautousec              #   ó’   K  — t        «       }d–— t        «       }||k7  r&t        j                  d|d›d|d›d�t        d¬«       yy­w)z9
    Check FPU mode was not changed during the test.
    NzFPU mode changed from z#xz to z during the testr   )ÚcategoryÚ
stacklevel)r   rB   Úwarnr   )ÚrequestÚold_modeÚnew_modes      r&   Úcheck_fpu_moder]   –   sT   è ø€ ô
 ‹~€HÛ	Ü‹~€Hà�8ÒÜ�‰Ð.¨x¸¨m¸4ÀÈ¸}ð M!ð !ä3Àö	Cð ùs   ‚AAc                   ó   — y)Nr3   © r_   ó    r&   Únum_parallel_threadsra   ¦   s   € àr`   >   ÚcupyÚnumpyÚtorchÚarray_api_strictú	jax.numpyú
dask.arrayrc   )ÚidÚmarksre   z2.3z'array-api-strict must be >= version 2.3z2024.12)Úapi_versionrd   ÚcpuÚSCIPY_DEFAULT_DTYPEÚfloat64)ÚdefaultÚfloat32zUSCIPY_DEFAULT_DTYPE env var, if set, can only be either 'float64' or 'float32'. Got 'z
' instead.rb   r.   z#cupyx.jit.rawkernel is experimental©rW   )Úsignalrf   Újax_enable_x64Újax_default_devicerg   )Ú1ÚtrueÚallrv   z!'--array-api-backend' must be in z; got )Úparamsc              #   ó>  K  — t        | d«       t        | d«       | j                  }t        |j                  d«      «      }t        r9t        | | j                  ¬«      5  t        |«      5  |–— ddd«       ddd«       y|–— y# 1 sw Y   ŒxY w# 1 sw Y   yxY w­w)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
    r<   r@   r   ©rZ   ÚxpN)Úskip_or_xfail_xp_backendsÚparamr   Úemptyr   r   r	   ry   s     r&   rz   rz   &  s€   è ø€ ô ˜g vÔ.ô ˜g wÔ/à	�‰€Bä	˜Ÿ™ !›Ó	%€Båô %¨W¸¿¹ÖGô
 ˜B•Ø’÷  ÷ HÐGð ‹÷  �ú÷ HÐGüs6   ‚ABÁBÁ*BÁ/BÁ7BÂB	Â
BÂBÂBzsTest involves masked arrays, object arrays, or other types that are not valid input when `SCIPY_ARRAY_API` is used.©Úreasonc           	      ó  — t        | j                  j                  |› d�«      «      }t        D �ci c]  }|g “Œ }}|D �]“  }t	        |j
                  «      h d£z
  }|rt        d|› �«      ‚t	        |j
                  j                  dg «      «      }|t        z
  }t        |t        z
  «      x}rt        d|› dt        t        «      › �«      ‚|j
                  j                  dd«      rT|j
                  j                  d	«      xs d
}	|j                  «       D ]!  \  }}
|dk7  sŒ||vsŒ|
j                  |	«       Œ# n»|j
                  j                  dd«      rB|j
                  j                  d	«      xs d}	t        |z
  D ]  }||   j                  |	«       Œ n]|j
                  j                  dd«      rA|j
                  j                  d	«      xs d}	t        |z
  D ]  }||   j                  |	«       Œ t        |j                  «      dk(  r“|j                  d   }|t        vrt        d|› dt        t        «      › �«      ‚|j
                  j                  d	«      xs d|› �}	||   j                  d|	«       dD ]   }||j
                  v sŒt        |› d|› �«      ‚ �Œdt        |j                  «      dkD  s�Œ~t        d|j                  › �«      ‚ |j                  «       D ��
ci c]  \  }}
|
r||
d   “Œ c}
}S c c}w c c}
}w )ztA helper for {skip,xfail}_xp_backends.

    Return dict of {backend to skip/xfail: top reason to skip/xfail it}
    Ú_xp_backends>   r   Únp_onlyÚcpu_onlyÚ
eager_onlyÚ
exceptionszInvalid kwargs: r…   zUnknown backend(s): z; must be a subset of r‚   Fr   z"do not run with non-NumPy backendsrc   rƒ   zTno array-agnostic implementation or delegation available for this backend and devicer„   z*eager checks not executed on lazy backendsr3   r   zUnknown backend: z; must be one of z#do not run with array API backend: )rƒ   r‚   r„   r…   z is mutually exclusive with z,Please specify only one backend per marker: )ÚlistÚnodeÚiter_markersÚxp_known_backendsÚsetÚkwargsÚ	TypeErrorr9   r:   ÚitemsÚappendÚxp_skip_cpu_only_backendsÚxp_skip_eager_only_backendsÚlenrA   Úinsert)rZ   Úskip_or_xfailr   ÚbackendÚreasonsÚmarkerÚinvalid_kwargsr…   Úinvalid_exceptionsr   Úbackend_reasonsÚkwargs               r&   Ú_backends_kwargs_from_requestr›   P  s5  € ô
 �7—<‘<×,Ñ,°¨¸lÐ-KÓLÓM€GÝ*;Ó<Ñ*;˜wˆw˜‰{Ð*;€GÐ<äˆÜ˜VŸ]™]Ó+ò /Iñ IˆáÜÐ.¨~Ð.>Ð?Ó@Ð@ä˜Ÿ™×*Ñ*¨<¸Ó<Ó=ˆ
Ø'Ô*;Ñ;ÐÜ"& zÔ4EÑ'EÓ"FÐFÐÐFÜÐ3Ð4FÐ3Gð H4Ü48Ô9JÓ4KÐ3LðNó Oð Oð �=‰=×Ñ˜Y¨Ô.Ø—]‘]×&Ñ& xÓ0ÒXÐ4XˆFØ,3¯M©M®OÑ(�˜Ø˜gÓ%¨'¸Ò*CØ#×*Ñ*¨6Õ2ñ -<ð �]‰]×Ñ˜z¨5Ô1Ø—]‘]×&Ñ& xÓ0ò /ð.ð ô 5°zÔA�Ø˜Ñ ×'Ñ'¨Õ/ñ Bð �]‰]×Ñ˜|¨UÔ3Ø—]‘]×&Ñ& xÓ0ò >Ø<ð ä6¸ÔC�Ø˜Ñ ×'Ñ'¨Õ/ð Dô ˆv�{‰{Ó˜qÒ Ø—k‘k !‘nˆGØÔ/Ñ/Ü Ð#4°W°Ið >3Ü37Ô8IÓ3JÐ2Kð"Mó Nð Nà—]‘]×&Ñ& xÓ0ò AØ5°g°YÐ?ð ð �GÑ×#Ñ# A vÔ.ãL�Ø˜FŸM™MÒ)Ü$¨ wÐ.JÈ7È)Ð%TÓUÐUò Mô �—‘Ó Ô!ÜØ>¸v¿{¹{¸mÐLóð ða ðj -4¯M©M¬Oô Ù,;Ñ(�˜Ùð �_ QÑ'Ñ'Ø,;ò ð  ùòm =ùól s   °
K>Ë(LrZ   r“   )r<   r@   Úreturnc                 óÐ   — |› d�| j                   vryt        | |¬«      }| j                  }|j                  |v r-||j                     }|sJ ‚t	        t
        |«      } ||¬«       yy)aP  
    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“   r~   )Úkeywordsr›   r|   Ú__name__Úgetattrr;   )rZ   r“   Úskip_xfail_reasonsrz   r   s        r&   r{   r{   ‘  ss   € ð` ˆ˜Ð%¨W×-=Ñ-=Ñ=Øä6Ø˜}ôÐð 
�‰€BØ	‡{�{Ð(Ñ(Ø# B§K¡KÑ0ˆÙˆˆvÜ¤¨Ó6ˆÙ˜VÖ$ð	 )r`   c                 óL  — t        | «      rt        j                  d¬«       t        | «      rddgS t	        | «      rt        j                  d¬«       t        | «      r'| j                  «       j                  «       }d„ |D «       S | j                  «       j                  «       dgz   S )ao  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#293r~   rk   Nzjax-ml/jax#26000c              3   ó@   K  — | ]  }|j                   d k7  sŒ|–— Œ y­w)ÚmetaN)Útype)Ú.0Údevices     r&   Ú	<genexpr>zdevices.<locals>.<genexpr>ñ  s   è ø€ ÐF¡W˜6°·±¸vÓ0E”¡Wùs   ‚—)r
   r;   r@   r   r   r   Ú__array_namespace_info__Údevices)rz   rª   s     r&   rª   rª   Ï  s‰   € ô ˆr„{ô 	�‰Ð<Õ=Üˆr„{à�tˆ}ÐÜˆb„zô 	�‰Ð.Õ/Ü�„|Ø×-Ñ-Ó/×7Ñ7Ó9ˆáF¡WÓFÐFà×&Ñ&Ó(×0Ñ0Ó2°d°VÑ;Ð;r`   z.hypothesisÚnondeterministic)r    ÚdeadlineÚ
print_blobÚdeterministic)r    r¬   r­   ÚdatabaseÚderandomizeÚsuppress_health_checkÚSCIPY_HYPOTHESIS_PROFILEc              #   ó°  K  — t        «       }ddg}|D ]  }t        t        d¬«      ||<   Œ g }|D ]  }t        t        ¬«      ||<   Œ ddlm} dd	g}|D ]  }t        |j
                  d
¬«      ||<   Œ g d¢}|D ]  }t        t        ¬«      ||<   Œ t        t        d¬«      t        dt        ¬«      t        d|j
                  ¬«      dœ}|j                  |«       t        d«      }	ddl
m}
 ddl} |
«       5  |j                  j                  d«       t        j                   «       5  | r5| j"                  |v r't        j$                  di || j"                     ¤Ž d–— nN| r| j"                  |	v rd–— n9t        j&                  dt(        «       t        j$                  ddt        «       d–— ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w­w)zmTemporarily 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)rW   Úmessagerp   r   )Ú	integratezscipy.special.ellip_normalzscipy.special.ellip_harm_2zThe occurrence of roundoff)zscipy.stats.anderson_ksampzscipy.stats.kurtosistestzscipy.stats.normaltestúscipy.sparse.linalg.normzExited at iterationzthe matrix subclass is not)r´   rW   z"The maximum number of subdivisions)r¶   z
linalg.rstz	stats.rstúscipy.signal.normalize)Ú_fixed_default_rngNr.   Úerrorz.*odr.*)r.   )ÚdictÚRuntimeWarningÚDeprecationWarningÚscipyrµ   ÚIntegrationWarningÚUserWarningÚPendingDeprecationWarningÚupdaterŠ   Úscipy._lib._utilr¸   rc   ÚrandomÚseedrB   rC   r    ÚfilterwarningsrD   Ú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˜4Ò ð #ð
 ˆ
ÛˆDÜ#'Ô1CÔ#DˆN˜4Ò ð õ 	$à5Ø5ð
ˆó "ˆDÜ#'°×1MÑ1MØ0Lô$NˆN˜4Ò ð "ò
HˆãˆDÜ#'´Ô#=ˆN˜4Ò ð ô œkÐ3HÔIô Ð9Ü7ô9ô ÐAØ'×:Ñ:ô<ñ

ˆð 	×Ñ˜cÔ"ô Ð,Ó-ˆõ 	8ÛÙÕ!Ø�I‰I�N‰N˜4Ô Ü×(Ñ(Õ*Ù˜DŸI™I¨Ñ7Ü×+Ñ+ÑR¸ÀtÇyÁyÑ8QÒRÜÙ˜dŸi™i¨5Ñ0Üä×)Ñ)¨'´7Ô;Ü×+Ñ+¨H°iÔASÔTÛ÷ +÷ "Ð!ç*Ð*ú÷ "Ð!üs7   ‚C5GÃ70G
Ä'BF>Æ-G
Æ5	GÆ>G	ÇG
Ç
GÇG)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Ú2)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.pyzReST parser limitationz__cinit__ unexpected argumentznan in scalar_powerzintegration warning)zND_regular_grid.rstzextrapolation_examples.rstzsampling_pinv.rstzsampling_srou.rstzprobability_distributions.rstzintegrate.nquad(func,zio.rst)zoctave_a.matzoctave_cells.matzoctave_struct.matz.text()N)uÚjsonr#   r   r!   rB   ÚtempfileÚ
contextlibr   Útypingr   rc   r=   r;   Ú
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'   rR   Úfixturer]   ra   r‰   r|   rL   Úarray_api_backendsÚxp_available_backendsrŠ   r�   r�   re   rŽ   ÚparseÚ__version__ÚVersionÚset_array_api_strict_flagsrd   Úset_default_deviceÚaddrH   rn   Úset_default_dtyperm   r:   rb   rÅ   ÚFutureWarningÚcupyx.scipyrq   Ú	jax.numpyÚjaxÚthread_unsafer%   rÁ   rª   Ú
dask.arrayÚarrayÚdarh   Úxp_available_backend_idsÚ
isinstanceÚstrÚlowerÚloadsÚSCIPY_ARRAY_API_Úmsgrz   ÚskipifÚskip_xp_invalid_argr›   ÚFixtureRequestr{   ÚconfigurationÚset_hypothesis_home_dirÚpathÚjoinÚ
gettempdirÚsettingsÚregister_profiler†   ÚHealthCheckr8   r9   r²   Úload_profilerÏ   Úuser_context_mgrÚskiplistÚpytest_extra_ignoreÚpytest_extra_xfailÚ
pseudocodeÚlocal_resourcesÚstrict_checkÚ	stopwords)Úpr|   s   00r&   Ú<module>r     s/  ðã Û Û 	Û 
Û Û Ý %Ý ã Û ð!ÛØÐõ -÷÷ ó õ 7Ý FÝ ðÝ0Ø€Jð#ÛØ!Ðò
9Còx.ðb €‡��j¨$Ô/ñCó 0ðCñ Ø‡^�^ñó ðò
#Ð ð €F‡L�L�˜ v§{¡{×'EÑ'EÔFðÐ ñ  ›EÐ Ù!›eÐ âðÛØ×$Ñ$ØˆF�L‰LÐ)Ð.@Ø%Ÿ{™{×=Ñ=ô?ô	@ð ˆ7�=‰=Ð)×5Ñ5Ó6¸¸¿¹ÈÓ9OÒOÙÐGÓHÐHØ3Ð×3Ñ3Ø!õ	
ðÛØ×$Ñ$ØˆF�L‰L˜ 7Ø—+‘+×0Ñ0ô2ô	3ð 	!ˆ× Ñ  Ô.Ø˜5Ò Ø%×)Ñ)¨'Ô2ð �"—)‘)Ð1¸9ÔEˆØ�iÒØ#ˆE×#Ñ# E§M¡MÕ2Ø˜	Ò!Ùð%Ø%, I¨Zð9óð ðÛð 	×$Ñ$ØˆF�L‰L˜ &Ø—+‘+×0Ñ0ô2ô	3ð 	"×%Ñ% fÔ-ð 	 ˆ×ÑØÐ;Àmõ	
õ 	'ØðÛà×$Ñ$ØˆF�L‰L˜Ÿ™ {Ø—;‘;×1Ñ1à—;‘;×,Ñ,ð.ô/ô	0ð 	�
‰
×ÑÐ*¨DÔ1Ø�
‰
×ÑÐ.°°·±¸LÓ0IÈ!Ñ0LÔMØ˜5Ò Ø%×)Ñ)¨+Ô6ð 	$×'Ñ'¨Ô4ðÝà×$Ñ$ØˆF�L‰L˜ Ø—;‘;×1Ñ1à—;‘;×,Ñ,ð.ô/ô	0ð 	$×'Ñ'¨Ô5ñ /DÓDÑ.C¨ §£Ð.CÑDÐØ'Ð*;Ò;Ð;Ð;ñ 	�? CÔ(Ø!ˆO×!Ñ!Ó#Ð+?Ñ?á˜z˜tŸz™z¨/Ó:Ó;ÐØ ˜wÒ&ØÐ":Ò:Ø:Ø2Ð3°6Ð:JÐ9KðM�á  “oÐ%ñ $9ó%Ù#8˜%Ø—8‘8Ð/Ñ/ò Ð#8ñ%Ð!ð €‡�Ð,Ô-ñ!ó .ð!ðH —k‘k×(Ñ(¨ðIð )ó KÐ ò
> ðB;% v×'<Ñ'<ð ;%Ø-4°_Ñ-Eð;%ØJNó;%ð| ‡�ñ#<ó ð#<ñL ð ×Ñ×4Ñ4Ø
�‰�‰Ð(�X×(Ñ(Ó*¨MÓ:ôð ×Ñ×(Ñ(Ø¨$¸4ð )ô ð ×Ñ×(Ñ(ØØ $°À4Ù" :×#9Ñ#9Ó:ð )ô ð  "Ÿz™zŸ~™~Ð.HØ.=ó ?Ðà×Ñ×$Ñ$Ð%=Ô>ñ ð òIó ðIðV "9€IÔÙò ó €IÔð( 
‡~�~˜ÒØ×Ñ×!Ñ!¡#ò 'ó #ô 	ò,%€IÔ!ð>  8Ø&>Ø<Ø2Ø)>ñ$€IÔ ñ Ð 7Ð8Ó9€IÔàò 
ð!€IÔð "€IÔð ×Ñ×Ñ˜HÕ%ð] øðK ò !Ø Óð!ûð ò ØƒJðûð ò #Ø"Óð#ûðv ò Úðûð* ò Úðûð$ ò Úðûð& ò Úðûð( ò Úðüò  Eùò%s    ®X Á!X% Á*X3 Ã$BY Å+B+Y ÈA)Y ÊCY% ÍA%Y1 Î9Y=Ð)ZØX"Ø!X"Ø%X0Ø/X0Ø3X>Ø=X>ÙY
Ù	Y
ÙYÙYÙY"Ù!Y"Ù%Y.Ù-Y.Ù1Y:Ù9Y: