expr_codegen
expr_codegen copied to clipboard
AttributeError: 'BooleanFalse' object has no attribute 'diff'
def _code_block_():
cond_1 = cs_rank(-amount, False) <= 10
filter = and_(cond_1,
True)
会报错
File "D:\Users\Kan\miniconda3\envs\py311_1\Lib\site-packages\expr_codegen\tool.py", line 41, in extract
expr = simplify(expr)
^^^^^^^^^^^^^^
File "D:\Users\Kan\miniconda3\envs\py311_1\Lib\site-packages\sympy\simplify\simplify.py", line 601, in simplify
return _eval_simplify(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\Kan\miniconda3\envs\py311_1\Lib\site-packages\sympy\core\relational.py", line 428, in _eval_simplify
elif dif.equals(0): # XXX this is expensive
.....
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\Kan\miniconda3\envs\py311_1\Lib\site-packages\sympy\core\basic.py", line 1871, in _eval_derivative_n_times
obj2 = obj._eval_derivative(s)
^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\Kan\miniconda3\envs\py311_1\Lib\site-packages\sympy\core\function.py", line 600, in _eval_derivative
da = a.diff(s)
^^^^^^
AttributeError: 'BooleanFalse' object has no attribute 'diff'
其实是False) <= 10在同一行时进行simplify报错。目前没有好的办法,只能在编码时就回避,不写同一行。
def _code_block_():
cond_1 = cs_rank(-amount, False)
filter = and_(cond_1 <= 10,
True)
这样就不报错了