§
    fŠtj›p  ã            
       ó6  — 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n# e$ r dZY nw xY w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#n# e$$ r dZ#Y nw xY w	 d dl%Z%dZ&n# e'$ r dZ&Y nw xY wd„ Z(d„ Z) ej*        dd¬¦  «        d„ ¦   «         Z+e&sej*        d„ ¦   «         Z,h d£Z- ej.        edej/        j0        ¬¦  «        gZ1 e2¦   «         Z3 e2¦   «         Z4e�rG	 d dl5Z5e1 6                     ej.        e5dej/        j0        ¬¦  «        ¦  «          e j7        e5j8        ¦  «         e j9        d¦  «        k     r ed¦  «        ‚ e5j:        d¬¦  «         n# e$ r Y nw xY w	 d dl;Z;e1 6                     ej.        e;dej/        j0        ¬¦  «        ¦  «          e;j<        e¦  «         edk    re3 =                    d¦  «          ej>        dd¬¦  «        Z?e?dk    r e;j@        e;jA        ¦  «         ne?dk    r eBd e?› d!�¦  «        ‚n# e$ r Y nw xY w	 d dlCZCe1 6                     ej.        eCd"ej/        j0        ¬¦  «        ¦  «         e3 =                    d"¦  «          ejD        d#d$eE¬%¦  «         d d&lFmGZG [Gn# e$ r Y nw xY w	 d dlHZIe1 6                     ej.        eIj
        d'ej/        j0        ej/        jJ        g¬¦  «        ¦  «         eIjK         L                    d(d¦  «         eIjK         L                    d) eIjM        e¦  «        d          ¦  «         edk    re3 =                    d'¦  «         e4 =                    d'¦  «         n# e$ r Y nw xY w	 d dlNmOZP e1 6                     ej.        ePd*ej/        j0        ej/        jJ        g¬¦  «        ¦  «         e4 =                    d*¦  «         n# e$ r Y nw xY wd+„ e1D ¦   «         ZQeQe-z
  rJ ‚ eReeS¦  «        rU ejT        ¦   «         d,vrD e2 e jU        e¦  «        ¦  «        ZVeVd-hk    r$eVeQz
  rd.eQ› d/eV› �ZW eBeW¦  «        ‚d0„ e1D ¦   «         Z1 ej*        e1¬1¦  «        d2„ ¦   «         ZXej/         Y                    ed3¬4¦  «        ZZd5„ Z[d6ej\        d7e	d8         d9dfd:„Z]ej*        d;„ ¦   «         ZMerÀej^         _                    ej`         a                     ejb        ¦   «         d<¦  «        ¦  «         ejc         d                    d=dd¬>¦  «         ejc         d                    d?dddd eeejf        ¦  «        ¬@¦  «         ejg         h                    dAd?¦  «        Ziejc         j                    ei¦  «         e#rªedPdB„¦   «         Zkeke"_l         e2g dC¢¦  «        e"_m        ej8        dDk     r%e"jm         L                     e2g dE¢¦  «        ¦  «         g dF¢e"_n        dGdGdHdIdJdKœe"_o         e2dLg¦  «        e"_p        dMg dN¢ie"_q        de"_r        e"js         =                    dO¦  «         dS dS )Qé    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                 óÈ  — |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         |                       dd¦  «         	 dd	l}n&# t          $ r |                       dd
¦  «         Y nw xY w	 ddlm} n&# t          $ r |                       dd¦  «         Y nw xY wt
          sB|                       dd¦  «         |                       dd¦  «         |                       dd¦  «         t          j        dk    r(t          j	        dk     rt          j        dd¬¦  «         d	S d	S d	S )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      úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/conftest.pyÚpytest_configurer'   )   s=  € ð ×Ò˜IØ)ñ+ô +ð +à
×Ò˜IØRñTô Tð Tà
×Ò˜IØBñDô Dð Dà
×Ò˜IØEñGô Gð Gà
×Ò˜Ið
.ñ0ô 0ð 0ð ×Ò˜Ið
/ñ1ô 1ð 1ð
IØÐÐÐÐøÝð Ið Ið IØ×ÒØÐGñ	Iô 	Ið 	Ið 	Ið 	IðIøøøðSð 	4Ð3Ð3Ð3Ð3Ð3Ð3øÝð Sð Sð SØ×ÒØÐQñ	Sô 	Sð 	Sð 	Sð 	SðSøøøõ "ð 
Ø×ÒØð!ñ	"ô 	"ð 	"ð 	×ÒØØFñ	
ô 	
ð 	
ð 	×ÒØØQñ	
ô 	
ð 	
õ
 
„w�'ÒÐ�cÔ.°Ò8Ð8õ 	Ô(¨¸TÐBÑBÔBÐBÐBÐBð	 ÐÐ8Ð8s$   ÂB Â B.Â-B.Â2B9 Â9 CÃCc                 óª  — |                       d¦  «        }|�W	 t          t          j                             dd¦  «        ¦  «        }n# t
          $ r d}Y nw xY w|st          j        d¦  «         |                       d¦  «        }|�?t          j	        d¦  «        j
        dk     r"t          j        d	|j        d         › �¦  «         t          j        ¦   «         5  t          j        d
t          j        ¦  «         	 ddlm} d}n# t&          $ r d}Y nw xY w|r¥	 t          t          j        d         ¦  «        }n# t(          $ r Y d d d ¦  «         d S w xY wt          j        d¦  «        sTt          j        ¦   «         dz  }t/          ||z  d¦  «        }	  ||d¬¦  «         n# t&          $ r Y d d d ¦  «         d S w xY wd d d ¦  «         d S # 1 swxY w Y   d S )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—N’N =°#Ñ6Ô6Ñ7Ô7ˆAˆAøÝð 	ð 	ð 	ØˆAˆAˆAð	øøøàð 	LÝŒKð Kñ Lô Lð Là×"Ò"Ð#3Ñ4Ô4€DØÐ�BœG A™JœJÔ/°!Ò3Ð3ÝŒÐL¸d¼iÈ¼lÐLÐLÑMÔMÐMõ 
Ô	 Ñ	"Ô	"ð ð ÝÔ˜h­Ô(OÑPÔPÐPð	&Ø7Ð7Ð7Ð7Ð7Ð7à $ÐÐøÝð 	&ð 	&ð 	&à %ÐÐÐð	&øøøð ð 	ð
Ý%(­¬Ð4OÔ)PÑ%QÔ%QÐ"Ð"øÝð ð ð àð)ð ð ñ ô ð ð ð ð$øøøõ ”9Ð.Ñ/Ô/ð Ý%'¤\¡^¤^°qÑ%8Ð"Ý%(Ð);Ð?QÑ)QÐSTÑ%UÔ%UÐ"ðØ%Ð%Ð&8À6ÐJÑJÔJÐJÐJøÝ ð ð ð ð ð=ð ð ñ ô ð ð ð ð6øøøð7ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s�   ™-A ÁAÁAÃ GÃ9DÄGÄDÄGÄDÄGÄD7Ä6GÄ7
EÅGÅEÅA GÆFÆGÆ
F8Æ)GÆ7F8Æ8GÇGÇGÚfunction)ÚscopeÚautousec              #   ó¤   K  — t          ¦   «         }dV — t          ¦   «         }||k    r't          j        d|d›d|d›d�t          d¬¦  «         dS dS )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]   –   sŒ   è è € õ
 ‰~Œ~€HØ	€E€E€EÝ‰~Œ~€Hà�8ÒÐÝŒð !¨xÐUð !ð !ÀÐUð !ð !ð !å3Àð	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð Ðó    c                  ó   — dS )Nr3   © r`   r^   r&   Únum_parallel_threadsra   ¦   s   € àˆqr^   >   Ú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   c                 ó   — h | ]	}|j         ’Œ
