Ë
    ¤ehzÖ  ã            	       óZ  — d dl Z d dlZd dlZd dlmZmZ d dlmc m	Z
 d dlZd dlmZmZmZmZmZ d dlmZ d dlmZ  ej.                  ddgd„ ¬«      d	„ «       Z ej.                  d ej2                  d
 e
j4                  d
«      ¬«      gd„ ¬«      d„ «       Zd„ Z G d„ d«      Z G d„ d«      Z G d„ d«      Z e
j4                  d
«       G d„ d«      «       Z  e
j4                  d
«       G d„ de «      «       Z! G d„ de «      Z" G d„ de!«      Z# G d„ d«      Z$ G d„ d «      Z% G d!„ d"«      Z&y)#é    N)ÚNumExprClobberingErrorÚUndefinedVariableError)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_range)ÚNUMEXPR_INSTALLEDÚpythonÚpandasc                 ó   — | S ©N© ©Úxs    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/frame/test_query_eval.pyú<lambda>r      s   € ¸1€ ó    )ÚparamsÚidsc                 ó   — | j                   S r   ©Úparam©Úrequests    r   Úparserr      s   € à�=‰=Ðr   Únumexpr)Úmarksc                 ó   — | S r   r   r   s    r   r   r      s   € �!€ r   c                 ó   — | j                   S r   r   r   s    r   Úenginer!      s   € ð
 �=‰=Ðr   c                 ó@   — | dk7  rt        j                  d| › �«       y y )Nr   zcannot evaluate with parser=)ÚpytestÚskip)r   s    r   Úskip_if_no_pandas_parserr%   %   s#   € Ø�ÒÜ�‰Ð2°6°(Ð;Õ<ð r   c                   ó�   — e Zd Zej                  d„ «       Zej                  d„ «       Zej                  d„ «       Zd„ Zd„ Z	d„ Z
d„ Zy)	Ú
TestCompatc                 ó    — t        dg d¢i«      S )NÚA©é   é   é   ©r   ©Úselfs    r   ÚdfzTestCompat.df+   s   € ä˜#šyÐ)Ó*Ð*r   c                 ó&   — ||j                   dkD     S )Nr   ©r)   ©r0   r1   s     r   Ú	expected1zTestCompat.expected1/   s   € à�"—$‘$˜‘(‰|Ðr   c                 ó    — |j                   dz   S ©Nr+   r3   r4   s     r   Ú	expected2zTestCompat.expected23   s   € à�t‰t�a‰xˆr   c                 ó¤   — |j                  d«      }t        j                  ||«       |j                  d«      }t        j                  ||d¬«       y )NúA>0úA+1F©Úcheck_names©ÚqueryÚtmÚassert_frame_equalÚevalÚassert_series_equal©r0   r1   r5   r8   Úresults        r   Útest_query_defaultzTestCompat.test_query_default7   s@   € ð —‘˜%“ˆÜ
×Ñ˜f iÔ0Ø—‘˜“ˆÜ
×Ñ˜v y¸eÖDr   c                 ó¬   — |j                  dd ¬«      }t        j                  ||«       |j                  dd ¬«      }t        j                  ||d¬«       y )Nr:   ©r!   r;   Fr<   r>   rD   s        r   Útest_query_NonezTestCompat.test_query_None?   sH   € Ø—‘˜%¨�Ó-ˆÜ
×Ñ˜f iÔ0Ø—‘˜ t�Ó,ˆÜ
×Ñ˜v y¸eÖDr   c                 ó¬   — |j                  dd¬«      }t        j                  ||«       |j                  dd¬«      }t        j                  ||d¬«       y )Nr:   r   rH   r;   Fr<   r>   rD   s        r   Útest_query_pythonzTestCompat.test_query_pythonE   sH   € Ø—‘˜%¨�Ó1ˆÜ
×Ñ˜f iÔ0Ø—‘˜ x�Ó0ˆÜ
×Ñ˜v y¸eÖDr   c                 óÊ  — t         rU|j                  dd¬«      }t        j                  ||«       |j	                  dd¬«      }t        j
                  ||d¬«       y d}t        j                  t        |¬«      5  |j                  dd¬«       d d d «       t        j                  t        |¬«      5  |j	                  dd¬«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)	Nr:   r   rH   r;   Fr<   z~'numexpr' is not installed or an unsupported version. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installed©Úmatch)	r
   r?   r@   rA   rB   rC   r#   ÚraisesÚImportError)r0   r1   r5   r8   rE   Úmsgs         r   Útest_query_numexprzTestCompat.test_query_numexprK   sÂ   € ÝØ—X‘X˜e¨I�XÓ6ˆFÜ×!Ñ! &¨)Ô4Ø—W‘W˜U¨9�WÓ5ˆFÜ×"Ñ" 6¨9À%ÖHð!ð ô
 —‘œ{°#Ô6ñ 2Ø—‘˜ y�Ô1÷2ä—‘œ{°#Ô6ñ 1Ø—‘˜ i�Ô0÷1ð 1÷2ð 2ú÷1ð 1ús   Á9CÂ0CÃCÃC"N)Ú__name__Ú
__module__Ú__qualname__r#   Úfixturer1   r5   r8   rF   rI   rK   rR   r   r   r   r'   r'   *   s_   „ Ø‡^�^ñ+ó ð+ð ‡^�^ñó ðð ‡^�^ñó ðòEòEòEó1r   r'   c                   óº   — e Zd Zej                  j                  dddg«      ej                  j                  dg d¢«      d„ «       «       Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zy)ÚTestDataFrameEvalÚné   i   zop_str,op,rop))ú+Ú__add__Ú__radd__)ú-Ú__sub__Ú__rsub__)Ú*Ú__mul__Ú__rmul__)ú/Ú__truediv__Ú__rtruediv__c                 ó&  — t        dt        |«      t        d«      ¬«      }d|j                  d<   |j	                  «       }t        t        j                  |j                  |«      j                  |d«      t        d«      ¬«      }t        d|› d	�«      }t        d
|› d	�«      }	t        j                  |	|«       |dv r) t        ||«      |«      }	t        j                  |	|«       y |dv r) t        ||«      |«      }	t        j                  |	|«       y y )Nr+   Úabcd©ÚindexÚcolumnsr,   r   éÿÿÿÿ©rk   zbase z dfzm )r[   ra   )r^   rd   )r   ÚrangeÚlistÚilocÚmeanÚnpÚtileÚvaluesÚreshaperB   r@   rA   Úgetattr)
r0   Úop_strÚopÚroprY   r1   ÚmÚbaseÚexpectedrE   s
             r   Útest_opszTestDataFrameEval.test_ops_   sù   € ô �q¤ a£´$°v³,Ô?ˆØˆ�‰�‰
Ø�G‰G‹IˆäÜ�G‰G�A—H‘H˜aÓ ×(Ñ(¨¨BÓ/¼¸f»ô
ˆô ˜% ˜x sÐ+Ó,ˆô ˜˜6˜( #Ð&Ó'ˆÜ
×Ñ˜f hÔ/ð �ÑØ$”W˜R “_ QÓ'ˆFÜ×!Ñ! &¨(Õ3ð �:ÑØ%”W˜R Ó% aÓ(ˆFÜ×!Ñ! &¨(Õ3ð r   c                 óp  — t        dt        j                  j                  d«      j	                  d«      i«      }t        j
                  |j                  dd dt        j                  |j                  dd «      z
  }dt        j                  |«      z
  j                  dd }t        j                  ||«       y )Nr)   r,   i¨a  r   é   r+   é   )
r   rr   ÚrandomÚdefault_rngÚstandard_normalÚnanrp   Úisnanr@   rA   )r0   r1   r|   rE   s       r   Útest_dataframe_sub_numexpr_pathz1TestDataFrameEval.test_dataframe_sub_numexpr_path…   sŒ   € ô ˜œRŸY™Y×2Ñ2°1Ó5×EÑEÀeÓLÐMÓNˆÜ—v‘vˆ�‰��!ˆØ”r—x‘x §¡¨¨" Ó.Ñ.ˆØ”b—h‘h˜r“lÑ"×(Ñ(¨¨2Ð.ˆÜ
×Ñ˜f hÕ/r   c                 ó2  — t        g d¢g d¢dœ«      }d}t        j                  t        |¬«      5  |j	                  d„ «       d d d «       t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)Nr*   )ÚaÚbr‰   ©r)   ÚBz%expr must be a string to be evaluatedrM   c                 ó    — | j                   dk(  S )Nr‰   )r‹   r   s    r   r   z6TestDataFrameEval.test_query_non_str.<locals>.<lambda>”   s   € ˜qŸs™s c™z€ r   éo   ©r   r#   rO   Ú
ValueErrorr?   ©r0   r1   rQ   s      r   Útest_query_non_strz$TestDataFrameEval.test_query_non_strŽ   s{   € äšYª_Ñ=Ó>ˆà5ˆÜ�]‰]œ:¨SÔ1ñ 	+Ø�H‰HÑ)Ô*÷	+ô �]‰]œ:¨SÔ1ñ 	Ø�H‰H�SŒM÷	ð 	÷	+ð 	+ú÷	ð 	ús   °BÁ&BÂB
ÂBc                 ó¨   — t        dg d¢i«      }d}t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   y xY w)Nr)   r*   zexpr cannot be an empty stringrM   Ú rŽ   r�   s      r   Útest_query_empty_stringz)TestDataFrameEval.test_query_empty_string™   sD   € ä˜šYÐ'Ó(ˆà.ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�H‰H�RŒL÷	÷ 	ñ 	ús   ­AÁAc                 ó,  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }ddi}ddi}|j                  d||g¬	«      |d   |d   z   k(  sJ ‚t        j                  d||g¬	«      |d   |d   z   k(  sJ ‚y )
Nr,   ©é
   r,   Úabrm   rˆ   r+   r‰   úa + b©Ú	resolvers)r   rr   r�   r‚   rƒ   ro   rB   Úpd)r0   r1   Údict1Údict2s       r   Útest_eval_resolvers_as_listz-TestDataFrameEval.test_eval_resolvers_as_list¡   s›   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð �a�ˆØ�a�ˆØ�w‰w�w¨5°%¨.ˆwÓ9¸UÀ3¹ZÈ%ÐPSÉ*Ñ=TÒTÐTÐTÜ�w‰w�w¨5°%¨.Ô9¸UÀ3¹ZÈ%ÐPSÉ*Ñ=TÒTÐTÑTr   c                 ó  — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      }ddi}|j                  d|g¬«      }|d   |d	   |d   z  z   }t        j                  ||«       y )
