Ë
    ímxifm  ã                   óÜ  — 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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Zd)d„Zd„ Ze	j$                  j'                  ed¬«      e	j$                  j)                  ddg«      d	„ «       «       Zd
„ Zd„ Zd„ Ze	j$                  j'                  edu d¬«      d„ «       ZdD � cg c]  } d| z   ‘Œ	 c} Zej6                  dk  redD � cg c]  } d| z   ‘Œ	 c} z  Zg d¢ZdD � cg c]  } d| z   ‘Œ	 c} Zej6                  dk  redD � cg c]  } d| z   ‘Œ	 c} z  Zd„ Zej6                  dk\  rg ZndgZd„ Z g d¢Z!ej6                  dk  re!g d¢z  Z!d„ Z"d„ Z#e	j$                  jI                   ejJ                  d«      dvd¬«      d „ «       Z&d!„ Z'e	j$                  jQ                  d"«      d#„ «       Z)d$„ Z*d%„ Z+d&e,fd'„Z-d(„ Z.y# e$ r dZY �Œšw xY wc c} w c c} w c c} w c c} w )*é    N)ÚIS_WASMc                 óü   — |€| j                   }i }t        | «      D ]]  }|dk(  rŒ	t        | |«      }t        |d«      sŒ"t        |d«      sŒ/|j                  |k7  sŒ?|j                  dz   |j                   z   ||<   Œ_ |S )zEReturns a mapping of all objects with the wrong __module__ attribute.ÚcoreÚ
__module__Ú__name__ú.)r   ÚdirÚgetattrÚhasattrr   )ÚmoduleÚmodule_nameÚresultsÚnameÚitems        úR/home/htdocs/ttos/venv/lib/python3.12/site-packages/numpy/tests/test_public_api.pyÚ	check_dirr      s‚   € àÐØ—o‘oˆØ€GÜ�F“ò BˆØ�6Š>ØÜ�v˜tÓ$ˆÜ�D˜,Õ'¬G°D¸*Õ,EØ—O‘O {Ó2Ø ŸO™O¨cÑ1°D·M±MÑAˆG�DŠMðBð €Nó    c                  ó8   — ddi} t        t        «      }|| k(  sJ ‚y )NÚrecarrayznumpy.rec.recarray)r   Únp)Ú	allowlistÚbad_resultss     r   Útest_numpy_namespacer   &   s,   € ð 	Ð(ð€Iô œB“-€Kð ˜)Ò#Ð#Ñ#r   zcan't start subprocess)Úreasonr   Útestingc                 óˆ   — t         j                  dd| z   f}t        j                  |«      }|rJ ‚| t	        t
        «      v sJ ‚y)a¶  Make sure we can actually use the modules we lazy load.

    While not exported as part of the public API, it was accessible.  With the
    use of __getattr__ and __dir__, this isn't always true It can happen that
    an infinite recursion may happen.

    This is the only way I found that would force the failure to appear on the
    badly implemented code.

    We also test for the presence of the lazily imported modules in dir

    z-czimport numpy; numpy.N)ÚsysÚ