S r`   )rh   )Ú.0Úps     r&   ú	<setcomp>rw     s   € ÐDÐDÐD¨ ¤ÐDÐDÐDr^   )Ú1ÚtrueÚallrz   z!'--array-api-backend' must be in z; got c                 ó.   — g | ]}|j         t          v ¯|‘ŒS r`   )rh   ÚSCIPY_ARRAY_API_)ru   Úparams     r&   ú
<listcomp>r~      s0   € ð %ð %ð %ØØ”8Õ/Ð/Ð/ð Ø/Ð/Ð/r^   )Úparamsc              #   ój  K  — t          | d¦  «         t          | d¦  «         | j        }t          |                     d¦  «        ¦  «        }t          r\t          | | j        ¬¦  «        5  t          |¦  «        5  |V — ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS |V — dS )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_backendsr}   r   Úemptyr   r   r	   r�   s     r&   r‚   r‚   &  sF  è è € õ ˜g vÑ.Ô.Ð.õ ˜g wÑ/Ô/Ð/à	Œ€Bå	˜Ÿš !™œÑ	%Ô	%€Båð õ %¨W¸¼ÐGÑGÔGð 	ð 	õ
 ˜B‘”ð ð Ø���ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð ˆˆˆˆˆs6   Á)B"Á9B
