From da5fe8af437309bf27243df169c5aa5e270e9f2e Mon Sep 17 00:00:00 2001 From: Thomas Roehr Date: Sun, 19 Jan 2025 10:44:48 +0100 Subject: [PATCH] vaex-core: remove need for legacy printoptions --- packages/vaex-core/vaex/expression.py | 6 +----- packages/vaex-core/vaex/expresso.py | 19 +++++++++++++------ tests/geo_test.py | 3 --- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/vaex-core/vaex/expression.py b/packages/vaex-core/vaex/expression.py index a795a17000..1278630e7f 100644 --- a/packages/vaex-core/vaex/expression.py +++ b/packages/vaex-core/vaex/expression.py @@ -47,13 +47,9 @@ PRINT_MAX_COUNT = 10 expression_namespace = {} +expression_namespace['np'] = np expression_namespace['nan'] = np.nan - -expression_namespace = {} -expression_namespace['nan'] = np.nan - - _binary_ops = [ dict(code="+", name='add', op=operator.add), dict(code="in", name='contains', op=operator.contains), diff --git a/packages/vaex-core/vaex/expresso.py b/packages/vaex-core/vaex/expresso.py index 7e7e5ff932..7452433b6d 100644 --- a/packages/vaex-core/vaex/expresso.py +++ b/packages/vaex-core/vaex/expresso.py @@ -110,12 +110,15 @@ def validate_expression(expr, variable_set, function_set=[], names=None): elif isinstance(expr, ast_Str): pass # as well as strings elif isinstance(expr, _ast.Call): - validate_func(expr.func, function_set) - last_func = expr - for arg in expr.args: - validate_expression(arg, variable_set, function_set, names) - for arg in expr.keywords: - validate_expression(arg, variable_set, function_set, names) + if isinstance(expr.func, _ast.Attribute): + pass + else: + validate_func(expr.func, function_set) + last_func = expr + for arg in expr.args: + validate_expression(arg, variable_set, function_set, names) + for arg in expr.keywords: + validate_expression(arg, variable_set, function_set, names) elif isinstance(expr, _ast.Compare): validate_expression(expr.left, variable_set, function_set, names) for op in expr.ops: @@ -370,6 +373,10 @@ def visit_Dict(self, node): return '{' + ', '.join(parts) + '}' def visit_Call(self, node): + if isinstance(node.func, _ast.Attribute): + # assuming np.float64(0.0) for instance + return str(node.args[0].value) + args = [self.visit(k) for k in node.args] keywords = [] if hasattr(node, 'keywords'): diff --git a/tests/geo_test.py b/tests/geo_test.py index cc34da2bfb..39cd8d8711 100644 --- a/tests/geo_test.py +++ b/tests/geo_test.py @@ -1,8 +1,5 @@ from common import * -if np.lib.NumpyVersion(np.__version__) >= "2.0.0": - np.set_printoptions(legacy="1.25") - def test_virtual_columns_spherical(): df = vaex.from_scalars(alpha=0, delta=0, distance=1) df.add_virtual_columns_spherical_to_cartesian("alpha", "delta", "distance", "x", "y", "z", radians=False)