executableÚ
subprocessÚcheck_outputr	   r   )r   ÚexeÚresults      r   Útest_import_lazy_importr#   1   sD   € ô �>‰>˜4Ð!7¸$Ñ!>Ð
?€CÜ×$Ñ$ SÓ)€FÙÐˆ:ð ”3”r“7‰?Ð‰?r   c                  ó|   — t        t        t        «      «      t        t        t        t        «      «      «      k(  sJ ‚y)zWAssert that output of dir has only one "testing/tester"
    attribute without duplicateN)Úlenr	   r   Úset© r   r   Útest_dir_testingr(   H   s'   € ô Œs”2‹w‹<œ3œs¤3¤r£7›|Ó,Ò,Ð,Ñ,r   c                  óD   — t        t        j                  «      } | i k(  sJ ‚y ©N)r   r   Úlinalg©r   s    r   Útest_numpy_linalgr-   N   s   € ÜœBŸI™IÓ&€KØ˜"ÒÐÑr   c                  óD   — t        t        j                  «      } | i k(  sJ ‚y r*   )r   r   Úfftr,   s    r   Útest_numpy_fftr0   S   s   € ÜœBŸF™FÓ#€KØ˜"ÒÐÑr   z#ctypes not available in this pythonc                  óž   — t        j                  t        j                  j                  j
                  «      } t        | dd «      }|�J d«       ‚y )NÚtest_not_exportedzG'test_not_exported' is mistakenly exported, NPY_NO_EXPORT does not work)ÚctypesÚCDLLr   Ú_coreÚ_multiarray_testsÚ__file__r
   )ÚcdllÚfs     r   Útest_NPY_NO_EXPORTr:   X   sG   € ô �;‰;”r—x‘x×1Ñ1×:Ñ:Ó;€Dä�Ð)¨4Ó0€AØˆ9ð 5ð 4ó 5‰9r   ) Ú	ctypeslibÚdtypesÚ