Nr,   r–   r˜   rm   Úcz	a + b * crš   rˆ   r‰   )	r   rr   r�   r‚   rƒ   ro   rB   r@   rC   )r0   r1   r�   rE   r|   s        r   Útest_eval_resolvers_combinedz.TestDataFrameEval.test_eval_resolvers_combined«   s{   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð �a�ˆð —‘˜°°�Ó8ˆà�c‘7˜R ™W u¨S¡zÑ1Ñ1ˆÜ
×Ñ˜v xÕ0r   c                 ó”   — t        dddgi«      }|j                  d«      }t        ddgddgdœ«      }t        j                  ||«       y )NÚa1ÚYÚNzc = ((a1 == 'Y') & True)TF)r¤   r¡   )r   rB   r@   rA   )r0   r1   Úresr|   s       r   Útest_eval_object_dtype_binopz.TestDataFrameEval.test_eval_object_dtype_binop¸   sK   € ä˜˜s C˜jÐ)Ó*ˆØ�g‰gÐ0Ó1ˆÜ S¨# J°d¸E°]ÑCÓDˆÜ
×Ñ˜c 8Õ,r   N)rS   rT   rU   r#   ÚmarkÚparametrizer}   r†   r‘   r”   rŸ   r¢   r¨   r   r   r   rX   rX   ]   sg   „ à‡[�[×Ñ˜S 1 d )Ó,Ø‡[�[×ÑØò	
óñ4óó -ð4ò80ò	òòUò1ó-r   rX   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)Ú TestDataFrameQueryWithMultiIndexc                 ó¨  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j                  j                  d«      j	                  ddgd¬«      }t        j                  ||gdd	g¬
«      }t        t        j                  j                  d«      j                  d«      |¬«      }t        |j                  j                  d«      j                  |d¬«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       y )Nr,   ÚredÚgreenr—   ©ÚsizeÚeggsÚhamÚcolorÚfood©Únamesr–   ©rj   ©rj   Únamezcolor == "red"©r   r!   z"red" == colorzcolor != "red"z"red" != colorzcolor == ["red"]z["red"] == colorzcolor != ["red"]z["red"] != colorz["red"] in colorz"red" in colorz["red"] not in colorz"red" not in color©r%   rr   r�   r‚   Úchoicer   Úfrom_arraysr   rƒ   r   rj   Úget_level_valuesrt   r?   r@   rA   Úisin©r0   r   r!   rˆ   r‰   rj   r1   ÚindÚres1Úres2Úexps              r   Ú test_query_with_named_multiindexzATestDataFrameQueryWithMultiIndex.test_query_with_named_multiindexÁ   sý  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÓEˆÜ×&Ñ&¨¨1 v°g¸vÐ5FÔGˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆÜØ�H‰H×%Ñ% gÓ.×5Ñ5¸UÈô
ˆð
 �x‰xÐ(°ÀˆxÓGˆØ�x‰xÐ(°ÀˆxÓGˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ(°ÀˆxÓGˆØ�x‰xÐ(°ÀˆxÓGˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ*°6À&ˆxÓIˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ*°6À&ˆxÓIˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ*°6À&ˆxÓIˆØ�x‰xÐ(°ÀˆxÓGˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ,°VÀFˆxÓKˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÕ(r   c                 óº  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j                  j                  d«      j	                  ddgd¬«      }t        j                  ||g«      }t        t        j                  j                  d«      j                  d«      |¬	«      }t        |j                  j                  d
«      j                  |¬	«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       t        |j                  j                  d«      j                  |¬	«      }|j                  d||¬«      }|j                  d||¬«      }	||dk(     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||dk7     }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d||¬«      }|j                  d ||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       |j                  d!||¬«      }|j                  d"||¬«      }	||j!                  dg«         }
t        j                  ||
«       t        j                  |	|
«       |j                  d#||¬«      }|j                  d$||¬«      }	||j!                  dg«          }
t        j                  ||
«       t        j                  |	|
«       y )%Nr,   r®   r¯   r—   r°   r²   r³   r–   r¸   r   úilevel_0 == "red"r»   z"red" == ilevel_0úilevel_0 != "red"z"red" != ilevel_0zilevel_0 == ["red"]z["red"] == ilevel_0zilevel_0 != ["red"]z["red"] != ilevel_0z["red"] in ilevel_0z"red" in ilevel_0z["red"] not in ilevel_0z"red" not in ilevel_0r+   zilevel_1 == "eggs"z"eggs" == ilevel_1zilevel_1 != "eggs"z"eggs" != ilevel_1zilevel_1 == ["eggs"]z["eggs"] == ilevel_1zilevel_1 != ["eggs"]z["eggs"] != ilevel_1z["eggs"] in ilevel_1z"eggs" in ilevel_1z["eggs"] not in ilevel_1z"eggs" not in ilevel_1r¼   rÁ   s              r   Ú"test_query_with_unnamed_multiindexzCTestDataFrameQueryWithMultiIndex.test_query_with_unnamed_multiindexó   sJ  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÓEˆÜ×&Ñ&¨¨1 vÓ.ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆà�x‰xÐ+°FÀ6ˆxÓJˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ+°FÀ6ˆxÓJˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ-°fÀVˆxÓLˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ-°fÀVˆxÓLˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ-°fÀVˆxÓLˆØ�x‰xÐ+°FÀ6ˆxÓJˆØ�—‘˜5˜'Ó"Ñ#ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ1¸&ÈˆxÓPˆØ�x‰xÐ/¸ÀvˆxÓNˆØ�#—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ô �R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�x‰xÐ,°VÀFˆxÓKˆØ�x‰xÐ,°VÀFˆxÓKˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ,°VÀFˆxÓKˆØ�x‰xÐ,°VÀFˆxÓKˆØ�˜‘ÑˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ.°vÀfˆxÓMˆØ�—‘˜6˜(Ó#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ.°vÀfˆxÓMˆØ�#—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(ð �x‰xÐ.°vÀfˆxÓMˆØ�x‰xÐ,°VÀFˆxÓKˆØ�—‘˜6˜(Ó#Ñ$ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÔ(à�x‰xÐ2¸6È&ˆxÓQˆØ�x‰xÐ0¸ÈˆxÓOˆØ�#—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ñ˜d CÔ(Ü
×Ñ˜d CÕ(r   c                 ón  — t        |«       t        j                  j                  d«      j	                  ddgd¬«      }t        j
                  d«      }t        j                  ||g«      }d dg|_        t        t        j                  j                  d«      j                  d«      |¬«      }|j                  d	||¬
«      }t        |j                  j                  d«      j                  |d¬«      }||dk(     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |d¬«      }||dk7     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |¬«      }||dk(     }	t!        j"                  ||	«       |j                  d||¬
«      }t        |j                  j                  d«      j                  |¬«      }||dk7     }	t!        j"                  ||	«       y )Nr,   r®   r¯   r—   r°   Úratingr–   r¸   zrating == 1r»   r¹   r+   zrating != 1rÈ   r   rÉ   )r%   rr   r�   r‚   r½   Úaranger   r¾   r·   r   rƒ   r?   r   rj   r¿   rt   r@   rA   )
r0   r   r!   rˆ   r‰   rj   r1   r§   rÂ   rÅ   s
             r   Ú*test_query_with_partially_named_multiindexzKTestDataFrameQueryWithMultiIndex.test_query_with_partially_named_multiindexK  sá  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÓFˆÜ�I‰I�b‹MˆÜ×&Ñ&¨¨1 vÓ.ˆØ˜XÐ&ˆŒÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÔVˆØ�h‰h�}¨V¸FˆhÓCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰h�}¨V¸FˆhÓCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ô
ˆð �˜‘‰lˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�˜‘ÑˆÜ
×Ñ˜c 3Ô'à�h‰hÐ*°6À&ˆhÓIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÔFˆØ�˜‘ÑˆÜ
×Ñ˜c 3Õ'r   c                 ód  — t        t        j                  d«      t        j                  t        d«      D �cg c]  }t        d«      ‘Œ c}ddg¬«      ¬«      }|j                  «       }d„ }|j                  j                  «       }|j                  | ||j                  d«       ||j                  d«      |d	œ}|j                  «       D ]`  \  }}t        |t        «      r|j                  ||   «      rŒ+J ‚t        |t        «      rt        j                   |||   «       ŒWt#        d
«      ‚ y c c}w )N©r—   r-   r,   r—   Úspamr²   r¶   r¸   c                 óV   — | j                  |«      }|j                  «       }| |_        |S r   )r¿   Ú	to_seriesrj   )ÚmiÚlevelÚlevel_valuesÚss       r   rÓ   z]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_seriess  s,   € Ø×.Ñ.¨uÓ5ˆLØ×&Ñ&Ó(ˆAØˆAŒGØˆHr   )rj   rk   rÑ   r²   Úclevel_0z object must be a Series or Index)r   rr   Úonesr   r¾   rn   Ú_get_index_resolversrk   rÓ   rj   ÚitemsÚ
isinstancer   Úis_r   r@   rC   ÚAssertionError)	r0   Ú_r1   r›   rÓ   Ú
col_seriesr|   ÚkÚvs	            r   Ú)test_query_multiindex_get_index_resolverszJTestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolversj  s	  € ÜÜ�G‰G�GÓÜ×(Ñ(Ü$)¨!£HÖ-˜q”�r•Ò-°f¸fÐ5Eôô
ˆð ×+Ñ+Ó-ˆ	ò	ð —Z‘Z×)Ñ)Ó+ˆ
à—X‘XØ!Ù˜bŸh™h¨Ó/Ù˜bŸh™h¨Ó/Ø"ñ
ˆð —O‘OÓ%ò 	I‰DˆAˆqÜ˜!œUÔ#Ø—u‘u˜X a™[Õ)Ð)Ð)Ü˜AœvÔ&Ü×&Ñ& q¨(°1©+Õ6ä$Ð%GÓHÐHñ	Iùò' .s   ¶D-N)rS   rT   rU   rÆ   rÊ   rÎ   rã   r   r   r   r¬   r¬   À   s   „ ò0)òdV)òp(ó>Ir   r¬   c                   ó\  — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej:                  j=                  ddej@                  gdejB                  gg«      d„ «       Z"d„ Z#d„ Z$y) ÚTestDataFrameQueryNumExprPandasc                  ó   — y©Nr   r   r/   s    r   r!   z&TestDataFrameQueryNumExprPandas.engineŒ  ó   € àr   c                  ó   — y©Nr   r   r/   s    r   r   z&TestDataFrameQueryNumExprPandas.parser�  ó   € àr   c                 ó€  — t        |«       t        t        j                  j	                  d«      j                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr,   ©r   r-   ú1/1/2012r   ©ÚperiodsÚdates1ú1/1/2013Údates2ú1/1/2014Údates3z"@df.dates1 < 20130101 < @df.dates3©r!   r   Ú20130101)r%   r   rr   r�   r‚   rƒ   r	   r?   rñ   rõ   r@   rA   ©r0   r!   r   r1   r§   Úexpecs         r   Ú%test_date_query_with_attribute_accesszETestDataFrameQueryNumExprPandas.test_date_query_with_attribute_access”  s«   € Ü  Ô(Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hØ0¸Èð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ój  — t        t        j                  j                  d«      j	                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr,   rí   rî   r   rï   rñ   rò   ró   rô   rõ   údates1 < 20130101 < dates3rö   r÷   ©r   rr   r�   r‚   rƒ   r	   r?   rñ   rõ   r@   rA   rø   s         r   Ú#test_date_query_no_attribute_accesszCTestDataFrameQueryNumExprPandas.test_date_query_no_attribute_access   sœ   € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óª  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        d	|¬«      |d
<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  df<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  d
f<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr—   r,   r-   rî   rï   rñ   rò   ró   rô   rõ   ç      à?rü   rö   r÷   ©r   rr   r�   r‚   rƒ   r	   rœ   ÚNaTÚlocr?   rñ   rõ   r@   rA   ©r0   r!   r   rY   r1   r§   rù   s          r   Útest_date_query_with_NaTz8TestDataFrameQueryNumExprPandas.test_date_query_with_NaT©  s  € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ó‚  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr—   r,   r-   rî   rï   rñ   rô   rõ   T©ÚinplaceÚdropúindex < 20130101 < dates3rö   r÷   ©r   rr   r�   r‚   rƒ   r	   Ú	set_indexr?   rj   rõ   r@   rA   ©r0   r!   r   rY   r1   Úreturn_valuer§   rù   s           r   Útest_date_index_queryz5TestDataFrameQueryNumExprPandas.test_date_index_queryµ  sµ   € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óæ  — d}t        t        j                  j                  d«      j	                  |df«      «      j                  dt        i«      }t        d|¬«      |d<   t        d|¬«      |d	<   t        j                  |j                  d
<   |j                  ddd¬«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )Nr—   r,   r-   r   rî   rï   rñ   rô   rõ   ©r   r   Tr  r
  rö   r÷   ©r   rr   r�   r‚   rƒ   ÚastypeÚobjectr	   rœ   r  rp   r  r?   rj   rõ   r@   rA   r  s           r   Útest_date_index_query_with_NaTz>TestDataFrameQueryNumExprPandas.test_date_index_query_with_NaTÀ  sÚ   € Øˆä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓH×OÑOØ”ˆKó
