# coding: utf-8 import json from expr import expression_from_dict, Expr, NumExpr pi_100 = Expr(operation_name='*', arguments=[Expr(operation_name='/', arguments=[NumExpr(number=22), NumExpr(number=7)]), NumExpr(100)]) resolved = pi_100.resolve() expected_resolved = 314.2857142857143 serialised = pi_100.serialise(json.dumps) expected_serialised = ( '{"__type__": "Expr", "operation_name": "*", "arguments": ' '[' '{' '"__type__": "Expr", ' '"operation_name": "/", ' '"arguments": ' '[' '{' '"__type__": "NumExpr", ' '"number": 22.0' '}, ' '{' '"__type__": "NumExpr", ' '"number": 7.0' '}' ']'
) index, data, columns = dataframe_flat() dataframe0 = pandas.DataFrame.from_records(index=index, data=data, columns=columns) index, data, columns = dataframe_flat() dataframe1 = pandas.DataFrame.from_records(index=index, data=data, columns=columns) expr = Expr('*', [ Expr('-', [ DataFrameExpr(dataframe0), Expr('+', [ NumExpr(32), DataFrameExpr(dataframe1), ] ) ] ), Expr(operation_name='/', arguments=[NumExpr(number=22), NumExpr(number=7)]) ] ) resolved = expr.resolve() def test_dataframe_numeric(): print('') print(expr.resolve()) expr.graph().write_png('expr.png') expr.serialise(json.dumps)