exceptionsÚf2pyr/   Úlibzlib.array_utilsz
lib.formatzlib.introspectz
lib.mixinsz	lib.npyiozlib.recfunctionszlib.scimathzlib.stride_tricksr+   Úmaz	ma.extraszma.mrecordsÚ
polynomialzpolynomial.chebyshevzpolynomial.hermitezpolynomial.hermite_ezpolynomial.laguerrezpolynomial.legendrezpolynomial.polynomialÚrandomÚstringsr   ztesting.overridesÚtypingztyping.mypy_pluginÚversionúnumpy.)é   é   )Ú	distutilszdistutils.cpuinfozdistutils.exec_commandzdistutils.misc_utilzdistutils.logzdistutils.system_info)ú
numpy.charznumpy.emathú	numpy.rec)'Úconftestr   zcore.multiarrayzcore.numericz
core.umathzcore.arrayprintzcore.defchararrayzcore.einsumfunczcore.fromnumericzcore.function_basezcore.getlimitszcore.numerictypeszcore.overrideszcore.recordszcore.shape_basezf2py.auxfuncszf2py.capi_mapszf2py.cb_ruleszf2py.cfuncszf2py.common_ruleszf2py.crackfortranzf2py.diagnosezf2py.f2py2ezf2py.f90mod_ruleszf2py.func2subrz
f2py.ruleszf2py.symboliczf2py.use_ruleszlib.user_arrayzlinalg.lapack_litezma.corezma.testutilsÚmatlibÚ	matrixlibzmatrixlib.defmatrixzpolynomial.polyutilszrandom.mtrandzrandom.bit_generatorztesting.print_coercion_tables)7zdistutils.armccompilerzdistutils.fujitsuccompilerzdistutils.ccompilerzdistutils.ccompiler_optzdistutils.commandzdistutils.command.autodistzdistutils.command.bdist_rpmzdistutils.command.buildzdistutils.command.build_clibzdistutils.command.build_extzdistutils.command.build_pyzdistutils.command.build_scriptszdistutils.command.build_srczdistutils.command.configz!distutils.command.config_compilerzdistutils.command.developzdistutils.command.egg_infozdistutils.command.installzdistutils.command.install_clibzdistutils.command.install_dataz!distutils.command.install_headerszdistutils.command.sdistzdistutils.conv_templatezdistutils.corezdistutils.extensionzdistutils.fcompilerzdistutils.fcompiler.absoftzdistutils.fcompiler.armzdistutils.fcompiler.compaqzdistutils.fcompiler.environmentzdistutils.fcompiler.g95zdistutils.fcompiler.gnuzdistutils.fcompiler.hpuxzdistutils.fcompiler.ibmzdistutils.fcompiler.intelzdistutils.fcompiler.laheyzdistutils.fcompiler.mipszdistutils.fcompiler.nagzdistutils.fcompiler.nonezdistutils.fcompiler.pathf95zdistutils.fcompiler.pgzdistutils.fcompiler.nvzdistutils.fcompiler.sunzdistutils.fcompiler.vastzdistutils.fcompiler.fujitsuzdistutils.from_templatezdistutils.intelccompilerzdistutils.lib2defzdistutils.line_endingszdistutils.mingw32ccompilerzdistutils.msvccompilerzdistutils.npy_pkg_configzdistutils.numpy_distributionzdistutils.pathccompilerzdistutils.unixccompilerc                 ó^   — d| vxr( d| vxr" d| vxr | t         vxr | t        vxr | t        vS )z%Check if this needs to be considered.z._z.testsz.setup)ÚPUBLIC_MODULESÚPUBLIC_ALIASED_MODULESÚPRIVATE_BUT_PRESENT_MODULES©r   s    r   Úis_unexpectedrT     sT   € ð 	�DÐò 	4˜X¨TÐ1ò 	4°hÀdÐ6Jò 	4ØœÐ&ò	4àÔ.Ð.ò	4ð Ô3Ð3ð	r   znumpy.distutils.msvc9compilerc                  óô   — g } t        j                  t        j                  t        j                  dz   d¬«      D ],  \  }}}t        |«      sŒ|t        vsŒ| j                  |«       Œ. | rt        d| › �«      ‚y)z|
    Test that we don't add anything that looks like a new public module by
    accident.  Check is based on filenames.
    r   N)ÚpathÚprefixÚonerrorzFound unexpected modules: )	ÚpkgutilÚwalk_packagesr   Ú__path__r   rT   Ú	SKIP_LISTÚappendÚAssertionError)ÚmodnamesÚ_ÚmodnameÚispkgs       r   Útest_all_modules_are_expectedrc     s|   € ð €HÜ$×2Ñ2¼¿¹Ü:<¿+¹+ÈÑ:KØ;?ôAò %Ñˆˆ7�Eô ˜Õ! g´YÒ&>ð �O‰O˜GÕ$ð%ñ ÜÐ9¸(¸ÐDÓEÐEð r   )znumpy.lib.mathznumpy.matlib.charznumpy.matlib.recznumpy.matlib.emathznumpy.matlib.exceptionsznumpy.matlib.mathznumpy.matlib.linalgznumpy.matlib.fftznumpy.matlib.randomznumpy.matlib.ctypeslibznumpy.matlib.ma)znumpy.distutils.log.sysznumpy.distutils.log.loggingznumpy.distutils.log.warningsc                  ó~   — d„ }  | d«      }t         D ]  }|j                   | |«      «       Œ |rt        d|› �«      ‚y)aâ  
    Method checking all objects. The pkgutil-based method in
    `test_all_modules_are_expected` does not catch imports into a namespace,
    only filenames.  So this test is more thorough, and checks this like:

        import .lib.scimath as emath

    To check if something in a module is (effectively) public, one can check if
    there's anything in that namespace that's a public function/object but is
    not exposed in a higher-level namespace.  For example for a `numpy.lib`
    submodule::

        mod = np.lib.mixins
        for obj in mod.__all__:
            if obj in np.__all__:
                continue
            elif obj in np.lib.__all__:
                continue

            else:
                print(obj)

    c                 óT  — g }t        j                  | «      }t        |d«      r|j                  }nt	        |«      }|D ]g  }|j                  d«      rŒ| dz   |z   }t        t        ||«      t        j                  «      sŒBt        |«      sŒN|t        vsŒW|j                  |«       Œi |S )NÚ__all__r`   r   )Ú	importlibÚimport_moduler   rf   r	   Ú
startswithÚ
isinstancer
   ÚtypesÚ
ModuleTyperT   ÚSKIP_LIST_2r]   )Úmod_nameÚmembersr   ÚobjnamesÚobjnameÚfullobjnames         r   Úfind_unexpected_membersz@test_all_modules_are_expected_2.<locals>.find_unexpected_members_  s˜   € ØˆÜ×(Ñ(¨Ó2ˆÜ�6˜9Ô%Ø—~‘~‰Hä˜6“{ˆHàò 	8ˆGØ×%Ñ% cÕ*Ø&¨™n¨wÑ6�Üœg f¨gÓ6¼×8HÑ8HÕIÜ$ [Õ1Ø&¬kÒ9Ø#ŸN™N¨;Õ7ð	8ð ˆr   Únumpyz3Found unexpected object(s) that look like modules: N)rP   Úextendr^   )rs   Úunexpected_membersra   s      r   Útest_all_modules_are_expected_2rw   F  s`   € ò2ñ$ 1°Ó9ÐÜ!ò DˆØ×!Ñ!Ñ"9¸'Ó"BÕCðDñ Üð )Ø);Ð(<ð>ó ?ð 	?ð r   c                  ó@  — d„ } g }t         D ]  } | |«      rŒ|j                  |«       Œ |rt        d|› �«      ‚t        D ]  }	 t	        |«       Œ |rt        d|› �«      ‚t        j                  d¬«      5 }t        j                  dt        ¬«       t        j                  dt        ¬«       t        D ]"  } | |«      rŒ|dk(  rŒ|j                  |«       Œ$ 	 d	d	d	«       |rt        d
|› �«      ‚y	# t
        $ r |j                  |«       Y ŒÏw xY w# 1 sw Y   Œ:xY w)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                 óZ   — 	 t        j                  | «       y# t        t        f$ r Y yw xY w)NFT)rg   rh   ÚImportErrorÚAttributeError)r   s    r   Úcheck_importablez-test_api_importable.<locals>.check_importable‚  s3   € ð	Ü×#Ñ# KÔ0ð øô œ^Ð,ò 	Ùð	ús   ‚ ˜*©*z3Modules in the public API that cannot be imported: z/Modules in the public API that were not found: T)ÚrecordÚalways)Úcategoryznumpy.distutils.msvccompilerNzNModules that are not really public but looked public and can not be imported: )rP   r]   r^   rQ   Úevalr{   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚImportWarningrR   )r|   Úmodule_namesr   Úws       r   Útest_api_importablerˆ   z  sQ  € òð €LÜ%ò -ˆÙ Õ,Ø×Ñ Õ,ð-ñ Üð *Ø*6¨ð9ó :ð 	:ô .ò -ˆð	-Ü�Õð-ñ Üð 'Ø'3 nð6ó 7ð 	7ô 