ˆô " *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜŸ™ˆ�‰�‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ2¸6È&ˆhÓQˆØ�B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óâ  — d}i }t        d|¬«      |d<   t        d|¬«      |d<   t        |«      }t        j                  |j                  t
        j                  j                  d«      j                  |«      dkD  df<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  j                  «       dk  d|j                  k  z     }t        j                  ||«       y )Nr—   rî   rï   rñ   rô   rõ   r,   r   Tr  rü   rö   r÷   )r	   r   rœ   r  r  rr   r�   r‚   r  r?   rj   rÓ   rõ   r@   rA   )	r0   r!   r   rY   Údr1   r  r§   rù   s	            r   Ú)test_date_index_query_with_NaT_duplicateszITestDataFrameQueryNumExprPandas.test_date_index_query_with_NaT_duplicatesÏ  sÚ   € ØˆØˆÜ  °QÔ7ˆˆ(‰Ü  °QÔ7ˆˆ(‰Ü�q‹\ˆÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hÐ3¸FÈ6ˆhÓRˆØ�B—H‘H×&Ñ&Ó(¨:Ñ5¸*ÀrÇyÁyÑ:PÑQÑRˆÜ
×Ñ˜c 5Õ)r   c                 óž  — d}t        t        d|¬«      t        j                  |«      dœ«      }|j	                  d||¬«      }t        |«      dk(  sJ ‚|j	                  d||¬«      }t        j                  ||«       d	}d
D ]>  }t        j                  t        |¬«      5  |j	                  d|› d�||¬«       d d d «       Œ@ y # 1 sw Y   ŒKxY w)Nr—   rî   rï   )ÚdatesÚnondatezdates == nondater»   r   zdates != nondatez=Invalid comparison between dtype=datetime64\[ns\] and ndarray)ú<ú>ú<=ú>=rM   zdates z nondate)r   r	   rr   rÍ   r?   Úlenr@   rA   r#   rO   Ú	TypeError)r0   r!   r   rY   r1   rE   rQ   rx   s           r   Útest_date_query_with_non_datez=TestDataFrameQueryNumExprPandas.test_date_query_with_non_dateÜ  sÔ   € ØˆÜÜ  °QÔ7ÄBÇIÁIÈaÃLÑQó
ˆð —‘Ð,°VÀF�ÓKˆÜ�6‹{˜aÒÐÐà—‘Ð,°VÀF�ÓKˆÜ
×Ñ˜f bÔ)àNˆØ(ò 	NˆBÜ—‘œy°Ô4ñ NØ—‘˜6 "  XÐ.°vÀf�ÔM÷Nð Nñ	N÷Nð Nús   ÂCÃC	c                 óè   — t        t        d«      t        dd«      t        dd«      dœ«      }d}t        j                  t        |¬«      5  |j                  d	||¬
«       d d d «       y # 1 sw Y   y xY w)Nr—   r-   é   rZ   é   )Úir[   Úrzinvalid syntaxrM   zi - +rö   )r   rn   r#   rO   ÚSyntaxErrorr?   )r0   r!   r   r1   rQ   s        r   Útest_query_syntax_errorz7TestDataFrameQueryNumExprPandas.test_query_syntax_errorí  s]   € ÜœU 2›Y¬U°1°b«\ÄÀaÈÃÑMÓNˆØˆÜ�]‰]œ;¨cÔ2ñ 	<Ø�H‰H�W V°FˆHÔ;÷	<÷ 	<ñ 	<ús   Á
A(Á(A1c                 ó¼  — t        |«       t        t        j                  j	                  d«      j                  d«      t        d«      ¬«      }d\  }}|j                  d||¬«      }||j                  |j                  kD     }t        j                  ||«       |j                  d||¬«      }|||j                  kD     }t        j                  ||«       t        j                  t        d	¬
«      5  |j                  d||¬«       d d d «       t        j                  t        d¬
«      5  |j                  d||¬«       d d d «       y # 1 sw Y   ŒBxY w# 1 sw Y   y xY w)Nr,   )é   r,   r˜   rm   )r+   r,   za > brö   z@a > bú!local variable 'c' is not definedrM   z@a > b > @czname 'c' is not definedz
@a > b > c)r%   r   rr   r�   r‚   rƒ   ro   r?   rˆ   r‰   r@   rA   r#   rO   r   )r0   r!   r   r1   rˆ   r‰   r§   r|   s           r   Útest_query_scopez0TestDataFrameQueryNumExprPandas.test_query_scopeó  s4  € Ü  Ô(äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzô
ˆð ‰ˆˆ1Ø�h‰h�w v°fˆhÓ=ˆØ�b—d‘d˜RŸT™T‘k‘?ˆÜ
×Ñ˜c 8Ô,à�h‰h�x¨°vˆhÓ>ˆØ�a˜"Ÿ$™$‘h‘<ˆÜ
×Ñ˜c 8Ô,ô �]‰]Ü"Ð*Mô
ñ 	Bð �H‰H�]¨6¸&ˆHÔA÷	Bô �]‰]Ô1Ð9RÔSñ 	AØ�H‰H�\¨&¸ˆHÔ@÷	Að 	A÷	Bð 	Bú÷	Að 	Aús   Ã0EÄ(EÅEÅEc                 ó   — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }t        j                  t        d¬«      5  |j                  d	||¬
«       d d d «       y # 1 sw Y   y xY w)Nr—   r,   r-   r°   Úabcrm   zname 'sin' is not definedrM   úsin > 5rö   )
r   rr   r�   r‚   Úintegersro   r#   rO   r   r?   )r0   r!   r   rY   rz   r1   s         r   Útest_query_doesnt_pickup_localz>TestDataFrameQueryNumExprPandas.test_query_doesnt_pickup_local  sz   € Øˆ
ˆˆAÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆô
 �]‰]Ô1Ð9TÔUñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á&BÂBc                 óF  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        d}t        j                  t        |¬	«      5  |j                  d
||¬«       d d d «       y # 1 sw Y   y xY w)Nr—   r,   r-   r°   r/  rm   ÚsinzVariables in expression.+rM   r0  rö   )r   rr   r�   r‚   r1  ro   rj   rº   r#   rO   r   r?   )r0   r!   r   rY   rz   r1   rQ   s          r   Útest_query_builtinz2TestDataFrameQueryNumExprPandas.test_query_builtin  s‰   € Øˆ
ˆˆAÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ)ˆÜ�]‰]Ô1¸Ô=ñ 	>Ø�H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   Á9BÂB c                 ó¶  — t        t        j                  j                  d«      j	                  d«      g d¢¬«      }t        j                  |j                  d||¬«      ||j                  |j                  k     «       t        j                  |j                  d||¬«      ||j                  |j                  z   |j                  |j                  z  kD     «       y )Nr,   rÐ   ©rˆ   r‰   r¡   rm   úa < brö   za + b > b * c)r   rr   r�   r‚   rƒ   r@   rA   r?   rˆ   r‰   r¡   ©r0   r!   r   r1   s       r   Ú
test_queryz*TestDataFrameQueryNumExprPandas.test_query"  s¦   € ÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Âô
ˆô 	×ÑØ�H‰H�W V°FˆHÓ;¸RÀÇÁÀrÇtÁtÁ¹_ô	
ô 	×ÑØ�H‰H�_¨V¸FˆHÓCØˆr�t‰t�b—d‘d‰{˜RŸT™T B§D¡D™[Ñ(Ñ)õ	
r   c                 óà  — t        t        j                  j                  d«      j	                  dd¬«      t        t        d«      d¬«      g d¢¬«      }|j                  d	||¬
«      }||j                  dk  |j                  |j                  k  z     }t        j                  ||«       |j                  d||¬
«      }||j                  |j                  k     }t        j                  ||«       y )Nr,   r—   rÐ   r°   Úblob©rº   r7  ri   z(blob < 5) & (a < b)rö   r   zblob < b)r   rr   r�   r‚   r1  r   rn   r?   rj   rˆ   r‰   r@   rA   rø   s         r   Útest_query_index_with_namez:TestDataFrameQueryNumExprPandas.test_query_index_with_name/  sÃ   € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ó?Üœ˜b›	¨Ô/Ú#ô
ˆð
 �h‰hÐ-°fÀVˆhÓLˆØ�B—H‘H˜q‘L R§T¡T¨B¯D©D¡[Ñ1Ñ2ˆÜ
×Ñ˜c 5Ô)à�h‰h�z¨&¸ˆhÓ@ˆØ�2—8‘8˜bŸd™d‘?Ñ#ˆä
×Ñ˜c 5Õ)r   c                 ó–  — t        t        j                  j                  d«      j	                  dd¬«      t        d«      g d¢¬«      }|j                  d||¬«      }||j                  |j                  k     }t        j                  ||«       |j                  d	||¬«      }||j                  d
k     }t        j                  ||«       y )Nr,   r—   rÐ   r°   r7  ri   z	index < brö   z	index < 5r   )r   rr   r�   r‚   r1  rn   r?   rj   r‰   r@   rA   rø   s         r   Útest_query_index_without_namez=TestDataFrameQueryNumExprPandas.test_query_index_without_name>  s¬   € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ó?Ü˜“)Ú#ô
ˆð �h‰h�{¨6¸&ˆhÓAˆØ�2—8‘8˜bŸd™d‘?Ñ#ˆÜ
×Ñ˜c 5Ô)ð �h‰h�{¨6¸&ˆhÓAˆØ�2—8‘8˜a‘<Ñ ˆÜ
×Ñ˜c 5Õ)r   c                 óÖ  — t        |«       t        t        j                  j	                  d«      j                  d«      «      }t        t        j                  j	                  d«      j                  d«      «      }||dkD  |dkD  z     }|j                  d||¬«      }t        j                  ||«       t        j                  d||¬«      }t        j                  ||«       t        j                  d||¬«      }||dkD  |dkD  z  ||dkD     dkD  z     }t        j                  ||«       t        j                  d||¬«      }|j                  d	||¬«      }t        j                  ||«       y )
Nr,   rí   r   z(@df > 0) & (@df2 > 0)rö   zdf[df > 0 and df2 > 0]z)df[df > 0 and df2 > 0 and df[df > 0] > 0]zdf[(df>0) & (df2>0)]ú(@df>0) & (@df2>0))r%   r   rr   r�   r‚   rƒ   r?   r@   rA   rœ   rB   )r0   r!   r   r1   Údf2r|   rE   s          r   Útest_nested_scopez1TestDataFrameQueryNumExprPandas.test_nested_scopeO  s8  € Ü  Ô(ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆØ�r˜A‘v #¨¡'Ñ*Ñ+ˆà—‘Ð2¸6È&�ÓQˆÜ
×Ñ˜f hÔ/ä—‘Ð1¸&ÈÔPˆÜ
×Ñ˜f hÔ/ä—‘Ø7ÀÈvô
ˆð �r˜A‘v #¨¡'Ñ*¨b°°a±©j¸1©nÑ=Ñ>ˆÜ
×Ñ˜f hÔ/ä—‘Ð/¸ÀvÔNˆØ—8‘8Ð0¸È�8ÓOˆÜ
×Ñ˜f hÕ/r   c                 óú   — t        t        j                  j                  d«      j	                  d«      «      }t        j                  t        d¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)Nr,   rí   úname 'df' is not definedrM   zdf > 0rö   )	r   rr   r�   r‚   rƒ   r#   rO   r   r?   r9  s       r   Ú*test_nested_raises_on_local_self_referencezJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_referencef  s_   € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆô �]‰]Ô1Ð9SÔTñ 	=Ø�H‰H�X f°VˆHÔ<÷	=÷ 	=ñ 	=ús   ÁA1Á1A:c                 ó¦  — t        |«       t        t        j                  j	                  d«      j                  d«      t        d«      ¬«      }d}||j                  |k     }|j                  d||¬«      }t        j                  ||«       ||j                  |j                  k     }|j                  d||¬«      }t        j                  ||«       y )	Nr,   )éd   r—   Ú
abcdefghijrm   r+   za < @brö   r8  )r%   r   rr   r�   r‚   rƒ   ro   rˆ   r?   r@   rA   r‰   )r0   r!   r   r1   r‰   ÚexpectrE   s          r   Útest_local_syntaxz1TestDataFrameQueryNumExprPandas.test_local_syntaxm  s®   € Ü  Ô(äÜ�I‰I×!Ñ! !Ó$×4Ñ4°YÓ?Ü˜Ó&ô
ˆð ˆØ�B—D‘D˜1‘H‘ˆØ—‘˜(¨6¸&�ÓAˆÜ
×Ñ˜f fÔ-à�B—D‘D˜2Ÿ4™4‘K‘ˆØ—‘˜'¨&¸�Ó@ˆÜ
×Ñ˜f fÕ-r   c                 ó  — t        |«       t        d«      }t        t        j                  j                  d«      j                  dt        |«      f«      |¬«      }|j                  d||¬«      }|j                  |j                  k  |j                  |j                  k  z  |j                  j                  |j                  «       z  |j                  j                  |j                  «       z  }||   }t        j                  ||«       y )Nr/  r,   rI  rm   z!a < b < c and a not in b not in crö   )r%   ro   r   rr   r�   r‚   rƒ   r   r?   rˆ   r‰   r¡   rÀ   r@   rA   )r0   r!   r   Úcolsr1   r§   rÂ   rù   s           r   Útest_chained_cmp_and_inz7TestDataFrameQueryNumExprPandas.test_chained_cmp_and_in}  sÏ   € Ü  Ô(Ü�E‹{ˆÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°c¼3¸t»9Ð5EÓFÐPTô
ˆð �h‰hØ/¸Àvð ó 
ˆð �t‰t�b—d‘d‰{˜rŸt™t b§d¡d™{Ñ+¨r¯t©t¯y©y¸¿¹«Ð.>Ñ>À"Ç$Á$Ç)Á)ÈBÏDÉDÃ/ÐAQÑQˆØ�3‘ˆÜ
×Ñ˜c 5Õ)r   c                 óØ  — t        |«       t        t        j                  j	                  d«      j                  dd¬«      d¬«      }t        t        j                  j	                  d«      j                  dd¬«      d¬«      }t        ||d	œ«      }|j                  |j                  d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       t        t        j                  j	                  d«      j                  dd¬«      d¬«      }|j                  |d
z
  j                  |«         }|j                  d||¬«      }t        j                  ||«       y )Nr,   r-   é   r°   rˆ   r=  r—   r‰   ©rˆ   r‰   r+   z
