/usr/local/lib/python3.6/site-packages/joblib
NameSizeModeActions
externals/-0755rm
test/-0755rm
__pycache__/-0755rm
backports.py27780644editdlrm
compressor.py197700644editdlrm
disk.py43860644editdlrm
executor.py53160644editdlrm
format_stack.py10450644editdlrm
func_inspect.py139450644editdlrm
hashing.py105360644editdlrm
logger.py51290644editdlrm
memory.py417770644editdlrm
my_exceptions.py9620644editdlrm
numpy_pickle.py234980644editdlrm
numpy_pickle_compat.py85480644editdlrm
numpy_pickle_utils.py87060644editdlrm
parallel.py469460644editdlrm
pool.py143340644editdlrm
testing.py21800644editdlrm
_cloudpickle_wrapper.py3760644editdlrm
_dask.py129320644editdlrm
_deprecated_format_stack.py145050644editdlrm
_deprecated_my_exceptions.py41340644editdlrm
_memmapping_reducer.py280690644editdlrm
_multiprocessing_helpers.py18850644editdlrm
_parallel_backends.py238050644editdlrm
_store_backends.py144350644editdlrm
_utils.py11160644editdlrm
__init__.py49930644editdlrm
Edit: /usr/local/lib/python3.6/site-packages/joblib/_utils.py (1116B)
# Adapted from https://stackoverflow.com/a/9558001/2536294 import ast import operator as op # supported operators operators = { ast.Add: op.add, ast.Sub: op.sub, ast.Mult: op.mul, ast.Div: op.truediv, ast.FloorDiv: op.floordiv, ast.Mod: op.mod, ast.Pow: op.pow, ast.USub: op.neg, } def eval_expr(expr): """ >>> eval_expr('2*6') 12 >>> eval_expr('2**6') 64 >>> eval_expr('1 + 2*3**(4) / (6 + -7)') -161.0 """ try: return eval_(ast.parse(expr, mode="eval").body) except (TypeError, SyntaxError, KeyError) as e: raise ValueError( f"{expr!r} is not a valid or supported arithmetic expression." ) from e def eval_(node): if isinstance(node, ast.Num): # return node.n elif isinstance(node, ast.BinOp): # return operators[type(node.op)](eval_(node.left), eval_(node.right)) elif isinstance(node, ast.UnaryOp): # e.g., -1 return operators[type(node.op)](eval_(node.operand)) else: raise TypeError(node)