×	 Ñ	 ¨Ô	-ð 5°Ü×Ñ Ô3EÕFÜ×Ñ ´=ÕAÜ6ò 	5ˆKÙ# KÕ0ð #Ð&DÓDØ ×'Ñ'¨Õ4ñ	5÷5ñ Üð @à ,˜~ð/ó 0ð 	0ð øô# ò 	-Ø×Ñ Ö,ð	-ú÷5ð 5ús+   ÁC4Á8ADÃDÃDÃ4DÄDÄDÚPy_DEBUG)Nr   Ú0z£NumPy possibly built with `USE_DEBUG=True ./tools/travis-test.sh`, which does not expose the `array_api` entry point. See https://github.com/numpy/numpy/pull/19800c                  óÎ  — t        j                  d«      t        j                  v } t        j
                  j                  «       }|j                  d¬«      }t        |«      dk(  r| rd}t        |«      d‚y	 t        d„ |D «       «      }|j                  d	k(  ry|j                  «       }d
|j                  › d�}|t        u sJ |«       ‚y# t        $ r | rd}t        |«      d‚Y yw xY w)zx
    Entry point for Array API implementation can be found with importlib and
    returns the main numpy namespace.
    ÚplatlibÚ	array_api)Úgroupr   z%No entry points for 'array_api' foundNc              3   ó@   K  — | ]  }|j                   d k(  sŒ|–— Œ y­w)rt   NrS   )Ú.0Úeps     r   ú	<genexpr>z-test_array_api_entry_point.<locals>.<genexpr>È  s   è ø€ Ò<˜¨¯©°GÓ);”"Ñ<ùs   ‚—z%'numpy' not in array_api entry pointsznumpy.array_apiznumpy entry point value 'z0' does not point to our Array API implementation)Ú	sysconfigÚget_pathr   r7   rg   ÚmetadataÚentry_pointsÚselectr%   r^   ÚnextÚStopIterationÚvalueÚloadrt   )Únumpy_in_sitepackagesÚepsÚxp_epsÚmsgr‘   Úxps         r   Útest_array_api_entry_pointr¡   ­  sð   € ô  &×.Ñ.¨yÓ9¼R¿[¹[ÐHÐä
