Ë
    âQ(h.  ã                   óö  — d Z ddlZddlZddlZddlZg Z eej                  j                  «      D ].  Z
ej                   eej                  j                  e
«      «       Œ0  eej                  j                  «      D ].  Z
ej                   eej                  j                  e
«      «       Œ0 eD � cg c]  }  e| ej                  «      sŒ| ‘Œ c} Zej                   j#                  de«      d„ «       Zyc c} w )a’  Test that all ufuncs have float32-preserving signatures.

This was once guaranteed through the code generation script for
generating ufuncs, `scipy/special/_generate_pyx.py`. Starting with
gh-20260, SciPy developers have begun moving to generate ufuncs
through direct use of the NumPy C API (through C++). Existence of
float32 preserving signatures must now be tested since it is no
longer guaranteed.
é    NÚufuncc                 ó  — t        d„ | j                  D «       «      }t        «       }|D ]U  }|j                  |j                  dd«      j                  dd«      |j                  dd«      j                  dd«      g«       ŒW ||k(  sJ ‚y )Nc              3   ó@   K  — | ]  }d |v sd|v sd|v sd|v s|–— Œ y­w)ÚlÚiÚqÚpN© )Ú.0Úsigs     úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/special/tests/test_ufunc_signatures.pyú	<genexpr>z(test_ufunc_signatures.<locals>.<genexpr>#   s2   è ø€ ò O˜Ø˜s™
 c¨S¡j°C¸3±JÀ#ÈÁ*ô ñ Oùs   ‚ÚdÚfÚDÚF)ÚsetÚtypesÚupdateÚreplace)r   r   Úexpanded_typesr   s       r   Útest_ufunc_signaturesr      s’   € ô ñ O˜uŸ{™{ô Oó O€Eô
 “U€NØò 
ˆØ×ÑØ�[‰[˜˜cÓ"×*Ñ*¨3°Ó4Ø�[‰[˜˜cÓ"×*Ñ*¨3°Ó4ð6õ	
ð
ð
 �NÒ"Ð"Ñ"ó    )Ú__doc__ÚnumpyÚnpÚpytestÚscipy.special._ufuncsÚscipyÚscipy.special._gufuncsÚ_ufuncsÚdirÚspecialÚfuncnameÚappendÚgetattrÚ_gufuncsÚ
isinstancer   ÚmarkÚparametrizer   )Úfuncs   0r   ú<module>r,      sÛ   ðñó Û Û Û à
€Ù�E—M‘M×)Ñ)Ó*ò =€HØ‡N�N‘7˜5Ÿ=™=×0Ñ0°(Ó;Õ<ð=á�E—M‘M×*Ñ*Ó+ò >€HØ‡N�N‘7˜5Ÿ=™=×1Ñ1°8Ó<Õ=ð>ð $Ö
B�D¡z°$¸¿¹Õ'AŠ4Ò
B€à‡�×Ñ˜ 'Ó*ñ#ó +ñ#ùò Cs   Â3C6ÃC6