b - 1 in arö   z@b - 1 in a)r%   r   rr   r�   r‚   r1  r   r  r‰   rÀ   r?   r@   rA   )r0   r!   r   rˆ   r‰   r1   r|   rE   s           r   Útest_local_variable_with_inz;TestDataFrameQueryNumExprPandas.test_local_variable_with_inŠ  s  € Ü  Ô(Ü”2—9‘9×(Ñ(¨Ó+×4Ñ4°Q¸RÐ4Ó@ÀsÔKˆÜ”2—9‘9×(Ñ(¨Ó+×4Ñ4°R¸bÐ4ÓAÈÔLˆÜ˜Q QÑ'Ó(ˆà—6‘6˜2Ÿ4™4 !™8Ÿ/™/¨!Ó,Ñ-ˆØ—‘˜,¨v¸f�ÓEˆÜ
×Ñ˜h¨Ô/ä”2—9‘9×(Ñ(¨Ó+×4Ñ4°R¸bÐ4ÓAÈÔLˆØ—6‘6˜1˜q™5Ÿ,™, q›/Ñ*ˆØ—‘˜-°¸v�ÓFˆÜ
×Ñ˜h¨Õ/r   c                 ó´   — t        |«       d}t        dg d¢i«      }|j                  d||¬«      }||j                  dk(     }t	        j
                  ||«       y )Nr+   rˆ   )rˆ   rˆ   r‰   r‰   ú@crU  z	a == "@c"rö   rU  ©r%   r   r?   rˆ   r@   rA   )r0   r!   r   r¡   r1   rE   r|   s          r   Útest_at_inside_stringz5TestDataFrameQueryNumExprPandas.test_at_inside_string™  sU   € Ü  Ô(ØˆÜ˜Ò=Ð>Ó?ˆØ—‘˜+¨f¸V�ÓDˆØ�b—d‘d˜d‘lÑ#ˆÜ
×Ñ˜f hÕ/r   c                 óV  — | j                   | j                  }}t        |«       t        t        j
                  j                  d«      j                  d«      t        d«      ¬«      }t        j                  t        d¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)	Nr,   r–   r˜   rm   r,  rM   za == @crö   )r!   r   r%   r   rr   r�   r‚   ro   r#   rO   r   r?   r9  s       r   Útest_query_undefined_localz:TestDataFrameQueryNumExprPandas.test_query_undefined_local¡  s€   € ØŸ™ d§k¡k�ˆÜ  Ô(ä”r—y‘y×,Ñ,¨QÓ/×6Ñ6°wÓ?ÌÈdËÔTˆÜ�]‰]Ü"Ð*Mô
ñ 	>ð �H‰H�Y v°fˆHÔ=÷	>÷ 	>ñ 	>ús   ÂBÂB(c                 ó>  — d}t         j                  ddd…   }t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }d|j                  _        |j                  d||¬«      }||d   d	kD     }t        j                  ||«       t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }|j                  d
||¬«      }|j                  |j                  |j                  d	kD        }t        j                  ||«       t        |t         j                  j	                  d«      j                  |j                  «      dœ«      }d|j                  _        |j                  d||¬«      }||j                  d	kD     }t        j                  ||«       |j                  d||¬«      }|j                  |j                  |j                  d	kD        }t        j                  ||«       y )Nr+   r+  ée   r,   )rj   r‰   rj   z	index > 5rö   r   zilevel_0 > 5rR  rˆ   za > 5)rr   Úr_r   r�   r‚   rƒ   r±   rj   rº   r?   r@   rA   r  rˆ   )r0   r!   r   rY   rˆ   r1   rE   r|   s           r   Ú:test_index_resolvers_come_after_columns_with_the_same_namezZTestDataFrameQueryNumExprPandas.test_index_resolvers_come_after_columns_with_the_same_name«  sµ  € ð ˆÜ�E‰E�"�S˜�)ÑˆäØœbŸi™i×3Ñ3°AÓ6×FÑFÀqÇvÁvÓNÑOó
ˆð  ˆ�‰ŒØ—‘˜+¨f¸V�ÓDˆØ�b˜‘k A‘oÑ&ˆÜ
×Ñ˜f hÔ/äØœbŸi™i×3Ñ3°AÓ6×FÑFÀqÇvÁvÓNÑOó
ˆð —‘˜.°À�ÓGˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ñ˜f hÔ/ä˜Q¤R§Y¡Y×%:Ñ%:¸1Ó%=×%MÑ%MÈaÏfÉfÓ%UÑVÓWˆØˆ�‰ŒØ—‘˜'¨&¸�Ó@ˆØ�b—d‘d˜Q‘h‘<ˆÜ
×Ñ˜f hÔ/à—‘˜+¨f¸V�ÓDˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ñ˜f hÕ/r   zop, fú==ú!=c                 óÀ  — d}t        t        j                  j                  d«      j                  |«      t        j                  j                  d«      j                  |«      dœ«      }t        j                  |j
                  d d d…df<   d|› d�}| ||j                  t        j                  «         }|j                  |||¬«      }	t        j                  |	|«       y )Nr—   r,   rR  r   úa z infrö   )
r   rr   r�   r‚   Úinfr  rˆ   r?   r@   rA   )
r0   rx   Úfr!   r   rY   r1   Úqr|   rE   s
             r   Útest_infz(TestDataFrameQueryNumExprPandas.test_infÊ  s´   € àˆÜä—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7ñó
ˆô Ÿ™ˆ�‰‰s�ˆs�Aˆv‰Ø���DˆMˆØ‘a˜Ÿ™œbŸf™f“oÑ&ˆØ—‘˜! F°6�Ó:ˆÜ
×Ñ˜f hÕ/r   c                 ó&  — |}t        ddd|d¬«      }t        |¬«      }t        |¬«      }|j                  d«      }t        j                  ||«       t        |«      }|j                  «       j                  d«      }t        j                  ||«       y )Nz
2019-01-01Ú1dr—   Útime)ÚstartÚfreqrð   Útzrº   r¸   z"2018-01-03 00:00:00+00" < time)r	   r   r?   r@   rA   Úreset_index)r0   Útz_aware_fixturerk  Údf_indexr|   r1   rE   s          r   Útest_check_tz_aware_index_queryz?TestDataFrameQueryNumExprPandas.test_check_tz_aware_index_queryÙ  sƒ   € àˆÜØ T°2¸"À6ô
ˆô  8Ô,ˆÜ˜XÔ&ˆØ—‘Ð;Ó<ˆÜ
×Ñ˜f hÔ/ä˜XÓ&ˆØ—‘Ó!×'Ñ'Ð(IÓJˆÜ
×Ñ˜f hÕ/r   c           	      óR  — d}t        dt        j                  j                  d«      j                  |«      z  t        j                  j                  d«      j                  |«      dœ«      }||d   j	                  d«      dk(     }|j                  d||¬«      }t        j                  ||«       t        t        j                  t        j                  j                  d«      j                  |«      d	k  t        j                  t        j                  j                  d«      j                  |«      «      t        j                  j                  d«      j                  |«      dœ«      }||d   j                  «          }|j                  d
||¬«      }t        j                  ||«       y )Nr—   r,   rR  rˆ   Úintr   za.astype('int') == 0rö   r   za.notnull())r   rr   r�   r‚   r  r?   r@   rA   Úwherer„   rƒ   Únotnull)r0   r!   r   rY   r1   r|   rE   s          r   Útest_method_calls_in_queryz:TestDataFrameQueryNumExprPandas.test_method_calls_in_queryè  sS  € àˆÜàœŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó;Ñ;Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7ñó
ˆð �b˜‘g—n‘n UÓ+¨qÑ0Ñ1ˆØ—‘Ð0¸È�ÓOˆÜ
×Ñ˜f hÔ/ää—X‘XÜ—I‘I×)Ñ)¨!Ó,×3Ñ3°AÓ6¸Ñ<Ü—F‘FÜ—I‘I×)Ñ)¨!Ó,×<Ñ<¸QÓ?óô
 —Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó	