×
Ñ
×
)Ñ
)Ó
+€CØ�Z‰Z˜kˆZÓ*€FÜ
ˆ6ƒ{�aÒÙ Ø9ˆCÜ  Ó%¨4Ð/ØðÜÑ<˜vÔ<Ó<ˆð 
‡x�xÐ$Ò$ð 	à	�‰‹€Bà
# B§H¡H :ð .9ð 	9ð ð ”‰;Ð˜Ó‰;øô' ò Ù Ø9ˆCÜ  Ó%¨4Ð/Ùð	ús   Á6C ÃC$Ã#C$c                  óÌ   — d„ } d„ } | t         j                  «      } ||«      } | t        j                  «       «      } ||«      }||k(  sJ d|j                  |«      › �«       ‚y)zˆ
    Checks if `dir(np)` and `np.__all__` are consistent and return
    the same content, excluding exceptions and private members.
    c                 óP   — | D �ch c]  }|j                  d«      rŒ|’Œ c}S c c}w )Nr`   )ri   )Ú
member_setÚms     r   Ú_remove_private_memberszFtest_main_namespace_all_dir_coherence.<locals>._remove_private_membersä  s!   € Ø%Ö?�a¨Q¯\©\¸#Õ->’Ò?Ð?ùÒ?s   …#œ#c                 ó&   — | j                  dh«      S )NÚbool)Ú
difference)r¤   s    r   Ú_remove_exceptionszAtest_main_namespace_all_dir_coherence.<locals>._remove_exceptionsç  s   € Ø×$Ñ$Øð&
ó ð 	r   zMembers that break symmetry: N)r   rf   Ú__dir__Úsymmetric_difference)r¦   rª   Úall_membersÚdir_memberss       r   Ú%test_main_namespace_all_dir_coherencer¯   ß  so   € ò
@òñ
 *¬"¯*©*Ó5€KÙ$ [Ó1€Ká)¬"¯*©*«,Ó7€KÙ$ [Ó1€Kà˜+Ò%ð Ø'Ø×+Ñ+¨KÓ8Ð
9ð	;óÑ%r   z:ignore:numpy.core(\.\w+)? is deprecated:DeprecationWarningc                  óø  — ddl m}  t        t        j                  «      D ]Ø  }|j                  d«      s|dv sd|› �t        v rŒ$t        t        j                  |«      }t        j                  |«      rv|j                  rj|j                  j                  �T|}|}t        |«      D ]A  }|j                  d«      rŒt        ||«      }t        d|› �|g¬«      }|t        ||«      u rŒAJ ‚ ŒÉ|t        | |«      u rŒØJ ‚ y)	zp
    Check that all "semi-public" members of `numpy._core` are also accessible
    from `numpy.core` shims.
    r   Nr`   )ÚtestsrC   rF   Ú__znumpy.core.)Úfromlist)Ú
numpy.corer   r	   r   r5   ri   rQ   r
   ÚinspectÚismoduleÚ__spec__ÚoriginÚ
