
    PiD                     "   d 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ZddlZddlm	Z	 ddl
mZ d Zg dZd Zg d	Zej                            d
          d             Zg dZd Zd Zej                            dg d          d             ZdS )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xp_available_backendsc                      t          t          t                              t          t          t          t                                        k    sJ dS )zWAssert that output of dir has only one "testing/tester"
    attribute without duplicateN)lendirscipyset     t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/scipy/_lib/tests/test_public_api.pytest_dir_testingr      s;     s5zz??c#c%jj//22222222r   )r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                 N    d| v sd| v sd| v rdS | t           v rdS | t          v rdS dS )z%Check if this needs to be considered.z._z.testsz.setupFT)r   PRIVATE_BUT_PRESENT_MODULES)names    r   is_unexpectedr~      sJ    t||x4''8t+;+;u~u***u4r   )zscipy.conftestzscipy.versionzscipy.special.libsf_error_statescipy.integrate.lsodaz^crashes in pkgutil.walk_packages, see https://github.com/data-apis/array-api-compat/issues/343)reasonc                     d } g }t          j                    5  t          j        ddt                     t	          j        t          j        t          j        dz   |           D ]3\  }}}t          |          r|t          vr|                    |           4	 ddd           n# 1 swxY w Y   |rt          d|           dS )z|
    Test that we don't add anything that looks like a new public module by
    accident.  Check is based on filenames.
    c                 @    h d}|D ]}d| }|| v r|t           vr d S  )N>   
dask.arraycupytorchzarray_api_compat.r   )r}   backendsbackendpaths       r   ignore_errorsz4test_all_modules_are_expected.<locals>.ignore_errors   sJ    
 322 	 	G0w00Dt||/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      s1   
 
 
 H		 	"	" 	) 	),8JKKK$2:?.3:N;HJ J J 	) 	)MAw W%% )'*B*B (((	)	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)  FD(DDEEEF Fs   A>B$$B(+B()z
scipy.charz	scipy.reczscipy.emathz
scipy.mathzscipy.randomzscipy.ctypeslibzscipy.mar   c                  &   d } t          j                    5  t          j        ddt                      | d          }ddd           n# 1 swxY w Y   t          D ] }|                     | |                     !|rt          d|           dS )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                 n   g }t          j        |           }t          |d          r|j        }nt	          |          }|D ]t}|                    d          s]| dz   |z   }t          t          ||          t          j	                  r-t          |          r|t          vr|                    |           u|S )N__all__r   r   )	importlibr   hasattrr   r	   
startswith
isinstancegetattrtypes
ModuleTyper~   SKIP_LIST_2r   )mod_namemembersmoduleobjnamesobjnamefullobjnames         r   find_unexpected_membersz@test_all_modules_are_expected_2.<locals>.find_unexpected_members   s    (2269%% 	#~HH6{{H 	4 	4G%%c** 4&nw6gfg668HII 4$[11 4k6T6T{33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LL44W==> > > > > > > > > > > > > > > " D D!!"9"9'"B"BCCCC ? >);> > ? ? 	?? ?s   'A

AAc                     d } g }t           D ]"} | |          s|                    |           #|rt          d|           t          j        d          5  t          j        dt                     t          j        dt                     t          D ]"} | |          s|                    |           #	 ddd           n# 1 swxY w Y   |rt          d|           dS )	a  
    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                 b    	 t          j        |            n# t          t          f$ r Y dS w xY wdS )NFT)r   r   ImportErrorAttributeError)module_names    r   check_importablez-test_api_importable.<locals>.check_importable  sI    	#K0000^, 	 	 	55	 ts    ,,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% - -,, 	-,,, : 9*69 9 : : 	: 
	 	-	-	- 1 1h1CDDDDh????6 	1 	1K##K00 1##K000	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1  0 / ,/ / 0 0 	00 0s   A!CCC)r   correct_module)j)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   Nc                     t          |           }|d|                     d          d          }n!d|                     d          d          d| }t          |          }|j        D ][}t          ||d           J d| d| d}t	          j        |          5  t          ||           d d d            n# 1 swxY w Y   \d|  d	}t	          j        t          |          5  t          |d
           d d d            d S # 1 swxY w Y   d S )Nzscipy.r      zPlease import `z` from the `z`...)match`z` is deprecated...ekki)r   splitr   r   pytestdeprecated_callraisesr   )r   r   r   import_namecorrect_import	attr_namemessages          r   $test_private_but_present_deprecationr   -  s   ^ ;''F:{0055a8::K{0055a8KK>KK";//N ^ ' '	~y$77CCCLILL;LLL#'222 	' 	'FI&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
 2+111G	~W	5	5	5                                       s$   B88B<	?B<	%DD
D)__doc__r   r   r   r   r   r   r
   scipy._lib._public_apir   scipy.conftestr   r   r|   r~   r   markthread_unsafer   r   r   r   parametrizer   r   r   r   <module>r      s   
        # # # # # #   1 1 1 1 1 1 0 0 0 0 0 03 3 3s s s l    	 G  I I F  FI I FJ	 	 	 ?  ?  ?F"0 "0 "0J :i7 i7 i7j8 j8V   Wj8 j8V     r   