ˆð �b˜‘g—o‘oÓ'Ñ(ˆØ—‘˜-°¸v�ÓFˆÜ
×Ñ˜f hÕ/r   N)%rS   rT   rU   r#   rV   r!   r   rú   rþ   r  r  r  r  r"  r)  r-  r2  r5  r:  r>  r@  rD  rG  rL  rO  rS  rW  rY  r]  r©   rª   ÚoperatorÚeqÚnere  ro  rt  r   r   r   rå   rå   Š  sç   „ à‡^�^ñó ðð ‡^�^ñó ðò
*ò*ò
*ò	*ò*ò*òNò"<òAò4>ò	>ò
ò*ò*ò"0ò.=ò.ò *ò0ò0ò>ò0ð> ‡[�[×Ñ˜W¨¨h¯k©kÐ':¸TÀ8Ç;Á;Ð<OÐ&PÓQñ0ó Rð0ò0ó0r   rå   c                   ó~   — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zy
)ÚTestDataFrameQueryNumExprPythonc                  ó   — yrç   r   r/   s    r   r!   z&TestDataFrameQueryNumExprPython.engine  rè   r   c                  ó   — y©Nr   r   r/   s    r   r   z&TestDataFrameQueryNumExprPython.parser
  rë   r   c                 ój  — t        t        j                  j                  d«      j	                  d«      «      }t        dd¬«      |d<   t        dd¬«      |d<   t        d	d¬«      |d
<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr,   rí   rî   r   rï   rñ   rò   ró   rô   rõ   ú)(dates1 < 20130101) & (20130101 < dates3)rö   r÷   rý   rø   s         r   rþ   zCTestDataFrameQueryNumExprPython.test_date_query_no_attribute_access  s£   € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø�h‰hØ7ÀÈvð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 óª  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        d	|¬«      |d
<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  df<   t        j                  |j                  t        j                  j                  d«      j                  |«      dkD  d
f<   |j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr—   r,   r-   rî   rï   rñ   rò   ró   rô   rõ   r   r~  rö   r÷   r  r  s          r   r  z8TestDataFrameQueryNumExprPython.test_date_query_with_NaT  s  € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ�h‰hØ7ÀÈvð ó 
ˆð �B—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ñ˜c 5Õ)r   c                 ó‚  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   |j                  dd	d	¬
«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                  ||«       y )Nr—   r,   r-   rî   rï   rñ   rô   rõ   Tr  ú((index < 20130101) & (20130101 < dates3)rö   r÷   r  r  s           r   r  z5TestDataFrameQueryNumExprPython.test_date_index_query'  s¼   € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 óæ  — d}t        t        j                  j                  d«      j	                  |df«      «      j                  dt        i«      }t        d|¬«      |d<   t        d|¬«      |d	<   t        j                  |j                  d
<   |j                  ddd¬«      }|�J ‚|j                  d||¬«      }||j                  dk  d|j                  k  z     }t        j                   ||«       y )Nr—   r,   r-   r   rî   rï   rñ   rô   rõ   r  Tr  r�  rö   r÷   r  r  s           r   r  z>TestDataFrameQueryNumExprPython.test_date_index_query_with_NaT4  sá   € Øˆä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓH×OÑOØ”ˆKó
ˆô " *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜŸ™ˆ�‰�‰Ø—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø�h‰hØ6¸vÈfð ó 
ˆð �B—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ñ˜c 5Õ)r   c                 ó  — d}t        t        j                  j                  d«      j	                  |df«      «      }t        d|¬«      |d<   t        d|¬«      |d<   t        j                  |j                  t        j                  j                  d«      j                  |«      d	kD  df<   |j                  dd
d
¬«      }|�J ‚d}t        j                  t        |¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   y xY w)Nr—   r,   r-   rî   rï   rñ   rô   rõ   r   Tr  ú"'BoolOp' nodes are not implementedrM   r
  rö   )r   rr   r�   r‚   rƒ   r	   rœ   r  r  r  r#   rO   ÚNotImplementedErrorr?   )r0   r!   r   rY   r1   r  rQ   s          r   r  zITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesE  så   € ØˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓHˆÜ! *°aÔ8ˆˆ8‰Ü! *°aÔ8ˆˆ8‰ÜEGÇVÁVˆ�‰Œr�y‰y×$Ñ$ QÓ'×.Ñ.¨qÓ1°CÑ7¸ÐAÑBØ—|‘| H°dÀ�|ÓFˆØÐ#Ð#Ð#Ø3ˆÜ�]‰]Ô.°cÔ:ñ 	PØ�H‰HÐ0¸ÈˆHÔO÷	P÷ 	Pñ 	Pús   ÃC=Ã=Dc                 ó>  — d}t        j                  d||¬«      }|dk(  sJ ‚t        t        j                  j                  d«      j                  d«      «      }t        t        j                  j                  d«      j                  d«      «      }d}t        j                  t        |¬«      5  |j                  d||¬«       d d d «       t        j                  t        d	¬«      5  |j                  d
||¬«       d d d «       ||dkD  |dkD  z     }t        j                  d||¬«      }t        j                  ||«       ||dkD  |dkD  z  ||dkD     dkD  z     }t        j                  d||¬«      }t        j                  ||«       y # 1 sw Y   ŒÆxY w# 1 sw Y   ŒšxY w)Nr+   zx + 1rö   r,   rí   z5The '@' prefix is only supported by the pandas parserrM   rB  rF  z(df>0) & (df2>0)r   zdf[(df > 0) & (df2 > 0)]z+df[(df > 0) & (df2 > 0) & (df[df > 0] > 0)])rœ   rB   r   rr   r�   r‚   rƒ   r#   rO   r(  r?   r   r@   rA   )	r0   r!   r   r   rE   r1   rC  rQ   r|   s	            r   rD  z1TestDataFrameQueryNumExprPython.test_nested_scopeQ  sy  € àˆÜ—‘˜¨¸Ô?ˆØ˜Š{Ðˆ{ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆð GˆÜ�]‰]œ;¨cÔ2ñ 	IØ�H‰HÐ)°&ÀˆHÔH÷	Iô �]‰]Ô1Ð9SÔTñ 	GØ�H‰HÐ'°¸vˆHÔF÷	Gð �r˜A‘v #¨¡'Ñ*Ñ+ˆÜ—‘Ð3¸FÈ6ÔRˆÜ
×Ñ˜h¨Ô/à�r˜A‘v #¨¡'Ñ*¨b°°a±©j¸1©nÑ=Ñ>ˆÜ—‘Ø9À&ÐQWô
ˆô 	×Ñ˜h¨Õ/÷	Ið 	Iú÷	Gð 	Gús   Â-FÃ%FÆFÆFc                 ó4  — t        g d¢g d¢dœ«      }d}t        j                  t        |¬«      5  |j	                  d«       d d d «       d}t        j                  t        |¬«      5  |j	                  d«       d d d «       y # 1 sw Y   ŒAxY w# 1 sw Y   y xY w)	Nr*   ©rZ   r   é   )ÚminÚmaxzMVariables in expression \"\(min\) == \(1\)\" overlap with builtins: \('min'\)rM   zmin == 1zMVariables in expression \"\(max\) == \(1\)\" overlap with builtins: \('max'\)zmax == 1)r   r#   rO   r   r?   )r0   r1   Úregex_to_matchs      r   Ú+test_query_numexpr_with_min_and_max_columnszKTestDataFrameQueryNumExprPython.test_query_numexpr_with_min_and_max_columnsl  sŽ   € Üšy²Ñ;Ó<ˆð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð0ð 	ô �]‰]Ô1¸ÔHñ 	!Ø�H‰H�ZÔ ÷	!ð 	!÷	!ð 	!ú÷	!ð 	!ús   °BÁ'BÂBÂBN)rS   rT   rU   r#   rV   r!   r   rþ   r  r  r  r  rD  r�  r   r   r   ry  ry    sT   „ à‡^�^ñó ðð ‡^�^ñó ðò	*ò*ò*ò*ò"
Pò0ó6!r   ry  c                   óZ   — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zy)ÚTestDataFrameQueryPythonPandasc                  ó   — yr|  r   r/   s    r   r!   z%TestDataFrameQueryPythonPandas.engine~  rë   r   c                  ó   — yrê   r   r/   s    r   r   z%TestDataFrameQueryPythonPandas.parser‚  rë   r   c                 ó2  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y ©Nr—   r,   r-   r°   r/  rm   r4  r   r0  rö   ©r   rr   r�   r‚   r1  ro   rj   rº   r?   r@   rA   ©r0   r!   r   rY   rz   r1   r|   rE   s           r   r5  z1TestDataFrameQueryPythonPandas.test_query_builtin†  ó„   € Øˆ
ˆˆAÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a°q¸!°fÐ-Ó=ÄtÈEÃ{ô
ˆð ˆ�‰ŒØ�b—h‘h ‘lÑ#ˆØ—‘˜)¨F¸6�ÓBˆÜ
×Ñ˜h¨Õ/r   N©rS   rT   rU   r#   rV   r!   r   r5  r   r   r   r�  r�  }  ó5   „ Ø‡^�^ñó ðð ‡^�^ñó ðó	0r   r�  c                   óZ   — e Zd Zej                  d„ «       Zej                  d„ «       Zd„ Zy)ÚTestDataFrameQueryPythonPythonc                  ó   — yr|  r   r/   s    r   r!   z%TestDataFrameQueryPythonPython.engine“  rë   r   c                  ó   — yr|  r   r/   s    r   r   z%TestDataFrameQueryPythonPython.parser—  rë   r   c                 ó2  — dx}}t        t        j                  j                  d«      j	                  ||df¬«      t        d«      ¬«      }d|j                  _        ||j                  dkD     }|j                  d	||¬
«      }t        j                  ||«       y r“  r”  r•  s           r   r5  z1TestDataFrameQueryPythonPython.test_query_builtin›  r–  r   Nr—  r   r   r   rš  rš  ’  r˜  r   rš  c            
       óP  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  ddej                  gd	ej                  gd