__import__)r   Úmember_nameÚmemberÚ	submoduleÚsubmodule_nameÚsubmodule_member_nameÚsubmodule_memberÚcore_submodules           r   Útest_core_shims_coherencerÁ   ø  s  € õ äœ2Ÿ8™8“}ò '8ˆð ×"Ñ" 3Ô'ØÐ2Ñ2Ø˜�}Ð%Ô)?Ñ?àäœŸ™ ;Ó/ˆô ×Ñ˜VÔ$Ø—’ F§O¡O×$:Ñ$:Ð$FàˆIØ(ˆNÜ),¨Y«ò Ð%à(×3Ñ3°DÔ9ØÜ#*¨9Ð6KÓ#LÐ ä!+Ø! .Ð!1Ð2Ø3Ð4ô"�ð
 (¬7Ø"Ð$9ó,ò ð ð ñð  œW T¨;Ó7Ò7Ð7Ð7ñO'8r   c                  óü  — ddl m}  ddlm} ddlm} t        h}t        «       }i }g }t        g}t        |«      dkD  �r§|j                  «       }t        |«      D �]x  }	t        ||	«      }
t        j                  |
«      rXd|
j                  v rJ|	j                  d«      s9d|
j                  vr+|	dvr'|
|vr#|j!                  |
«       |j#                  |
«       Œ}t        j$                  |
«      st'        |
|t        j(                  f«      sŒ¯|
|v r¦|
j                  d	v r|j                  dk(  rŒÑ|
j                  d
k(  r|j                  j                  d«      rŒü|
j                  dv r|j                  dk(  r�Œ|j                  dk(  r�Œ,|j!                  |
j                  |j                  ||
   f«       �ŒY|j#                  |
«       |j                  ||
<   �Œ{ t        |«      dkD  r�Œ§~~~t        |«      dk(  sJ |«       ‚y)zÞ
    Check that each public function is available from one location only.

    Test performs BFS search traversing NumPy's public API. It flags
    any function-like object that is accessible from more that one place.
    r   )ÚCallable)ÚAny)Ú_ArrayFunctionDispatcherrt   r`   únumpy._core)r>   r@   r   r±   )ÚabsoluteÚarccosÚarccoshÚarcsinÚarcsinhÚarctanÚarctan2ÚarctanhÚ
left_shiftÚright_shiftÚ	conjugateÚinvertÚ	remainderÚdivideÚconcatenateÚpowerÚ	transposeÚtrimcoefznumpy.polynomial©ÚaddÚequalÚ	not_equalÚgreaterÚgreater_equalÚlessÚ
less_equalúnumpy.stringsrJ   N)Úcollections.abcrÃ   rD   rÄ   Únumpy._core._multiarray_umathrÅ   r   r&   r%   Úpopr	   r
   rµ   r¶   r   ri   r]   rÚ   Ú
isfunctionrj   Úufunc)rÃ   rÄ   Údispatched_functionÚvisited_modulesÚvisited_functionsÚfunctions_original_pathsÚduplicated_functionsÚmodules_queuer   rº   r»   s              r   Útest_functions_single_locationrí   ,  s  € õ )Ýõô /1¨T€OÜ14³Ðð ?AÐð )+Ðä�D€Mä
ˆmÓ
˜qÓ
 à×"Ñ"Ó$ˆä˜v›;ó P	GˆKÜ˜V [Ó1ˆFô × Ñ  Ô(Ø˜6Ÿ?™?Ñ*Ø×*Ñ*¨3Ô/Ø V§_¡_Ñ4àÐ#EÑEØ˜oÑ-à×$Ñ$ VÔ,Ø×#Ñ# FÕ+ô ×"Ñ" 6Ô*Ü˜6Ð$7¼¿¹Ð#BÕCàÐ.Ñ.ð Ÿ™ð ,ñ ð& Ÿ™¨7Ò2à ð Ÿ™¨:Ò5ØŸ™×2Ñ2Ð3EÔFà ð —‘ð +ñ ð !Ÿ/™/¨_Ò<Ù ð —‘¨,Ò6Ù ð )×/Ñ/ØŸ™ØŸ™Ø1°&Ñ9ð;öð &×)Ñ)¨&Ô1Ø7=·±Ð,¨VÓ4ðaP	Gô	 ˆmÓ
˜qÔ
 ðl 	˜?Ð,DäÐ#Ó$¨Ò)Ð?Ð+?Ó?Ñ)r   c                  ó6  — t         g} t         h}t        «       }g }t        | «      dkD  �rØ| j                  «       }t	        |«      D �]©  }t        ||«      }t        j                  |«      rXd|j                  v rJ|j                  d«      s9d|j                  vr+|dvr'||vr#| j                  |«       |j                  |«       Œ}t        j                  |«      rŒ“t        |d«      sŒ |j                  j                  d«      rŒ¼|j                  |j                  k7  sŒÖ||vsŒÛ|j                  dv r|j                  dk(  rŒù|j                  d	k(  r|j                  dk(  s|j                  d
k(  r|j                  dk(  r�Œ7|j                  dv r|j                  dk(  r�ŒV|j                  dv r�Œf|j                  |j                  |j                  |j                  dœ«       |j                  |«       �Œ¬ t        | «      dkD  r�ŒØ|rt        |«      dk(  sJ |«       ‚y y )Nr   rt   r`   rÆ   )Úcharr   r>   r@   Úlapack_liteÚmrecordsr   r±   rA   rD   ÚmtrandÚbit_generatorr   rÙ   rá   r   r}   rK   )Úc_longÚ
c_longlongznumpy.ctypeslib)	ÚBitGeneratorÚ	GeneratorÚMT19937ÚPCG64Ú	PCG64DXSMÚPhiloxÚRandomStateÚSFC64ÚSeedSequence)ÚFuncÚactualÚexpected)r   r&   r%   rä   r	   r
   rµ   r¶   r   ri   r]   rÚ   r   r   ©rì   rè   ré   Úincorrect_entriesr   rº   r»   s          r   Útest___module___attributer  ¡  s  € Ü�D€MÜ�d€OÜ›ÐØÐä
