Ë
    u™ãj  ã                   óf  — 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	m
Z d dlmZmZmZ d dlmZ d dlmZ d„ Zej*                  d„ «       Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej@                  jC                  de«      ej@                  jC                  dejD                  «      d„ «       «       Z#y)é    N)ÚVERSIONS)ÚcheckÚexprÚexpressions)ÚENGINES)ÚVersionc                  ó  — t        j                  d«      } | j                  }t        |«      t        t        d   «      k  s%t        |«      j
                  t        j                  v rt        j                  rJ ‚y t        j                  sJ ‚y )NÚnumexpr)	ÚpytestÚimportorskipÚ__version__r   r   Úbase_versionr   ÚBLOCKED_NUMEXPR_VERSIONSÚNUMEXPR_INSTALLED)ÚneÚvers     úo/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/computation/test_compat.pyÚtest_compatr      sl   € ô 
×	Ñ	˜YÓ	'€Bà
�.‰.€Cä�‹”wœx¨	Ñ2Ó3Ò3Ü�3‹<×$Ñ$¬×(FÑ(FÑFä×*Ò*Ð*Ð*Ð*ä×&Ò&Ð&Ñ&ó    c              #   ó  K  — t         j                  st        j                  d«       t	        t         j                  «      }| j                  t         dd«       | j                  t         d|«       | j                  t         dd«       | j                  t        dd«       | j                  t        d|«       | j                  t        dd«       |–— | j                  «        t        j                  t        j                  d«      «       y­w)	zV
    Behave as though the installed numexpr were a blocked version, and yield it.
    ú)no numexpr versions are currently blockedr   FÚNUMEXPR_BLOCKED_VERSIONÚ_warned_blockedÚUSE_NUMEXPRúcompute.use_numexprN)r   r   r   ÚskipÚminÚsetattrr   ÚundoÚset_use_numexprÚpdÚ
get_option)ÚmonkeypatchÚversions     r   Úblocked_numexprr%   #   sÊ   è ø€ ô
 ×)Ò)Ü�‰Ð?Ô@ä”%×0Ñ0Ó1€GØ×ÑœÐ2°EÔ:Ø×ÑœÐ8¸'ÔBØ×ÑœÐ0°%Ô8Ø×ÑœÐ%8¸%Ô@Ø×ÑœÐ%>ÀÔHØ×Ñœ ]°EÔ:à
‚Mð ×ÑÔÜ×Ñ¤§¡Ð.CÓ DÕEùs   ‚DDc                 ó€  — t        j                  d«      }t        j                  st        j                  d«       | j                  |dt        t        j                  «      «       	 t        j                  d «      5  t        j                  t        «       d d d «       t        j                  rJ ‚t        j                  t        t        j                  «      k(  sJ ‚	 | j                  «        t        j                  t        «       y # 1 sw Y   ŒrxY w# | j                  «        t        j                  t        «       w xY w)Nr
   r   r   )r   r   r   r   r   r   r   ÚtmÚassert_produces_warningÚ	importlibÚreloadr   r   r   )r#   r   s     r   Ú%test_blocked_numexpr_version_not_usedr+   :   sä   € ô 
×	Ñ	˜YÓ	'€BÜ×)Ò)Ü�‰Ð?Ô@à×Ñ˜˜M¬3¬u×/MÑ/MÓ+NÔOð	 ô ×'Ñ'¨Ó-ñ 	$Ü×ÑœUÔ#÷	$ä×*Ò*Ð*Ð*Ü×,Ñ,´´E×4RÑ4RÓ0SÒSÐSÑSà×ÑÔÜ×ÑœÕ÷	$ð 	$ûð
 	×ÑÔÜ×ÑœÕús%   Á&D Á;DÂAD ÄDÄD Ä+D=c                 ó  — t        j                  t        d¬«      5  t        j                  «        d d d «       t        j                  d «      5  t        j                  «        d d d «       y # 1 sw Y   Œ<xY w# 1 sw Y   y xY w)Núcan silently return incorrect©Úmatch)r'   r(   ÚUserWarningr   Úwarn_numexpr_blocked)r%   s    r   Útest_blocked_numexpr_warns_oncer2   N   sj   € ä	×	#Ñ	#¤KÐ7VÔ	Wñ %Ü×"Ñ"Ô$÷%ô 
