+
    xȇiK              	       h   ^ RI t ^ RIHt ^ RIt^ RIt^ RIHtHt ^ RI	H
u Ht ^ RIt^ RIHtHtHtHtHt ^ RIHt ^ RIHt ]P2                  ! RR.R R	7      R
 4       t]P2                  ! R]P6                  ! R]P8                  ! R4      R7      .R R	7      R 4       tR t ! R R4      t ! R R4      t  ! R R4      t!]P8                  ! R4       ! R R4      4       t"]P8                  ! R4       ! R R]"4      4       t# ! R R]"4      t$ ! R R]#4      t% ! R R4      t& ! R  R!4      t' ! R" R#4      t(R# )$    N)
TokenError)NumExprClobberingErrorUndefinedVariableError)	DataFrameIndex
MultiIndexSeries
date_range)NUMEXPR_INSTALLEDpythonpandasc                     V # N xs   &r/Users/max/.openclaw/workspace/postharvest/venv/lib/python3.14/site-packages/pandas/tests/frame/test_query_eval.py<lambda>r      s    1    )paramsidsc                     V P                   # r   paramrequests   &r   parserr      s    ==r   numexpr)marksc                     V # r   r   r   s   &r   r   r       s    !r   c                     V P                   # r   r   r   s   &r   enginer"      s    
 ==r   c                 J    V R 8w  d   \         P                  ! RV  24       R# R# )r   zcannot evaluate with parser=N)pytestskip)r   s   &r   skip_if_no_pandas_parserr&   &   s#    26(;< r   c                      a  ] tR t^+t o ]P
                  R 4       t]P
                  R 4       t]P
                  R 4       tR t	R t
R tR tRtV tR	# )