ˆmÓ
˜qÓ
 Ø×"Ñ"Ó$ˆÜ˜v›;ó <	.ˆKÜ˜V [Ó1ˆFô × Ñ  Ô(Ø˜6Ÿ?™?Ñ*Ø×*Ñ*¨3Ô/Ø V§_¡_Ñ4àð $ñ ð
 ˜oÑ-à×$Ñ$ VÔ,Ø×#Ñ# FÕ+ä×$Ñ$ VÕ,Ü˜ 
Õ+Ø—O‘O×.Ñ.¨sÕ3Ø×!Ñ! V§_¡_Ó4ØÐ/Ò/ð —?‘?ð 'ñ ð —o‘o¨Ò8Øð —_‘_¨
Ò2°v·±È'Ò7QØ—_‘_¨Ò0°V·_±_ÈÒ5Sáð —O‘OÐ'?Ñ?Ø—O‘OÐ'8Ò8áð —?‘?ð 'ñ ñ à!×(Ñ(à &§¡Ø"(×"3Ñ"3Ø$*§O¡Oñôð "×%Ñ% fÖ-ðy<	.ô ˆmÓ
˜qÔ
 ñ@ ÜÐ$Ó%¨Ò*Ð=Ð,=Ó=Ñ*ð r   Úreturnc                 óŽ  — | j                   }| j                  }| j                  }||j                  d«      d   k(  sJ ‚t        j
                  |   }t        j                  t        |j                  d«      |«      }|| u xsF t        |d«      xr8 t        | d«      xr* |j                  | j                  k(  xr |j                   |k(  S )Nr   éÿÿÿÿÚ__get__Ú__self__)
Ú__qualname__r   r   Úsplitr   ÚmodulesÚ	functoolsÚreducer
   r   )ÚobjÚqualnamer   r   r   Ú
