---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
File /var/app/enabled/bigshared/common/dataframe.py:72, in evalex(df, expr, **kwargs)
File /var/app/enabled/bigexpr/impl/expression.py:462, in evaluate(df, expr, user_functions, user_variables)
File /var/app/enabled/bigexpr/impl/expression.py:57, in ne_evaluate(root, local_vars)
File /usr/local/python3/lib/python3.8/site-packages/numexpr/necompiler.py:809, in evaluate(ex, local_dict, global_dict, out, order, casting, **kwargs)
808 if expr_key not in _names_cache:
--> 809 _names_cache[expr_key] = getExprNames(ex, context)
810 names, ex_uses_vml = _names_cache[expr_key]
File /usr/local/python3/lib/python3.8/site-packages/numexpr/necompiler.py:696, in getExprNames(text, context)
695 def getExprNames(text, context):
--> 696 ex = stringToExpression(text, {}, context)
697 ast = expressionToAST(ex)
File /usr/local/python3/lib/python3.8/site-packages/numexpr/necompiler.py:289, in stringToExpression(s, types, context)
288 # now build the expression
--> 289 ex = eval(c, names)
290 if expressions.isConstant(ex):
File <expr>:1
TypeError: unsupported operand type(s) for &: 'int' and 'VariableNode'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:201, in Scope.resolve(self, key, is_local)
200 if self.has_resolvers:
--> 201 return self.resolvers[key]
203 # if we're here that means that we have no locals and we also have
204 # no resolvers
File /usr/local/python3/lib/python3.8/collections/__init__.py:898, in ChainMap.__getitem__(self, key)
897 pass
--> 898 return self.__missing__(key)
File /usr/local/python3/lib/python3.8/collections/__init__.py:890, in ChainMap.__missing__(self, key)
889 def __missing__(self, key):
--> 890 raise KeyError(key)
KeyError: 'ta_sma'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:212, in Scope.resolve(self, key, is_local)
208 try:
209 # last ditch effort we look in temporaries
210 # these are created when parsing indexing expressions
211 # e.g., df[df > 0]
--> 212 return self.temps[key]
213 except KeyError as err:
214 # runtime import because ops imports from scope
KeyError: 'ta_sma'
The above exception was the direct cause of the following exception:
UndefinedVariableError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:652, in BaseExprVisitor.visit_Call(self, node, side, **kwargs)
651 try:
--> 652 res = self.visit(node.func)
653 except UndefinedVariableError:
654 # Check if this is a supported function name
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:535, in BaseExprVisitor.visit_Name(self, node, **kwargs)
534 def visit_Name(self, node, **kwargs):
--> 535 return self.term_type(node.id, self.env, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:86, in Term.__init__(self, name, env, side, encoding)
85 self.is_local = tname.startswith(LOCAL_TAG) or tname in DEFAULT_GLOBALS
---> 86 self._value = self._resolve_name()
87 self.encoding = encoding
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:103, in Term._resolve_name(self)
102 def _resolve_name(self):
--> 103 res = self.env.resolve(self.local_name, is_local=self.is_local)
104 self.update(res)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:217, in Scope.resolve(self, key, is_local)
215 from pandas.core.computation.ops import UndefinedVariableError
--> 217 raise UndefinedVariableError(key, is_local) from err
UndefinedVariableError: name 'ta_sma' is not defined
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
File module2/modules/filter/v3/__init__.py:48, in biglearning.module2.modules.filter.v3.__init__.BigQuantModule.run()
File /var/app/enabled/bigshared/common/dataframe.py:74, in evalex(df, expr, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/frame.py:3596, in DataFrame.eval(self, expr, inplace, **kwargs)
3594 kwargs["resolvers"] = kwargs.get("resolvers", ()) + tuple(resolvers)
-> 3596 return _eval(expr, inplace=inplace, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/eval.py:342, in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace)
334 env = ensure_scope(
335 level + 1,
336 global_dict=global_dict,
(...)
339 target=target,
340 )
--> 342 parsed_expr = Expr(expr, engine=engine, parser=parser, env=env)
344 # construct the engine and evaluate the parsed expression
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:798, in Expr.__init__(self, expr, engine, parser, env, level)
797 self._visitor = PARSERS[parser](self.env, self.engine, self.parser)
--> 798 self.terms = self.parse()
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:817, in Expr.parse(self)
814 """
815 Parse an expression.
816 """
--> 817 return self._visitor.visit(self.expr)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:407, in BaseExprVisitor.visit_Module(self, node, **kwargs)
406 expr = node.body[0]
--> 407 return self.visit(expr, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:410, in BaseExprVisitor.visit_Expr(self, node, **kwargs)
409 def visit_Expr(self, node, **kwargs):
--> 410 return self.visit(node.value, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:737, in BaseExprVisitor.visit_BoolOp(self, node, **kwargs)
736 operands = node.values
--> 737 return reduce(visitor, operands)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:731, in BaseExprVisitor.visit_BoolOp.<locals>.visitor(x, y)
730 lhs = self._try_visit_binop(x)
--> 731 rhs = self._try_visit_binop(y)
733 op, op_class, lhs, rhs = self._maybe_transform_eq_ne(node, lhs, rhs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:726, in BaseExprVisitor._try_visit_binop(self, bop)
725 return bop
--> 726 return self.visit(bop)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:710, in BaseExprVisitor.visit_Compare(self, node, **kwargs)
709 binop = ast.BinOp(op=op, left=node.left, right=comps[0])
--> 710 return self.visit(binop)
712 # recursive case: we have a chained comparison, a CMP b CMP c, etc.
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:522, in BaseExprVisitor.visit_BinOp(self, node, **kwargs)
521 def visit_BinOp(self, node, **kwargs):
--> 522 op, op_class, left, right = self._maybe_transform_eq_ne(node)
523 left, right = self._maybe_downcast_constants(left, right)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:442, in BaseExprVisitor._maybe_transform_eq_ne(self, node, left, right)
441 if left is None:
--> 442 left = self.visit(node.left, side="left")
443 if right is None:
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:656, in BaseExprVisitor.visit_Call(self, node, side, **kwargs)
655 try:
--> 656 res = FuncNode(node.func.id)
657 except ValueError:
658 # Raise original error
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:613, in FuncNode.__init__(self, name)
608 if name not in MATHOPS or (
609 NUMEXPR_INSTALLED
610 and NUMEXPR_VERSION < LooseVersion("2.6.9")
611 and name in ("floor", "ceil")
612 ):
--> 613 raise ValueError(f'"{name}" is not a supported function')
615 self.name = name
ValueError: "ta_sma" is not a supported function
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:201, in Scope.resolve(self, key, is_local)
200 if self.has_resolvers:
--> 201 return self.resolvers[key]
203 # if we're here that means that we have no locals and we also have
204 # no resolvers
File /usr/local/python3/lib/python3.8/collections/__init__.py:898, in ChainMap.__getitem__(self, key)
897 pass
--> 898 return self.__missing__(key)
File /usr/local/python3/lib/python3.8/collections/__init__.py:890, in ChainMap.__missing__(self, key)
889 def __missing__(self, key):
--> 890 raise KeyError(key)
KeyError: 'ta_sma'
During handling of the above exception, another exception occurred:
KeyError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:212, in Scope.resolve(self, key, is_local)
208 try:
209 # last ditch effort we look in temporaries
210 # these are created when parsing indexing expressions
211 # e.g., df[df > 0]
--> 212 return self.temps[key]
213 except KeyError as err:
214 # runtime import because ops imports from scope
KeyError: 'ta_sma'
The above exception was the direct cause of the following exception:
UndefinedVariableError Traceback (most recent call last)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:652, in BaseExprVisitor.visit_Call(self, node, side, **kwargs)
651 try:
--> 652 res = self.visit(node.func)
653 except UndefinedVariableError:
654 # Check if this is a supported function name
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:535, in BaseExprVisitor.visit_Name(self, node, **kwargs)
534 def visit_Name(self, node, **kwargs):
--> 535 return self.term_type(node.id, self.env, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:86, in Term.__init__(self, name, env, side, encoding)
85 self.is_local = tname.startswith(LOCAL_TAG) or tname in DEFAULT_GLOBALS
---> 86 self._value = self._resolve_name()
87 self.encoding = encoding
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:103, in Term._resolve_name(self)
102 def _resolve_name(self):
--> 103 res = self.env.resolve(self.local_name, is_local=self.is_local)
104 self.update(res)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/scope.py:217, in Scope.resolve(self, key, is_local)
215 from pandas.core.computation.ops import UndefinedVariableError
--> 217 raise UndefinedVariableError(key, is_local) from err
UndefinedVariableError: name 'ta_sma' is not defined
During handling of the above exception, another exception occurred:
ValueError Traceback (most recent call last)
Cell In[4], line 140
129 m5 = M.chinaa_stock_filter.v1(
130 input_data=m3.data,
131 index_constituent_cond=['中证1000'],
(...)
136 output_left_data=False
137 )
139 # @module(position="314,381.989013671875", comment='', comment_collapsed=True)
--> 140 m6 = M.filter.v3(
141 input_data=m5.data,
142 expr='pe_ttm_0>0 & list_days_0>360 & ta_sma(close_0,30)>ta_sma(close_2,30) & price_limit_status_0==2 & volatility_30_0<0.1',
143 output_left_data=False
144 )
146 # @module(position="100,515", comment='', comment_collapsed=True)
147 m4 = M.hftrade.v2(
148 instruments=m1.data,
149 options_data=m6.data,
(...)
172 backtest_only=False
173 )
File module2/common/modulemanagerv2.py:88, in biglearning.module2.common.modulemanagerv2.BigQuantModuleVersion.__call__()
File module2/common/moduleinvoker.py:370, in biglearning.module2.common.moduleinvoker.module_invoke()
File module2/common/moduleinvoker.py:292, in biglearning.module2.common.moduleinvoker._invoke_with_cache()
File module2/common/moduleinvoker.py:253, in biglearning.module2.common.moduleinvoker._invoke_with_cache()
File module2/common/moduleinvoker.py:212, in biglearning.module2.common.moduleinvoker._module_run()
File module2/modules/filter/v3/__init__.py:69, in biglearning.module2.modules.filter.v3.__init__.BigQuantModule.run()
File /var/app/enabled/bigshared/common/dataframe.py:74, in evalex(df, expr, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/frame.py:3596, in DataFrame.eval(self, expr, inplace, **kwargs)
3593 kwargs["target"] = self
3594 kwargs["resolvers"] = kwargs.get("resolvers", ()) + tuple(resolvers)
-> 3596 return _eval(expr, inplace=inplace, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/eval.py:342, in eval(expr, parser, engine, truediv, local_dict, global_dict, resolvers, level, target, inplace)
333 # get our (possibly passed-in) scope
334 env = ensure_scope(
335 level + 1,
336 global_dict=global_dict,
(...)
339 target=target,
340 )
--> 342 parsed_expr = Expr(expr, engine=engine, parser=parser, env=env)
344 # construct the engine and evaluate the parsed expression
345 eng = ENGINES[engine]
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:798, in Expr.__init__(self, expr, engine, parser, env, level)
796 self.parser = parser
797 self._visitor = PARSERS[parser](self.env, self.engine, self.parser)
--> 798 self.terms = self.parse()
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:817, in Expr.parse(self)
813 def parse(self):
814 """
815 Parse an expression.
816 """
--> 817 return self._visitor.visit(self.expr)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:407, in BaseExprVisitor.visit_Module(self, node, **kwargs)
405 raise SyntaxError("only a single expression is allowed")
406 expr = node.body[0]
--> 407 return self.visit(expr, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:410, in BaseExprVisitor.visit_Expr(self, node, **kwargs)
409 def visit_Expr(self, node, **kwargs):
--> 410 return self.visit(node.value, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:737, in BaseExprVisitor.visit_BoolOp(self, node, **kwargs)
734 return self._maybe_evaluate_binop(op, node.op, lhs, rhs)
736 operands = node.values
--> 737 return reduce(visitor, operands)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:731, in BaseExprVisitor.visit_BoolOp.<locals>.visitor(x, y)
729 def visitor(x, y):
730 lhs = self._try_visit_binop(x)
--> 731 rhs = self._try_visit_binop(y)
733 op, op_class, lhs, rhs = self._maybe_transform_eq_ne(node, lhs, rhs)
734 return self._maybe_evaluate_binop(op, node.op, lhs, rhs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:726, in BaseExprVisitor._try_visit_binop(self, bop)
724 if isinstance(bop, (Op, Term)):
725 return bop
--> 726 return self.visit(bop)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:710, in BaseExprVisitor.visit_Compare(self, node, **kwargs)
708 op = self.translate_In(ops[0])
709 binop = ast.BinOp(op=op, left=node.left, right=comps[0])
--> 710 return self.visit(binop)
712 # recursive case: we have a chained comparison, a CMP b CMP c, etc.
713 left = node.left
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:522, in BaseExprVisitor.visit_BinOp(self, node, **kwargs)
521 def visit_BinOp(self, node, **kwargs):
--> 522 op, op_class, left, right = self._maybe_transform_eq_ne(node)
523 left, right = self._maybe_downcast_constants(left, right)
524 return self._maybe_evaluate_binop(op, op_class, left, right)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:442, in BaseExprVisitor._maybe_transform_eq_ne(self, node, left, right)
440 def _maybe_transform_eq_ne(self, node, left=None, right=None):
441 if left is None:
--> 442 left = self.visit(node.left, side="left")
443 if right is None:
444 right = self.visit(node.right, side="right")
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:401, in BaseExprVisitor.visit(self, node, **kwargs)
399 method = "visit_" + type(node).__name__
400 visitor = getattr(self, method)
--> 401 return visitor(node, **kwargs)
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/expr.py:656, in BaseExprVisitor.visit_Call(self, node, side, **kwargs)
653 except UndefinedVariableError:
654 # Check if this is a supported function name
655 try:
--> 656 res = FuncNode(node.func.id)
657 except ValueError:
658 # Raise original error
659 raise
File /usr/local/python3/lib/python3.8/site-packages/pandas/core/computation/ops.py:613, in FuncNode.__init__(self, name)
606 from pandas.core.computation.check import NUMEXPR_INSTALLED, NUMEXPR_VERSION
608 if name not in MATHOPS or (
609 NUMEXPR_INSTALLED
610 and NUMEXPR_VERSION < LooseVersion("2.6.9")
611 and name in ("floor", "ceil")
612 ):
--> 613 raise ValueError(f'"{name}" is not a supported function')
615 self.name = name
616 self.func = getattr(np, name)
ValueError: "ta_sma" is not a supported function