ó
    ­œ‘hØ  ã            	       óH  • S SK r S SKrS SKrS SKJrJr  S SKJs  J	r
  S SKrS SKJrJrJrJrJr  S SKJr  S SKJr  \R.                  " SS/S S9S	 5       r\R.                  " S\R2                  " S
\
R4                  " S
5      S9/S S9S 5       rS r " S S5      r " S S5      r " S S5      r\
R4                  " S
5       " S S5      5       r \
R4                  " S
5       " S S\ 5      5       r! " S S\ 5      r" " S S\!5      r# " S S5      r$ " S S 5      r% " S! S"5      r&g)#é    N)ÚNumExprClobberingErrorÚUndefinedVariableError)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ
date_range)ÚNUMEXPR_INSTALLEDÚpythonÚpandasc                 ó   • U $ ©N© ©Úxs    ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/frame/test_query_eval.pyÚ<lambda>r      s   € ¹1ó    )ÚparamsÚidsc                 ó   • U R                   $ r   ©Úparam©Úrequests    r   Úparserr      s   € à�=‰=Ðr   Únumexpr)Úmarksc                 ó   • U $ r   r   r   s    r   r   r      s   € ‘!r   c                 ó   • U R                   $ r   r   r   s    r   Úenginer!      s   € ð
 �=‰=Ðr   c                 óD   • U S:w  a  [         R                  " SU  35        g g )Nr   zcannot evaluate with parser=)ÚpytestÚskip)r   s    r   Úskip_if_no_pandas_parserr%   %   s#   € Ø�ÓÜ�ŠÐ2°6°(Ð;Õ<ð r   c                   ó˜   • \ rS rSr\R
                  S 5       r\R
                  S 5       r\R
                  S 5       rS r	S r
S rS rS	rg
)Ú
TestCompaté*   c                 ó    • [        S/ SQ05      $ )NÚA©é   é   é   ©r   ©Úselfs    r   ÚdfÚTestCompat.df+   s   € ä˜#šyÐ)Ó*Ð*r   c                 ó$   • XR                   S:„     $ )Nr   ©r*   ©r1   r2   s     r   Ú	expected1ÚTestCompat.expected1/   s   € à—$‘$˜‘(‰|Ðr   c                 ó    • UR                   S-   $ ©Nr,   r5   r6   s     r   Ú	expected2ÚTestCompat.expected23   s   € à�t‰t�a‰xˆr   c                 óž   • UR                  S5      n[        R                  " XB5        UR                  S5      n[        R                  " XCSS9  g )NúA>0úA+1F©Úcheck_names©ÚqueryÚtmÚassert_frame_equalÚevalÚassert_series_equal©r1   r2   r7   r;   Úresults        r   Útest_query_defaultÚTestCompat.test_query_default7   s<   € ð —‘˜%“ˆÜ
×Ò˜fÔ0Ø—‘˜“ˆÜ
×Ò˜v¸eÓDr   c                 óš   • UR                  SS S9n[        R                  " XB5        UR                  SS S9n[        R                  " XCSS9  g )Nr>   ©r!   r?   Fr@   rB   rH   s        r   Útest_query_NoneÚTestCompat.test_query_None?   sD   € Ø—‘˜%¨�Ð-ˆÜ
×Ò˜fÔ0Ø—‘˜ t�Ð,ˆÜ
×Ò˜v¸eÓDr   c                 óš   • UR                  SSS9n[        R                  " XB5        UR                  SSS9n[        R                  " XCSS9  g )Nr>   r   rM   r?   Fr@   rB   rH   s        r   Útest_query_pythonÚTestCompat.test_query_pythonE   sD   € Ø—‘˜%¨�Ð1ˆÜ
×Ò˜fÔ0Ø—‘˜ x�Ð0ˆÜ
×Ò˜v¸eÓDr   c                 óÂ  • [         (       aL  UR                  SSS9n[        R                  " XB5        UR	                  SSS9n[        R
                  " XCSS9  g Sn[        R                  " [        US9   UR                  SSS9  S S S 5        [        R                  " [        US9   UR	                  SSS9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)	Nr>   r   rM   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
   rC   rD   rE   rF   rG   r#   ÚraisesÚImportError)r1   r2   r7   r;   rI   Úmsgs         r   Útest_query_numexprÚTestCompat.test_query_numexprK   s¯   € ßÒØ—X‘X˜e¨I�XÐ6ˆFÜ×!Ò! &Ô4Ø—W‘W˜U¨9�WÐ5ˆFÜ×"Ò" 6À%ÓHð!ð ô
 —’œ{°#Ó6Ø—‘˜ y�Ñ1÷ 7ä—’œ{°#Ó6Ø—‘˜ i�Ñ0÷ 7Ð6÷ 7Õ6úç6Õ6ús   Á3B?Â%CÂ?
CÃ
Cr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r#   Úfixturer2   r7   r;   rJ   rN   rQ   rY   Ú__static_attributes__r   r   r   r'   r'   *   s_   † Ø‡^�^ñ+ó ð+ð ‡^�^ñó ðð ‡^�^ñó ðòEòEòEõ1r   r'   c                   óÎ   • \ rS rSr\R
                  R                  SSS/5      \R
                  R                  S/ SQ5      S 5       5       rS rS	 r	S
 r
S rS rS rS rS rSrg)ÚTestDataFrameEvalé]   Úné   i   zop_str,op,rop))Ú+Ú__add__Ú__radd__)Ú-Ú__sub__Ú__rsub__)Ú*Ú__mul__Ú__rmul__)Ú/Ú__truediv__Ú__rtruediv__c                 ó   • [        S[        U5      [        S5      S9nSUR                  S'   UR	                  5       n[        [
        R                  " UR                  U5      R                  US5      [        S5      S9n[        SU S	35      n[        S
U S	35      n	[        R                  " X˜5        US;   a(  [        XR5      " U5      n	[        R                  " X˜5        g US;   a(  [        XS5      " U5      n	[        R                  " X˜5        g g )Nr,   Úabcd©ÚindexÚcolumnsr-   r   éÿÿÿÿ©rv   zbase z dfzm )rf   rl   )ri   ro   )r   ÚrangeÚlistÚilocÚmeanÚnpÚtileÚvaluesÚreshaperF   rD   rE   Úgetattr)
r1   Úop_strÚopÚroprd   r2   ÚmÚbaseÚexpectedrI   s
             r   Útest_opsÚTestDataFrameEval.test_ops_   së   € ô �q¤ a£´$°v³,Ñ?ˆØˆ�‰�‰
Ø�G‰G‹IˆäÜ�GŠG�A—H‘H˜aÓ ×(Ñ(¨¨BÓ/¼¸f»ñ
ˆô ˜% ˜x sÐ+Ó,ˆô ˜˜6˜( #Ð&Ó'ˆÜ
×Ò˜fÔ/ð �ÓÜ˜R”_ QÓ'ˆFÜ×!Ò! &Õ3ð �:ÓÜ˜RÔ% aÓ(ˆFÜ×!Ò! &Õ3ð r   c                 ót  • [        S[        R                  R                  S5      R	                  S5      05      n[        R
                  UR                  SS& S[        R                  " UR                  SS 5      -
  nS[        R                  " U5      -
  R                  SS n[        R                  " X25        g )Nr*   r-   i¨a  r   é   r,   é   )
r   r}   ÚrandomÚdefault_rngÚstandard_normalÚnanr{   ÚisnanrD   rE   )r1   r2   r‡   rI   s       r   Útest_dataframe_sub_numexpr_pathÚ1TestDataFrameEval.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Õ/r   c                 ó>  • [        / SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  S 5        S S S 5        [        R                  " [        US9   UR	                  S5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nr+   )ÚaÚbr–   ©r*   ÚBz%expr must be a string to be evaluatedrT   c                 ó    • U R                   S:H  $ )Nr–   )r˜   r   s    r   r   Ú6TestDataFrameEval.test_query_non_str.<locals>.<lambda>”   s   € ˜qŸs™s cšzr   éo   ©r   r#   rV   Ú
ValueErrorrC   ©r1   r2   rX   s      r   Útest_query_non_strÚ$TestDataFrameEval.test_query_non_strŽ   sk   € äšYª_Ñ=Ó>ˆà5ˆÜ�]Š]œ:¨SÓ1Ø�H‰HÑ)Ô*÷ 2ô �]Š]œ:¨SÓ1Ø�H‰H�SŒM÷ 2Ð1÷ 2Õ1ú÷ 2Õ1ús   ®A=Á"BÁ=
BÂ
Bc                 ó®   • [        S/ SQ05      nSn[        R                  " [        US9   UR	                  S5        S S S 5        g ! , (       d  f       g = f)Nr*   r+   zexpr cannot be an empty stringrT   Ú rœ   rž   s      r   Útest_query_empty_stringÚ)TestDataFrameEval.test_query_empty_string™   s;   € ä˜šYÐ'Ó(ˆà.ˆÜ�]Š]œ:¨SÓ1Ø�H‰H�RŒL÷ 2×1Ö1ús   «AÁ
Ac                 ó  • [        [        R                  R                  S5      R	                  S5      [        S5      S9nSS0nSS0nUR                  SX#/S	9US   US   -   :X  d   e[        R                  " SX#/S	9US   US   -   :X  d   eg )
Nr-   ©é
   r-   Úabrx   r•   r,   r–   úa + b©Ú	resolvers)r   r}   r�   rŽ   r�   rz   rF   Úpd)r1   r2   Údict1Údict2s       r   Útest_eval_resolvers_as_listÚ-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                 óú   • [        [        R                  R                  S5      R	                  S5      [        S5      S9nSS0nUR                  SU/S9nUS   US	   US   -  -   n[        R                  " X45        g )
Nr-   r¦   r¨   rx   Úcz	a + b * crª   r•   r–   )	r   r}   r�   rŽ   r�   rz   rF   rD   rG   )r1   r2   r­   rI   r‡   s        r   Útest_eval_resolvers_combinedÚ.TestDataFrameEval.test_eval_resolvers_combined«   sy   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzñ
ˆð �a�ˆð —‘˜°°�Ð8ˆà�c‘7˜R ™W u¨S¡zÑ1Ñ1ˆÜ
×Ò˜vÕ0r   c                 ó”   • [        SSS/05      nUR                  S5      n[        SS/SS/S.5      n[        R                  " X#5        g )NÚa1ÚYÚNzc = ((a1 == 'Y') & True)TF)r¶   r²   )r   rF   rD   rE   )r1   r2   Úresr‡   s       r   Útest_eval_object_dtype_binopÚ.TestDataFrameEval.test_eval_object_dtype_binop¸   sI   € ä˜˜s C˜jÐ)Ó*ˆØ�g‰gÐ0Ó1ˆÜ S¨# J°d¸E°]ÑCÓDˆÜ
×Ò˜cÕ,r   c                 ón  • US:X  a.  [         R                  R                  SS9nUR                  U5        [	        [
        R                  " / SQ5      [
        R                  " / SQ5      S.5      nUR                  SXS9n[        [
        R                  " / S	Q5      5      n[        R                  " Xg5        g )
Nr   z/numexpr does not support extension array dtypes)Úreasonr+   ©re   r‹   é   ©r•   r–   za / b©r!   r   )g      Ð?gš™™™™™Ù?ç      à?)r#   ÚmarkÚxfailÚapplymarkerr   r¬   ÚarrayrF   r   rD   rG   )r1   r!   r   r   rÃ   r2   rI   r‡   s           r   Útest_extension_array_evalÚ+TestDataFrameEval.test_extension_array_eval¿   s‹   € à�YÓÜ—;‘;×$Ñ$ØHð %ð ˆDð ×Ñ Ô%ÜœRŸXšX¢iÓ0´r·x²xÂ	Ó7JÑKÓLˆØ—‘˜¨�Ð?ˆÜœ"Ÿ(š(Ò#5Ó6Ó7ˆÜ
×Ò˜vÕ0r   c                 óˆ   • [        S/S/S.5      nUR                  SXS9n[        S/5      n[        R                  " XE5        g )Ny      ð?       @y      ð?      ð?rÀ   za/brÁ   y      ø?      à?)r   rF   r   rD   rG   )r1   r!   r   r2   rI   r‡   s         r   Útest_complex_evalÚ#TestDataFrameEval.test_complex_evalË   sA   € ä˜f˜X¨V¨HÑ5Ó6ˆØ—‘˜ v�Ð=ˆÜ˜:˜,Ó'ˆÜ
×Ò˜vÕ0r   r   N)r[   r\   r]   r^   r#   rÃ   Úparametrizerˆ   r’   rŸ   r£   r¯   r³   rº   rÇ   rÊ   r`   r   r   r   rb   rb   ]   sq   † à‡[�[×Ñ˜S 1 d )Ó,Ø‡[�[×ÑØò	
óñ4óó -ð4ò80ò	òòUò1ò-ò
1õ1r   rb   c                   ó,   • \ rS rSrS rS rS rS rSrg)Ú TestDataFrameQueryWithMultiIndexéÓ   c                 ó  • [        U5        [        R                  R                  S5      R	                  SS/SS9n[        R                  R                  S5      R	                  SS/SS9n[
        R                  " X4/SS	/S
9n[        [        R                  R                  S5      R                  S5      US9n[        UR                  R                  S5      R                  USS9nUR                  SXS9nUR                  SXS9n	XgS:H     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgS:g     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        g )Nr-   ÚredÚgreenr§   ©ÚsizeÚeggsÚhamÚcolorÚfood©Únamesr¦   ©ru   ©ru   Ú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%   r}   r�   rŽ   Úchoicer   Úfrom_arraysr   r�   r   ru   Úget_level_valuesr   rC   rD   rE   Úisin©r1   r   r!   r•   r–   ru   r2   ÚindÚres1Úres2Úexps              r   Ú test_query_with_named_multiindexÚATestDataFrameQueryWithMultiIndex.test_query_with_named_multiindexÔ   s¿  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÐFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÐEˆÜ×&Ò&¨ 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Ô(Ü
×Ò˜dÔ(ð �x‰xÐ(°ˆxÐGˆØ�x‰xÐ(°ˆxÐGˆØ˜‘ÑˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ*°6ˆxÐIˆØ�x‰xÐ*°6ˆxÐIˆØ—‘˜5˜'Ó"Ñ#ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ*°6ˆxÐIˆØ�x‰xÐ*°6ˆxÐIˆØ—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ*°6ˆxÐIˆØ�x‰xÐ(°ˆxÐGˆØ—‘˜5˜'Ó"Ñ#ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ.°vˆxÐMˆØ�x‰xÐ,°VˆxÐKˆØ—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÕ(r   c                 óÄ
  • [        U5        [        R                  R                  S5      R	                  SS/SS9n[        R                  R                  S5      R	                  SS/SS9n[
        R                  " X4/5      n[        [        R                  R                  S5      R                  S5      US	9n[        UR                  R                  S
5      R                  US	9nUR                  SXS9nUR                  SXS9n	XgS:H     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgS:g     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        [        UR                  R                  S5      R                  US	9nUR                  SXS9nUR                  SXS9n	XgS:H     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgS:g     n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  SXS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  SXS9nUR                  S XS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        UR                  S!XS9nUR                  S"XS9n	XgR!                  S/5         n
[        R                  " XŠ5        [        R                  " Xš5        UR                  S#XS9nUR                  S$XS9n	XgR!                  S/5      )    n
[        R                  " XŠ5        [        R                  " Xš5        g )%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_multiindexÚCTestDataFrameQueryWithMultiIndex.test_query_with_unnamed_multiindex  sÐ  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÐFˆÜ�I‰I×!Ñ! !Ó$×+Ñ+¨V°U¨OÀ"Ð+ÐEˆÜ×&Ò&¨ vÓ.ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÑVˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÑFˆà�x‰xÐ+°FˆxÐJˆØ�x‰xÐ+°FˆxÐJˆØ˜‘ÑˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ+°FˆxÐJˆØ�x‰xÐ+°FˆxÐJˆØ˜‘ÑˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ-°fˆxÐLˆØ�x‰xÐ-°fˆxÐLˆØ—‘˜5˜'Ó"Ñ#ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ-°fˆxÐLˆØ�x‰xÐ-°fˆxÐLˆØ—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ-°fˆxÐLˆØ�x‰xÐ+°FˆxÐJˆØ—‘˜5˜'Ó"Ñ#ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ1¸&ˆxÐPˆØ�x‰xÐ/¸ˆxÐNˆØ—(‘(˜E˜7Ó#Ð#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ô �R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÑFˆØ�x‰xÐ,°VˆxÐKˆØ�x‰xÐ,°VˆxÐKˆØ˜‘ÑˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ,°VˆxÐKˆØ�x‰xÐ,°VˆxÐKˆØ˜‘ÑˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ.°vˆxÐMˆØ�x‰xÐ.°vˆxÐMˆØ—‘˜6˜(Ó#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ.°vˆxÐMˆØ�x‰xÐ.°vˆxÐMˆØ—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(ð �x‰xÐ.°vˆxÐMˆØ�x‰xÐ,°VˆxÐKˆØ—‘˜6˜(Ó#Ñ$ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÔ(à�x‰xÐ2¸6ˆxÐQˆØ�x‰xÐ0¸ˆxÐOˆØ—(‘(˜F˜8Ó$Ð$Ñ%ˆÜ
×Ò˜dÔ(Ü
×Ò˜dÕ(r   c                 ó$  • [        U5        [        R                  R                  S5      R	                  SS/SS9n[        R
                  " S5      n[        R                  " X4/5      nS S/Ul        [        [        R                  R                  S5      R                  S5      US9nUR                  S	XS
9n[        UR                  R                  S5      R                  USS9nXhS:H     n	[         R"                  " Xy5        UR                  SXS
9n[        UR                  R                  S5      R                  USS9nXhS:g     n	[         R"                  " Xy5        UR                  SXS
9n[        UR                  R                  S5      R                  US9nXhS:H     n	[         R"                  " Xy5        UR                  SXS
9n[        UR                  R                  S5      R                  US9nXhS:g     n	[         R"                  " Xy5        g )Nr-   rÑ   rÒ   r§   rÓ   Úratingr¦   rÛ   zrating == 1rÞ   rÜ   r,   zrating != 1rì   r   rí   )r%   r}   r�   rŽ   rà   Úaranger   rá   rÚ   r   r�   rC   r   ru   râ   r   rD   rE   )
r1   r   r!   r•   r–   ru   r2   r¹   rå   rè   s
             r   Ú*test_query_with_partially_named_multiindexÚKTestDataFrameQueryWithMultiIndex.test_query_with_partially_named_multiindex^  sÇ  € Ü  Ô(Ü�I‰I×!Ñ! !Ó$×+Ñ+¨U°GÐ,<À2Ð+ÐFˆÜ�IŠI�b‹MˆÜ×&Ò&¨ vÓ.ˆØ˜XÐ&ˆŒÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPUÑVˆØ�h‰h�}¨VˆhÐCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ñ
ˆð ˜‘‰lˆÜ
×Ò˜cÔ'à�h‰h�}¨VˆhÐCˆÜØ�H‰H×%Ñ% hÓ/×6Ñ6¸eÈ(ñ
ˆð ˜‘‰lˆÜ
×Ò˜cÔ'à�h‰hÐ*°6ˆhÐIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÑFˆØ˜‘ÑˆÜ
×Ò˜cÔ'à�h‰hÐ*°6ˆhÐIˆÜ�R—X‘X×.Ñ.¨qÓ1×8Ñ8ÀÑFˆØ˜‘ÑˆÜ
×Ò˜cÕ'r   c                 ó‚  • [        [        R                  " S5      [        R                  " [        S5       Vs/ s H  n[        S5      PM     snSS/S9S9nUR                  5       nS nUR                  R                  5       nUR                  UU" UR                  S5      U" UR                  S5      US	.nUR                  5        Ho  u  px[        U[        5      (       a  UR                  Xg   5      (       d   eM6  [        U[        5      (       a  [        R                   " X†U   5        Mf  [#        S
5      e   g s  snf )N©r§   r.   r-   r§   ÚspamrÕ   rÙ   rÛ   c                 óT   • U R                  U5      nUR                  5       nXl        U$ r   )râ   Ú	to_seriesru   )ÚmiÚlevelÚlevel_valuesÚss       r   rù   Ú]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_series†  s*   € Ø×.Ñ.¨uÓ5ˆLØ×&Ñ&Ó(ˆAØŒGØˆHr   )ru   rv   r÷   rÕ   Úclevel_0z object must be a Series or Index)r   r}   Úonesr   rá   ry   Ú_get_index_resolversrv   rù   ru   ÚitemsÚ
isinstancer   Úis_r   rD   rG   ÚAssertionError)	r1   Ú_r2   r«   rù   Ú
col_seriesr‡   ÚkÚvs	            r   Ú)test_query_multiindex_get_index_resolversÚJTestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers}  s	  € ÜÜ�GŠG�GÓÜ×(Ò(Ü$)¨!¤HÓ-¢H˜q”�r–¡HÑ-°f¸fÐ5Eññ
ˆð ×+Ñ+Ó-ˆ	ò	ð —Z‘Z×)Ñ)Ó+ˆ
à—X‘XØ!Ù˜bŸh™h¨Ó/Ù˜bŸh™h¨Ó/Ø"ñ
ˆð —O‘OÖ%‰DˆAÜ˜!œU×#Ñ#Ø—u‘u˜X™[×)Ñ)Ð)Ò)Ü˜Aœv×&Ñ&Ü×&Ò& q°1©+Ö6ä$Ð%GÓHÐHò &ùò' .s   ¸D<r   N)	r[   r\   r]   r^   ré   rî   ró   r
  r`   r   r   r   rÎ   rÎ   Ó   s   † ò0)òdV)òp(õ>Ir   rÎ   c                   ód  • \ rS rSr\R
                  S 5       r\R
                  S 5       rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R<                  R?                  SS\ RB                  /S\ RD                  //5      S 5       r#S r$S r%S r&g!)"ÚTestDataFrameQueryNumExprPandasi�  c                 ó   • g©Nr   r   r0   s    r   r!   Ú&TestDataFrameQueryNumExprPandas.engineŸ  ó   € àr   c                 ó   • g©Nr   r   r0   s    r   r   Ú&TestDataFrameQueryNumExprPandas.parser£  ó   € àr   c                 ód  • [        U5        [        [        R                  R	                  S5      R                  S5      5      n[        SSS9US'   [        SSS9US'   [        S	SS9US
'   UR                  SXS9nX3R                  S:  SUR                  :  -     n[        R                  " XE5        g )Nr-   ©r‹   r.   ú1/1/2012r‹   ©ÚperiodsÚdates1ú1/1/2013Údates2ú1/1/2014Údates3z"@df.dates1 < 20130101 < @df.dates3rÁ   Ú20130101)r%   r   r}   r�   rŽ   r�   r	   rC   r  r  rD   rE   ©r1   r!   r   r2   r¹   Úexpecs         r   Ú%test_date_query_with_attribute_accessÚETestDataFrameQueryNumExprPandas.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¸ð ð 
ˆð —I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ò˜cÕ)r   c                 óN  • [        [        R                  R                  S5      R	                  S5      5      n[        SSS9US'   [        SSS9US'   [        S	SS9US
'   UR                  SXS9nX3R                  S:  SUR                  :  -     n[        R                  " XE5        g )Nr-   r  r  r‹   r  r  r  r  r  r  údates1 < 20130101 < dates3rÁ   r   ©r   r}   r�   rŽ   r�   r	   rC   r  r  rD   rE   r!  s         r   Ú#test_date_query_no_attribute_accessÚCTestDataFrameQueryNumExprPandas.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ˆhÐRˆØ—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ò˜cÕ)r   c                 óŽ  • Sn[        [        R                  R                  S5      R	                  US45      5      n[        SUS9US'   [        SUS9US'   [        S	US9US
'   [        R                  UR                  [        R                  R                  S5      R                  U5      S:„  S4'   [        R                  UR                  [        R                  R                  S5      R                  U5      S:„  S
4'   UR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                  " XV5        g )Nr§   r-   r.   r  r  r  r  r  r  r  rÂ   r&  rÁ   r   ©r   r}   r�   rŽ   r�   r	   r¬   ÚNaTÚlocrC   r  r  rD   rE   ©r1   r!   r   rd   r2   r¹   r"  s          r   Útest_date_query_with_NaTÚ8TestDataFrameQueryNumExprPandas.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ˆhÐRˆØ—I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ò˜cÕ)r   c                 óh  • Sn[        [        R                  R                  S5      R	                  US45      5      n[        SUS9US'   [        SUS9US'   UR                  SS	S	S
9nUb   eUR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                  " Xg5        g )Nr§   r-   r.   r  r  r  r  r  T©ÚinplaceÚdropúindex < 20130101 < dates3rÁ   r   ©r   r}   r�   rŽ   r�   r	   Ú	set_indexrC   ru   r  rD   rE   ©r1   r!   r   rd   r2   Úreturn_valuer¹   r"  s           r   Útest_date_index_queryÚ5TestDataFrameQueryNumExprPandas.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ˆØ—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ò˜cÕ)r   c                 óÌ  • Sn[        [        R                  R                  S5      R	                  US45      5      R                  S[        05      n[        SUS9US'   [        SUS9US	'   [        R                  UR                  S
'   UR                  SSSS9nUb   eUR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                   " Xg5        g )Nr§   r-   r.   r   r  r  r  r  r  ©r   r   Tr2  r5  rÁ   r   ©r   r}   r�   rŽ   r�   ÚastypeÚobjectr	   r¬   r,  r{   r7  rC   ru   r  rD   rE   r8  s           r   Útest_date_index_query_with_NaTÚ>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ˆØ—H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ò˜cÕ)r   c                 óÈ  • Sn0 n[        SUS9US'   [        SUS9US'   [        U5      n[        R                  UR                  [
        R                  R                  S5      R                  U5      S:„  S4'   UR                  SS	S	S
9nUb   eUR                  SXS9nXUR                  R                  5       S:  SUR                  :  -     n[        R                  " Xx5        g )Nr§   r  r  r  r  r  r-   rÂ   Tr2  r&  rÁ   r   )r	   r   r¬   r,  r-  r}   r�   rŽ   r7  rC   ru   rù   r  rD   rE   )	r1   r!   r   rd   Údr2   r9  r¹   r"  s	            r   Ú)test_date_index_query_with_NaT_duplicatesÚITestDataFrameQueryNumExprPandas.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ˆhÐRˆØ—H‘H×&Ñ&Ó(¨:Ñ5¸*ÀrÇyÁyÑ:PÑQÑRˆÜ
×Ò˜cÕ)r   c                 ó�  • Sn[        [        SUS9[        R                  " U5      S.5      nUR	                  SX!S9n[        U5      S:X  d   eUR	                  SX!S9n[        R                  " XT5        S	nS
 H9  n[        R                  " [        US9   UR	                  SU S3X!S9  S S S 5        M;     g ! , (       d  f       MM  = f)Nr§   r  r  )ÚdatesÚnondatezdates == nondaterÞ   r   zdates != nondatez=Invalid comparison between dtype=datetime64\[ns\] and ndarray)Ú<Ú>ú<=ú>=rT   zdates z nondate)r   r	   r}   rò   rC   ÚlenrD   rE   r#   rV   Ú	TypeError)r1   r!   r   rd   r2   rI   rX   rƒ   s           r   Útest_date_query_with_non_dateÚ=TestDataFrameQueryNumExprPandas.test_date_query_with_non_dateï  sµ   € ØˆÜÜ  °QÑ7ÄBÇIÂIÈaÃLÑQó
ˆð —‘Ð,°V�ÐKˆÜ�6‹{˜aÓÐÐà—‘Ð,°V�ÐKˆÜ
×Ò˜fÔ)àNˆÛ(ˆBÜ—’œy°Ó4Ø—‘˜6 "  XÐ.°v�ÑM÷ 5Ñ4ò )ß4Ö4ús   ÂB6Â6
C	c                 óæ   • [        [        S5      [        SS5      [        SS5      S.5      nSn[        R                  " [        US9   UR                  S	XS
9  S S S 5        g ! , (       d  f       g = f)Nr§   r.   é   re   é   )Úirf   Úrzinvalid syntaxrT   zi - +rÁ   )r   ry   r#   rV   ÚSyntaxErrorrC   )r1   r!   r   r2   rX   s        r   Útest_query_syntax_errorÚ7TestDataFrameQueryNumExprPandas.test_query_syntax_error   sR   € ÜœU 2›Y¬U°1°b«\ÄÀaÈÃÑMÓNˆØˆÜ�]Š]œ;¨cÓ2Ø�H‰H�W VˆHÑ;÷ 3×2Ö2ús   ÁA"Á"
A0c                 óœ  • [        U5        [        [        R                  R	                  S5      R                  S5      [        S5      S9nSu  pEUR                  SXS9nX3R                  UR                  :„     n[        R                  " Xg5        UR                  SXS9nX4UR                  :„     n[        R                  " Xg5        [        R                  " [        S	S
9   UR                  SXS9  S S S 5        [        R                  " [        SS
9   UR                  SXS9  S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr-   )é   r-   r¨   rx   )r,   r-   za > brÁ   z@a > bú!local variable 'c' is not definedrT   z@a > b > @czname 'c' is not definedz
@a > b > c)r%   r   r}   r�   rŽ   r�   rz   rC   r•   r–   rD   rE   r#   rV   r   )r1   r!   r   r2   r•   r–   r¹   r‡   s           r   Útest_query_scopeÚ0TestDataFrameQueryNumExprPandas.test_query_scope  s  € Ü  Ô(äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈDÃzñ
ˆð ‰ˆØ�h‰h�w vˆhÐ=ˆØ—d‘d˜RŸT™T‘k‘?ˆÜ
×Ò˜cÔ,à�h‰h�x¨ˆhÐ>ˆØ˜"Ÿ$™$‘h‘<ˆÜ
×Ò˜cÔ,ô �]Š]Ü"Ð*Mó
ð �H‰H�]¨6ˆHÑA÷
ô �]Š]Ô1Ð9RÓSØ�H‰H�\¨&ˆHÑ@÷ TÐS÷
õ 
ú÷ TÕSús   Ã D,ÄD=Ä,
D:Ä=
Ec                 ó  • S=p4[        [        R                  R                  S5      R	                  XCS4S9[        S5      S9n[        R                  " [        SS9   UR                  S	XS
9  S S S 5        g ! , (       d  f       g = f)Nr§   r-   r.   rÓ   Úabcrx   zname 'sin' is not definedrT   úsin > 5rÁ   )
r   r}   r�   rŽ   Úintegersrz   r#   rV   r   rC   )r1   r!   r   rd   r…   r2   s         r   Útest_query_doesnt_pickup_localÚ>TestDataFrameQueryNumExprPandas.test_query_doesnt_pickup_local   sl   € Øˆ
ˆÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a¸!°fÐ-Ð=ÄtÈEÃ{ñ
ˆô
 �]Š]Ô1Ð9TÓUØ�H‰H�Y vˆHÑ=÷ V×UÖUús   ÁA6Á6
Bc                 ó4  • S=p4[        [        R                  R                  S5      R	                  XCS4S9[        S5      S9nSUR                  l        Sn[        R                  " [        US	9   UR                  S
XS9  S S S 5        g ! , (       d  f       g = f)Nr§   r-   r.   rÓ   r`  rx   ÚsinzVariables in expression.+rT   ra  rÁ   )r   r}   r�   rŽ   rb  rz   ru   rÝ   r#   rV   r   rC   )r1   r!   r   rd   r…   r2   rX   s          r   Útest_query_builtinÚ2TestDataFrameQueryNumExprPandas.test_query_builtin*  sz   € Øˆ
ˆÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a¸!°fÐ-Ð=ÄtÈEÃ{ñ
ˆð ˆ�‰ŒØ)ˆÜ�]Š]Ô1¸Ó=Ø�H‰H�Y vˆHÑ=÷ >×=Ö=ús   Á/B	Â	
Bc                 ó   • [        [        R                  R                  S5      R	                  S5      / SQS9n[
        R                  " UR                  SXS9X3R                  UR                  :     5        [
        R                  " UR                  SXS9X3R                  UR                  -   UR                  UR                  -  :„     5        g )Nr-   rö   ©r•   r–   r²   rx   úa < brÁ   za + b > b * c)r   r}   r�   rŽ   r�   rD   rE   rC   r•   r–   r²   ©r1   r!   r   r2   s       r   Ú
test_queryÚ*TestDataFrameQueryNumExprPandas.test_query5  sž   € ÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Âñ
ˆô 	×ÒØ�H‰H�W VˆHÐ;¸RÇÁÀrÇtÁtÁ¹_ô	
ô 	×ÒØ�H‰H�_¨VˆHÐCØ�t‰t�b—d‘d‰{˜RŸT™T B§D¡D™[Ñ(Ñ)õ	
r   c                 óº  • [        [        R                  R                  S5      R	                  SSS9[        [        S5      SS9/ SQS9nUR                  S	XS
9nX3R                  S:  UR                  UR                  :  -     n[        R                  " XE5        UR                  SXS
9nX3R                  UR                  :     n[        R                  " XE5        g )Nr-   r§   rö   rÓ   Úblob©rÝ   rj  rt   z(blob < 5) & (a < b)rÁ   r‹   zblob < b)r   r}   r�   rŽ   rb  r   ry   rC   ru   r•   r–   rD   rE   r!  s         r   Útest_query_index_with_nameÚ:TestDataFrameQueryNumExprPandas.test_query_index_with_nameB  s·   € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ð?Üœ˜b›	¨Ñ/Ú#ñ
ˆð
 �h‰hÐ-°fˆhÐLˆØ—H‘H˜q‘L R§T¡T¨B¯D©D¡[Ñ1Ñ2ˆÜ
×Ò˜cÔ)à�h‰h�z¨&ˆhÐ@ˆØ—8‘8˜bŸd™d‘?Ñ#ˆä
×Ò˜cÕ)r   c                 óv  • [        [        R                  R                  S5      R	                  SSS9[        S5      / SQS9nUR                  SXS9nX3R                  UR                  :     n[        R                  " XE5        UR                  S	XS9nX3R                  S
:     n[        R                  " XE5        g )Nr-   r§   rö   rÓ   rj  rt   z	index < brÁ   z	index < 5r‹   )r   r}   r�   rŽ   rb  ry   rC   ru   r–   rD   rE   r!  s         r   Útest_query_index_without_nameÚ=TestDataFrameQueryNumExprPandas.test_query_index_without_nameQ  s    € ÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨b°wÐ-Ð?Ü˜“)Ú#ñ
ˆð �h‰h�{¨6ˆhÐAˆØ—8‘8˜bŸd™d‘?Ñ#ˆÜ
×Ò˜cÔ)ð �h‰h�{¨6ˆhÐAˆØ—8‘8˜a‘<Ñ ˆÜ
×Ò˜cÕ)r   c                 ó®  • [        U5        [        [        R                  R	                  S5      R                  S5      5      n[        [        R                  R	                  S5      R                  S5      5      nX3S:„  US:„  -     nUR                  SXS9n[        R                  " Xe5        [        R                  " SXS9n[        R                  " Xe5        [        R                  " SXS9nX3S:„  US:„  -  X3S:„     S:„  -     n[        R                  " Xe5        [        R                  " SXS9nUR                  S	XS9n[        R                  " Xe5        g )
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   r}   r�   rŽ   r�   rC   rD   rE   r¬   rF   )r1   r!   r   r2   Údf2r‡   rI   s          r   Útest_nested_scopeÚ1TestDataFrameQueryNumExprPandas.test_nested_scopeb  s   € Ü  Ô(ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆØ˜A‘v #¨¡'Ñ*Ñ+ˆà—‘Ð2¸6�ÐQˆÜ
×Ò˜fÔ/ä—’Ð1¸&ÑPˆÜ
×Ò˜fÔ/ä—’Ø7Àñ
ˆð ˜A‘v #¨¡'Ñ*¨b°a±©j¸1©nÑ=Ñ>ˆÜ
×Ò˜fÔ/ä—’Ð/¸ÑNˆØ—8‘8Ð0¸�8ÐOˆÜ
×Ò˜fÕ/r   c                 óø   • [        [        R                  R                  S5      R	                  S5      5      n[
        R                  " [        SS9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)Nr-   r  úname 'df' is not definedrT   zdf > 0rÁ   )	r   r}   r�   rŽ   r�   r#   rV   r   rC   rl  s       r   Ú*test_nested_raises_on_local_self_referenceÚJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_referencey  sU   € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆô �]Š]Ô1Ð9SÓTØ�H‰H�X fˆHÑ<÷ U×TÖTús   ÁA+Á+
A9c                 óŒ  • [        U5        [        [        R                  R	                  S5      R                  S5      [        S5      S9nSnX3R                  U:     nUR                  SXS9n[        R                  " Xe5        X3R                  UR                  :     nUR                  SXS9n[        R                  " Xe5        g )	Nr-   )éd   r§   Ú
abcdefghijrx   r,   za < @brÁ   rk  )r%   r   r}   r�   rŽ   r�   rz   r•   rC   rD   rE   r–   )r1   r!   r   r2   r–   ÚexpectrI   s          r   Útest_local_syntaxÚ1TestDataFrameQueryNumExprPandas.test_local_syntax€  s¢   € Ü  Ô(äÜ�I‰I×!Ñ! !Ó$×4Ñ4°YÓ?Ü˜Ó&ñ
ˆð ˆØ—D‘D˜1‘H‘ˆØ—‘˜(¨6�ÐAˆÜ
×Ò˜fÔ-à—D‘D˜2Ÿ4™4‘K‘ˆØ—‘˜'¨&�Ð@ˆÜ
×Ò˜fÕ-r   c                 ó  • [        U5        [        S5      n[        [        R                  R                  S5      R                  S[        U5      45      US9nUR                  SXS9nUR                  UR                  :  UR                  UR                  :  -  UR                  R                  UR                  5      ) -  UR                  R                  UR                  5      ) -  nXF   n[        R                  " XW5        g )Nr`  r-   r�  rx   z!a < b < c and a not in b not in crÁ   )r%   rz   r   r}   r�   rŽ   r�   rN  rC   r•   r–   r²   rã   rD   rE   )r1   r!   r   Úcolsr2   r¹   rå   r"  s           r   Útest_chained_cmp_and_inÚ7TestDataFrameQueryNumExprPandas.test_chained_cmp_and_in�  sÉ   € Ü  Ô(Ü�E‹{ˆÜÜ�I‰I×!Ñ! !Ó$×4Ñ4°c¼3¸t»9Ð5EÓFÐPTñ
ˆð �h‰hØ/¸ð ð 
ˆð �t‰t�b—d‘d‰{˜rŸt™t b§d¡d™{Ñ+¨r¯t©t¯y©y¸¿¹«Ð.>Ñ>À"Ç$Á$Ç)Á)ÈBÏDÉDÃ/ÐAQÑQˆØ‘ˆÜ
×Ò˜cÕ)r   c                 ó¢  • [        U5        [        [        R                  R	                  S5      R                  SSS9SS9n[        [        R                  R	                  S5      R                  SSS9SS9n[        X4S	.5      nUR                  UR                  S
-
  R                  U5         nUR                  SXS9n[        R                  " Xg5        [        [        R                  R	                  S5      R                  SSS9SS9nUR                  US
-
  R                  U5         nUR                  SXS9n[        R                  " Xg5        g )Nr-   r.   é   rÓ   r•   rq  r§   r–   rÀ   r,   z
b - 1 in arÁ   z@b - 1 in a)r%   r   r}   r�   rŽ   rb  r   r-  r–   rã   rC   rD   rE   )r1   r!   r   r•   r–   r2   r‡   rI   s           r   Útest_local_variable_with_inÚ;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Ñ'Ó(ˆà—6‘6˜2Ÿ4™4 !™8Ÿ/™/¨!Ó,Ñ-ˆØ—‘˜,¨v�ÐEˆÜ
×Ò˜hÔ/ä”2—9‘9×(Ñ(¨Ó+×4Ñ4°R¸bÐ4ÐAÈÑLˆØ—6‘6˜1˜q™5Ÿ,™, q›/Ñ*ˆØ—‘˜-°�ÐFˆÜ
×Ò˜hÕ/r   c                 óª   • [        U5        Sn[        S/ SQ05      nUR                  SXS9nXDR                  S:H     n[        R
                  " XV5        g )Nr,   r•   )r•   r•   r–   r–   ú@cr�  z	a == "@c"rÁ   r�  ©r%   r   rC   r•   rD   rE   )r1   r!   r   r²   r2   rI   r‡   s          r   Útest_at_inside_stringÚ5TestDataFrameQueryNumExprPandas.test_at_inside_string¬  sO   € Ü  Ô(ØˆÜ˜Ò=Ð>Ó?ˆØ—‘˜+¨f�ÐDˆØ—d‘d˜d‘lÑ#ˆÜ
×Ò˜fÕ/r   c                 óL  • U R                   U R                  p![        U5        [        [        R
                  R                  S5      R                  S5      [        S5      S9n[        R                  " [        SS9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)	Nr-   r¦   r¨   rx   r\  rT   za == @crÁ   )r!   r   r%   r   r}   r�   rŽ   rz   r#   rV   r   rC   rl  s       r   Útest_query_undefined_localÚ:TestDataFrameQueryNumExprPandas.test_query_undefined_local´  sw   € ØŸ™ d§k¡k�Ü  Ô(ä”r—y‘y×,Ñ,¨QÓ/×6Ñ6°wÓ?ÌÈdËÑTˆÜ�]Š]Ü"Ð*Mó
ð �H‰H�Y vˆHÑ=÷
÷ 
ö 
ús   Á;BÂ
B#c                 ó  • Sn[         R                  SSS2   n[        U[         R                  R	                  S5      R                  UR                  5      S.5      nSUR                  l        UR                  SXS9nXUS   S	:„     n[        R                  " Xg5        [        U[         R                  R	                  S5      R                  UR                  5      S.5      nUR                  S
XS9nUR                  UR                  UR                  S	:„        n[        R                  " Xg5        [        U[         R                  R	                  S5      R                  UR                  5      S.5      nSUR                  l        UR                  SXS9nXUR                  S	:„     n[        R                  " Xg5        UR                  SXS9nUR                  UR                  UR                  S	:„        n[        R                  " Xg5        g )Nr,   r[  ée   r-   )ru   r–   ru   z	index > 5rÁ   r‹   zilevel_0 > 5rÀ   r•   za > 5)r}   Úr_r   r�   rŽ   r�   rÔ   ru   rÝ   rC   rD   rE   r-  r•   )r1   r!   r   rd   r•   r2   rI   r‡   s           r   Ú:test_index_resolvers_come_after_columns_with_the_same_nameÚZTestDataFrameQueryNumExprPandas.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�ÐDˆØ˜‘k A‘oÑ&ˆÜ
×Ò˜fÔ/äØœbŸi™i×3Ñ3°AÓ6×FÑFÀqÇvÁvÓNÑOó
ˆð —‘˜.°�ÐGˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ò˜fÔ/ä˜Q¤R§Y¡Y×%:Ñ%:¸1Ó%=×%MÑ%MÈaÏfÉfÓ%UÑVÓWˆØˆ�‰ŒØ—‘˜'¨&�Ð@ˆØ—d‘d˜Q‘h‘<ˆÜ
×Ò˜fÔ/à—‘˜+¨f�ÐDˆØ—6‘6˜"Ÿ(™( 2§8¡8¨a¡<Ñ0Ñ1ˆÜ
×Ò˜fÕ/r   zop, fú==ú!=c                 ó¶  • Sn[        [        R                  R                  S5      R                  U5      [        R                  R                  S5      R                  U5      S.5      n[        R                  UR
                  S S S2S4'   SU S3nXb" UR                  [        R                  5         nUR                  XsUS9n	[        R                  " X˜5        g )Nr§   r-   rÀ   r   úa z infrÁ   )
r   r}   r�   rŽ   Úinfr-  r•   rC   rD   rE   )
r1   rƒ   Úfr!   r   rd   r2   Úqr‡   rI   s
             r   Útest_infÚ(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Ñ&ˆØ—‘˜!°6�Ð:ˆÜ
×Ò˜fÕ/r   c                 ó  • Un[        SSSUSS9n[        US9n[        US9nUR                  S5      n[        R                  " Xd5        [        U5      nUR                  5       R                  S5      n[        R                  " Xd5        g )Nz
2019-01-01Ú1dr§   Útime)ÚstartÚfreqr  ÚtzrÝ   rÛ   z"2018-01-03 00:00:00+00" < time)r	   r   rC   rD   rE   Úreset_index)r1   Útz_aware_fixturer©  Údf_indexr‡   r2   rI   s          r   Útest_check_tz_aware_index_queryÚ?TestDataFrameQueryNumExprPandas.test_check_tz_aware_index_queryì  s   € àˆÜØ T°2¸"À6ñ
ˆô  8Ñ,ˆÜ˜XÑ&ˆØ—‘Ð;Ó<ˆÜ
×Ò˜fÔ/ä˜XÓ&ˆØ—‘Ó!×'Ñ'Ð(IÓJˆÜ
×Ò˜fÕ/r   c           	      ó@  • Sn[        S[        R                  R                  S5      R                  U5      -  [        R                  R                  S5      R                  U5      S.5      nXDS   R	                  S5      S:H     nUR                  SXS9n[        R                  " Xe5        [        [        R                  " [        R                  R                  S5      R                  U5      S	:  [        R                  [        R                  R                  S5      R                  U5      5      [        R                  R                  S5      R                  U5      S.5      nXDS   R                  5          nUR                  S
XS9n[        R                  " Xe5        g )Nr§   r-   rÀ   r•   Úintr   za.astype('int') == 0rÁ   rÂ   za.notnull())r   r}   r�   rŽ   r?  rC   rD   rE   Úwherer�   r�   Únotnull)r1   r!   r   rd   r2   r‡   rI   s          r   Útest_method_calls_in_queryÚ:TestDataFrameQueryNumExprPandas.test_method_calls_in_queryû  sG  € àˆÜàœŸ™×.Ñ.¨qÓ1×8Ñ8¸Ó;Ñ;Ü—Y‘Y×*Ñ*¨1Ó-×4Ñ4°QÓ7ñó
ˆð ˜‘g—n‘n UÓ+¨qÑ0Ñ1ˆØ—‘Ð0¸�ÐOˆÜ
×Ò˜fÔ/ää—X’XÜ—I‘I×)Ñ)¨!Ó,×3Ñ3°AÓ6¸Ñ<Ü—F‘FÜ—I‘I×)Ñ)¨!Ó,×<Ñ<¸QÓ?óô
 —Y‘Y×*Ñ*¨1Ó-×=Ñ=¸aÓ@ñó	
ˆð ˜‘g—o‘oÓ'Ñ(ˆØ—‘˜-°�ÐFˆÜ
×Ò˜fÕ/r   r   N)'r[   r\   r]   r^   r#   r_   r!   r   r#  r(  r/  r:  rA  rE  rP  rX  r]  rc  rg  rm  rr  ru  rz  r~  r„  rˆ  rŒ  r‘  r”  r™  rÃ   rÌ   ÚoperatorÚeqÚner¢  r­  r³  r`   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                   ó†   • \ rS rSr\R
                  S 5       r\R
                  S 5       rS rS r	S r
S rS rS	 rS
 rSrg)ÚTestDataFrameQueryNumExprPythoni  c                 ó   • gr  r   r0   s    r   r!   Ú&TestDataFrameQueryNumExprPython.engine  r  r   c                 ó   • g©Nr   r   r0   s    r   r   Ú&TestDataFrameQueryNumExprPython.parser  r  r   c                 óN  • [        [        R                  R                  S5      R	                  S5      5      n[        SSS9US'   [        SSS9US'   [        S	SS9US
'   UR                  SXS9nX3R                  S:  SUR                  :  -     n[        R                  " XE5        g )Nr-   r  r  r‹   r  r  r  r  r  r  ú)(dates1 < 20130101) & (20130101 < dates3)rÁ   r   r'  r!  s         r   r(  ÚCTestDataFrameQueryNumExprPython.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Àð ð 
ˆð —I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ò˜cÕ)r   c                 óŽ  • Sn[        [        R                  R                  S5      R	                  US45      5      n[        SUS9US'   [        SUS9US'   [        S	US9US
'   [        R                  UR                  [        R                  R                  S5      R                  U5      S:„  S4'   [        R                  UR                  [        R                  R                  S5      R                  U5      S:„  S
4'   UR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                  " XV5        g )Nr§   r-   r.   r  r  r  r  r  r  r  rÂ   rÀ  rÁ   r   r+  r.  s          r   r/  Ú8TestDataFrameQueryNumExprPython.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Àð ð 
ˆð —I‘I 
Ñ*¨z¸B¿I¹IÑ/EÑFÑGˆÜ
×Ò˜cÕ)r   c                 óh  • Sn[        [        R                  R                  S5      R	                  US45      5      n[        SUS9US'   [        SUS9US'   UR                  SS	S	S
9nUb   eUR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                  " Xg5        g )Nr§   r-   r.   r  r  r  r  r  Tr2  ú((index < 20130101) & (20130101 < dates3)rÁ   r   r6  r8  s           r   r:  Ú5TestDataFrameQueryNumExprPython.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ð ð 
ˆð —H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ò˜cÕ)r   c                 óÌ  • Sn[        [        R                  R                  S5      R	                  US45      5      R                  S[        05      n[        SUS9US'   [        SUS9US	'   [        R                  UR                  S
'   UR                  SSSS9nUb   eUR                  SXS9nXDR                  S:  SUR                  :  -     n[        R                   " Xg5        g )Nr§   r-   r.   r   r  r  r  r  r  r=  Tr2  rÅ  rÁ   r   r>  r8  s           r   rA  Ú>TestDataFrameQueryNumExprPython.test_date_index_query_with_NaTG  sÛ   € Øˆä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÀAÀÓGÓH×OÑOØ”ˆKó
ˆô " *°aÑ8ˆˆ8‰Ü! *°aÑ8ˆˆ8‰ÜŸ™ˆ�‰�‰Ø—|‘| H°dÀ�|ÐFˆØÑ#Ð#Ð#Ø�h‰hØ6¸vð ð 
ˆð —H‘H˜zÑ)¨j¸2¿9¹9Ñ.DÑEÑFˆÜ
×Ò˜cÕ)r   c                 ó   • Sn[        [        R                  R                  S5      R	                  US45      5      n[        SUS9US'   [        SUS9US'   [        R                  UR                  [        R                  R                  S5      R                  U5      S	:„  S4'   UR                  SS
S
S9nUb   eSn[        R                  " [        US9   UR                  SXS9  S S S 5        g ! , (       d  f       g = f)Nr§   r-   r.   r  r  r  r  r  rÂ   Tr2  ú"'BoolOp' nodes are not implementedrT   r5  rÁ   )r   r}   r�   rŽ   r�   r	   r¬   r,  r-  r7  r#   rV   ÚNotImplementedErrorrC   )r1   r!   r   rd   r2   r9  rX   s          r   rE  ÚITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesX  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Ó:Ø�H‰HÐ0¸ˆHÑO÷ ;×:Ö:ús   ÃC/Ã/
C=c                 ó$  • Sn[         R                  " SXS9nUS:X  d   e[        [        R                  R                  S5      R                  S5      5      n[        [        R                  R                  S5      R                  S5      5      nSn[        R                  " [        US9   UR                  SXS9  S S S 5        [        R                  " [        S	S9   UR                  S
XS9  S S S 5        XUS:„  US:„  -     n[         R                  " SXS9n[        R                  " X„5        XUS:„  US:„  -  XUS:„     S:„  -     n[         R                  " SXS9n[        R                  " X„5        g ! , (       d  f       N¼= f! , (       d  f       N›= f)Nr,   zx + 1rÁ   r-   r  z5The '@' prefix is only supported by the pandas parserrT   rx  r}  z(df>0) & (df2>0)r   zdf[(df > 0) & (df2 > 0)]z+df[(df > 0) & (df2 > 0) & (df[df > 0] > 0)])r¬   rF   r   r}   r�   rŽ   r�   r#   rV   rW  rC   r   rD   rE   )	r1   r!   r   r   rI   r2   ry  rX   r‡   s	            r   rz  Ú1TestDataFrameQueryNumExprPython.test_nested_scoped  sP  € àˆÜ—’˜¨Ñ?ˆØ˜‹{Ðˆ{ä”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓGÓHˆÜœŸ	™	×-Ñ-¨aÓ0×@Ñ@ÀÓHÓIˆð GˆÜ�]Š]œ;¨cÓ2Ø�H‰HÐ)°&ˆHÑH÷ 3ô �]Š]Ô1Ð9SÓTØ�H‰HÐ'°ˆHÑF÷ Uð ˜A‘v #¨¡'Ñ*Ñ+ˆÜ—’Ð3¸FÑRˆÜ
×Ò˜hÔ/à˜A‘v #¨¡'Ñ*¨b°a±©j¸1©nÑ=Ñ>ˆÜ—’Ø9À&ñ
ˆô 	×Ò˜hÕ/÷ 3Õ2ú÷ UÕTús   Â)E0ÃFÅ0
E>Æ
Fc                 ó@  • [        / SQ/ SQS.5      nSn[        R                  " [        US9   UR	                  S5        S S S 5        Sn[        R                  " [        US9   UR	                  S5        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)	Nr+   r¾   )ÚminÚmaxzMVariables in expression \"\(min\) == \(1\)\" overlap with builtins: \('min'\)rT   zmin == 1zMVariables in expression \"\(max\) == \(1\)\" overlap with builtins: \('max'\)zmax == 1)r   r#   rV   r   rC   )r1   r2   Úregex_to_matchs      r   Ú+test_query_numexpr_with_min_and_max_columnsÚKTestDataFrameQueryNumExprPython.test_query_numexpr_with_min_and_max_columns  s‚   € Üšy²Ñ;Ó<ˆð0ð 	ô �]Š]Ô1¸ÓHØ�H‰H�ZÔ ÷ Ið0ð 	ô �]Š]Ô1¸ÓHØ�H‰H�ZÔ ÷ IÐH÷ IÕHú÷ IÕHús   ®A>Á#BÁ>
BÂ
Br   N)r[   r\   r]   r^   r#   r_   r!   r   r(  r/  r:  rA  rE  rz  rÓ  r`   r   r   r   r¹  r¹    sT   † à‡^�^ñó ðð ‡^�^ñó ðò	*ò*ò*ò*ò"
Pò0õ6!r   r¹  c                   ób   • \ rS rSr\R
                  S 5       r\R
                  S 5       rS rSr	g)ÚTestDataFrameQueryPythonPandasi�  c                 ó   • gr½  r   r0   s    r   r!   Ú%TestDataFrameQueryPythonPandas.engine‘  r  r   c                 ó   • gr  r   r0   s    r   r   Ú%TestDataFrameQueryPythonPandas.parser•  r  r   c                 ó  • S=p4[        [        R                  R                  S5      R	                  XCS4S9[        S5      S9nSUR                  l        XUR                  S:„     nUR                  S	XS
9n[        R                  " Xg5        g ©Nr§   r-   r.   rÓ   r`  rx   rf  r‹   ra  rÁ   ©r   r}   r�   rŽ   rb  rz   ru   rÝ   rC   rD   rE   ©r1   r!   r   rd   r…   r2   r‡   rI   s           r   rg  Ú1TestDataFrameQueryPythonPandas.test_query_builtin™  óz   € Øˆ
ˆÜÜ�I‰I×!Ñ! !Ó$×-Ñ-¨a¸!°fÐ-Ð=ÄtÈEÃ{ñ
ˆð ˆ�‰ŒØ—h‘h ‘lÑ#ˆØ—‘˜)¨F�ÐBˆÜ
×Ò˜hÕ/r   r   N©
r[   r\   r]   r^   r#   r_   r!   r   rg  r`   r   r   r   rÖ  rÖ  �  ó5   † Ø‡^�^ñó ðð ‡^�^ñó ðõ	0r   rÖ  c                   ób   • \ rS rSr\R
                  S 5       r\R
                  S 5       rS rSr	g)ÚTestDataFrameQueryPythonPythoni¥  c                 ó   • gr½  r   r0   s    r   r!   Ú%TestDataFrameQueryPythonPython.engine¦  r  r   c                 ó   • gr½  r   r0   s    r   r   Ú%TestDataFrameQueryPythonPython.parserª  r  r   c                 ó  • S=p4[        [        R                  R                  S5      R	                  XCS4S9[        S5      S9nSUR                  l        XUR                  S:„     nUR                  S	XS
9n[        R                  " Xg5        g rÜ  rÝ  rÞ  s           r   rg  Ú1TestDataFrameQueryPythonPython.test_query_builtin®  rà  r   r   Nrá  r   r   r   rä  rä  ¥  râ  r   rä  c            
       óX  • \ rS rSrS rS rS rS rS rS r	\
R                  R                  SS	\R                  /S
\R                  /S\R                   /S\R"                  //5      S 5       rS rS r\
R                  R                  S/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      S 5       rSrg)ÚTestDataFrameQueryStringsiº  c           	      ó(  • [        [        R                  R                  S5      R	                  S5      S/S9n[        [        S5      5      US'   X3R                  S:H     nUS:w  aŠ  SnS	nU/S-  U/S-  -   nUS S S
2   nSu  pšSU	/U
/-   -  nSn[        X{U5       HP  u  p}nU SU SU 3n[        R                  " [        US9   UR                  UUUSUR                  0S9  S S S 5        MR     g UR                  SX!S9n[        R                  " Xô5        UR                  SX!S9n[        R                  " Xô5        [        R                  " XóUR                  R                  S/5         5        X3R                  S:g     nUR                  SX!S9n[        R                  " Xô5        UR                  SX!S9n[        R                  " Xô5        [        R                  " XóUR                  R                  S/5      )    5        g ! , (       d  f       GMv  = f)Nr-   ©r§   r,   r–   rx   Ú
aabbccddeeÚstringsr•   r   z"a"rw   ©r›  rœ  ú$'(Not)?In' nodes are not implementedÚ rT   )r!   r   Ú
local_dictz"a" == stringsrÁ   zstrings == "a"zstrings != "a"z"a" != strings)r   r}   r�   rŽ   r�   r   rz   rð  Úzipr#   rV   rË  rC   rD   rE   rã   ©r1   r   r!   r2   rƒ  ÚcolÚlstÚlhsÚrhsr¶  r·  ÚopsrX   rƒ   Úexr¹   s                   r   Útest_str_query_methodÚ/TestDataFrameQueryStrings.test_str_query_method»  sô  € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÑXˆÜœt LÓ1Ó2ˆˆ9‰Ø—J‘J #Ñ%Ñ&ˆà�XÓØˆCØˆCà�%˜!‘)˜s˜e a™iÑ'ˆCØ‘d˜�d‘)ˆCà‰FˆBØ˜�t˜r˜d‘{Ñ#ˆCØ9ˆCä # C¨cÖ 2‘�˜Ø�u˜A˜b˜T  3 %Ð(�Ü—]’]Ô#6¸cÓBØ—H‘HØØ%Ø%Ø$-¨r¯z©zÐ#:ð	 ñ ÷ CÑBò !3ð —(‘(Ð+°F�(ÐJˆCÜ×!Ò! #Ô.à—(‘(Ð+°F�(ÐJˆCÜ×!Ò! #Ô.Ü×!Ò! #¨"¯*©*¯/©/¸3¸%Ó*@Ñ'AÔBàŸ
™
 cÑ)Ñ*ˆFØ—(‘(Ð+°F�(ÐJˆCÜ×!Ò! #Ô.à—(‘(Ð+°F�(ÐJˆCÜ×!Ò! #Ô.Ü×!Ò! #¨2¯:©:¯?©?¸C¸5Ó+AÐ*AÑ'BÕC÷+ C×Bús   ÃHÈ
H	c                 óx  • [        [        R                  R                  S5      R	                  S5      S/S9n[        [        S5      5      US'   X3R                  R                  SS/5         nUS:w  a|  SnS	nU/S-  U/S-  -   nUS S S
2   nSu  pšSU	/U
/-   -  nSn[        X{U5       HB  u  p}nU SU SU 3n[        R                  " [        US9   UR                  XâUS9  S S S 5        MD     g UR                  SX!S9n[        R                  " Xô5        UR                  SX!S9n[        R                  " Xô5        X3R                  R                  SS/5      )    nUR                  SX!S9n[        R                  " Xô5        UR                  SX!S9n[        R                  " Xô5        g ! , (       d  f       GM  = f)Nr-   rî  r–   rx   rï  rð  r•   r   z
["a", "b"]rw   rñ  rò  ró  rT   rÁ   zstrings == ["a", "b"]z["a", "b"] == stringszstrings != ["a", "b"]z["a", "b"] != strings)r   r}   r�   rŽ   r�   r   rz   rð  rã   rõ  r#   rV   rË  rC   rD   rE   rö  s                   r   Útest_str_list_query_methodÚ4TestDataFrameQueryStrings.test_str_list_query_methodä  sª  € Ü”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐSVÐRWÑXˆÜœt LÓ1Ó2ˆˆ9‰Ø—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‘�˜Ø�u˜A˜b˜T  3 %Ð(�Ü—]’]Ô#6¸cÓBØ—H‘H˜R°v�HÑ>÷ CÑBò !3ð
 —(‘(Ð2¸6�(ÐQˆCÜ×!Ò! #Ô.à—(‘(Ð2¸6�(ÐQˆCÜ×!Ò! #Ô.àŸ™Ÿ™¨#¨s¨Ó4Ð4Ñ5ˆFà—(‘(Ð2¸6�(ÐQˆCÜ×!Ò! #Ô.à—(‘(Ð2¸6�(ÐQˆCÜ×!Ò! #Õ.÷ C×Bús   ÃF)Æ)
F9	c           
      ó~  • [        [        S5      [        S5      [        R                  R	                  S5      R                  SSS9[        R                  R	                  S5      R                  SSS9S.5      nUS	:X  aµ  UR                  S
XS9nX3R                  R                  UR                  5         n[        R                  " XE5        UR                  SXS9nX3R                  R                  UR                  5      UR                  UR                  :  -     n[        R                  " XE5        g Sn[        R                  " [         US9   UR                  S
XS9  S S S 5        Sn[        R                  " [         US9   UR                  SXS9  S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)NÚaaaabbbbccccÚaabbccddeeffr-   r‹   é   rÓ   é	   ©r•   r–   r²   rD  r   za in brÞ   za in b and c < drò  rT   rÊ  )r   rz   r}   r�   rŽ   rb  rC   r•   rã   r–   rD   rE   r²   rD  r#   rV   rË  )r1   r   r!   r2   r¹   r"  rX   s          r   Útest_query_with_string_columnsÚ8TestDataFrameQueryStrings.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�(ÐBˆCØ—t‘t—y‘y §¡“Ñ'ˆEÜ×!Ò! #Ô-à—(‘(Ð-°f�(ÐLˆCØ—t‘t—y‘y §¡“¨"¯$©$°·±©+Ñ6Ñ7ˆEÜ×!Ò! #Õ-à9ˆCÜ—’Ô2¸#Ó>Ø—‘˜¨&�Ñ@÷ ?ð 8ˆCÜ—’Ô2¸#Ó>Ø—‘Ð+°F�ÑJ÷ ?Ð>÷	 ?Õ>ú÷ ?Õ>ús   ÅFÆF.Æ
F+Æ.
F<c           
      óø  • [        [        S5      [        S5      [        R                  R	                  S5      R                  SSS9[        R                  R	                  S5      R                  SSS9S.5      nUR                  S	XS
9nX3R                  UR                  :H     n[        R                  " XE5        UR                  SXS
9nX3R                  UR                  :g     n[        R                  " XE5        g )Nr  r  r-   r‹   r  rÓ   r  r  za == brÞ   za != b)r   rz   r}   r�   rŽ   rb  rC   r•   r–   rD   rE   )r1   r   r!   r2   r¹   rè   s         r   Útest_object_array_eq_neÚ1TestDataFrameQueryStrings.test_object_array_eq_ne!  sÏ   € Üä˜.Ó)Ü˜.Ó)Ü—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÐBÜ—Y‘Y×*Ñ*¨1Ó-×6Ñ6°q¸rÐ6ÐBñ	ó
ˆð �h‰h�x¨ˆhÐ>ˆØ—‘˜Ÿ™‘ÑˆÜ
×Ò˜cÔ'à�h‰h�x¨ˆhÐ>ˆØ—‘˜Ÿ™‘ÑˆÜ
×Ò˜cÕ'r   c           	      ó¨  • [        U5        [        SS5       VVs/ s H  nS  H  nSU SU 3PM     M     snnS-  n[        SSS	S
9n[        SSS	S
9n[        [        R
                  " SS5      R                  S5      UUR                  U5      S.5      nXˆR                  S:H     n	UR                  SXS9n
[        R                  " Xš5        g s  snnf )Nr,   re   )ÚloadÚexitzpage ró  r-   z2014-01-01 0:00:01Ú30sr¿   )r¨  r  z2014-02-01 1:00:01é   )ÚidÚeventÚ	timestampz"page 1 load"z'"page 1 load"' in eventrÞ   )r%   ry   r	   r   r}   rò   ÚrepeatÚappendr  rC   rD   rE   )r1   r   r!   rd   ÚactÚeventsÚstamps1Ústamps2r2   r‡   r¹   s              r   Útest_query_with_nested_stringsÚ8TestDataFrameQueryStrings.test_query_with_nested_strings2  sØ   € Ü  Ô(ä',¨Q°¤{ô
Ú'2 !Ô>N°sˆe�A�3�a˜�uÓÑ>NÑ¡{ò
àñˆô Ð1¸ÀqÑIˆÜÐ1¸ÀqÑIˆÜä—i’i  1“o×,Ñ,¨QÓ/ØØ$Ÿ^™^¨GÓ4ñó
ˆð —h‘h /Ñ1Ñ2ˆØ�h‰hÐ5¸fˆhÐTˆÜ
×Ò˜hÕ,ùó
s   ›Cc                 ó¬   • [        U5        [        / SQ/ SQS.5      nUR                  SXS9nX3R                  S:H     n[        R
                  " XE5        g )N)r•   r–   útest & testr+   rÀ   za == "test & test"rÞ   r  r�  )r1   r   r!   r2   r¹   r"  s         r   Ú(test_query_with_nested_special_characterÚBTestDataFrameQueryStrings.test_query_with_nested_special_characterE  sL   € Ü  Ô(ÜÒ6ºYÑGÓHˆØ�h‰hÐ+°FˆhÐJˆØ—4‘4˜=Ñ(Ñ)ˆÜ
×Ò˜cÕ)r   zop, funcrJ  rK  rL  rM  c                 óp  • [        [        R                  R                  S5      R	                  [        S5      S5      5      n[        [        R                  " UR                  5      5      n[        XVS.5      nUR                  SU S3X!S9nXt" UR                  S5         n	[        R                  " X‰5        g )	Nr-   Úabcder[  )ÚXr·   zX z "d"rÁ   rD  )r   r}   r�   rŽ   rà   rz   rò   rÔ   r   rC   r#  rD   rE   )
r1   r   r!   rƒ   Úfuncr•   r–   r2   r¹   r‡   s
             r   Útest_query_lex_compare_stringsÚ8TestDataFrameQueryStrings.test_query_lex_compare_stringsL  sŽ   € ô ”2—9‘9×(Ñ(¨Ó+×2Ñ2´4¸³=À"ÓEÓFˆÜ”2—9’9˜QŸV™VÓ$Ó%ˆÜ˜QÑ'Ó(ˆà�h‰h˜˜B˜4˜t�}¨VˆhÐCˆØ�d˜2Ÿ4™4 “oÑ&ˆÜ
×Ò˜cÕ,r   c                 ó2  • Sn[         R                  R                  S5      R                  SS[	        U5      4S9R                  [        5      n[        XCS9nUR                  SX!S9nXUR                  UR                  -     n[        R                  " Xg5        g )N)ÚbidÚbidsizeÚaskÚasksizer-   r,   rÓ   rx   z	bid & askrÁ   )r}   r�   rŽ   rb  rN  r?  Úboolr   rC   r(  r*  rD   rE   )r1   r   r!   rv   Údatar2   r¹   r‡   s           r   Ú"test_query_single_element_booleansÚ<TestDataFrameQueryStrings.test_query_single_element_booleans^  s~   € Ø4ˆÜ�y‰y×$Ñ$ QÓ'×0Ñ0°¸!¼SÀ»\Ð9JÐ0ÐK×RÑRÔSWÓXˆÜ�tÑ-ˆØ�h‰h�{¨6ˆhÐAˆØ—f‘f˜rŸv™v‘oÑ&ˆÜ
×Ò˜cÕ,r   c                 ó°   • [        U5        [        / SQ/ SQS.5      nX3R                  S:H     nSnUR                  SXS9n[        R
                  " XF5        g )N)úBUD USr1  úIBM USr2  )gÍÌÌÌÌl[@g®Gázn[@gš™™™™éf@g33333ëf@)ÚSymbolÚPricer1  zSymbol == @symbrÞ   )r%   r   r3  rC   rD   rE   )r1   r   r!   r2   ÚeÚsymbrV  s          r   Ú!test_query_string_scalar_variableÚ;TestDataFrameQueryStrings.test_query_string_scalar_variablef  sX   € Ü  Ô(ÜâBÚ9ñó
ˆð �y‰y˜HÑ$Ñ%ˆØˆØ�H‰HÐ&¨vˆHÐEˆÜ
×Ò˜aÕ#r   Úin_list)NÚasdfÚghjk)r:  Nr;  )r:  r;  N)NNr:  )r:  NN)NNNc                 óÚ  • SnSn[        U5       VVs0 s H  u  pEUS:X  d  M  XE_M     nnn[        SU0SS9nUR                  R                  S5      Ul        [        SU0SS9nUR	                  SX#S	9n	XˆS   S:H     n
UR	                  S
X#S	9n[
        R                  " X—5        [
        R                  " Xš5        [
        R                  " X›5        [
        R                  " X«5        g s  snnf )Nr   r   r:  r•   Ústring©ÚdtypeÚint64za == 'asdf'rÞ   za <= 'asdf')Ú	enumerater   ru   r?  rC   rD   rE   )r1   r9  r   r!   rU  Úvaluer‡   Údf_expectedr2   ræ   rç   Úres3s               r   Útest_query_string_null_elementsÚ9TestDataFrameQueryStrings.test_query_string_null_elementss  sá   € ð ˆØˆÜ-6°wÔ-?ÔSÒ-?¡ À5ÈFÁ?“H�A’HÑ-?ˆÑSä  h °xÑ@ˆØ'×-Ñ-×4Ñ4°WÓ=ˆÔÜ˜˜W�~¨XÑ6ˆØ�x‰x˜¨fˆxÐDˆØ�S‘'˜VÑ#Ñ$ˆØ�x‰x˜¨fˆxÐDˆÜ
×Ò˜dÔ0Ü
×Ò˜dÔ)Ü
×Ò˜dÔ)Ü
×Ò˜dÕ)ùó Ts
   “C'£C'r   N)r[   r\   r]   r^   rý  r   r  r  r  r  r#   rÃ   rÌ   rµ  ÚltÚgtÚleÚger%  r.  r7  rE  r`   r   r   r   rì  rì  º  sÆ   † ò'DòR!/òFKò4(ò"-ò&*ð ‡[�[×ÑØà�(—+‘+ÐØ�(—+‘+ÐØ�8—;‘;ÐØ�8—;‘;Ðð		
óñ-óð-ò-ò$ð ‡[�[×ÑØâ"Ú"Ú"Ú Ú Úð	
ó
ñ*ó
ó*r   rì  c                   óŒ   • \ rS rSr\R
                  S 5       rS rS r\R                  R                  S/ SQ5      S 5       rSrg	)
ÚTestDataFrameEvalWithFramei�  c                 ó€   • [        [        R                  R                  S5      R	                  S5      [        S5      S9$ )Nr-   rö   r`  rx   )r   r}   r�   rŽ   r�   rz   r0   s    r   ÚframeÚ TestDataFrameEvalWithFrame.frame‘  s2   € äÜ�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=ÄtÈEÃ{ñ
ð 	
r   c                 ó‚   • UR                  SX2S9nUR                  UR                  -   n[        R                  " XE5        g )Nr©   rÁ   ©rF   r•   r–   rD   rG   ©r1   rN  r   r!   r¹   rƒ  s         r   Útest_simple_exprÚ+TestDataFrameEvalWithFrame.test_simple_expr—  s4   € Ø�j‰j˜¨ˆjÐ?ˆØ—‘˜5Ÿ7™7Ñ"ˆÜ
×Ò˜sÕ+r   c                 ó¢   • UR                  SX2S9nUR                  UR                  S:     UR                  -   n[        R                  " XE5        g )Nza[a < 1] + brÁ   r,   rQ  rR  s         r   Útest_bool_arith_exprÚ/TestDataFrameEvalWithFrame.test_bool_arith_exprœ  sA   € Ø�j‰j˜°ˆjÐFˆØ—‘˜Ÿ™ 1™Ñ%¨¯©Ñ/ˆÜ
×Ò˜sÕ+r   rƒ   )rf   ri   rl   ro   c                 óº   • [        SS/SS/S.5      nSn[        R                  " [        US9   UR	                  SU S	3X!S
9  S S S 5        g ! , (       d  f       g = f)Nr,   r-   r²   rD  rÀ   z:unsupported operand type\(s\) for .+: '.+' and '.+'|CannotrT   rž  z brÁ   )r   r#   rV   rO  rF   )r1   r   r!   rƒ   r2   rX   s         r   Ú%test_invalid_type_for_operator_raisesÚ@TestDataFrameEvalWithFrame.test_invalid_type_for_operator_raises¡  sP   € ä˜a ˜V¨3°¨*Ñ5Ó6ˆØKˆä�]Š]œ9¨CÓ0Ø�G‰G�b˜˜˜B�K¨ˆGÑ>÷ 1×0Ö0ús   ®AÁ
Ar   N)r[   r\   r]   r^   r#   r_   rN  rS  rV  rÃ   rÌ   rY  r`   r   r   r   rL  rL  �  sH   † Ø‡^�^ñ
ó ð
ò
,ò
,ð
 ‡[�[×Ñ˜TÒ#7Ó8ñ?ó 9ó?r   rL  c                   ó¦  • \ rS rSr\R
                  S 5       rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R@                  RC                  S/ SQ5      S 5       r"\R@                  RC                  SS S!/5      \R@                  RC                  S/ SQ5      S" 5       5       r#S# r$S$r%g%)&Ú!TestDataFrameQueryBacktickQuotingiª  c           	   #   óô   #   • [        0 S/ SQ_S/ SQ_S/ SQ_S/ SQ_S	/ S
Q_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ SQ_S/ S Q_S!/ S"Q_/ S#Q/ S$Q/ S%Q/ S&Q/ S'QS(.E5      v •  g)7f)*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  re   r.   ÚC_C)é   r  r§   úD_D D)é   r,   r—  úE.E)r¿   r.   r‹   úF-F)rb  r,   r§   Ú1e1)r-   re   rb  Údef)r§   rd  r-   úA (x))re   r,   r.   zB(x))r,   r,   r‹   zB (x))r-   r  re   õ     &^ :!â‚¬$?(} >    <++*''  )r-   r‹   r¿   r¢   )r§   rd  r,   ú A)re   r  r  ú  ©r,   r-   r,   )r¿   r.   r,   )r  r,   rb  )rb  r  r¿   )r-   re   r‹   )r‹   r  r  )zit'szthat'su   â˜ºzfoo#barr,   Nr/   r0   s    r   r2   Ú$TestDataFrameQueryBacktickQuoting.df«  s÷   é € ô ðØ’Yðà’yðð ’yðð š	ð	ð
 ’zðð šðð ’yðð ’zðð ’yðð ’{ðð šðð š	ðð šðð /²	ðð ’Kðð  ’ið!ð" ’ið#ò$ "Ú#Ú Ú$Úò-ó
ó 	
ùs   ‚A6A8c                 óh   • UR                  S5      nUSUS   :     n[        R                  " X#5        g )Nz	1 < `B B`r,   r^  ©rC   rD   rE   ©r1   r2   r¹   rƒ  s       r   Ú#test_single_backtick_variable_queryÚETestDataFrameQueryBacktickQuoting.test_single_backtick_variable_queryÍ  s0   € Ø�h‰h�{Ó#ˆØ�A˜˜5™	‘MÑ"ˆÜ
×Ò˜cÕ*r   c                 óz   • UR                  S5      nUSUS   :  SUS   :  -     n[        R                  " X#5        g )Nz1 < `B B` and 4 < `C C`r,   r^  re   r_  rp  rq  s       r   Ú!test_two_backtick_variables_queryÚCTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_queryÒ  s>   € Ø�h‰hÐ0Ó1ˆØ�Q˜˜E™‘] q¨2¨e©9¡}Ñ5Ñ6ˆÜ
×Ò˜cÕ*r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz	A + `B B`r*   r^  ©rF   rD   rG   rq  s       r   Ú"test_single_backtick_variable_exprÚDTestDataFrameQueryBacktickQuoting.test_single_backtick_variable_expr×  ó0   € Ø�g‰g�kÓ"ˆØ�C‘˜2˜e™9Ñ$ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz`B B` + `C C`r^  r_  rx  rq  s       r   Ú test_two_backtick_variables_exprÚBTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_exprÜ  s0   € Ø�g‰g�oÓ&ˆØ�E‘˜R ™YÑ&ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz	`C_C` + Ara  r*   rx  rq  s       r   Ú test_already_underscore_variableÚBTestDataFrameQueryBacktickQuoting.test_already_underscore_variableá  s0   € Ø�g‰g�kÓ"ˆØ�E‘˜R ™WÑ$ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )NzC_C + `C C`ra  r_  rx  rq  s       r   Útest_same_name_but_underscoresÚ@TestDataFrameQueryBacktickQuoting.test_same_name_but_underscoresæ  s0   € Ø�g‰g�mÓ$ˆØ�E‘˜R ™YÑ&ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )NzA + `D_D D`r*   rc  rx  rq  s       r   Ú!test_mixed_underscores_and_spacesÚCTestDataFrameQueryBacktickQuoting.test_mixed_underscores_and_spacesë  s0   € Ø�g‰g�mÓ$ˆØ�C‘˜2˜g™;Ñ&ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz	A + `C_C`r*   ra  rx  rq  s       r   Ú'test_backtick_quote_name_with_no_spacesÚITestDataFrameQueryBacktickQuoting.test_backtick_quote_name_with_no_spacesð  r{  r   c                 ót   • UR                  S5      nUS   US   -   US   -
  n[        R                  " X#5        g )Nz`E.E` + `F-F` - Are  rf  r*   rx  rq  s       r   Útest_special_charactersÚ9TestDataFrameQueryBacktickQuoting.test_special_charactersõ  s:   € Ø�g‰gÐ)Ó*ˆØ�E‘˜R ™YÑ&¨¨C©Ñ0ˆÜ
×Ò˜sÕ+r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz	A + `1e1`r*   rg  rx  rq  s       r   Útest_start_with_digitÚ7TestDataFrameQueryBacktickQuoting.test_start_with_digitú  r{  r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz	A + `def`r*   rh  rx  rq  s       r   Útest_keywordÚ.TestDataFrameQueryBacktickQuoting.test_keywordÿ  r{  r   c                 óf   • UR                  S5      nXS   S:„     n[        R                  " X#5        g )Nz`A` > 2r*   r-   rp  rq  s       r   Útest_unneeded_quotingÚ7TestDataFrameQueryBacktickQuoting.test_unneeded_quoting  s-   € Ø�h‰h�yÓ!ˆØ�s‘G˜a‘K‘ˆÜ
×Ò˜cÕ*r   c                 óf   • UR                  S5      nXS   S:„     n[        R                  " X#5        g )Nz`A (x)` > 2ri  r-   rp  rq  s       r   Útest_parenthesisÚ2TestDataFrameQueryBacktickQuoting.test_parenthesis	  s.   € Ø�h‰h�}Ó%ˆØ�w‘K !‘OÑ$ˆÜ
×Ò˜cÕ*r   c                 óf   • UR                  S5      nXS   S:„     n[        R                  " X#5        g )Nz`` > 5r¢   r‹   rp  rq  s       r   Útest_empty_stringÚ3TestDataFrameQueryBacktickQuoting.test_empty_string  s-   € Ø�h‰h�xÓ ˆØ�r‘F˜Q‘J‘ˆÜ
×Ò˜cÕ*r   c                 óf   • UR                  S5      nXS   S:„     n[        R                  " X#5        g )Nz
`C  C` > 5r`  r‹   rp  rq  s       r   Útest_multiple_spacesÚ6TestDataFrameQueryBacktickQuoting.test_multiple_spaces  s.   € Ø�h‰h�|Ó$ˆØ�v‘J ‘NÑ#ˆÜ
×Ò˜cÕ*r   c                 óh   • UR                  S5      nUS   US   -   n[        R                  " X#5        g )Nz` A` + `  `rk  rl  rx  rq  s       r   Útest_start_with_spacesÚ8TestDataFrameQueryBacktickQuoting.test_start_with_spaces  s0   € Ø�g‰g�mÓ$ˆØ�D‘˜B˜t™HÑ$ˆÜ
×Ò˜sÕ+r   c                 óf   • UR                  S5      nXS   S:„     n[        R                  " X#5        g )Nu"   `  &^ :!â‚¬$?(} >    <++*''  ` > 4rj  re   rp  rq  s       r   Útest_lots_of_operators_stringÚ?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_string  s2   € Ø�h‰hÐ;Ó<ˆØÐ5Ñ6¸Ñ:Ñ;ˆÜ
×Ò˜cÕ*r   c                 ó�   • Sn[         R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nz(module 'pandas' has no attribute 'thing'rT   z	@pd.thing)r#   rV   ÚAttributeErrorrF   )r1   r2   Úmessages      r   Útest_missing_attributeÚ8TestDataFrameQueryBacktickQuoting.test_missing_attribute"  s-   € Ø<ˆÜ�]Š]œ>°Ó9Ø�G‰G�KÔ ÷ :×9Ö9úó	   œ7·
Ac                 ó�   • Sn[         R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nú6(Could not convert ).*( to a valid Python identifier.)rT   z`it's` > `that's`©r#   rV   rW  rC   rž   s      r   Útest_failing_quoteÚ4TestDataFrameQueryBacktickQuoting.test_failing_quote'  s.   € ØGˆÜ�]Š]œ;¨cÓ2Ø�H‰HÐ(Ô)÷ 3×2Ö2úr«  c                 ó�   • Sn[         R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)Nr­  rT   u	   `â˜º` > 4r®  rž   s      r   Ú$test_failing_character_outside_rangeÚFTestDataFrameQueryBacktickQuoting.test_failing_character_outside_range,  s-   € ØGˆÜ�]Š]œ;¨cÓ2Ø�H‰H�[Ô!÷ 3×2Ö2úr«  c                 ó�   • Sn[         R                  " [        US9   UR                  S5        S S S 5        g ! , (       d  f       g = f)NzFailed to parse backticksrT   z`foo#bar` > 4r®  rž   s      r   Útest_failing_hashtagÚ6TestDataFrameQueryBacktickQuoting.test_failing_hashtag1  s-   € Ø)ˆÜ�]Š]œ;¨cÓ2Ø�H‰H�_Ô%÷ 3×2Ö2úr«  c                 óB  • S nU/nUR                  S5        [        R                  " [        SS9   UR                  S5        SSS5        [        R                  " [        SS9   UR                  S5        SSS5        g! , (       d  f       NB= f! , (       d  f       g= f)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                  ó   • gr:   r   )r  s    r   r$  ÚNTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.func>  s   € Ør   z@func()z"Only named functions are supportedrT   z@funcs[0]()Nz@funcs[0].__call__())rF   r#   rV   rO  )r1   r2   r$  Úfuncss       r   Útest_call_non_named_expressionÚ@TestDataFrameQueryBacktickQuoting.test_call_non_named_expression6  sx   € ò	ð �ˆà
�‰�	Ôä�]Š]œ9Ð,PÓQØ�G‰G�MÔ"÷ Rô �]Š]œ9Ð,PÓQØ�G‰GÐ*Ô+÷ RÐQ÷ RÕQú÷ RÕQús   ±A?Á$BÁ?
BÂ
Bc                 ó&  • [        SS/SS//SS/US9n[        (       a  [        OS n[        R                  " U5         UR                  S5      nS S S 5        [        / S	Q/ S
Q// SQUS9n[        R                  " WU5        g ! , (       d  f       N9= f)Nr,   r-   r.   re   r•   r–   ©rv   r?  z	c = b - arm  )r.   re   r,   rj  ©r   r
   ÚRuntimeWarningrD   Úassert_produces_warningrF   rE   )r1   Úany_numeric_ea_and_arrow_dtyper2   ÚwarningrI   r‡   s         r   Útest_ea_dtypesÚ0TestDataFrameQueryBacktickQuoting.test_ea_dtypesK  s‡   € äØ�ˆV�a˜�VÐ s¨C jÐ8Vñ
ˆ÷ %6Ò$5•.¸4ˆÜ×'Ò'¨Õ0Ø—W‘W˜[Ó)ˆF÷ 1äÚš	Ð"Ú#Ø0ñ
ˆô
 	×Ò˜f hÕ/÷ 1Õ0úó   ½BÂ
Bc                 ó&  • [        SS/SS//SS/SS9n[        (       a  [        OS n[        R                  " U5         UR                  S	5      nS S S 5        [        / S
Q/ SQ// SQSS9n[        R                  " WU5        g ! , (       d  f       N9= f)Nr,   r-   r.   re   r•   r–   ÚFloat64r¾  z	c = b - 1rm  )r.   re   r.   rj  r¿  )r1   r2   rÃ  rI   r‡   s        r   Útest_ea_dtypes_and_scalarÚ;TestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalarZ  s   € ä˜˜A˜  A Ð'°#°s°À9ÑMˆß$5Ò$5•.¸4ˆÜ×'Ò'¨Õ0Ø—W‘W˜[Ó)ˆF÷ 1äÚš	Ð"ªOÀ9ñ
ˆô 	×Ò˜f hÕ/÷ 1Õ0úrÆ  c           	      óì   • [        SS/SS//SS/US9nUR                  S5      n[        [        SS/US	9[        SS/US	9[        SS/US
   R                  S	9S.5      n[        R
                  " X45        g )Nr,   r-   r.   re   r•   r–   r¾  z	c = 2 - 1r>  r²   rj  )r   rF   r   r?  rD   rE   )r1   rÂ  r2   rI   r‡   s        r   Ú#test_ea_dtypes_and_scalar_operationÚETestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar_operatione  sŠ   € äØ�ˆV�a˜�VÐ s¨C jÐ8Vñ
ˆð —‘˜Ó%ˆÜä˜Q ˜FÐ*HÑIÜ˜Q ˜FÐ*HÑIÜ˜Q ˜F¨&°©+×*;Ñ*;Ñ<ñó
ˆô 	×Ò˜fÕ/r   r?  )r@  ÚInt64úint64[pyarrow]c           	      ó‚  • US:X  a  [         R                  " S5        [        S[        SS/US905      nS1nUS:X  a  [        (       a  [
        OS n[        R                  " U5         UR                  S5      nS S S 5        [        S[        S/US/S	905      n[        R                  " WU5        g ! , (       d  f       N>= f)
NrÏ  Úpyarrowr•   r,   r-   r>  rÎ  z	a in @ref©r?  ru   )
r#   Úimportorskipr   r   r
   rÀ  rD   rÁ  rC   rE   )r1   r?  r2   ÚrefrÃ  rI   r‡   s          r   Útest_query_ea_dtypesÚ6TestDataFrameQueryBacktickQuoting.test_query_ea_dtypest  s¥   € àÐ$Ó$Ü×Ò 	Ô*ä˜œV Q¨ F°%Ñ8Ð9Ó:ˆØˆcˆØ$)¨WÓ$4×9JÒ9J•.ÐPTˆÜ×'Ò'¨Õ0Ø—X‘X˜kÓ*ˆF÷ 1ä˜c¤6¨1¨#°UÀ1À#Ñ#FÐGÓHˆÜ
×Ò˜f hÕ/÷ 1Õ0ús   Á&B0Â0
B>r!   r   r   c           	      óè  • US:X  a  [         OS nUS:X  a!  [        (       d  [        R                  " S5        US:X  a  [        R                  " S5        [        [        / SQSS9[        / SQUS9S	.5      n[        R                  " U5         UR                  S
US9nS S S 5        [        [        SS/SSS/S9[        SS/USS/S9S	.5      n[        R                  " WU5        g ! , (       d  f       NN= f)Nr   znumexpr not installedrÏ  rÑ  )r,   r,   r-   rÎ  r>  )r,   r-   r-   r—   zA == BrM   r,   r-   r   rÒ  )rÀ  r
   r#   r$   rÓ  r   r   rD   rÁ  rC   rE   )r1   r?  r!   rÃ  r2   rI   r‡   s          r   Ú!test_query_ea_equality_comparisonÚCTestDataFrameQueryBacktickQuoting.test_query_ea_equality_comparison�  sÞ   € ð %+¨iÓ$7•.¸TˆØ�YÓ×'8Ò'8Ü�KŠKÐ/Ô0ØÐ$Ó$Ü×Ò 	Ô*ÜÜš¨'Ñ2¼Â	ÐQVÑ9WÑXó
ˆô ×'Ò'¨Õ0Ø—X‘X˜h¨v�XÐ6ˆF÷ 1ää˜Q ˜F¨'¸!¸Q¸Ñ@Ü˜Q ˜F¨%¸¸1°vÑ>ñó
ˆô 	×Ò˜f hÕ/÷ 1Õ0ús   Â
C#Ã#
C1c                 óú   • [         R                  R                  S5      n[        S[         R                  " S S /SS90[
        S9nUR                  S5      n[        S/ 0[
        S9n[        R                  " X45        g )NÚUTCr•   T)Úutcr>  za > @now)	r¬   Ú	TimestampÚnowr   Úto_datetimer@  rC   rD   rE   )r1   rÞ  r2   rI   r‡   s        r   Útest_all_nat_in_objectÚ8TestDataFrameQueryBacktickQuoting.test_all_nat_in_object—  sb   € ä�l‰l×Ñ˜uÓ%ˆÜ˜œRŸ^š^¨T°4¨L¸dÑCÐDÌFÑSˆØ—‘˜*Ó%ˆÜ˜c 2˜Y¬fÑ5ˆÜ
×Ò˜fÕ/r   r   N)&r[   r\   r]   r^   r#   r_   r2   rr  ru  ry  r}  r€  rƒ  r†  r‰  rŒ  r�  r’  r•  r˜  r›  rž  r¡  r¤  r©  r¯  r²  rµ  r»  rÄ  rÉ  rÌ  rÃ   rÌ   rÕ  rØ  rà  r`   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\  )'rµ  Únumpyr}   r#   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdr   r¬   r   r   r   r   r	   Úpandas._testingÚ_testingrD   Úpandas.core.computation.checkr
   r_   r   r   Ú
skip_if_nor!   r%   r'   rb   rÎ   r  r¹  rÖ  rä  rì  rL  r\  r   r   r   Ú<module>rì     sH  ðÛ ã Û ÷÷ *Ð )ã ÷õ õ Ý ;ð ‡‚˜ (Ð+±Ñ=ñó >ðð ‡‚Ø�f—l’l 9°B·M²MÀ)Ó4LÑMÐNÙññó	ðò=÷
01ñ 01÷fs1ñ s1÷l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÷*S*ñ S*÷l?ñ ?÷4s0ò s0r   