ej                  gdej                   gg«      d„ «       Zd„ Zd„ Ze	j                  j                  dg d¢g d¢g d¢g d¢g d¢g d¢g«      d„ «       Zy)ÚTestDataFrameQueryStringsc           	      óP  — t        t        j                  j                  d«      j	                  d«      dg¬«      }t        t        d«      «      |d<   ||j                  dk(     }|dk7  r�d}d	}|gdz  |gdz  z   }|d d d
…   }d\  }	}
d|	g|
gz   z  }d}t        |||«      D ]U  \  }}}|› d|› d|› �}t        j                  t        |¬«      5  |j                  |||d|j                  i¬«       d d d «       ŒW y |j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       t        j                  |||j                  j                  dg«         «       ||j                  dk7     }|j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       t        j                  |||j                  j                  dg«          «       y # 1 sw Y   �Œ…xY w)Nr,   ©r—   r+   r‰   rm   Ú
aabbccddeeÚstringsrˆ   r   z"a"rl   ©r^  r_  ú$'(Not)?In' nodes are not implementedú rM   )r!   r   Ú
local_dictz"a" == stringsrö   zstrings == "a"zstrings != "a"z"a" != strings)r   rr   r�   r‚   rƒ   r   ro   r£  Úzipr#   rO   r…  r?   r@   rA   rÀ   ©r0   r   r!   r1   rK  ÚcolÚlstÚlhsÚrhsrv  rw  ÚopsrQ   rx   Úexr§   s                   r   Útest_str_query_methodz/TestDataFrameQueryStrings.test_str_query_method¨  s  € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÔXˆÜœt LÓ1Ó2ˆˆ9‰Ø�B—J‘J #Ñ%Ñ&ˆà�XÒØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆB�Ø˜�t˜r˜d‘{Ñ#ˆCØ9ˆCä # C¨¨cÓ 2ò ‘��R˜Ø�u˜A˜b˜T  3 %Ð(�Ü—]‘]Ô#6¸cÔBñ Ø—H‘HØØ%Ø%Ø$-¨r¯z©zÐ#:ð	 ô ÷ð ñð —(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.à—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.Ü×!Ñ! # r¨"¯*©*¯/©/¸3¸%Ó*@Ñ'AÔBà˜Ÿ
™
 cÑ)Ñ*ˆFØ—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.à—(‘(Ð+°FÀ6�(ÓJˆCÜ×!Ñ! # vÔ.Ü×!Ñ! # r¨2¯:©:¯?©?¸C¸5Ó+AÐ*AÑ'BÕC÷+ñ ús   Ã"HÈH%	c                 ó¢  — t        t        j                  j                  d«      j	                  d«      dg¬«      }t        t        d«      «      |d<   ||j                  j                  ddg«         }|dk7  rƒd}d	}|gdz  |gdz  z   }|d d d
…   }d\  }	}
d|	g|
gz   z  }d}t        |||«      D ]H  \  }}}|› d|› d|› �}t        j                  t        |¬«      5  |j                  |||¬«       d d d «       ŒJ y |j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       ||j                  j                  ddg«          }|j                  d||¬«      }t        j                  ||«       |j                  d||¬«      }t        j                  ||«       y # 1 sw Y   �Œ xY w)Nr,   r¡  r‰   rm   r¢  r£  rˆ   r   z
["a", "b"]rl   r¤  r¥  r¦  rM   rö   zstrings == ["a", "b"]z["a", "b"] == stringszstrings != ["a", "b"]z["a", "b"] != strings)r   rr   r�   r‚   rƒ   r   ro   r£  rÀ   r¨  r#   rO   r…  r?   r@   rA   r©  s                   r   Útest_str_list_query_methodz4TestDataFrameQueryStrings.test_str_list_query_methodÑ  sÒ  € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÔXˆÜœt LÓ1Ó2ˆˆ9‰Ø�B—J‘J—O‘O S¨# JÓ/Ñ0ˆà�XÒØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆB�Ø˜�t˜r˜d‘{Ñ#ˆCØ9ˆCä # C¨¨cÓ 2ò ?‘��R˜Ø�u˜A˜b˜T  3 %Ð(�Ü—]‘]Ô#6¸cÔBñ ?Ø—H‘H˜R¨°v�HÔ>÷?ð ?ñ?ð
 —(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à˜Ÿ™Ÿ™¨#¨s¨Ó4Ð4Ñ5ˆFà—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÔ.à—(‘(Ð2¸6È&�(ÓQˆCÜ×!Ñ! # vÕ.÷?ñ ?ús   ÃGÇG	c           	      ó   — t        t        d«      t        d«      t        j                  j	                  d«      j                  dd¬«      t        j                  j	                  d«      j                  dd¬«      dœ«      }|d	k(  r¿|j                  d
||¬«      }||j                  j                  |j                  «         }t        j                  ||«       |j                  d||¬«      }||j                  j                  |j                  «      |j                  |j                  k  z     }t        j                  ||«       y d}t        j                  t         |¬«      5  |j                  d
||¬«       d d d «       d}t        j                  t         |¬«      5  |j                  d||¬«       d d d «       y # 1 sw Y   ŒDxY w# 1 sw Y   y xY w)NÚaaaabbbbccccÚaabbccddeeffr,   r   é   r°   é	   ©rˆ   r‰   r¡   r  r   za in br»   za in b and c < dr¥  rM   r„  )r   ro   rr   r�   r‚   r1  r?   rˆ   rÀ   r‰   r@   rA   r¡   r  r#   rO   r…  )r0   r   r!   r1   r§   rù   rQ   s          r   Útest_query_with_string_columnsz8TestDataFrameQueryStrings.test_query_with_string_columnsô  s„  € Üä˜.Ó)Ü˜.Ó)Ü—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBÜ—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBñ	ó
ˆð �XÒØ—(‘(˜8¨F¸6�(ÓBˆCØ�r—t‘t—y‘y §¡“Ñ'ˆEÜ×!Ñ! # uÔ-à—(‘(Ð-°fÀV�(ÓLˆCØ�r—t‘t—y‘y §¡“¨"¯$©$°·±©+Ñ6Ñ7ˆEÜ×!Ñ! # uÕ-à9ˆCÜ—‘Ô2¸#Ô>ñ AØ—‘˜¨&¸�Ô@÷Að 8ˆCÜ—‘Ô2¸#Ô>ñ KØ—‘Ð+°FÀ6�ÔJ÷Kð K÷	Að Aú÷Kð Kús   Å F8ÆGÆ8GÇGc           	      óÞ  — t        t        d«      t        d«      t        j                  j	                  d«      j                  dd¬«      t        j                  j	                  d«      j                  dd¬«      dœ«      }|r|d	k(  rt        nd }t        j                  |«      5  |j                  d
||¬«      }d d d «       ||j                  |j                  k(     }t        j                  |«       t        j                  |«      5  |j                  d||¬«      }d d d «       ||j                  |j                  k7     }t        j                  ||«       y # 1 sw Y   Œ xY w# 1 sw Y   ŒHxY w)Nr´  rµ  r,   r   r¶  r°   r·  r¸  r   za == br»   za != b)r   ro   rr   r�   r‚   r1  ÚRuntimeWarningr@   Úassert_produces_warningr?   rˆ   r‰   rA   )r0   r   r!   Úusing_infer_stringr1   Úwarningr§   rÅ   s           r   Útest_object_array_eq_nez1TestDataFrameQueryStrings.test_object_array_eq_ne  s:  € Üä˜.Ó)Ü˜.Ó)Ü—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBÜ—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÓBñ	ó
ˆñ %7¸6ÀYÒ;N•.ÐTXˆÜ×'Ñ'¨Ó0ñ 	CØ—(‘(˜8¨F¸6�(ÓBˆC÷	Cà�—‘˜Ÿ™‘ÑˆÜ
×Ñ˜c 3Ô'ä×'Ñ'¨Ó0ñ 	CØ—(‘(˜8¨F¸6�(ÓBˆC÷	Cà�—‘˜Ÿ™‘ÑˆÜ
×Ñ˜c 3Õ'÷	Cð 	Cú÷
	Cð 	Cús   Â#EÄE#ÅE Å#E,c           	      ó°  — t        |«       t        dd«      D ��cg c]  }dD ]
  }d|› d|› �‘Œ Œ c}}dz  }t        ddd	¬
«      }t        ddd	¬
«      }t        t	        j
                  dd«      j                  d«      ||j                  |«      dœ«      }||j                  dk(     }	|j                  d||¬«      }
t        j                  |	|
«       y c c}}w )Nr+   rZ   )ÚloadÚexitzpage r¦  r,   z2014-01-01 0:00:01Ú30sr‰  )rj  rð   z2014-02-01 1:00:01é   )ÚidÚeventÚ	timestampz"page 1 load"z'"page 1 load"' in eventr»   )r%   rn   r	   r   rr   rÍ   ÚrepeatÚappendrÆ  r?   r@   rA   )r0   r   r!   rY   ÚactÚeventsÚstamps1Ústamps2r1   r|   r§   s              r   Útest_query_with_nested_stringsz8TestDataFrameQueryStrings.test_query_with_nested_strings"  sâ   € Ü  Ô(ä',¨Q°£{÷
Ø"#Ð>Nò
Ø7:ˆe�A�3�a˜�uÒð
Øó
àñˆô Ð1¸ÀqÔIˆÜÐ1¸ÀqÔIˆÜä—i‘i  1“o×,Ñ,¨QÓ/ØØ$Ÿ^™^¨GÓ4ñó
ˆð �b—h‘h /Ñ1Ñ2ˆØ�h‰hÐ5¸fÈVˆhÓTˆÜ
×Ñ˜h¨Õ,ùó
s   ›Cc                 ó¶   — t        |«       t        g d¢g d¢dœ«      }|j                  d||¬«      }||j                  dk(     }t	        j
                  ||«       y )N)rˆ   r‰   útest & testr*   rR  za == "test & test"r»   rÐ  rV  )r0   r   r!   r1   r§   rù   s         r   Ú(test_query_with_nested_special_characterzBTestDataFrameQueryStrings.test_query_with_nested_special_character5  sR   € Ü  Ô(ÜÒ6ºYÑGÓHˆØ�h‰hÐ+°FÀ6ˆhÓJˆØ�2—4‘4˜=Ñ(Ñ)ˆÜ
×Ñ˜c 5Õ)r   zop, funcr  r  r  r  c                 óì  — t        t        j                  j                  d«      j	                  t        d«      d«      «      }t        t        j                  |j                  «      «      }t        ||dœ«      }|r|dk(  rt        nd }	t        j                  |	«      5  |j                  d|› d�||¬«      }
d d d «       | ||j                  d	«         }t        j                  
|«       y # 1 sw Y   Œ6xY w)
Nr,   Úabcder+  )ÚXr¥   r   zX z "d"rö   r  )r   rr   r�   r‚   r½   ro   rÍ   r±   r   r»  r@   r¼  r?   rÔ  rA   )r0   r   r!   rx   Úfuncr½  rˆ   r‰   r1   r¾  r§   r|   s               r   Útest_query_lex_compare_stringsz8TestDataFrameQueryStrings.test_query_lex_compare_strings<  sÌ   € ô ”2—9‘9×(Ñ(¨Ó+×2Ñ2´4¸³=À"ÓEÓFˆÜ”2—9‘9˜QŸV™VÓ$Ó%ˆÜ˜Q QÑ'Ó(ˆá$6¸6ÀYÒ;N•.ÐTXˆÜ×'Ñ'¨Ó0ñ 	HØ—(‘(˜R ˜t 4˜=°À�(ÓGˆC÷	Hà‘d˜2Ÿ4™4 “oÑ&ˆÜ
×Ñ˜c 8Õ,÷	Hð 	Hús   ÂC*Ã*C3c                 óJ  — d}t         j                  j                  d«      j                  ddt	        |«      f¬«      j                  t        «      }t        ||¬«      }|j                  d||¬«      }||j                  |j                  z     }t        j                  ||«       y )N)ÚbidÚbidsizeÚaskÚasksizer,   r+   r°   rm   z	bid & askrö   )rr   r�   r‚   r1  r   r  Úboolr   r?   rØ  rÚ  r@   rA   )r0   r   r!   rk   Údatar1   r§   r|   s           r   Ú"test_query_single_element_booleansz<TestDataFrameQueryStrings.test_query_single_element_booleansR  s†   € Ø4ˆÜ�y‰y×$Ñ$ QÓ'×0Ñ0°¸!¼SÀ»\Ð9JÐ0ÓK×RÑRÔSWÓXˆÜ�t WÔ-ˆØ�h‰h�{¨6¸&ˆhÓAˆØ�b—f‘f˜rŸv™v‘oÑ&ˆÜ
×Ñ˜c 8Õ,r   c                 óº   — t        |«       t        g d¢g d¢dœ«      }||j                  dk(     }d}|j                  d||¬«      }t	        j
                  ||«       y )N)úBUD USrà  úIBM USrá  )gÍÌÌÌÌl[@g®Gázn[@gš™™™™éf@g33333ëf@)ÚSymbolÚPricerà  zSymbol == @symbr»   )r%   r   râ  r?   r@   rA   )r0   r   r!   r1   ÚeÚsymbr'  s          r   Ú!test_query_string_scalar_variablez;TestDataFrameQueryStrings.test_query_string_scalar_variableZ  s^   € Ü  Ô(ÜâBÚ9ñó