TestCompatc                     \        R . RO/4      # )A         r   selfs   &r   dfTestCompat.df,   s    #y)**r   c                ,    WP                   ^ 8  ,          # )r   r*   r1   r2   s   &&r   	expected1TestCompat.expected10   s    $$(|r   c                (    VP                   ^,           # r,   r5   r6   s   &&r   	expected2TestCompat.expected24   s    ttaxr   c                    VP                  R 4      p\        P                  ! WB4       VP                  R4      p\        P                  ! WC4       R# )A>0A+1Nquerytmassert_frame_equalevalassert_series_equalr1   r2   r7   r;   results   &&&& r   test_query_defaultTestCompat.test_query_default8   s:     %
f0
v1r   c                    VP                  R RR7      p\        P                  ! WB4       VP                  RRR7      p\        P                  ! WC4       R# )r>   Nr"   r?   r@   rF   s   &&&& r   test_query_NoneTestCompat.test_query_None@   sB    %-
f0t,
v1r   c                    VP                  R RR7      p\        P                  ! WB4       VP                  RRR7      p\        P                  ! WC4       R# )r>   r   rK   r?   Nr@   rF   s   &&&& r   test_query_pythonTestCompat.test_query_pythonF   sB    %1
f0x0
v1r   c                   \         '       dU   VP                  R RR7      p\        P                  ! WB4       VP	                  RRR7      p\        P
                  ! WC4       R# Rp\        P                  ! \        VR7      ;_uu_ 4        VP                  R RR7       RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP	                  RRR7       RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; i)r>   r   rK   r?   z~'numexpr' is not installed or an unsupported version. Cannot use engine='numexpr' for query/eval if 'numexpr' is not installedmatchN)	r   rA   rB   rC   rD   rE   r$   raisesImportError)r1   r2   r7   r;   rG   msgs   &&&&  r   test_query_numexprTestCompat.test_query_numexprL   s    XXeIX6F!!&4WWU9W5F""65! 
 {#66y1 7{#66i0 76 76666s   C%C8%C5	8D		r   N)__name__
__module____qualname____firstlineno__r$   fixturer2   r7   r;   rH   rL   rO   rW   __static_attributes____classdictcell____classdict__s   @r   r(   r(   +   sd     ^^+ + ^^  ^^ 2221 1r   r(   c                      a  ] tR t^^t o ]P
                  P                  R^R.4      ]P
                  P                  R. RO4      R 4       4       tR tR t	R t
R tR	 tR
 tR tR tR tR tR tRtV tR# )TestDataFrameEvalni  zop_str,op,ropc                6   \        ^\        V4      \        R4      R7      p^VP                  ^ &   VP	                  4       p\        \
        P                  ! VP                  V4      P                  VR4      \        R4      R7      p\        RV R24      p\        RV R24      p	\        P                  ! W4       VR	9   d*   \        WR4      ! V4      p	\        P                  ! W4       R# VR
9   d*   \        WS4      ! V4      p	\        P                  ! W4       R# R# )r,   abcdindexcolumnsri   zbase z dfzm N)+*)-/)r   rangelistilocmeannptilevaluesreshaperD   rB   rC   getattr)
r1   op_stroproprd   r2   mbaseexpectedrG   s
   &&&&&     r   test_opsTestDataFrameEval.test_ops`   s     qa$v,?
GGIGGAHHa ((B/f
 %xs+, 6(#&'
f/ R_Q'F!!&3 :R%a(F!!&3 r   c                   \        R \        P                  P                  ^4      P	                  R4      /4      p\        P
                  VP                  R&   ^\        P                  ! VP                  R,          4      ,
          p^\        P                  ! V4      ,
          P                  R,          p\        P                  ! W24       R# )r*   ia  :r      N:r      NN)
r   rt   randomdefault_rngstandard_normalnanrr   isnanrB   rC   )r1   r2   r~   rG   s   &   r   test_dataframe_sub_numexpr_path1TestDataFrameEval.test_dataframe_sub_numexpr_path   s     RYY2215EEeLMNvvrxx..bhhrl"((.
f/r   c                x   \        R . ROR. RO/4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  R 4       RRR4       \        P                  ! \        VR7      ;_uu_ 4        VP	                  ^o4       RRR4       R#   + '       g   i     LP; i  + '       g   i     R# ; i)r*   Bz%expr must be a string to be evaluatedrR   c                      V P                   R 8H  # )b)r   r   s   &r   r   6TestDataFrameEval.test_query_non_str.<locals>.<lambda>   s    qssczr   Nr+   )ar   r   r   r$   rT   
ValueErrorrA   r1   r2   rV   s   &  r   test_query_non_str$TestDataFrameEval.test_query_non_str   sx    Y_=>5]]:S11HH)* 2 ]]:S11HHSM 21 21 211s   B9B(B%	(B9	c                    \        R . RO/4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  R4       RRR4       R#   + '       g   i     R# ; i)r*   zexpr cannot be an empty stringrR    Nr+   r   r   s   &  r   test_query_empty_string)TestDataFrameEval.test_query_empty_string   sA    Y'(.]]:S11HHRL 2111s   AA#	c           
         \        R \        ^4      R\        ^4      R\        ^4      /4      P                  RR /R7      pVP                  RWR7      p\        . RO.. R	O^.R7      p\        P
                  ! WE4       R# )
r*   r   Crj   zC == 1r"   r   )ri   rh   N)r,   r,   r,   )r*   r*   r   )r   rp   renamerA   rB   rC   )r1   r"   r   r2   resexpects   &&&   r    test_query_duplicate_column_name2TestDataFrameEval.test_query_duplicate_column_name   sq    U1XsE!Hc58DELL#J M 
 hhxh>I;sK
c*r   c                d   \        \        P                  P                  ^4      P	                  R4      \        R4      R7      pR^/pR^/pVP                  RW#.R7      VR,          VR,          ,           8X  g   Q h\        P                  ! RW#.R7      VR,          VR,          ,           8X  g   Q hR# )	r-   abrj   r   r   a + b	resolversN
   r-   )r   rt   r   r   r   rq   rD   pd)r1   r2   dict1dict2s   &   r   test_eval_resolvers_as_list-TestDataFrameEval.test_eval_resolvers_as_list   s    II!!!$44W=tDz
 aawww5.w9U3Z%PS*=TTTTwww5.9U3Z%PS*=TTTTr   c                0   \        \        P                  P                  ^4      P	                  R	4      \        R4      R7      pR^/pVP                  RV.R7      pVR,          VR,          VR,          ,          ,           p\        P                  ! W44       R# )
r-   r   rj   cz	a + b * cr   r   r   Nr   )	r   rt   r   r   r   rq   rD   rB   rE   )r1   r2   r   rG   r~   s   &    r   test_eval_resolvers_combined.TestDataFrameEval.test_eval_resolvers_combined   sy    II!!!$44W=tDz
 a 8c7RWuSz11
v0r   c                    \        R RR./4      pVP                  R4      p\        R RR.RRR./4      p\        P                  ! W#4       R# )a1YNzc = ((a1 == 'Y') & True)r   TFN)r   rD   rB   rC   )r1   r2   r   r~   s   &   r   test_eval_object_dtype_binop.TestDataFrameEval.test_eval_object_dtype_binop   sM    sCj)*gg01dS#JdE]CD
c,r   c                    \        V4       \        . RORR7      P                  4       pVP                  RWR7      p\        P
                  ! VR,          4      p\        P                  ! WT4       R# )皙?r   namez@np.floor(a)r   Nr   g      ?gffffff@)r&   r	   to_framerD   rt   floorrB   rE   r1   r"   r   r2   r   r~   s   &&&   r   test_using_numpy"TestDataFrameEval.test_using_numpy   sQ     (O#.779ggnVgC88BsG$
x-r   c                    \        . RORR7      P                  4       pVP                  RWR7      pVR,          p\        P                  ! WT4       R# )r   r   r   r   Nr   )r	   r   rD   rB   rE   r   s   &&&   r   test_eval_simple"TestDataFrameEval.test_eval_simple   s@    O#.779ggc&g8c7
x-r   c           	        VR 8X  d2   \         P                  P                  RR7      pVP                  V4       \	        R\
        P                  ! . RO4      R\
        P                  ! . R	O4      /4      pVP                  RWR7      p\        \
        P                  ! . R
O4      4      p\        P                  ! Wg4       R# )r   z/numexpr does not support extension array dtypes)reasonr   r   za / br   Nr+      r      )g      ?g?      ?)r$   markxfailapplymarkerr   r   arrayrD   r	   rB   rE   )r1   r"   r   r   r   r2   rG   r~   s   &&&&    r   test_extension_array_eval+TestDataFrameEval.test_extension_array_eval   s    Y;;$$H % D %RXXi0#rxx	7JKL?"((#567
v0r   c                    \        R R.RR./4      pVP                  RWR7      p\        R.4      p\        P                  ! WE4       R# )r   r   za/br   Ny      ?       @y      ?      ?y      ?      ?)r   rD   r	   rB   rE   )r1   r"   r   r2   rG   r~   s   &&&   r   test_complex_eval#TestDataFrameEval.test_complex_eval   sE    fXsVH56v=:,'
v0r   r   N))rl   __add____radd__)rn   __sub____rsub__)rm   __mul____rmul__)ro   __truediv____rtruediv__)rY   rZ   r[   r\   r$   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r^   r_   r`   s   @r   rc   rc   ^   s     [[S1d),[[	
4 -480		+U1-..
11 1r   rc   c                   8   a  ] tR t^t o R tR tR tR tRtV t	R# ) TestDataFrameQueryWithMultiIndexc                   \        V4       \        P                  P                  ^4      P	                  RR.^
R7      p\        P                  P                  ^4      P	                  RR.^
R7      p\
        P                  ! W4.RR.R7      p\        \        P                  P                  ^4      P                  R4      VR	7      p\        VP                  P                  R4      P                  VRR
7      pVP                  RWR7      pVP                  RWR7      p	WgR8H  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgR8g  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       R# )r-   redgreensizeeggshamcolorfoodnamesrh   rh   r   z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 colorNr   r&   rt   r   r   choicer   from_arraysr   r   r	   rh   get_level_valuesrv   rA   rB   rC   isinr1   r   r"   r   r   rh   r2   indres1res2exps   &&&        r    test_query_with_named_multiindexATestDataFrameQueryWithMultiIndex.test_query_with_named_multiindex   s    (II!!!$++UG,<2+FII!!!$++VUO"+E&&vgv5FGryy,,Q/??HPUVHH%%g.55U

 xx(xGxx(xG
d(
d( xx(xGxx(xG
d(
d( xx*6xIxx*6xI5'"#
d(
d(xx*6xIxx*6xI((E7##$
d(
d( xx*6xIxx(xG5'"#
d(
d(xx.vxMxx,VxK((E7##$
d(
d(r   c                   \        V4       \        P                  P                  ^4      P	                  RR.^
R7      p\        P                  P                  ^4      P	                  RR.^
R7      p\
        P                  ! W4.4      p\        \        P                  P                  ^4      P                  R!4      VR7      p\        VP                  P                  ^ 4      P                  VR7      pVP                  RWR7      pVP                  R	WR7      p	WgR8H  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  R
WR7      pVP                  RWR7      p	WgR8g  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       \        VP                  P                  ^4      P                  VR7      pVP                  RWR7      pVP                  RWR7      p	WgR8H  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgR8g  ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ,          p
\        P                  ! W4       \        P                  ! W4       VP                  RWR7      pVP                  RWR7      p	WgP!                  R.4      ( ,          p
\        P                  ! W4       \        P                  ! W4       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_0z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_1Nr   r   r   s   &&&        r   "test_query_with_unnamed_multiindexCTestDataFrameQueryWithMultiIndex.test_query_with_unnamed_multiindex   s    (II!!!$++UG,<2+FII!!!$++VUO"+E&&v.ryy,,Q/??HPUVRXX..q188Fxx+FxJxx+FxJ
d(
d( xx+FxJxx+FxJ
d(
d( xx-fxLxx-fxL5'"#
d(
d(xx-fxLxx-fxL((E7##$
d(
d( xx-fxLxx+FxJ5'"#
d(
d(xx1&xPxx/xN((E7##$
d(
d( RXX..q188Fxx,VxKxx,VxK
d(
d( xx,VxKxx,VxK
d(
d( xx.vxMxx.vxM6(#$
d(
d(xx.vxMxx.vxM((F8$$%
d(
d( xx.vxMxx,VxK6(#$
d(
d(xx26xQxx0xO((F8$$%
d(
d(r   c                   \        V4       \        P                  P                  ^4      P	                  RR.^
R7      p\        P
                  ! ^
4      p\        P                  ! W4.4      pRR.Vn        \        \        P                  P                  ^4      P                  R4      VR7      pVP                  RWR7      p\        VP                  P                  R4      P                  VRR	7      pWh^8H  ,          p	\         P"                  ! Wy4       VP                  R
WR7      p\        VP                  P                  R4      P                  VRR	7      pWh^8g  ,          p	\         P"                  ! Wy4       VP                  RWR7      p\        VP                  P                  ^ 4      P                  VR7      pWhR8H  ,          p	\         P"                  ! Wy4       VP                  RWR7      p\        VP                  P                  ^ 4      P                  VR7      pWhR8g  ,          p	\         P"                  ! Wy4       R# )r-   r   r   r   Nratingr   zrating == 1r   r   zrating != 1r   r   r   )r&   rt   r   r   r   aranger   r   r   r   r   rA   r	   rh   r   rv   rB   rC   )
r1   r   r"   r   r   rh   r2   r   r   r   s
   &&&       r   *test_query_with_partially_named_multiindexKTestDataFrameQueryWithMultiIndex.test_query_with_partially_named_multiindexx  s    (II!!!$++UG,<2+FIIbM&&v.X&ryy,,Q/??HPUVhh}VhCHH%%h/66e(
 l
c'hh}VhCHH%%h/66e(
 l
c'hh*6hIRXX..q188F
c'hh*6hIRXX..q188F
c'r   c                   \        \        P                  ! R4      \        P                  ! \        ^4       Uu. uF  p\        ^
4      NK  	  upRR.R7      R7      pVP                  4       pR pVP                  P                  4       pRVP                  RVRV! VP                  R4      RV! VP                  R4      RV/pVP                  4        Fz  w  rx\        V\        4      '       d"   VP                  Wg,          4      '       g   Q hK<  \        V\        4      '       d    \        P                   ! WV,          4       Kq  \#        R	4      h	  R
# u upi )r   spamr   r   r   c                 T    V P                  V4      pVP                  4       pWn        V# r   )r   	to_seriesrh   )milevellevel_valuesss   &&  r   r  ]TestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers.<locals>.to_series  s*    ..u5L&&(AGHr   rh   ri   clevel_0z object must be a Series or IndexNr   r.   )r   rt   onesr   r   rp   _get_index_resolversri   r  rh   items
isinstancer   is_r	   rB   rE   AssertionError)	r1   _r2   r   r  
col_seriesr~   kvs	   &        r   )test_query_multiindex_get_index_resolversJTestDataFrameQueryWithMultiIndex.test_query_multiindex_get_index_resolvers  s   GGG(($)!H-HqrH-ff5E
 ++-		 ZZ))+
RXXzIbhh/Ibhh/

 OO%DA!U##uuX[))))Av&&&&q1+6$%GHH &' .s   Er   N)
rY   rZ   r[   r\   r   r   r  r  r^   r_   r`   s   @r   r   r      s#     0)dV)p(>I Ir   r   c                   p  a  ] tR tRt o ]P
                  R 4       t]P
                  R 4       tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t]P<                  P?                  RR] PB                  .R] PD                  ..4      R 4       t#R t$R t%R t&V t'R!# )"TestDataFrameQueryNumExprPandasi  c                    R # r   r   r0   s   &r   r"   &TestDataFrameQueryNumExprPandas.engine      r   c                    R # r   r   r0   s   &r   r   &TestDataFrameQueryNumExprPandas.parser      r   c                   \        V4       \        \        P                  P	                  ^4      P                  R4      4      p\        R^R7      VR&   \        R^R7      VR&   \        R^R7      VR&   VP                  RWR	7      pW3P                  R
8  R
VP                  8  ,          ,          p\        P                  ! WE4       R# )r-   1/1/2012periodsdates11/1/2013dates21/1/2014dates3z"@df.dates1 < 20130101 < @df.dates3r   20130101Nr   r.   )r&   r   rt   r   r   r   r
   rA   r(  r,  rB   rC   r1   r"   r   r2   r   expecs   &&&   r   %test_date_query_with_attribute_accessETestDataFrameQueryNumExprPandas.test_date_query_with_attribute_access  s     (ryy,,Q/??GH!*a88!*a88!*a88hh0  
 II
*zBII/EFG
c)r   c                x   \        \        P                  P                  ^4      P	                  R4      4      p\        R^R7      VR&   \        R^R7      VR&   \        R^R7      VR&   VP                  RWR	7      pW3P                  R
8  R
VP                  8  ,          ,          p\        P                  ! WE4       R# )r-   r%  r&  r(  r)  r*  r+  r,  dates1 < 20130101 < dates3r   r-  Nr.  r   rt   r   r   r   r
   rA   r(  r,  rB   rC   r/  s   &&&   r   #test_date_query_no_attribute_accessCTestDataFrameQueryNumExprPandas.test_date_query_no_attribute_access  s    ryy,,Q/??GH!*a88!*a88!*a88hh3FhRII
*zBII/EFG
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      p\        RVR7      VR&   \        RVR7      VR&   \        RVR7      VR&   \        P                  VP                  \        P                  P                  ^4      P                  V4      R8  R3&   \        P                  VP                  \        P                  P                  ^4      P                  V4      R8  R3&   VP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                  ! WV4       R# )r   r%  r&  r(  r)  r*  r+  r,  r   r4  r   r-  Nr   rt   r   r   r   r
   r   NaTlocrA   r(  r,  rB   rC   r1   r"   r   rd   r2   r   r0  s   &&&    r   test_date_query_with_NaT8TestDataFrameQueryNumExprPandas.test_date_query_with_NaT  s   ryy,,Q/??AGH!*a88!*a88!*a88EGVVryy$$Q'..q1C7ABEGVVryy$$Q'..q1C7ABhh3FhRII
*zBII/EFG
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      p\        RVR7      VR&   \        RVR7      VR&   VP                  RRRR7      pVe   Q hVP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                  ! Wg4       R# )r   r%  r&  r(  r+  r,  TinplacedropNindex < 20130101 < dates3r   r-  r   rt   r   r   r   r
   	set_indexrA   rh   r,  rB   rC   r1   r"   r   rd   r2   return_valuer   r0  s   &&&     r   test_date_index_query5TestDataFrameQueryNumExprPandas.test_date_index_query  s    ryy,,Q/??AGH!*a88!*a88||Hd|F###hh26hQHHz)j299.DEF
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      P                  ^ \        /4      p\        RVR7      VR&   \        RVR7      VR&   \        P                  VP                  R&   VP                  RRRR7      pVe   Q hVP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                   ! Wg4       R# )r   r%  r&  r(  r+  r,  Tr@  NrC  r   r-  r   r   r   rt   r   r   r   astypeobjectr
   r   r:  rr   rE  rA   rh   r,  rB   rC   rF  s   &&&     r   test_date_index_query_with_NaT>TestDataFrameQueryNumExprPandas.test_date_index_query_with_NaT  s    ryy,,Q/??AGHOOK
 "*a88!*a88||Hd|F###hh26hQHHz)j299.DEF
c)r   c                   ^
p/ p\        RVR7      VR&   \        RVR7      VR&   \        V4      p\        P                  VP                  \
        P                  P                  ^4      P                  V4      R8  R3&   VP                  RRRR7      pVe   Q hVP                  R
WR7      pWUP                  P                  4       R8  RVP                  8  ,          ,          p\        P                  ! Wx4       R	# )r   r%  r&  r(  r+  r,  r   Tr@  Nr4  r   r-  )r
   r   r   r:  r;  rt   r   r   rE  rA   rh   r  r,  rB   rC   )	r1   r"   r   rd   dr2   rG  r   r0  s	   &&&      r   )test_date_index_query_with_NaT_duplicatesITestDataFrameQueryNumExprPandas.test_date_index_query_with_NaT_duplicates  s     Q7( Q7(q\EGVVryy$$Q'..q1C7AB||Hd|F###hh3FhRHH&&(:5*ryy:PQR
c)r   c           	        ^
p\        R\        RVRR7      R\        P                  ! V4      /4      pVP	                  RW!R7      p\        V4      ^ 8X  g   Q hVP	                  RW!R7      p\        P                  ! WT4       R	pR FG  p\        P                  ! \        VR
7      ;_uu_ 4        VP	                  RV R2W!R7       RRR4       KI  	  R#   + '       g   i     K^  ; i)r   datesr%  ns)r'  unitnondatezdates == nondater   zdates != nondatez=Invalid comparison between dtype=datetime64\[ns\] and ndarrayrR   zdates z nondateN)<><=>=)r   r
   rt   r   rA   lenrB   rC   r$   rT   	TypeError)r1   r"   r   rd   r2   rG   rV   rz   s   &&&     r   test_date_query_with_non_date=TestDataFrameQueryNumExprPandas.test_date_query_with_non_date	  s    JE299Q<
 ,VK6{a,VK
f)N(By446"X.vM 54 )444s   +CC"c                   \        R \        ^
4      R\        ^^4      R\        ^^4      /4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP                  RWR7       RRR4       R#   + '       g   i     R# ; i)irl   rinvalid syntaxrR   zi - +r   N)r   rp   r$   rT   SyntaxErrorrA   )r1   r"   r   r2   rV   s   &&&  r   test_query_syntax_error7TestDataFrameQueryNumExprPandas.test_query_syntax_error  s^    U2YU1b\3aMN]];c22HHWVH; 3222s   A33B	c                    \        V4       \        \        P                  P	                  ^4      P                  R4      \        R4      R7      p^^rTVP                  RWR7      pW3P                  VP                  8  ,          p\        P                  ! Wg4       VP                  RWR7      pW4VP                  8  ,          p\        P                  ! Wg4       \        P                  ! \        RR7      ;_uu_ 4        VP                  RWR7       R	R	R	4       \        P                  ! \        R
R7      ;_uu_ 4        VP                  RWR7       R	R	R	4       R	#   + '       g   i     LR; i  + '       g   i     R	# ; i)r-   r   rj   za > br   z@a > b!local variable 'c' is not definedrR   z@a > b > @cNzname 'c' is not definedz
@a > b > c)   r-   )r&   r   rt   r   r   r   rq   rA   r   r   rB   rC   r$   rT   r   )r1   r"   r   r2   r   r   r   r~   s   &&&     r   test_query_scope0TestDataFrameQueryNumExprPandas.test_query_scope#  s    (II!!!$44W=tDz
 !1hhwvh=ddRTTk?
c,hhxh>"$$h<
c, ]]"*M
 
 HH]6HA
 ]]19RSSHH\&H@ TS
 
 TSSs   ;E;E,E)	,E=	c                >   ^
;r4\        \        P                  P                  ^4      P	                  WC^3R7      \        R4      R7      p\        P                  ! \        RR7      ;_uu_ 4        VP                  RWR7       RRR4       R#   + '       g   i     R# ; i)	r   r   abcrj   zname 'sin' is not definedrR   sin > 5r   N)
r   rt   r   r   integersrq   r$   rT   r   rA   )r1   r"   r   rd   r|   r2   s   &&&   r   test_query_doesnt_pickup_local>TestDataFrameQueryNumExprPandas.test_query_doesnt_pickup_local=  sr    
II!!!$--a!f-=tE{

 ]]19TUUHHYvH= VUUUs   -BB	c                d   ^
;r4\        \        P                  P                  ^4      P	                  WC^3R7      \        R4      R7      pRVP                  n        Rp\        P                  ! \        VR7      ;_uu_ 4        VP                  RWR7       R	R	R	4       R	#   + '       g   i     R	# ; i)
r   r   ro  rj   sinzVariables in expression.+rR   rp  r   N)r   rt   r   r   rq  rq   rh   r   r$   rT   r   rA   )r1   r"   r   rd   r|   r2   rV   s   &&&    r   test_query_builtin2TestDataFrameQueryNumExprPandas.test_query_builtinG  s    
II!!!$--a!f-=tE{
 )]]1==HHYvH= >===s    BB/	c                   \        \        P                  P                  ^4      P	                  R4      . ROR7      p\
        P                  ! VP                  RWR7      W3P                  VP                  8  ,          4       \
        P                  ! VP                  RWR7      W3P                  VP                  ,           VP                  VP                  ,          8  ,          4       R# )r-   rj   a < br   za + b > b * cNr  r   r   r   )r   rt   r   r   r   rB   rC   rA   r   r   r   r1   r"   r   r2   s   &&& r   
test_query*TestDataFrameQueryNumExprPandas.test_queryR  s    II!!!$44W=
 	HHWVH;Rrtt_	
 	HH_VHCttbdd{RTTBDD[()	
r   c                   \        \        P                  P                  ^4      P	                  ^
R	R7      \        \        ^
4      RR7      . R
OR7      pVP                  RWR7      pW3P                  ^8  VP                  VP                  8  ,          ,          p\        P                  ! WE4       VP                  RWR7      pW3P                  VP                  8  ,          p\        P                  ! WE4       R# )r-   r   blobr   rg   z(blob < 5) & (a < b)r   zblob < bNr  rz  )r   rt   r   r   rq  r   rp   rA   rh   r   r   rB   rC   r/  s   &&&   r   test_query_index_with_name:TestDataFrameQueryNumExprPandas.test_query_index_with_name_  s    II!!!$--bw-?b	/#

 hh-fhLHHqLRTTBDD[12
c)hhz&h@88bdd?#
c)r   c                   \        \        P                  P                  ^4      P	                  ^
RR7      \        ^
4      . ROR7      pVP                  RWR7      pW3P                  VP                  8  ,          p\        P                  ! WE4       VP                  RWR7      pW3P                  ^8  ,          p\        P                  ! WE4       R# )	r-   r   rg   z	index < br   z	index < 5Nr  rz  )r   rt   r   r   rq  rp   rA   rh   r   rB   rC   r/  s   &&&   r   test_query_index_without_name=TestDataFrameQueryNumExprPandas.test_query_index_without_namen  s    II!!!$--bw-?)#
 hh{6hA88bdd?#
c) hh{6hA88a< 
c)r   c                   \        V4       \        \        P                  P	                  ^4      P                  R4      4      p\        \        P                  P	                  ^4      P                  R4      4      pW3^ 8  V^ 8  ,          ,          pVP                  RWR7      p\        P                  ! We4       \        P                  ! RWR7      p\        P                  ! We4       \        P                  ! RWR7      pW3^ 8  V^ 8  ,          W3^ 8  ,          ^ 8  ,          ,          p\        P                  ! We4       \        P                  ! RWR7      pVP                  RWR7      p\        P                  ! We4       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)Nr.  )r&   r   rt   r   r   r   rA   rB   rC   r   rD   )r1   r"   r   r2   df2r~   rG   s   &&&    r   test_nested_scope1TestDataFrameQueryNumExprPandas.test_nested_scope  s     (ryy,,Q/??GH		--a0@@HIAv#'*+26Q
f/1&P
f/7
 Av#'*baj1n=>
f//N8808O
f/r   c                   \        \        P                  P                  ^4      P	                  R4      4      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  RWR7       RRR4       R#   + '       g   i     R# ; i)r-   name 'df' is not definedrR   zdf > 0r   Nr.  )	r   rt   r   r   r   r$   rT   r   rA   r{  s   &&& r   *test_nested_raises_on_local_self_referenceJTestDataFrameQueryNumExprPandas.test_nested_raises_on_local_self_reference  s[    ryy,,Q/??GH ]]19STTHHXfH< UTTTs   A::B	c                   \        V4       \        \        P                  P	                  ^4      P                  R4      \        R4      R7      p^pW3P                  V8  ,          pVP                  RWR7      p\        P                  ! We4       W3P                  VP                  8  ,          pVP                  RWR7      p\        P                  ! We4       R# )r-   
abcdefghijrj   za < @br   ry  N)d   r   )r&   r   rt   r   r   r   rq   r   rA   rB   rC   r   )r1   r"   r   r2   r   r   rG   s   &&&    r   test_local_syntax1TestDataFrameQueryNumExprPandas.test_local_syntax  s     (II!!!$44Y?&
 DD1H(6A
f-DD244K'&@
f-r   c                6   \        V4       \        R 4      p\        \        P                  P                  ^4      P                  ^d\        V4      34      VR7      pVP                  RWR7      pVP                  VP                  8  VP                  VP                  8  ,          VP                  P                  VP                  4      ( ,          VP                  P                  VP                  4      ( ,          pWF,          p\        P                  ! WW4       R# )ro  rj   z!a < b < c and a not in b not in cr   N)r&   rq   r   rt   r   r   r   r^  rA   r   r   r   r   rB   rC   )r1   r"   r   colsr2   r   r   r0  s   &&&     r   test_chained_cmp_and_in7TestDataFrameQueryNumExprPandas.test_chained_cmp_and_in  s     (E{II!!!$44c3t95EFPT
 hh/  
 ttbdd{rttbdd{+rttyy.>>"$$))BDD/AQQ
c)r   c                   \        V4       \        \        P                  P	                  ^4      P                  ^^R7      RR7      p\        \        P                  P	                  ^4      P                  ^
^R7      RR7      p\        RVRV/4      pVP                  VP                  ^,
          P                  V4      ,          pVP                  RWR7      p\        P                  ! Wg4       \        \        P                  P	                  ^4      P                  ^
^R7      RR7      pVP                  V^,
          P                  V4      ,          pVP                  RWR7      p\        P                  ! Wg4       R# )	r-   r   r   r   r   z
b - 1 in ar   z@b - 1 in aN)r&   r	   rt   r   r   rq  r   r;  r   r   rA   rB   rC   )r1   r"   r   r   r   r2   r~   rG   s   &&&     r   test_local_variable_with_in;TestDataFrameQueryNumExprPandas.test_local_variable_with_in  s    (299((+44QR4@sK299((+44Rb4ALQQ'(66244!8//!,-,vE
h/299((+44Rb4AL661q5,,q/*-F
h/r   c                    \        V4       ^p\        R. RO/4      pVP                  RWR7      pWDP                  R8H  ,          p\        P
                  ! WV4       R# )r,   r   @cz	a == "@c"r   N)r   r   r   r   r  r  r&   r   rA   r   rB   rC   )r1   r"   r   r   r2   rG   r~   s   &&&    r   test_at_inside_string5TestDataFrameQueryNumExprPandas.test_at_inside_string  sO     (=>?+fDdddl#
f/r   c                v   V P                   V P                  r!\        V4       \        \        P
                  P                  ^4      P                  R4      \        R4      R7      p\        P                  ! \        RR7      ;_uu_ 4        VP                  RWR7       RRR4       R#   + '       g   i     R# ; i)	r-   r   rj   rj  rR   za == @cr   Nr   )r"   r   r&   r   rt   r   r   rq   r$   rT   r   rA   r{  s   &   r   test_query_undefined_local:TestDataFrameQueryNumExprPandas.test_query_undefined_local  s    dkk (ryy,,Q/66w?dT]]"*M
 
 HHYvH=
 
 
 
s   	B''B8	c                t   ^p\         P                  R,          p\        RVR\         P                  P	                  ^4      P                  VP                  4      /4      pRVP                  n        VP                  RWR7      pWUR,          ^8  ,          p\        P                  ! Wg4       \        RVR\         P                  P	                  ^4      P                  VP                  4      /4      pVP                  RWR7      pVP                  VP                  VP                  ^8  ,          ,          p\        P                  ! Wg4       \        RVR\         P                  P	                  ^4      P                  VP                  4      /4      pRVP                  n        VP                  RWR7      pWUP                  ^8  ,          p\        P                  ! Wg4       VP                  RWR7      pVP                  VP                  VP                  ^8  ,          ,          p\        P                  ! Wg4       R	# )
r,   :rk  e   rk  rh   r   z	index > 5r   zilevel_0 > 5r   za > 5N)rt   r_r   r   r   r   r   rh   r   rA   rB   rC   r;  r   )r1   r"   r   rd   r   r2   rG   r~   s   &&&     r   :test_index_resolvers_come_after_columns_with_the_same_nameZTestDataFrameQueryNumExprPandas.test_index_resolvers_come_after_columns_with_the_same_name  s    EE)abii33A6FFqvvNO
  +fDkAo&
f/abii33A6FFqvvNO
 .G66"((288a<01
f/QRYY%:%:1%=%M%Maff%UVW'&@ddQh<
f/+fD66"((288a<01
f/r   zop, f==!=c                   ^
p\        R\        P                  P                  ^4      P                  V4      R\        P                  P                  ^4      P                  V4      /4      p\        P                  VP
                  R&   RV R2pWb! VP                  \        P                  4      ,          pVP                  WsVR7      p	\        P                  ! W4       R# )r   r   r   a z infr   N):NNr-   r   )
r   rt   r   r   infr;  r   rA   rB   rC   )
r1   rz   fr"   r   rd   r2   qr~   rG   s
   &&&&&     r   test_inf(TestDataFrameQueryNumExprPandas.test_inf  s    RYY**1-44Q7RYY**1-44Q7
 vDMabffo&!6:
f/r   c                (   Tp\        R R^
VRR7      p\        VR7      p\        VR7      pVP                  R4      p\        P                  ! Wd4       \        V4      pVP                  4       P                  R4      p\        P                  ! Wd4       R# )z
2019-01-011Dtime)startfreqr'  tzr   r   z"2018-01-03 00:00:00+00" < timeN)r
   r   rA   rB   rC   reset_index)r1   tz_aware_fixturer  df_indexr~   r2   rG   s   &&     r   test_check_tz_aware_index_query?TestDataFrameQueryNumExprPandas.test_check_tz_aware_index_query	  s    T2"6
 8,X&;<
f/X&!''(IJ
f/r   c           
     z   ^
p\        R^\        P                  P                  ^4      P                  V4      ,          R\        P                  P                  ^4      P                  V4      /4      pWDR,          P	                  R4      ^ 8H  ,          pVP                  RWR7      p\        P                  ! We4       \        R\        P                  ! \        P                  P                  ^4      P                  V4      R8  \        P                  \        P                  P                  ^4      P                  V4      4      R\        P                  P                  ^4      P                  V4      /4      pWDR,          P                  4       ,          pVP                  RWR7      p\        P                  ! We4       R# )	r   r   r   intza.astype('int') == 0r   r   za.notnull()N)r   rt   r   r   rM  rA   rB   rC   wherer   r   notnull)r1   r"   r   rd   r2   r~   rG   s   &&&    r   test_method_calls_in_query:TestDataFrameQueryNumExprPandas.test_method_calls_in_query  sO   Q..q188;;RYY**1-44Q7
 gnnU+q010O
f/RXXII))!,33A6<FFII))!,<<Q?
 RYY**1-==a@	
 goo'(-F
f/r   r   N)(rY   rZ   r[   r\   r$   r]   r"   r   r1  r6  r=  rH  rO  rS  r`  rg  rl  rr  rv  r|  r  r  r  r  r  r  r  r  r  r  r   r   operatoreqner  r  r  r^   r_   r`   s   @r   r  r    s     ^^  ^^ 
**
*	***N(<A4>	>
**"0.=. *00>0> [[Whkk':T8;;<O&PQ0 R000 0r   r  c                      a  ] tR tRt o ]P
                  R 4       t]P
                  R 4       tR tR t	R t
R tR tR	 tR
 tRtV tR# )TestDataFrameQueryNumExprPythoni4  c                    R # r  r   r0   s   &r   r"   &TestDataFrameQueryNumExprPython.engine6  r  r   c                    R # r   r   r0   s   &r   r   &TestDataFrameQueryNumExprPython.parser:  r#  r   c                x   \        \        P                  P                  ^4      P	                  R4      4      p\        R^R7      VR&   \        R^R7      VR&   \        R^R7      VR&   VP                  RWR	7      pW3P                  R
8  R
VP                  8  ,          ,          p\        P                  ! WE4       R# )r-   r%  r&  r(  r)  r*  r+  r,  )(dates1 < 20130101) & (20130101 < dates3)r   r-  Nr.  r5  r/  s   &&&   r   r6  CTestDataFrameQueryNumExprPython.test_date_query_no_attribute_access>  s    ryy,,Q/??GH!*a88!*a88!*a88hh7  
 II
*zBII/EFG
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      p\        RVR7      VR&   \        RVR7      VR&   \        RVR7      VR&   \        P                  VP                  \        P                  P                  ^4      P                  V4      R8  R3&   \        P                  VP                  \        P                  P                  ^4      P                  V4      R8  R3&   VP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                  ! WV4       R# )r   r%  r&  r(  r)  r*  r+  r,  r   r  r   r-  Nr9  r<  s   &&&    r   r=  8TestDataFrameQueryNumExprPython.test_date_query_with_NaTI  s   ryy,,Q/??AGH!*a88!*a88!*a88EGVVryy$$Q'..q1C7ABEGVVryy$$Q'..q1C7ABhh7  
 II
*zBII/EFG
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      p\        RVR7      VR&   \        RVR7      VR&   VP                  RRRR7      pVe   Q hVP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                  ! Wg4       R# )r   r%  r&  r(  r+  r,  Tr@  N((index < 20130101) & (20130101 < dates3)r   r-  rD  rF  s   &&&     r   rH  5TestDataFrameQueryNumExprPython.test_date_index_queryW  s    ryy,,Q/??AGH!*a88!*a88||Hd|F###hh6v  
 HHz)j299.DEF
c)r   c                   ^
p\        \        P                  P                  ^4      P	                  V^34      4      P                  ^ \        /4      p\        RVR7      VR&   \        RVR7      VR&   \        P                  VP                  R&   VP                  RRRR7      pVe   Q hVP                  R	WR
7      pWDP                  R8  RVP                  8  ,          ,          p\        P                   ! Wg4       R# )r   r%  r&  r(  r+  r,  Tr@  Nr  r   r-  rK  rL  rF  s   &&&     r   rO  >TestDataFrameQueryNumExprPython.test_date_index_query_with_NaTd  s    ryy,,Q/??AGHOOK
 "*a88!*a88||Hd|F###hh6v  
 HHz)j299.DEF
c)r   c                8   ^
p\        \        P                  P                  ^4      P	                  V^34      4      p\        RVR7      VR&   \        RVR7      VR&   \        P                  VP                  \        P                  P                  ^4      P                  V4      R8  R3&   VP                  RRRR7      pVe   Q hR
p\        P                  ! \        VR7      ;_uu_ 4        VP                  RWR7       R	R	R	4       R	#   + '       g   i     R	# ; i)r   r%  r&  r(  r+  r,  r   Tr@  N"'BoolOp' nodes are not implementedrR   rC  r   )r   rt   r   r   r   r
   r   r:  r;  rE  r$   rT   NotImplementedErrorrA   )r1   r"   r   rd   r2   rG  rV   s   &&&    r   rS  ITestDataFrameQueryNumExprPython.test_date_index_query_with_NaT_duplicatesu  s    ryy,,Q/??AGH!*a88!*a88EGVVryy$$Q'..q1C7AB||Hd|F###3]].c::HH0HO ;:::s   *DD	c                   ^p\         P                  ! RWR7      pV^8X  g   Q h\        \        P                  P                  ^4      P                  R4      4      p\        \        P                  P                  ^4      P                  R4      4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP                  RWR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        VP                  RWR7       RRR4       WU^ 8  V^ 8  ,          ,          p\         P                  ! R	WR7      p\        P                  ! W4       WU^ 8  V^ 8  ,          WU^ 8  ,          ^ 8  ,          ,          p\         P                  ! R
WR7      p\        P                  ! W4       R#   + '       g   i     L; i  + '       g   i     L; i)r,   zx + 1r   z5The '@' prefix is only supported by the pandas parserrR   r  Nr  z(df>0) & (df2>0)zdf[(df > 0) & (df2 > 0)]z+df[(df > 0) & (df2 > 0) & (df[df > 0] > 0)]r.  )r   rD   r   rt   r   r   r   r$   rT   rf  rA   r   rB   rC   )	r1   r"   r   r   rG   r2   r  rV   r~   s	   &&&      r   r  1TestDataFrameQueryNumExprPython.test_nested_scope  sV   ?{{ryy,,Q/??GH		--a0@@HI G]];c22HH)&HH 3 ]]19STTHH'HF U Av#'*+3FR
h/Av#'*baj1n=>9&
 	h/ 32 UTs   8F/8G/F?	G	c                z   \        R . ROR. R	O/4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  R4       RRR4       Rp\        P                  ! \        VR7      ;_uu_ 4        VP	                  R4       RRR4       R#   + '       g   i     LR; i  + '       g   i     R# ; i)
minmaxzMVariables in expression \"\(min\) == \(1\)\" overlap with builtins: \('min'\)rR   zmin == 1NzMVariables in expression \"\(max\) == \(1\)\" overlap with builtins: \('max'\)zmax == 1r+   r   )r   r$   rT   r   rA   )r1   r2   regex_to_matchs   &  r   +test_query_numexpr_with_min_and_max_columnsKTestDataFrameQueryNumExprPython.test_query_numexpr_with_min_and_max_columns  s    y%;<0 	 ]]1HHHHZ  I0 	 ]]1HHHHZ  IH IH IHHs   B:B)B&	)B:	r   N)rY   rZ   r[   r\   r$   r]   r"   r   r6  r=  rH  rO  rS  r  r  r^   r_   r`   s   @r   r  r  4  s\     ^^  ^^ 	****"
P06! !r   r  c                   n   a  ] tR tRt o ]P
                  R 4       t]P
                  R 4       tR tRt	V t
R# )TestDataFrameQueryPythonPandasi  c                    R # r  r   r0   s   &r   r"   %TestDataFrameQueryPythonPandas.engine  r#  r   c                    R # r!  r   r0   s   &r   r   %TestDataFrameQueryPythonPandas.parser  r#  r   c                4   ^
;r4\        \        P                  P                  ^4      P	                  WC^3R7      \        R4      R7      pRVP                  n        WUP                  ^8  ,          pVP                  RWR7      p\        P                  ! Wg4       R# r   r   ro  rj   ru  rp  r   Nr   rt   r   r   rq  rq   rh   r   rA   rB   rC   r1   r"   r   rd   r|   r2   r~   rG   s   &&&     r   rv  1TestDataFrameQueryPythonPandas.test_query_builtin  z    
II!!!$--a!f-=tE{
 hhl#)FB
h/r   r   NrY   rZ   r[   r\   r$   r]   r"   r   rv  r^   r_   r`   s   @r   r  r    =     ^^  ^^ 	0 	0r   r  c                   n   a  ] tR tRt o ]P
                  R 4       t]P
                  R 4       tR tRt	V t
R# )TestDataFrameQueryPythonPythoni  c                    R # r  r   r0   s   &r   r"   %TestDataFrameQueryPythonPython.engine  r#  r   c                    R # r  r   r0   s   &r   r   %TestDataFrameQueryPythonPython.parser  r#  r   c                4   ^
;r4\        \        P                  P                  ^4      P	                  WC^3R7      \        R4      R7      pRVP                  n        WUP                  ^8  ,          pVP                  RWR7      p\        P                  ! Wg4       R# r  r  r  s   &&&     r   rv  1TestDataFrameQueryPythonPython.test_query_builtin  r  r   r   Nr  r`   s   @r   r  r    r  r   r  c            
       d  a  ] tR tRt o R tR tR tR tR tR t	]
P                  P                  RR	]P                  .R
]P                  .R]P                   .R]P"                  ..4      R 4       tR tR t]
P                  P                  R. RO. RO. RO. RO. RO. RO.4      R 4       tRtV tR# )TestDataFrameQueryStringsi  c           
        \        \        P                  P                  ^4      P	                  R4      R.R7      p\        \        R4      4      VR&   W3P                  R8H  ,          pVR8w  d   RpRpV.^,          V.^,          ,           pVRRR1,          pR	R
r^W.,          pRp\        W{V4       F^  w  rpV RV RV 2p\        P                  ! \        VR7      ;_uu_ 4        VP                  VVVRVP                  /R7       RRR4       K`  	  R# VP                  RW!R7      p\        P                  ! VV4       VP                  RW!R7      p\        P                  ! VV4       \        P                  ! VW3P                  P                  R.4      ,          4       W3P                  R8g  ,          pVP                  RW!R7      p\        P                  ! VV4       VP                  RW!R7      p\        P                  ! VV4       \        P                  ! VW3P                  P                  R.4      ( ,          4       R#   + '       g   i     EK  ; i)r-   r   rj   
aabbccddeestringsr   r   z"a"Nr  r  $'(Not)?In' nodes are not implemented rR   )r"   r   
local_dictz"a" == stringsr   zstrings == "a"zstrings != "a"z"a" != stringsr   r,   rk   )r   rt   r   r   r   r	   rq   r  zipr$   rT   r  rA   rB   rC   r   )r1   r   r"   r2   r   collstlhsrhsr  r  opsrV   lhop_rhexr   s   &&&               r   test_str_query_method/TestDataFrameQueryStrings.test_str_query_method  s   ryy,,Q/??HSVRWXtL129JJ#%&XCC%!)seai'Cdd)C4x.C9C"3S1t1SE2$']]#6cBBHH%%$-rzz#:	   CB  2 ((+F(JC!!#v.((+F(JC!!#v.!!#r**//3%*@'AB

c)*F((+F(JC!!#v.((+F(JC!!#v.!!#r::??C5+A*A'BC+ CBBs   &"IIc           	        \        \        P                  P                  ^4      P	                  R4      R.R7      p\        \        R4      4      VR&   W3P                  P                  RR.4      ,          pVR8w  d   RpRpV.^,          V.^,          ,           pVRRR1,          pR	R
r^W.,          pRp\        W{V4       FP  w  rpV RV RV 2p\        P                  ! \        VR7      ;_uu_ 4        VP                  VW!R7       RRR4       KR  	  R# VP                  RW!R7      p\        P                  ! VV4       VP                  RW!R7      p\        P                  ! VV4       W3P                  P                  RR.4      ( ,          pVP                  RW!R7      p\        P                  ! VV4       VP                  RW!R7      p\        P                  ! VV4       R#   + '       g   i     EK6  ; i)r-   r   rj   r  r  r   r   z
["a", "b"]Nr  r  r  r  rR   r   zstrings == ["a", "b"]z["a", "b"] == stringszstrings != ["a", "b"]z["a", "b"] != stringsr  rk   )r   rt   r   r   r   r	   rq   r  r   r   r$   rT   r  rA   rB   rC   )r1   r   r"   r2   r   r  r  r  r  r  r  r  rV   r  ops_r  r	  r   s   &&&               r   test_str_list_query_method4TestDataFrameQueryStrings.test_str_list_query_method  s   ryy,,Q/??HSVRWXtL129JJOOS#J/0XCC%!)seai'Cdd)C4x.C9C #Cc 2"t1TF!B4(]]#6cBBHHRH> CB !3
 ((26(QC!!#v.((26(QC!!#v.#s445F((26(QC!!#v.((26(QC!!#v. CBBs   4G$$G6c                   \        R \        R4      R\        R4      R\        P                  P	                  ^4      P                  ^^R7      R\        P                  P	                  ^4      P                  ^	^R7      /4      pVR8X  d   VP                  RWR	7      pW3P                  P                  VP                  4      ,          p\        P                  ! WE4       VP                  R
WR	7      pW3P                  P                  VP                  4      VP                  VP                  8  ,          ,          p\        P                  ! WE4       R# Rp\        P                  ! \         VR7      ;_uu_ 4        VP                  RWR	7       RRR4       Rp\        P                  ! \         VR7      ;_uu_ 4        VP                  R
WR	7       RRR4       R#   + '       g   i     LT; i  + '       g   i     R# ; i)r   aaaabbbbccccr   aabbccddeeffr   r   rR  r   za in br   za in b and c < dr  rR   Nr  )r   rq   rt   r   r   rq  rA   r   r   r   rB   rC   r   rR  r$   rT   r  )r1   r   r"   r2   r   r0  rV   s   &&&    r   test_query_with_string_columns8TestDataFrameQueryStrings.test_query_with_string_columns$  sl   T.)T.)RYY**1-66qr6BRYY**1-66qr6B	
 X((8F(BCttyy'E!!#-((-f(LCttyy"$$+67E!!#-9C2#>>&@ ? 8C2#>>+FJ ?>	 ?> ?>>s   7G9G*G'	*G;	c                (   \        R \        R4      R\        R4      R\        P                  P	                  ^4      P                  ^^R7      R\        P                  P	                  ^4      P                  ^	^R7      /4      pVP                  RWR7      pW3P                  VP                  8H  ,          p\        P                  ! WE4       VP                  R	WR7      pW3P                  VP                  8g  ,          p\        P                  ! WE4       R
# )r   r  r   r  r   r   rR  za == br   za != bN)r   rq   rt   r   r   rq  rA   r   r   rB   rC   )r1   r   r"   r2   r   r   s   &&&   r   test_object_array_eq_ne1TestDataFrameQueryStrings.test_object_array_eq_ne>  s    T.)T.)RYY**1-66qr6BRYY**1-66qr6B	
 hhxh>
c'hhxh>
c'r   c           
        \        V4       \        ^^4       UUu. uF  pR F  pRV RV 2NK  	  K  	  upp^,          p\        RR^R7      p\        RR^R7      p\        R\        P
                  ! ^^4      P                  ^4      RVR	VP                  V4      /4      pWP                  R
8H  ,          p	VP                  RWR7      p
\        P                  ! W4       R# u uppi )r,   zpage r  z2014-01-01 0:00:0130s)r  r'  z2014-02-01 1:00:01idevent	timestampz"page 1 load"z'"page 1 load"' in eventr   N)loadexit)r&   rp   r
   r   rt   r   repeatappendr  rA   rB   rC   )r1   r   r"   rd   acteventsstamps1stamps2r2   r~   r   s   &&&        r   test_query_with_nested_strings8TestDataFrameQueryStrings.test_query_with_nested_stringsO  s     (',Q{
'2!>NseA3au>N{
 1qI1qIbii1o,,Q/W^^G4
 hh/12hh5fhT
h,
s   C c                    \        V4       \        R . ROR. RO/4      pVP                  RWR7      pW3P                  R8H  ,          p\        P
                  ! WE4       R# )r   r   test & testza == "test & test"r   N)r   r   r(  r+   r  )r1   r   r"   r2   r   r0  s   &&&   r   (test_query_with_nested_special_characterBTestDataFrameQueryStrings.test_query_with_nested_special_characterb  sP     (6YGHhh+FhJ44=()
c)r   zop, funcrZ  r[  r\  r]  c                   \        \        P                  P                  ^4      P	                  \        R4      ^4      4      p\        \        P                  ! VP                  4      4      p\        RVRV/4      pVP                  RV R2W!R7      pWt! VP                  R4      ,          p	\        P                  ! W4       R# )	r-   abcdeXr   zX z "d"r   rR  N)r	   rt   r   r   r   rq   r   r   r   rA   r-  rB   rC   )
r1   r   r"   rz   funcr   r   r2   r   r~   s
   &&&&&     r   test_query_lex_compare_strings8TestDataFrameQueryStrings.test_query_lex_compare_stringsi  s     299((+224="EF299QVV$%QQ'(hhB4t}VhCd244o&
c,r   c                V   Rp\         P                  P                  ^4      P                  ^^\	        V4      3R7      P                  \        4      p\        WCR7      pVP                  RW!R7      pWUP                  VP                  ,          ,          p\        P                  ! Wg4       R# )bidr   rj   z	bid & askr   N)r2  bidsizeaskasksize)rt   r   r   rq  r^  rM  boolr   rA   r2  r4  rB   rC   )r1   r   r"   ri   datar2   r   r~   s   &&&     r   "test_query_single_element_booleans<TestDataFrameQueryStrings.test_query_single_element_booleans{  s~    4yy$$Q'00!S\9J0KRRSWXt-hh{6hAffrvvo&
c,r   c                    \        V4       \        R . ROR. RO/4      pW3P                  R8H  ,          pRpVP                  RWR7      p\        P
                  ! WF4       R# )SymbolBUD USPricezSymbol == @symbr   N)r<  r<  IBM USr>  )gl[@gGzn[@gf@g33333f@)r&   r   r;  rA   rB   rC   )r1   r   r"   r2   esymbrd  s   &&&    r   !test_query_string_scalar_variable;TestDataFrameQueryStrings.test_query_string_scalar_variable  s^     (B9
 yyH$%HH&vHE
a#r   in_listNc                v   R pRp\        V4       UUu/ uF  w  rEVR8X  g   K  WEbK  	  ppp\        RV/RR7      pVP                  P                  R4      Vn        \        RV/RR7      p\	        \        VP                  4      VP                  P                  R7      Vn        VP                  RW#R7      p	WR,          R8H  ,          p
VP                  R	W#R7      p\        P                  ! W4       \        P                  ! W4       \        P                  ! W4       \        P                  ! W4       R
# u uppi )r   r   asdfr   stringdtypeint64za == 'asdf'r   za <= 'asdf'N)
	enumerater   rh   rM  r   rq   rH  rA   rB   rC   )r1   rC  r   r"   rc  valuer~   df_expectedr2   r   r   res3s   &&          r   test_query_string_null_elements9TestDataFrameQueryStrings.test_query_string_null_elements  s     -6w-?S-?5F?HAH-?Shx@'--44W=W~X6bhhrxx~~>xxfxDS'V#$xxfxD
d0
d)
d)
d) Ts
   D5D5r   )NrE  ghjk)rE  NrP  )rE  rP  N)NNrE  )rE  NN)NNN)rY   rZ   r[   r\   r
  r  r  r  r%  r)  r$   r   r   r  ltgtleger/  r8  rA  rN  r^   r_   r`   s   @r   r  r    s     'DR!/FK4("-&* [[(++(++8;;8;;		
---$ [["""  	

*
*r   r  c                      a  ] tR tRt o ]P
                  R 4       tR tR t]P                  P                  R. R	O4      R 4       tRtV tR# )
TestDataFrameEvalWithFramei  c                    \        \        P                  P                  ^4      P	                  R4      \        R4      R7      # )r-   ro  rj   r  )r   rt   r   r   r   rq   r0   s   &r   frame TestDataFrameEvalWithFrame.frame  s2    II!!!$44W=tE{
 	
r   c                    VP                  R W2R7      pVP                  VP                  ,           p\        P                  ! WE4       R# )r   r   NrD   r   r   rB   rE   r1   rX  r   r"   r   r   s   &&&&  r   test_simple_expr+TestDataFrameEvalWithFrame.test_simple_expr  s4    jjj?577"
s+r   c                    VP                  R W2R7      pVP                  VP                  ^8  ,          VP                  ,           p\        P                  ! WE4       R# )za[a < 1] + br   Nr[  r\  s   &&&&  r   test_bool_arith_expr/TestDataFrameEvalWithFrame.test_bool_arith_expr  sA    jjjF1%/
s+r   rz   c                    \        R ^^.RRR./4      pRp\        P                  ! \        VR7      ;_uu_ 4        VP	                  RV R2W!R7       R	R	R	4       R	#   + '       g   i     R	# ; i)
r   r   r   rR  z:unsupported operand type\(s\) for .+: '.+' and '.+'|CannotrR   r  z br   N)r   r$   rT   r_  rD   )r1   r   r"   rz   r2   rV   s   &&&&  r   %test_invalid_type_for_operator_raises@TestDataFrameEvalWithFrame.test_invalid_type_for_operator_raises  sZ    aVS3*56K]]9C00GGbBKG> 1000s   AA-	r   N)rl   rn   rm   ro   )rY   rZ   r[   r\   r$   r]   rX  r]  r`  r   r   rc  r^   r_   r`   s   @r   rV  rV    sK     ^^
 

,
,
 [[T#78? 9?r   rV  c                   `  a  ] tR tRt o ]P
                  R 4       tR tR tR t	R t
R tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R  t$]PJ                  PM                  R!. R8O4      R" 4       t'R# t(R$ t)R% t*R& t+R' t,R( t-R) t.R* t/R+ t0R, t1R- t2R. t3]PJ                  PM                  R/. R9O4      R0 4       t4]PJ                  PM                  R1R2R3.4      ]PJ                  PM                  R/. R9O4      R4 4       4       t5R5 t6R6t7V t8R7# ):!TestDataFrameQueryBacktickQuotingi  c                    \        / R. RObR. RObR. RObR. RObR. RObR. RObR. RObR. RObR	. R ObR
. R!ObR. R"ObR. R#ObR. R$ObR. R%ObR. R&ObR. R'ObR. R(ObR. R)OR. R*OR. R+OR. ROR. ROR. R,O^. R-O/C4      # ).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*   B BC CC  CC_CD_D DE.EF-F1e1defA (x)zB(x)zB (x)     &^ :!€$?(} >    <++*''  r    A  it'sthat's   ☺
   xy （z）   xy （z\uff09foo#barr+   )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   )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/   r0   s   &r   r2   $TestDataFrameQueryBacktickQuoting.df  s    Yy y 		
 z  y z y {  	  /	 K  i!" i#$ 	)yi )991
 	
r   c                z    VP                  R 4      pV^VR,          8  ,          p\        P                  ! W#4       R# )z	1 < `B B`rh  NrA   rB   rC   r1   r2   r   r   s   &&  r   #test_single_backtick_variable_queryETestDataFrameQueryBacktickQuoting.test_single_backtick_variable_query  s0    hh{#A5	M"
c*r   c                    VP                  R 4      pV^VR,          8  ^VR,          8  ,          ,          p\        P                  ! W#4       R# )z1 < `B B` and 4 < `C C`rh  ri  Nr  r  s   &&  r   !test_two_backtick_variables_queryCTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_query  s>    hh01QE]q2e9}56
c*r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z	A + `B B`r*   rh  NrD   rB   rE   r  s   &&  r   "test_single_backtick_variable_exprDTestDataFrameQueryBacktickQuoting.test_single_backtick_variable_expr  0    ggk"C2e9$
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z`B B` + `C C`rh  ri  Nr  r  s   &&  r    test_two_backtick_variables_exprBTestDataFrameQueryBacktickQuoting.test_two_backtick_variables_expr  s0    ggo&ERY&
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z	`C_C` + Ark  r*   Nr  r  s   &&  r    test_already_underscore_variableBTestDataFrameQueryBacktickQuoting.test_already_underscore_variable  s0    ggk"ERW$
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )zC_C + `C C`rk  ri  Nr  r  s   &&  r   test_same_name_but_underscores@TestDataFrameQueryBacktickQuoting.test_same_name_but_underscores  s0    ggm$ERY&
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )zA + `D_D D`r*   rl  Nr  r  s   &&  r   !test_mixed_underscores_and_spacesCTestDataFrameQueryBacktickQuoting.test_mixed_underscores_and_spaces  s0    ggm$C2g;&
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z	A + `C_C`r*   rk  Nr  r  s   &&  r   'test_backtick_quote_name_with_no_spacesITestDataFrameQueryBacktickQuoting.test_backtick_quote_name_with_no_spaces  r  r   c                    VP                  R 4      pVR,          VR,          ,           VR,          ,
          p\        P                  ! W#4       R# )z`E.E` + `F-F` - Arm  rn  r*   Nr  r  s   &&  r   test_special_characters9TestDataFrameQueryBacktickQuoting.test_special_characters  s:    gg)*ERY&C0
s+r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z	A + `1e1`r*   ro  Nr  r  s   &&  r   test_start_with_digit7TestDataFrameQueryBacktickQuoting.test_start_with_digit  r  r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z	A + `def`r*   rp  Nr  r  s   &&  r   test_keyword.TestDataFrameQueryBacktickQuoting.test_keyword  r  r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )z`A` > 2r*   Nr  r  s   &&  r   test_unneeded_quoting7TestDataFrameQueryBacktickQuoting.test_unneeded_quoting$  s-    hhy!sGaK
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )z`A (x)` > 2rq  Nr  r  s   &&  r   test_parenthesis2TestDataFrameQueryBacktickQuoting.test_parenthesis)  s.    hh}%wK!O$
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )z`` > 5r   Nr  r  s   &&  r   test_empty_string3TestDataFrameQueryBacktickQuoting.test_empty_string.  s-    hhx rFQJ
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )z
`C  C` > 5rj  Nr  r  s   &&  r   test_multiple_spaces6TestDataFrameQueryBacktickQuoting.test_multiple_spaces3  s.    hh|$vJN#
c*r   c                    VP                  R 4      pVR,          VR,          ,           p\        P                  ! W#4       R# )z` A` + `  `rs  rt  Nr  r  s   &&  r   test_start_with_spaces8TestDataFrameQueryBacktickQuoting.test_start_with_spaces8  s0    ggm$DBtH$
s+r   c                x    VP                  R 4      pW^,          ^8H  ,          p\        P                  ! W#4       R# )z`1` == 7Nr  r  s   &&  r   	test_ints+TestDataFrameQueryBacktickQuoting.test_ints=  s-    hhz"qEQJ
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )u"   `  &^ :!€$?(} >    <++*''  ` > 4rr  Nr  r  s   &&  r   test_lots_of_operators_string?TestDataFrameQueryBacktickQuoting.test_lots_of_operators_stringB  s2    hh;<56:;
c*r   c                    R p\         P                  ! \        VR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)z(module 'pandas' has no attribute 'thing'rR   z	@pd.thingN)r$   rT   AttributeErrorrD   )r1   r2   messages   && r   test_missing_attribute8TestDataFrameQueryBacktickQuoting.test_missing_attributeG  s3    <]]>99GGK  :999s   AA	c                    VP                  R 4      pWR,          VR,          8  ,          p\        P                  ! W#4       R# )z`it's` > `that's`ru  rv  Nr  r  s   &&  r   
test_quote,TestDataFrameQueryBacktickQuoting.test_quoteL  s4    hh*+vJH-.
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )u	   `☺` > 4rw  Nr  r  s   &&  r   #test_character_outside_range_smileyETestDataFrameQueryBacktickQuoting.test_character_outside_range_smileyQ  s.    hh{#uIM"
c*r   c                x    VP                  R 4      pWR,          ^8H  ,          p\        P                  ! W#4       R# )u   `xy （z）` == 2rx  Nr  r  s   &&  r   *test_character_outside_range_2_byte_parensLTestDataFrameQueryBacktickQuoting.test_character_outside_range_2_byte_parensV  s1    hh*+|$)*
c*r   c                x    VP                  R 4      pWR,          ^8H  ,          p\        P                  ! W#4       R# )u   `xy （z\uff09` == 2ry  Nr  r  s   &&  r   1test_character_outside_range_and_actual_backslashSTestDataFrameQueryBacktickQuoting.test_character_outside_range_and_actual_backslash\  s2    hh./*+q01
c*r   c                x    VP                  R 4      pWR,          ^8  ,          p\        P                  ! W#4       R# )z`foo#bar` > 4rz  Nr  r  s   &&  r   test_hashtag.TestDataFrameQueryBacktickQuoting.test_hashtagb  s/    hh'yMA%&
c*r   c                    \        RR.R7      pVP                  R4      pWR,          ^8  ,          p\        P                  ! W#4       R# )r,   a#rj   z`a#` < 2Nr+   r   rA   rB   rC   r1   r2   rG   r~   s   &   r   1test_expr_with_column_name_with_hashtag_characterSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_hashtag_characterg  s<    y4&1*%hl#
f/r   c                    \        RR.R7      pVP                  R4      pWR,          ^8  ,          p\        P                  ! W#4       R# )r,   r  rj   z`a#` < 2  # This is a commentNr+   r  r  s   &   r   test_expr_with_comment8TestDataFrameQueryBacktickQuoting.test_expr_with_commentn  s=    y4&19:hl#
f/r   c                    \        RR.R7      pVP                  R4      pWR,          ^8  ,          p\        P                  ! W#4       R# )r,   za`#brj   z`a``#b` < 2Nr+   r  r  s   &   r   1test_expr_with_column_name_with_backtick_and_hashSTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick_and_hashu  s<    y6(3-(j1n%
f/r   c                    \        R RRR/4      pVP                  R4      pWR ,          ^8  ,          p\        P                  ! W#4       R# )za`br   z
`a``b` < 2Nr+   r   r  r  s   &   r   (test_expr_with_column_name_with_backtickJTestDataFrameQueryBacktickQuoting.test_expr_with_column_name_with_backtick|  sA    y$	:;,'i!m$
f/r   c                    \        RR.R7      pVP                  R4      pVRVR,          8  ,          p\        P                  ! W#4       R# )`
#backticksrj   z'```' < `#backticks`z```Nr  z`````z
``````````r  r  s   &   r   $test_expr_with_string_with_backticksFTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticks  sB    3l^L01eb../
f/r   c                    \        RR.R7      pVP                  R4      pVRVR,          8  ,          p\        P                  ! W#4       R# )r  r  rj   z'`#backticks`' < `#backticks`z`#backticks`Nr  r  r  s   &   r   Ctest_expr_with_string_with_backticked_substring_same_as_column_nameeTestDataFrameQueryBacktickQuoting.test_expr_with_string_with_backticked_substring_same_as_column_name  sB    3l^L9:nr,'778
f/r   zcol1,col2,exprc           	         \        V^V^/V^V^/VRVR/VRVR/.4      pVP                  V4      pWDV,          WB,          8  ,          p\        P                  ! WV4       R# )r,   Nrk   r  )r1   col1col2exprr2   rG   r~   s   &&&&   r   3test_expr_with_column_names_with_special_charactersUTestDataFrameQueryBacktickQuoting.test_expr_with_column_names_with_special_characters  ss     q$"q$"r4$r4$	
 $h)*
f/r   c                    \        RR.R7      pVP                  R4      pVRVR,          8  ,          p\        P                  ! W#4       R# )aaacolumn_namerj   z'value' < column_namerK  Nr  vvvzzzr  r  s   &   r   test_expr_with_no_backticks=TestDataFrameQueryBacktickQuoting.test_expr_with_no_backticks  sB    ,}oF12g= 112
f/r   c                    \        RR.R7      p\        P                  ! \        \        3RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r,   column-namerj   re  rR   z5 < `column-nameNr,   r   r   r   r$   rT   rf  r   rA   r6   s   & r   2test_expr_with_no_quotes_and_backtick_is_unmatchedTTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_unmatched  sD    zM?;]]K4<LMMHH'( NMMM   AA&	c                    \        RR.R7      pVP                  R4      pV^VR,          8  ,          p\        P                  ! W#4       R# )r,   r  rj   z5 < `column-name`Nr  r  r  s   &   r   0test_expr_with_no_quotes_and_backtick_is_matchedRTestDataFrameQueryBacktickQuoting.test_expr_with_no_quotes_and_backtick_is_matched  sA    zM?;-.a"]++,
f/r   c                    \        RR.R7      p\        P                  ! \        \        3RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r,   It'srj   unterminated string literalrR   z	5 < `It'sNr  r  r6   s   & r   Etest_expr_with_backtick_opened_before_quote_and_backtick_is_unmatchedgTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_unmatched  sO    zF84]]*%-J
 
 HH[!
 
 
 
r  c                    \        RR.R7      pVP                  R4      pV^VR,          8  ,          p\        P                  ! W#4       R# )r,   r  rj   z
5 < `It's`Nr  r  r  s   &   r   Ctest_expr_with_backtick_opened_before_quote_and_backtick_is_matchedeTestDataFrameQueryBacktickQuoting.test_expr_with_backtick_opened_before_quote_and_backtick_is_matched  s>    zF84,'a"V*n%
f/r   c                    \        RR.R7      p\        P                  ! \        \        3RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r  r  rj   r  rR   z+`column-name` < 'It`s that\'s "quote" #hashNr  r  r6   s   & r   Btest_expr_with_quote_opened_before_backtick_and_quote_is_unmatcheddTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_unmatched  sQ    ,}oF]]*%-J
 
 HHEF
 
 
 
r  c                    \        RR.R7      pVP                  R4      pWR,          R8  ,          p\        P                  ! W#4       R# )r  r  rj   z,`column-name` < 'It`s that\'s "quote" #hash'It`s that's "quote" #hashNr  r  r  s   &   r   Gtest_expr_with_quote_opened_before_backtick_and_quote_is_matched_at_endiTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_matched_at_end  sA    ,}oFKL'*FFG
f/r   c                    \        RR.R7      pVP                  R4      pVRVR,          8  ,          p\        P                  ! W#4       R# )r  r  rj   z,'It`s that\'s "quote" #hash' < `column-name`r  Nr  r  r  s   &   r   Gtest_expr_with_quote_opened_before_backtick_and_quote_is_matched_in_midiTestDataFrameQueryBacktickQuoting.test_expr_with_quote_opened_before_backtick_and_quote_is_matched_in_mid  sC    ,}oFKL2R5FFG
f/r   c                z   R pV.pVP                  R4       \        P                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     LP; i  + '       g   i     R# ; i)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                      ^# r:   r   )r  s   *r   r.  NTestDataFrameQueryBacktickQuoting.test_call_non_named_expression.<locals>.func  s    r   z@func()z"Only named functions are supportedrR   z@funcs[0]()Nz@funcs[0].__call__())rD   r$   rT   r_  )r1   r2   r.  funcss   &&  r   test_call_non_named_expression@TestDataFrameQueryBacktickQuoting.test_call_non_named_expression  s    	 
	]]9,PQQGGM" R ]]9,PQQGG*+ RQ RQ RQQs   B:B)B&	)B:	c                J   \        ^^.^^..RR.VR7      p\        '       d   \        MRp\        P                  ! V4      ;_uu_ 4        VP                  R4      pRRR4       \        . RO. RO.. ROVR7      p\        P                  ! XV4       R#   + '       g   i     L?; i)	r,   r   r   ri   rH  Nz	c = b - ar  )r.   r   r,   rz  r   r   RuntimeWarningrB   assert_produces_warningrD   rC   )r1   any_numeric_ea_and_arrow_dtyper2   warningrG   r~   s   &&    r   test_ea_dtypes0TestDataFrameQueryBacktickQuoting.test_ea_dtypes  s    VaVsCj8V
 %6$5.4''00WW[)F 1	"#0

 	fh/ 10   	BB"	c                J   \        ^^.^^..RR.RR7      p\        '       d   \        MRp\        P                  ! V4      ;_uu_ 4        VP                  R4      pRRR4       \        . RO. RO.. R	ORR7      p\        P                  ! XV4       R#   + '       g   i     L?; i)
r,   r   r   Float64r  Nz	c = b - 1r  )r.   r   r.   rz  r  )r1   r2   r   rG   r~   s   &    r   test_ea_dtypes_and_scalar;TestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar  s    AA'#s9M$5$5.4''00WW[)F 1	"O9
 	fh/ 10r#  c                   \        ^^.^^..RR.VR7      pVP                  R4      p\        R\        ^^.VR7      R\        ^^.VR7      R\        ^^.VR,          P                  R7      /4      p\        P
                  ! W44       R# )r,   r   r   r  z	c = 2 - 1rG  r   N)r   rD   r	   rH  rB   rC   )r1   r  r2   rG   r~   s   &&   r   #test_ea_dtypes_and_scalar_operationETestDataFrameQueryBacktickQuoting.test_ea_dtypes_and_scalar_operation  s    VaVsCj8V
 %VQF*HIVQF*HIVQF&+*;*;<
 	f/r   rH  c                   VR 8X  d   \         P                  ! R4       \        R^^./VR7      p^0pVR8X  d   \        '       d   \        MRp\
        P                  ! V4      ;_uu_ 4        VP                  R4      pRRR4       \        R^./\        ^^4      VR7      p\
        P                  ! XV4       R#   + '       g   i     LD; i)int64[pyarrow]pyarrowr   rG  Int64Nz	a in @ref)rh   rH  )
r$   importorskipr   r   r  rB   r  rA   rp   rC   )r1   rH  r2   refr   rG   r~   s   &&     r   test_query_ea_dtypes6TestDataFrameQueryBacktickQuoting.test_query_ea_dtypes   s    $$	*aV}E2c$)W$49J9J.PT''00XXk*F 1cA3ZuQ{%H
fh/ 10s   +B99C		r"   r   r   c                L   VR 8X  d   \         MRpVR 8X  d#   \        '       g   \        P                  ! R4       VR8X  d   \        P                  ! R4       \        R\        . RORR7      R\        . ROVR7      /4      p\        P                  ! V4      ;_uu_ 4        VP                  R	VR
7      pRRR4       \        R\        ^^.R\        ^ ^^4      R7      R\        ^^.V\        ^ ^^4      R7      /4      p\        P                  ! XV4       R#   + '       g   i     Lj; i)r   Nznumexpr not installedr,  r-  r*   r.  rG  r   zA == BrK   )rH  rh   )r,   r,   r-   )r,   r-   r-   )r  r   r$   r%   r/  r   r	   rB   r  rA   rp   rC   )r1   rH  r"   r   r2   rG   r~   s   &&&    r   !test_query_ea_equality_comparisonCTestDataFrameQueryBacktickQuoting.test_query_ea_equality_comparison-  s     %+i$7.TY'8'8KK/0$$	*&'2C	QV9WX
 ''00XXhvX6F 1VQF'q!QHVQF%uQ1~F
 	fh/ 10s   DD#	c                   \         P                  P                  R 4      p\        R\         P                  ! RR.RR7      /\
        R7      pVP                  R4      p\        R. /\
        R7      p\        P                  ! W44       R# )UTCr   NT)utcrG  za > @now)	r   	Timestampnowr   to_datetimerN  rA   rB   rC   )r1   r:  r2   rG   r~   s   &    r   test_all_nat_in_object8TestDataFrameQueryBacktickQuoting.test_all_nat_in_objectC  sb    llu%R^^T4LdCDFS*%c2Yf5
f/r   r   N))ru  rv  z`it's` < `that's`)zit"szthat"sz`it"s` < `that"s`)ru  zthat's "nice"z`it's` < `that's "nice"`)ru  zthat's #coolz+`it's` < `that's #cool` # This is a comment)rI  r.  r,  )9rY   rZ   r[   r\   r$   r]   r2   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  r  r  r   r  r  r  r  r  r  r!  r&  r)  r1  r4  r<  r^   r_   r`   s   @r   rf  rf    s    ^^!
 !
F+
+
,
,
,
,
,
,
,
,
,
+
+
+
+
,
+
+
!
+
+
+++
000000 [[	
000)0"0G00,*0	00 [[W&JK
0 L
0 [[X)'<=[[W&JK0 L >0(0 0r   rf  ))r  tokenizer   numpyrt   r$   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdr   r   r   r   r   r	   r
   pandas._testing_testingrB   pandas.core.computation.checkr   r]   r   r   
skip_if_nor"   r&   r(   rc   r   r  r  r  r  r  rV  rf  r   r   r   <module>rI     sK       * )    ; (+= > fll9BMM)4LMN	=
01 01fL1 L1^GI GIT yy0 y0 y0x yu!&E u! u!p0%D 0*0%D 0*T* T*n? ?4A0 A0r   