actual_objs         r   Ú"_check_correct_qualname_and_moduler  ë  s¼   € Ø×Ñ€HØ�<‰<€DØ—.‘.€KØ�8—>‘> #Ó& rÑ*Ò*Ð*Ð*ä�[‰[˜Ñ%€FÜ×!Ñ!¤'¨8¯>©>¸#Ó+>ÀÓG€Jà�cÐò 	
ô �J 	Ó*ò 0¬w°s¸JÓ/Gò 0Ø×!Ñ! S§^¡^Ñ3ò0à×#Ñ# xÑ/ðr   c                  ó:  — t         g} t         h}t        «       }g }t        | «      dkD  �rZ| j                  «       }t	        |«      D �]+  }t        ||«      }t        j                  |«      rXd|j                  v rJ|j                  d«      s9|dvr5d|j                  vr'||vr#| j                  |«       |j                  |«       Œ}t        j                  |«      rŒ“t        |d«      sŒ |j                  j                  d«      rŒ¼|j                  d«      rŒÎt        |«      rŒÚ||vsŒß|j                  |j                  › d|› �|j                  › d|j                  › �dœ«       |j                  |«       �Œ. t        | «      dkD  r�ŒZ|rt        |«      dk(  sJ |«       ‚y y )	Nr   rt   r`   >   r±   rD   rÆ   r   ú:)Úfound_atÚ
advertises)r   r&   r%   rä   r	   r
   rµ   r¶   r   ri   r]   rÚ   r   r  r   r
  r  s          r   Ú*test___qualname___and___module___attributer  þ  s‹  € ô �D€MÜ�d€OÜ›ÐØÐä
ˆmÓ
˜qÓ
 Ø×"Ñ"Ó$ˆÜ˜v›;ó 	.ˆKÜ˜V [Ó1ˆFô × Ñ  Ô(Ø˜6Ÿ?™?Ñ*Ø×*Ñ*¨3Ô/ØÐ#6Ñ6Ø V§_¡_Ñ4Ø˜oÑ-à×$Ñ$ VÔ,Ø×#Ñ# FÕ+ä×$Ñ$ VÕ,Ü˜ 
Õ+Ø—O‘O×.Ñ.¨sÕ3Ø×*Ñ*¨3Õ/Ü6°vÕ>ØÐ/Ò/à!×(Ñ(à'-§¡Ð&7°q¸¸Ð$FØ)/×):Ñ):Ð(;¸1¸V×=PÑ=PÐ<QÐ&Rñôð "×%Ñ% fÖ-ð7	.ô ˆmÓ
˜qÔ
 ñ> ÜÐ$Ó%¨Ò*Ð=Ð,=Ó=Ñ*ð r   r*   )/r  rg   rµ   rY   r   r   r“   rk   r�   Úpytestrt   r   Únumpy.testingr   r3   rz   r   r   ÚmarkÚskipifÚparametrizer#   r(   r-   r0   r:   rP   Úversion_inforQ   rR   rT   r\   rc   rm   rw   rˆ   ÚxfailÚget_config_varr¡   r¯   rƒ   rÁ   rí   r  r¨   r  r  )Úss   0r   ú<module>r!     s�  ðÛ Û Û Û Û Û 
Û Û Û ã ã Û Ý !ðÛó
ò$ð ‡�×Ñ�GÐ$<ÐÓ=Ø‡�×Ñ˜ ) Ó-ñó .ó >ðò*-òò
ð
 ‡�×Ñ�F˜d�NØ@ð ó Bñ5óBð5ð(!)ö ! 1�(˜Q“,ò !€ðD ×Ñ�gÒØð
ö	Øˆ�1‹ò	ñ 	€NòÐ ð(6ö (°˜x¨!›|ò (Ð ðR ×Ñ�gÒØð8
ö:$Øˆ�1‹ò:$ñ :Ðòzð ×Ñ�wÒØ�Ià0Ð1€IòFò,€ð ×Ñ�gÒØò ñ €Kò1?òh00ðf ‡�×ÑØ€I×Ñ˜ZÓ(°Ð>ð	8ð ó ñ'óð'òTð2 ‡�×ÑØAóñ.8óð.8òbr@òjG>ðT¨tó ó&)>øðW ò ØƒFðüòv!ùòF	ùò&(ùòT:$s)   ¸G Â8GÃGÃ4G$ÄG)ÇGÇG