Á>B"Â
B	Â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                             |› d�¦  «        ¦  «        }d„ t          D ¦   «         }|D �]µ}t	          |j        ¦  «        h d£z
  }|rt          d|› �¦  «        ‚t	          |j                             dg ¦  «        ¦  «        }|t          z
  }t          |t          z
  ¦  «        x}r't          d|› dt          t          ¦  «        › �¦  «        ‚|j                             dd	¦  «        rV|j                             d
¦  «        pd}| 	                    ¦   «         D ]$\  }	}
|	dk    r|	|vr|
 
                    |¦  «         Œ%n¿|j                             dd	¦  «        rE|j                             d
¦  «        pd}t          |z
  D ]}	||	          
                    |¦  «         Œn_|j                             dd	¦  «        rD|j                             d
¦  «        pd}t          |z
  D ]}	||	          
                    |¦  «         Œt          |j        ¦  «        dk    rœ|j        d         }	|	t          vr't          d|	› dt          t          ¦  «        › �¦  «        ‚|j                             d
¦  «        pd|	› �}||	                              d|¦  «         dD ]}||j        v rt          |› d|	› �¦  «        ‚Œ �Œ†t          |j        ¦  «        dk    rt          d|j        › �¦  «        ‚�Œ·d„ | 	                    ¦   «         D ¦   «         S )ztA helper for {skip,xfail}_xp_backends.

    Return dict of {backend to skip/xfail: top reason to skip/xfail it}
    Ú_xp_backendsc                 ó   — i | ]}|g “ŒS r`   r`   )ru   Úbackends     r&   ú
