BUG: fix calling local references with keyword arguments in query by danielhrisca · Pull Request #26426 · pandas-dev/pandas (original) (raw)

calling local references with keyword arguments in query fails with attribute error:

   val
6    6
7    7
8    8
9    9
Traceback (most recent call last):

  File "C:/Users/uidn3651/Desktop/untitled0.py", line 10, in <module>
    print(df.query('val > @f(4, b=5)'))

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\frame.py", line 3052, in query
    res = self.eval(expr, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\frame.py", line 3169, in eval
    return _eval(expr, inplace=inplace, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\eval.py", line 293, in eval
    truediv=truediv)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 749, in __init__
    self.terms = self.parse()

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 766, in parse
    return self._visitor.visit(self.expr)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 370, in visit
    return visitor(node, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 376, in visit_Module
    return self.visit(expr, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 370, in visit
    return visitor(node, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 379, in visit_Expr
    return self.visit(node.value, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 370, in visit
    return visitor(node, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 674, in visit_Compare
    return self.visit(binop)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 370, in visit
    return visitor(node, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 476, in visit_BinOp
    op, op_class, left, right = self._maybe_transform_eq_ne(node)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 413, in _maybe_transform_eq_ne
    right = self.visit(node.right, side='right')

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 370, in visit
    return visitor(node, **kwargs)

  File "d:\work\02__pythonworkspace\_venv\lib\site-packages\pandas\core\computation\expr.py", line 657, in visit_Call
    kwargs.append(ast.keyword(

AttributeError: 'dict' object has no attribute 'append'
   val
6    6
7    7
8    8
9    9
   val
6    6
7    7
8    8
9    9