ˆð ˆr�y‰y˜HÑ$Ñ%ˆØˆØ�H‰HÐ&¨v¸fˆHÓEˆÜ
×Ñ˜a Õ#r   Úin_list)NÚasdfÚghjk)rè  Nré  )rè  ré  N)NNrè  )rè  NN)NNNc                 óò  — d}d}t        |«      D ��ci c]  \  }}|dk(  sŒ||“Œ }}}t        d|id¬«      }|j                  j                  d«      |_        t        d|id¬«      }|j	                  d||¬	«      }	||d   dk(     }
|j	                  d
||¬	«      }t        j                  |	|«       t        j                  |	|
«       t        j                  |	|«       t        j                  |
|«       y c c}}w )Nr   r   rè  rˆ   Ústring©ÚdtypeÚint64za == 'asdf'r»   za <= 'asdf')Ú	enumerater   rj   r  r?   r@   rA   )r0   rç  r   r!   r&  Úvaluer|   Údf_expectedr1   rÃ   rÄ   Úres3s               r   Útest_query_string_null_elementsz9TestDataFrameQueryStrings.test_query_string_null_elementsg  sî   € ð ˆØˆÜ-6°wÓ-?×S¡  EÀ5ÈFÃ?�A�u‘HÐSˆÑSä  h °xÔ@ˆØ'×-Ñ-×4Ñ4°WÓ=ˆÔÜ˜˜W�~¨XÔ6ˆØ�x‰x˜¨f¸VˆxÓDˆØ�"�S‘'˜VÑ#Ñ$ˆØ�x‰x˜¨f¸VˆxÓDˆÜ
×Ñ˜d KÔ0Ü
×Ñ˜d DÔ)Ü
×Ñ˜d DÔ)Ü
×Ñ˜d DÕ)ùó Ts
   “C3¡C3N)rS   rT   rU   r°  r²  r¹  r¿  rÎ  rÑ  r#   r©   rª   ru  ÚltÚgtÚleÚgerÖ  rÞ  ræ  ró  r   r   r   rŸ  rŸ  §  sÆ   „ ò'DòR!/òFKò4(ò(-ò&*ð ‡[�[×ÑØà�(—+‘+ÐØ�(—+‘+ÐØ�8—;‘;ÐØ�8—;‘;Ðð		
óñ-óð-ò-ò$ð ‡[�[×ÑØâ"Ú"Ú"Ú Ú Úð	
ó
ñ*ó
ñ*r   rŸ  c                   ó„   — e Zd Zej                  d„ «       Zd„ Zd„ Zej                  j                  dg d¢«      d„ «       Z
y)ÚTestDataFrameEvalWithFramec                 ó†   — t        t        j                  j                  d«      j	                  d«      t        d«      ¬«      S )Nr,   rÐ   r/  rm   )r   rr   r�   r‚   rƒ   ro   r/   s    r   Úframez TestDataFrameEvalWithFrame.frame…  s2   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈEÃ{ô
ð 	
r   c                 óŠ   — |j                  d||¬«      }|j                  |j                  z   }t        j                  ||«       y )Nr™   rö   ©rB   rˆ   r‰   r@   rC   ©r0   rû  r   r!   r§   rK  s         r   Útest_simple_exprz+TestDataFrameEvalWithFrame.test_simple_expr‹  s8   € Ø�j‰j˜¨¸ˆjÓ?ˆØ—‘˜5Ÿ7™7Ñ"ˆÜ
×Ñ˜s FÕ+r   c                 óª   — |j                  d||¬«      }|j                  |j                  dk     |j                  z   }t        j                  ||«       y )Nza[a < 1] + brö   r+   rý  rþ  s         r   Útest_bool_arith_exprz/TestDataFrameEvalWithFrame.test_bool_arith_expr�  sE   € Ø�j‰j˜°¸vˆjÓFˆØ—‘˜Ÿ™ 1™Ñ%¨¯©Ñ/ˆÜ
×Ñ˜s FÕ+r   rx   )r[   r^   ra   rd   c                 ó¼   — t        ddgddgdœ«      }d}t        j                  t        |¬«      5  |j	                  d|› d	�||¬
«       d d d «       y # 1 sw Y   y xY w)Nr+   r,   r¡   r  rR  z:unsupported operand type\(s\) for .+: '.+' and '.+'|CannotrM   ra  z brö   )r   r#   rO   r!  rB   )r0   r   r!   rx   r1   rQ   s         r   Ú%test_invalid_type_for_operator_raisesz@TestDataFrameEvalWithFrame.test_invalid_type_for_operator_raises•  s[   € ä˜a ˜V¨3°¨*Ñ5Ó6ˆØKˆä�]‰]œ9¨CÔ0ñ 	?Ø�G‰G�b˜˜˜B�K¨°vˆGÔ>÷	?÷ 	?ñ 	?ús   °AÁAN)rS   rT   rU   r#   rV   rû  rÿ  r  r©   rª   r  r   r   r   rù  rù  „  sH   „ Ø‡^�^ñ
ó ð
ò
,ò
,ð
 ‡[�[×Ñ˜TÒ#7Ó8ñ?ó 9ñ?r   rù  c                   óž  — e 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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej>                  jA                  dg d¢«      d„ «       Z!ej>                  jA                  ddd g«      ej>                  jA                  dg d¢«      d!„ «       «       Z"d"„ Z#y#)$Ú!TestDataFrameQueryBacktickQuotingc           	   #   óô   K  — t        i dg d¢“dg d¢“dg d¢“dg d¢“d	g d
¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d¢“dg d ¢“d!g d"¢“g d#¢g d$¢g d%¢g d&¢g d'¢d(œ¥«      –— y)­w)*zÄ
        Yields a dataframe with strings that may or may not need escaping
        by backticks. The last two columns cannot be escaped by backticks
        and should raise a ValueError.
        r)   r*   úB B)r-   r,   r+   úC Crˆ  úC  C)rÄ  rZ   r-   ÚC_C)é   r·  r—   úD_D D)é   r+   r[  úE.E)r‰  r-   r   úF-F)r  r+   r—   Ú1e1)r,   rZ   r  Údef)r—   r  r,   úA (x))rZ   r+   r-   zB(x))r+   r+   r   zB (x))r,   rÄ  rZ   õ     &^ :!â‚¬$?(} >    <++*''  )r,   r   r‰  r“   )r—   r  r+   ú A)rZ   rÄ  r·  ú  ©r+   r,   r+   )r‰  r-   r+   )r·  r+   r  )r  rÄ  r‰  )r,   rZ   r   )r   rÄ  r·  )zit'szthat'su   â˜ºzfoo#barr+   Nr.   r/   s    r   r1   z$TestDataFrameQueryBacktickQuoting.dfŸ  sø   è ø€ ô ðØ’Yðà’yðð ’yðð š	ð	ð
 ’zðð šðð ’yðð ’zðð ’yðð ’{ðð šðð š	ðð šðð /²	ðð ’Kðð  ’ið!ð" ’ið#ò$ "Ú#Ú Ú$Úò-ó
ó 	
ùs   ‚A6A8c                 óh   — |j                  d«      }|d|d   k     }t        j                  ||«       y )Nz	1 < `B B`r+   r  ©r?   r@   rA   ©r0   r1   r§   rK  s       r   Ú#test_single_backtick_variable_queryzETestDataFrameQueryBacktickQuoting.test_single_backtick_variable_queryÁ  s2   € Ø�h‰h�{Ó#ˆØ�A˜˜5™	‘MÑ"ˆÜ
×Ñ˜c 6Õ*r   c                 óz   — |j                  d«      }|d|d   k  d|d   k  z     }t        j                  ||«       y )Nz1 < `B B` and 4 < `C C`r+   r  rZ   r  r  r  s       r   Ú!test_two_backtick_variables_queryzCTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_queryÆ  s@   € Ø�h‰hÐ0Ó1ˆØ�Q˜˜E™‘] q¨2¨e©9¡}Ñ5Ñ6ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `B B`r)   r  ©rB   r@   rC   r  s       r   Ú"test_single_backtick_variable_exprzDTestDataFrameQueryBacktickQuoting.test_single_backtick_variable_exprË  ó2   € Ø�g‰g�kÓ"ˆØ�C‘˜2˜e™9Ñ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz`B B` + `C C`r  r  r  r  s       r   Ú test_two_backtick_variables_exprzBTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_exprÐ  s2   € Ø�g‰g�oÓ&ˆØ�E‘˜R ™YÑ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	`C_C` + Ar
  r)   r  r  s       r   Ú test_already_underscore_variablezBTestDataFrameQueryBacktickQuoting.test_already_underscore_variableÕ  s2   € Ø�g‰g�kÓ"ˆØ�E‘˜R ™WÑ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )NzC_C + `C C`r
  r  r  r  s       r   Útest_same_name_but_underscoresz@TestDataFrameQueryBacktickQuoting.test_same_name_but_underscoresÚ  s2   € Ø�g‰g�mÓ$ˆØ�E‘˜R ™YÑ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )NzA + `D_D D`r)   r  r  r  s       r   Ú!test_mixed_underscores_and_spaceszCTestDataFrameQueryBacktickQuoting.test_mixed_underscores_and_spacesß  s2   € Ø�g‰g�mÓ$ˆØ�C‘˜2˜g™;Ñ&ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `C_C`r)   r
  r  r  s       r   Ú'test_backtick_quote_name_with_no_spaceszITestDataFrameQueryBacktickQuoting.test_backtick_quote_name_with_no_spacesä  r   r   c                 ót   — |j                  d«      }|d   |d   z   |d   z
  }t        j                  ||«       y )Nz`E.E` + `F-F` - Ar  r  r)   r  r  s       r   Útest_special_charactersz9TestDataFrameQueryBacktickQuoting.test_special_charactersé  s<   € Ø�g‰gÐ)Ó*ˆØ�E‘˜R ™YÑ&¨¨C©Ñ0ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `1e1`r)   r  r  r  s       r   Útest_start_with_digitz7TestDataFrameQueryBacktickQuoting.test_start_with_digitî  r   r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz	A + `def`r)   r  r  r  s       r   Útest_keywordz.TestDataFrameQueryBacktickQuoting.test_keywordó  r   r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`A` > 2r)   r,   r  r  s       r   Útest_unneeded_quotingz7TestDataFrameQueryBacktickQuoting.test_unneeded_quotingø  s1   € Ø�h‰h�yÓ!ˆØ�B�s‘G˜a‘K‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`A (x)` > 2r  r,   r  r  s       r   Útest_parenthesisz2TestDataFrameQueryBacktickQuoting.test_parenthesisý  s2   € Ø�h‰h�}Ó%ˆØ�B�w‘K !‘OÑ$ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz`` > 5r“   r   r  r  s       r   Útest_empty_stringz3TestDataFrameQueryBacktickQuoting.test_empty_string  s1   € Ø�h‰h�xÓ ˆØ�B�r‘F˜Q‘J‘ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nz