<dictcomp>z1_backends_kwargs_from_request.<locals>.<dictcomp>V  s   € Ð<Ð<Ð<˜wˆw˜Ð<Ð<Ð<r^   >   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: c                 ó*   — i | ]\  }}|¯||d          “ŒS )r   r`   )ru   rŠ   Úbackend_reasonss      r&   r‹   z1_backends_kwargs_from_request.<locals>.<dictcomp>Œ  s8   € ð  ð  ð  Ù(�˜Øð ˆG�_ QÔ'ð  ð  ð  r^   )Ú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   ÚreasonsÚmarkerÚinvalid_kwargsr�   Úinvalid_exceptionsr†   rŠ   r‘   Úkwargs               r&   Ú_backends_kwargs_from_requestr¥   P  sß  € õ
 �7”<×,Ò,°Ð-KÐ-KÐ-KÑLÔLÑMÔM€GØ<Ð<Õ*;Ð<Ñ<Ô<€Gàð 2ñ 2ˆÝ˜Vœ]Ñ+Ô+ð /Ið /Ið /Iñ Iˆàð 	AÝÐ?¨~Ð?Ð?Ñ@Ô@Ð@å˜œ×*Ò*¨<¸Ñ<Ô<Ñ=Ô=ˆ
Ø'Õ*;Ñ;ÐÝ"& zÕ4EÑ'EÑ"FÔ"FÐFÐð 	OÝð NÐ4Fð Nð NÝ48Õ9JÑ4KÔ4KðNð Nñ Oô Oð Oð Œ=×Ò˜Y¨Ñ.Ô.ð 	0Ø”]×&Ò& xÑ0Ô0ÐXÐ4XˆFØ,3¯MªM©O¬Oð 3ð 3Ñ(�˜Ø˜gÒ%Ð%¨'¸Ð*CÐ*CØ#×*Ò*¨6Ñ2Ô2Ð2øð3ð Œ]×Ò˜z¨5Ñ1Ô1ð 	0Ø”]×&Ò& xÑ0Ô0ð /ð.ð õ 5°zÑAð 0ð 0�Ø˜Ô ×'Ò'¨Ñ/Ô/Ð/Ð/ð0ð Œ]×Ò˜|¨UÑ3Ô3ð 	0Ø”]×&Ò& xÑ0Ô0ð >Ø<ð å6¸ÑCð 0ð 0�Ø˜Ô ×'Ò'¨Ñ/Ô/Ð/Ð/õ ˆvŒ{ÑÔ˜qÒ Ð Ø”k !”nˆGØÕ/Ð/Ð/Ý ð "M°Wð "Mð "MÝ37Õ8IÑ3JÔ3Jð"Mð "Mñ Nô Nð Nà”]×&Ò& xÑ0Ô0ð AØ?°gÐ?Ð?ð ð �GÔ×#Ò# A vÑ.Ô.Ð.àLð Vð V�Ø˜FœMÐ)Ð)Ý$¨Ð%TÐ%TÈ7Ð%TÐ%TÑUÔUÐUð *ñVõ �”ÑÔ Ò!Ð!ÝØL¸v¼{ÐLÐLñô ð ñ "ð
 ð  Ø,3¯MªM©O¬Oð ñ  ô  ð  r^   rZ   rŸ   )r<   r@   Úreturnc                 óÌ   — |› d�| j         vrdS t          | |¬¦  «        }| j        }|j        |v r4||j                 }|sJ ‚t	          t
          |¦  «        } ||¬¦  «         dS dS )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_reasonsr‚   r†   s        r&   rƒ   rƒ   ‘  s—   € ð` Ð%Ð%Ð%¨WÔ-=Ð=Ð=Øˆå6Ø˜}ðñ ô Ðð 