×	#Ñ	# DÓ	)ñ %Ü×"Ñ"Ô$÷%ð %÷%ð %ú÷%ð %ús   œA,ÁA8Á,A5Á8Bc                 ó<  — |j                  t        dd«       t        j                  d«       t        j                  t        j                  u sJ ‚t        j                  d«      }t        j                  d «      5  t        j                  t        j                  ||«       d d d «       t        j                  d«      }t        j                  t        d¬«      5  t        j                  t        j                  ||«       d d d «       y # 1 sw Y   ŒhxY w# 1 sw Y   y xY w)NÚ_MIN_ELEMENTSé
   Té   é   r-   r.   )r   r   r    Ú	_evaluateÚ_evaluate_blockedÚnpÚonesr'   r(   ÚevaluateÚoperatorÚaddr0   )r%   r#   ÚsmallÚarrs       r   Ú(test_blocked_numexpr_warns_on_arithmeticrA   W   sÔ   € ð ×Ñœ _°bÔ9Ü×Ñ Ô%Ü× Ñ ¤K×$AÑ$AÑAÐAÐAä�G‰G�A‹J€EÜ	×	#Ñ	# DÓ	)ñ 9Ü×ÑœXŸ\™\¨5°%Ô8÷9ô �'‰'�"‹+€CÜ	×	#Ñ	#¤KÐ7VÔ	Wñ 5Ü×ÑœXŸ\™\¨3°Ô4÷5ð 5÷	9ð 9ú÷5ð 5ús   Á9&DÃ&DÄDÄDc                 óŽ  — |j                  t        dd«       t        j                  d«       t        j                  t        j                  u sJ ‚t        j                  d«      }t        j                  dt        ¬«      }t        j                  t        d¬«      5  t        j                  |||«       d d d «       y # 1 sw Y   y xY w)Nr4   r5   Tr7   )Údtyper-   r.   )r   r   r    Ú_whereÚ_where_blockedr:   r;   Úboolr'   r(   r0   Úwhere)r%   r#   r@   Úconds       r   Ú#test_blocked_numexpr_warns_on_whererI   g   s‘   € à×Ñœ _°bÔ9Ü×Ñ Ô%Ü×Ñ¤×!;Ñ!;Ñ;Ð;Ð;ä