`C  C` > 5r	  r   r  r  s       r   Útest_multiple_spacesz6TestDataFrameQueryBacktickQuoting.test_multiple_spaces  s2   € Ø�h‰h�|Ó$ˆØ�B�v‘J ‘NÑ#ˆÜ
×Ñ˜c 6Õ*r   c                 óh   — |j                  d«      }|d   |d   z   }t        j                  ||«       y )Nz` A` + `  `r  r  r  r  s       r   Útest_start_with_spacesz8TestDataFrameQueryBacktickQuoting.test_start_with_spaces  s2   € Ø�g‰g�mÓ$ˆØ�D‘˜B˜t™HÑ$ˆÜ
×Ñ˜s FÕ+r   c                 óh   — |j                  d«      }||d   dkD     }t        j                  ||«       y )Nu"   `  &^ :!â‚¬$?(} >    <++*''  ` > 4r  rZ   r  r  s       r   Útest_lots_of_operators_stringz?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_string  s6   € Ø�h‰hÐ;Ó<ˆØ�BÐ5Ñ6¸Ñ:Ñ;ˆÜ
×Ñ˜c 6Õ*r   c                 óŠ   — d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)Nz(module 'pandas' has no attribute 'thing'rM   z	@pd.thing)r#   rO   ÚAttributeErrorrB   )r0   r1   Úmessages      r   Útest_missing_attributez8TestDataFrameQueryBacktickQuoting.test_missing_attribute  s6   € Ø<ˆÜ�]‰]œ>°Ô9ñ 	!Ø�G‰G�KÔ ÷	!÷ 	!ñ 	!úó	   ž9¹Ac                 óŠ   — d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)Nú6(Could not convert ).*( to a valid Python identifier.)rM   z`it's` > `that's`©r#   rO   r(  r?   r�   s      r   Útest_failing_quotez4TestDataFrameQueryBacktickQuoting.test_failing_quote  s7   € ØGˆÜ�]‰]œ;¨cÔ2ñ 	*Ø�H‰HÐ(Ô)÷	*÷ 	*ñ 	*úrA  c                 óŠ   — d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)NrC  rM   u	   `â˜º` > 4rD  r�   s      r   Ú$test_failing_character_outside_rangezFTestDataFrameQueryBacktickQuoting.test_failing_character_outside_range   s6   € ØGˆÜ�]‰]œ;¨cÔ2ñ 	"Ø�H‰H�[Ô!÷	"÷ 	"ñ 	"úrA  c                 óŠ   — d}t        j                  t        |¬«      5  |j                  d«       d d d «       y # 1 sw Y   y xY w)NzFailed to parse backticksrM   z`foo#bar` > 4rD  r�   s      r   Útest_failing_hashtagz6TestDataFrameQueryBacktickQuoting.test_failing_hashtag%  s6   € Ø)ˆÜ�]‰]œ;¨cÔ2ñ 	&Ø�H‰H�_Ô%÷	&÷ 	&ñ 	&úrA  c                 ó6  — d„ }|g}|j                  d«       t        j                  t        d¬«      5  |j                  d«       ddd«       t        j                  t        d¬«      5  |j                  d«       ddd«       y# 1 sw Y   Œ?xY w# 1 sw Y   yxY w)zí
        Only attributes and variables ('named functions') can be called.
        .__call__() is not an allowed attribute because that would allow
        calling anything.
        https://github.com/pandas-dev/pandas/pull/32460
        c                   ó   — yr7   r   )rß   s    r   rÕ  zNTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.func2  s   € Ør   z@func()z"Only named functions are supportedrM   z@funcs[0]()Nz@funcs[0].__call__())rB   r#   rO   r!  )r0   r1   rÕ  Úfuncss       r   Útest_call_non_named_expressionz@TestDataFrameQueryBacktickQuoting.test_call_non_named_expression*  s„   € ò	ð �ˆà
�‰�	Ôä�]‰]œ9Ð,PÔQñ 	#Ø�G‰G�MÔ"÷	#ô �]‰]œ9Ð,PÔQñ 	,Ø�G‰GÐ*Ô+÷	,ð 	,÷	#ð 	#ú÷	,ð 	,ús   ³BÁ(BÂBÂBc                 ó  — t        ddgddggddg|¬«      }t        rt        nd }t        j                  |«      5  |j                  d«      }d d d «       t        g d	¢g d
¢gg d¢|¬«      }t        j                  |«       y # 1 sw Y   Œ6xY w)Nr+   r,   r-   rZ   rˆ   r‰   ©rk   rí  z	c = b - ar  )r-   rZ   r+   r7  ©r   r
   r»  r@   r¼  rB   rA   )r0   Úany_numeric_ea_and_arrow_dtyper1   r¾  rE   r|   s         r   Útest_ea_dtypesz0TestDataFrameQueryBacktickQuoting.test_ea_dtypes?  s‹   € äØ�ˆV�a˜�VÐ s¨C jÐ8Vô
ˆõ %6•.¸4ˆÜ×'Ñ'¨Ó0ñ 	*Ø—W‘W˜[Ó)ˆF÷	*äÚš	Ð"Ú#Ø0ô
ˆô
 	×Ñ˜f hÕ/÷	*ð 	*úó   ºBÂB
c                 ó  — t        ddgddggddgd¬«      }t        rt        nd }t        j                  |«      5  |j                  d	«      }d d d «       t        g d
¢g d¢gg d¢d¬«      }t        j                  |«       y # 1 sw Y   Œ6xY w)Nr+   r,   r-   rZ   rˆ   r‰   ÚFloat64rO  z	c = b - 1r  )r-   rZ   r-   r7  rP  )r0   r1   r¾  rE   r|   s        r   Útest_ea_dtypes_and_scalarz;TestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalarN  sƒ   € ä˜˜A˜  A Ð'°#°s°À9ÔMˆÝ$5•.¸4ˆÜ×'Ñ'¨Ó0ñ 	*Ø—W‘W˜[Ó)ˆF÷	*äÚš	Ð"ªOÀ9ô
ˆô 	×Ñ˜f hÕ/÷	*ð 	*úrS  c           	      ó  — t        ddgddggddg|¬«      }|j                  d«      }t        t        ddg|¬	«      t        ddg|¬	«      t        ddg|d
   j                  ¬	«      dœ«      }t	        j
                  ||«       y )Nr+   r,   r-   rZ   rˆ   r‰   rO  z	c = 2 - 1rì  r¡   r7  )r   rB   r   rí  r@   rA   )r0   rQ  r1   rE   r|   s        r   Ú#test_ea_dtypes_and_scalar_operationzETestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar_operationY  sŒ   € äØ�ˆV�a˜�VÐ s¨C jÐ8Vô
ˆð —‘˜Ó%ˆÜä˜Q ˜FÐ*HÔIÜ˜Q ˜FÐ*HÔIÜ˜Q ˜F¨&°©+×*;Ñ*;Ô<ñó
ˆô 	×Ñ˜f hÕ/r   rí  )rî  ÚInt64úint64[pyarrow]c                 óp  — |dk(  rt        j                  d«       t        dt        ddg|¬«      i«      }dh}|dk(  rt        rt
        nd }t        j                  |«      5  |j                  d«      }d d d «       t        dt        dg|dg¬	«      i«      }t        j                  |«       y # 1 sw Y   Œ;xY w)
NrZ  Úpyarrowrˆ   r+   r,   rì  rY  z	a in @ref©rí  rj   )
r#   Úimportorskipr   r   r
   r»  r@   r¼  r?   rA   )r0   rí  r1   Úrefr¾  rE   r|   s          r   Útest_query_ea_dtypesz6TestDataFrameQueryBacktickQuoting.test_query_ea_dtypesh  s©   € àÐ$Ò$Ü×Ñ 	Ô*ä˜œV Q¨ F°%Ô8Ð9Ó:ˆØˆcˆØ$)¨WÒ$4Õ9J•.ÐPTˆÜ×'Ñ'¨Ó0ñ 	+Ø—X‘X˜kÓ*ˆF÷	+ä˜c¤6¨1¨#°UÀ1À#Ô#FÐGÓHˆÜ
×Ñ˜f hÕ/÷	+ð 	+ús   Á B,Â,B5r!   r   r   c           	      óä  — |dk(  rt         nd }|dk(  rt        st        j                  d«       |dk(  rt        j                  d«       t        t        g d¢d¬«      t        g d¢|¬«      d	œ«      }t        j                  |«      5  |j                  d
|¬«      }d d d «       t        t        ddgdddg¬«      t        ddg|ddg¬«      d	œ«      }t        j                  |«       y # 1 sw Y   ŒNxY w)Nr   znumexpr not installedrZ  r\  )r+   r+   r,   rY  rì  )r+   r,   r,   rŠ   zA == BrH   r+   r,   r   r]  )r»  r
   r#   r$   r^  r   r   r@   r¼  r?   rA   )r0   rí  r!   r¾  r1   rE   r|   s          r   Ú!test_query_ea_equality_comparisonzCTestDataFrameQueryBacktickQuoting.test_query_ea_equality_comparisonu  sâ   € ð %+¨iÒ$7•.¸TˆØ�YÒÕ'8Ü�K‰KÐ/Ô0ØÐ$Ò$Ü×Ñ 	Ô*ÜÜš¨'Ô2¼Â	ÐQVÔ9WÑXó
ˆô ×'Ñ'¨Ó0ñ 	7Ø—X‘X˜h¨v�XÓ6ˆF÷	7ää˜Q ˜F¨'¸!¸Q¸Ô@Ü˜Q ˜F¨%¸¸1°vÔ>ñó
ˆô 	×Ñ˜f hÕ/÷	7ð 	7ús   ÂC&Ã&C/c                 ó
  — t         j                  j                  d«      }t        dt        j                  d d gd¬«      it
        ¬«      }|j                  d«      }t        dg it
        ¬«      }t        j                  ||«       y )NÚUTCrˆ   T)Úutcrì  za > @now)	rœ   Ú	TimestampÚnowr   Úto_datetimer  r?   r@   rA   )r0   rg  r1   rE   r|   s        r   Útest_all_nat_in_objectz8TestDataFrameQueryBacktickQuoting.test_all_nat_in_object‹  sd   € ä�l‰l×Ñ˜uÓ%ˆÜ˜œRŸ^™^¨T°4¨L¸dÔCÐDÌFÔSˆØ—‘˜*Ó%ˆÜ˜c 2˜Y¬fÔ5ˆÜ
×Ñ˜f hÕ/r   N)$rS   rT   rU   r#   rV   r1   r  r  r  r"  r$  r&  r(  r*  r,  r.  r0  r2  r4  r6  r8  r:  r<  r@  rE  rG  rI  rM  rR  rV  rX  r©   rª   r`  rb  ri  r   r   r   r  r  ž  s  „ Ø‡^�^ñ
ó ð
òB+ò
+ò
,ò
,ò
,ò
,ò
,ò
,ò
,ò
,ò
,ò
+ò
+ò
+ò
+ò
,ò
+ò
!ò
*ò
"ò
&ò
,ò*0ò	0ò0ð ‡[�[×Ñ˜WÒ&JÓKñ
0ó Lð
0ð ‡[�[×Ñ˜X¨°)Ð'<Ó=Ø‡[�[×Ñ˜WÒ&JÓKñ0ó Ló >ð0ó(0r   r  )'ru  Únumpyrr   r#   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdr   rœ   r   r   r   r   r	   Úpandas._testingÚ_testingr@   Úpandas.core.computation.checkr
   rV   r   r   Ú
skip_if_nor!   r%   r'   rX   r¬   rå   ry  r�  rš  rŸ  rù  r  r   r   r   ú<module>rt     sT  ðÛ ã Û ÷÷ *Ð )ã ÷õ õ Ý ;ð €‡�˜ (Ð+±Ô=ñó >ðð €‡�Ø�l�f—l‘l 9°M°B·M±MÀ)Ó4LÔMÐNÙôñó	ðò=÷
01ñ 01÷f`-ñ `-÷FGIñ GIðT €‡�ˆyÓ÷v0ð v0ó ðv0ðr €‡�ˆyÓôu!Ð&Eó u!ó ðu!ôp0Ð%Dô 0ô*0Ð%Dô 0÷*Z*ñ Z*÷z?ñ ?÷4s0ò s0r   