Œ€BØ	„{Ð(Ð(Ð(Ø# B¤KÔ0ˆØˆˆˆvÝ¥¨Ñ6Ô6ˆØˆ˜VÐ$Ñ$Ô$Ð$Ð$Ð$ð	 )Ð(r^   c                 óŽ  — t          | ¦  «        rt          j        d¬¦  «         t          | ¦  «        rddgS t	          | ¦  «        rt          j        d¬¦  «         t          | ¦  «        r2|                      ¦   «                              ¦   «         }d„ |D ¦   «         S |                      ¦   «                              ¦   «         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   ó0   K  — | ]}|j         d k    ¯|V — ŒdS )ÚmetaN)Útype)ru   Údevices     r&   ú	<genexpr>zdevices.<locals>.<genexpr>ñ  s.   è è € ÐFÐF˜6°´¸vÒ0EÐ0E�Ð0EÐ0EÐ0EÐ0EÐFÐFr^   )r
   r;   r@   r   r   r   Ú__array_namespace_info__Údevices)r‚   r³   s     r&   r³   r³   Ï  sÉ   € õ ˆr�{„{ð >õ 	ŒÐ<Ð=Ñ=Ô=Ð=Ýˆr�{„{ð à�tˆ}ÐÝˆb�z„zð 0õ 	ŒÐ.Ð/Ñ/Ô/Ð/Ý��|„|ð GØ×-Ò-Ñ/Ô/×7Ò7Ñ9Ô9ˆàFÐF WÐFÑFÔFÐFà×&Ò&Ñ(Ô(×0Ò0Ñ2Ô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œ}|                     |¦  «         t          d¦  «        }	ddl
m}
 ddl} |
¦   «         5  |j                             d¦  «         t          j        ¦   «         5  | r*| j        |v r!t          j        di || j                 ¤Ž dV — nI| r| j        |	v rdV — n9t          j        dt(          ¦  «         t          j        ddt          ¦  «         dV — ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )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Ø     s1  è è € õ ™œˆð  Ð!?ð
ˆð #ð 	Bð 	BˆDÝ#'µØ0@ð$Bñ $Bô $BˆN˜4Ñ Ð ð ˆ
Øð 	Eð 	EˆDÝ#'Õ1CÐ#DÑ#DÔ#DˆN˜4Ñ Ð à#Ð#Ð#Ð#Ð#Ð#à5Ø5ð
ˆð "ð 	Nð 	NˆDÝ#'°Ô1MØ0Lð$Nñ $Nô $NˆN˜4Ñ Ð ðHð Hð Hˆàð 	>ð 	>ˆDÝ#'µÐ#=Ñ#=Ô#=ˆN˜4Ñ Ð õ
 �kÐ3HÐIÑIÔIõ Ð9Ý7ð9ñ 9ô 9õ ÐAØ'Ô:ð<ñ <ô <ð

ð 

ˆð 	×Ò˜cÑ"Ô"Ð"õ Ð,Ñ-Ô-ˆð 	8Ð7Ð7Ð7Ð7Ð7ØÐÐÐØÐÑ!Ô!ð 	ð 	ØŒI�NŠN˜4Ñ Ô Ð ÝÔ(Ñ*Ô*ð 	ð 	Øð ˜DœI¨Ð7Ð7ÝÔ+ÐRÐR¸ÀtÄyÔ8QÐRÐRÐRØ�E�E�E�EØð ˜dœi¨5Ð0Ð0Ø�E�E�E�EåÔ)¨'µ7Ñ;Ô;Ð;ÝÔ+¨H°iÕASÑTÔTÐTØ�E�E�Eð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s7   Ä.GÅA6GÆ9GÇG		Ç	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)tÚ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ÚdaÚxp_available_backend_idsÚ
isinstanceÚstrÚlowerÚloadsr|   Úmsgr‚   Ú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Ú	stopwordsr`   r^   r&   ú<module>r     sª
  ðà €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€ð!ØÐÐÐØÐÐøØð !ð !ð !Ø ÐÐÐð!øøøð -Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø FÐ FÐ FÐ FÐ FÐ FØ Ð Ð Ð Ð Ð ðØ0Ð0Ð0Ð0Ð0Ð0Ø€J€JøØð ð ð Ø€J€J€Jðøøøð#ØÐÐÐØ!ÐÐøØð #ð #ð #Ø"ÐÐÐð#øøøð9Cð 9Cð 9Cðx.ð .ð .ðb €„�j¨$Ð/Ñ/Ô/ðCð Cñ 0Ô/ðCð ð Ø„^ðð ñ „^ðð
#ð #ð #Ð ð €F„L�˜ v¤{Ô'EÐFÑFÔFðÐ ð  ˜C™EœEÐ Ø!˜c™eœeÐ àñ oðØÐÐÐØ×$Ò$ØˆFŒLÐ)Ð.@Ø%œ{Ô=ð?ñ ?ô ?ñ	@ô 	@ð 	@ð ˆ7Œ=Ð)Ô5Ñ6Ô6¸¸¼ÈÑ9OÔ9OÒOÐOØ�+ÐGÑHÔHÐHØ3ÐÔ3Ø!ð	
ñ 	
ô 	
ð 	
ð 	
øð ð ð ð ØˆðøøøðØˆˆˆØ×$Ò$ØˆFŒL˜ 7Ø”+Ô0ð2ñ 2ô 2ñ	3ô 	3ð 	3ð 	!ˆÔ  Ñ.Ô.Ð.Ø˜5Ò Ð Ø%×)Ò)¨'Ñ2Ô2Ð2ð �"”)Ð1¸9ÐEÑEÔEˆØ�iÒÐØ#ˆEÔ# E¤MÑ2Ô2Ð2Ð2Ø˜	Ò!Ð!Ø�*ð9Ø%,ð9ð 9ð 9ñô ð øøð ð ð ð ØˆðøøøðØˆˆˆð 	×$Ò$ØˆFŒL˜ &Ø”+Ô0ð2ñ 2ô 2ñ	3ô 	3ð 	3ð 	"×%Ò% fÑ-Ô-Ð-ð 	 ˆÔØÐ;Àmð	
ñ 	
ô 	
ð 	
ð 	'Ð&Ð&Ð&Ð&Ð&ØˆFøØð ð ð ØˆðøøøðØÐÐÐà×$Ò$ØˆFŒL˜œ {Ø”;Ô1à”;Ô,ð.ð/ñ /ô /ñ	0ô 	0ð 	0ð 	Œ
×ÒÐ*¨DÑ1Ô1Ð1ØŒ
×ÒÐ.°°´¸LÑ0IÔ0IÈ!Ô0LÑMÔMÐMØ˜5Ò Ð Ø%×)Ò)¨+Ñ6Ô6Ð6ð 	$×'Ò'¨Ñ4Ô4Ð4Ð4øØð ð ð ØˆðøøøðØÐÐÐÐÐà×$Ò$ØˆFŒL˜ Ø”;Ô1à”;Ô,ð.ð/ñ /ô /ñ	0ô 	0ð 	0ð 	$×'Ò'¨Ñ5Ô5Ð5Ð5øØð ð ð Øˆðøøøð  EÐDÐ.CÐDÑDÔDÐØ'Ð*;Ñ;Ð;Ð;Ð;ð 	ˆ
�? CÑ(Ô(ðà!ˆOÔ!Ñ#Ô#Ð+?Ð?Ð?à˜3˜z˜tœz¨/Ñ:Ô:Ñ;Ô;ÐØ ˜wÒ&Ð&ØÐ":Ñ:ð &ðMØ2ðMð MØ:JðMð M�à �j ‘o”oÐ%ð%ð %Ø#8ð%ñ %ô %Ð!ð €„Ð,Ð-Ñ-Ô-ð!ð !ñ .Ô-ð!ðH ”k×(Ò(¨ðIð )ñ Kô KÐ ð
> ð > ð > ðB;% vÔ'<ð ;%Ø-4°_Ô-Eð;%ØJNð;%ð ;%ð ;%ð ;%ð| „ð#<ð #<ñ „ð#<ðL ð ?ð Ô×4Ò4Ø
Œ�ŠÐ(�XÔ(Ñ*Ô*¨MÑ:Ô:ñô ð ð Ô×(Ò(Ø¨$¸4ð )ñ ô ð ð Ô×(Ò(ØØ $°À4Ø"˜d :Ô#9Ñ:Ô:ð )ñ ô ð ð  "œzŸ~š~Ð.HØ.=ñ ?ô  ?ÐàÔ×$Ò$Ð%=Ñ>Ô>Ð>ð ð n&ð ðIð Ið Iñ „^ðIðV "9€IÔØ˜ð ð ð ñ ô €IÔð( 
„~˜ÒÐØÔ×!Ò! # #ð 'ð 'ð 'ñ #ô #ñ 	ô 	ð 	ð,%ð %ð %€IÔ!ð>  8Ø&>Ø<Ø2Ø)>ð$ð $€IÔ ð ˜3Ð 7Ð8Ñ9Ô9€IÔàð 
ð 
ð 
ð!€IÔð "€IÔð Ô×Ò˜HÑ%Ô%Ð%Ð%Ð%ð]n&ð n&s�   ®5 µ?¾?Á/A8 Á8BÂBÂB ÂBÂBÄA7E? Å?FÆFÆB"H. È.H6È5H6È:A#J ÊJ&Ê%J&Ê*B?M* Í*M2Í1M2Í6AO ÏOÏO