�'‰'�"‹+€CÜ�7‰7�2œTÔ"€DÜ	×	#Ñ	#¤KÐ7VÔ	Wñ *Ü×Ñ˜$  SÔ)÷*÷ *ñ *ús   ÂB;Â;Cc           	      ó�  — |j                  t        dd«       t        j                  d«       t        j                  t        j                  d«      «      }t        j                  t        d¬«      5  ||z   }d d d «       t        j                  t        j                  t        j                  dd«      «      «       y # 1 sw Y   ŒGxY w)Nr4   r5   T©r7   é   r-   r.   ç       @)r   r   r    r!   Ú	DataFramer:   r;   r'   r(   r0   Úassert_frame_equalÚfull©r%   r#   ÚdfÚresults       r   Ú&test_blocked_numexpr_warns_on_frame_oprT   s   sŽ   € ð ×Ñœ _°bÔ9Ü×Ñ Ô%ä	�‰”b—g‘g˜gÓ&Ó	'€BÜ	×	#Ñ	#¤KÐ7VÔ	Wñ Ø�b‘ˆ÷ä×Ñ˜&¤"§,¡,¬r¯w©w°wÀÓ/DÓ"EÕF÷ð ús   Á0B<Â<Cc           	      ó°  — |j                  t        dd«       t        j                  t	        j
                  d«      «      }t        j                  dd«      5  t        j                  d «      5  ||z   }d d d «       d d d «       t        j                  t        j                  t	        j                  dd«      «      «       y # 1 sw Y   ŒOxY w# 1 sw Y   ŒSxY w)Nr4   r5   rK   r   FrM   )r   r   r!   rN   r:   r;   Úoption_contextr'   r(   rO   rP   rQ   s       r   Ú4test_blocked_numexpr_no_frame_op_warning_if_disabledrW      s¥   € ð ×Ñœ _°bÔ9ä	�‰”b—g‘g˜gÓ&Ó	'€BÜ	×	Ñ	Ð0°%Ó	8ñ Ü×'Ñ'¨Ó-ñ 	Ø˜"‘WˆF÷	÷ô ×Ñ˜&¤"§,¡,¬r¯w©w°wÀÓ/DÓ"EÕF÷	ð 	ú÷ð ús$   ÁCÁ,C Á2CÃ C		ÃCÃCc                 ó¦   — d\  }}t        j                  t        d¬«      5  t        j                  d«      }d d d «       dk(  sJ ‚y # 1 sw Y   ŒxY w)N©rL   é   r-   r.   úa + bé   )r'   r(   r0   r!   Úeval)r%   ÚaÚbÚress       r   Ú"test_blocked_numexpr_warns_on_evalra   ‹   sJ   € à�D€A€qÜ	×	#Ñ	#¤KÐ7VÔ	Wñ Ü�g‰g�gÓˆ÷à�!Š8€O‰8÷ð ús   ¡AÁAc                 ó¨   — d\  }}d| › d�}t        j                  t        |¬«      5  t        j                  dd¬«       d d d «       y # 1 sw Y   y xY w)NrY   znumexpr z& is installed, but can silently returnr.   r[   r
   )Úengine)r   ÚraisesÚImportErrorr!   r]   )r%   r^   r_   Úmsgs       r   Ú5test_blocked_numexpr_engine_raises_naming_the_versionrg   “   sN   € ð �D€A€qØ�_Ð%Ð%KÐ
L€CÜ	�‰”{¨#Ô	.ñ +Ü
�‰� 	Õ*÷+÷ +ñ +ús   §AÁAc                 óî   — d\  }}t        j                  dd«      5  t        j                  d «      5  t        j                  d«      dk(  sJ ‚	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrY   r   Fr[   r\   )r!   rV   r'   r(   r]   )r%   r^   r_   s      r   Ú+test_blocked_numexpr_no_warning_if_disabledri   œ   sp   € à�D€A€qÜ	×	Ñ	Ð0°%Ó	8ñ )Ü×'Ñ'¨Ó-ñ 	)Ü—7‘7˜7Ó# qÒ(Ð(Ñ(÷	)÷)ð )÷	)ð 	)ú÷)ð )ús"   œA+²AÁA+ÁA(	Á$A+Á+A4rc   Úparserc                 ó    — | dk(  r%t         j                  st        j                  d«       d\  }}t	        j
                  d| |¬«      }|dk(  sJ ‚y )Nr
   z/numexpr not installed or an unsupported versionrY   r[   )rc   rj   r\   )r   r   r   r   r!   r]   )rc   rj   r^   r_   r`   s        r   Útest_invalid_numexpr_versionrl   ¤   sG   € ð �Ò¤5×#:Ò#:Ü�‰ÐEÔFØ�D€A€qÜ
�'‰'�' &°Ô
8€CØ�!Š8€O‰8r   )$r)   r=   Únumpyr:   r   Úpandas.compat._optionalr   Úpandasr!   Úpandas._testingÚ_testingr'   Úpandas.core.computationr   r   r   Úpandas.core.computation.enginesr   Úpandas.util.versionr   r   Úfixturer%   r+   r2   rA   rI   rT   rW   ra   rg   ri   ÚmarkÚparametrizeÚPARSERSrl   © r   r   ú<module>rz      s¼   ðÛ Û ã Û å ,ã Ý ÷ñ õ
 4Ý 'ò'ð ‡�ñFó ðFò, ò(%ò5ò 	*ò	Gò	Gòò+ò)ð ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜ 4§<¡<Ó0ñó 1ó ,ñr   