From 0b0acb6a0094b59282047fa176acec597bb81f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 14 Feb 2023 21:02:49 +0100 Subject: [PATCH 1/3] Add a lambdify func. that throws ModuleNotFoundError when numpy missing --- symengine/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/symengine/__init__.py b/symengine/__init__.py index f05422c6..bc6a1b21 100644 --- a/symengine/__init__.py +++ b/symengine/__init__.py @@ -55,7 +55,9 @@ def lambdify(args, exprs, **kwargs): return Lambdify(args, *exprs, **kwargs) - +else: + def lambdify(args, exprs, **kwargs): + raise ModuleNotFoundError("Cannot import numpy, which is required for `lambdify` to work") __version__ = "0.9.2" From d3e590bacb3a6723c3455d3c662445802be7877d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Ingvar=20Dahlgren?= Date: Tue, 14 Feb 2023 21:21:11 +0100 Subject: [PATCH 2/3] prefer __getattr__ --- symengine/__init__.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/symengine/__init__.py b/symengine/__init__.py index bc6a1b21..656d80f2 100644 --- a/symengine/__init__.py +++ b/symengine/__init__.py @@ -56,8 +56,10 @@ def lambdify(args, exprs, **kwargs): return Lambdify(args, *exprs, **kwargs) else: - def lambdify(args, exprs, **kwargs): - raise ModuleNotFoundError("Cannot import numpy, which is required for `lambdify` to work") + def __getattr__(name): + if name == 'lambdify': + raise AttributeError("Cannot import numpy, which is required for `lambdify` to work") + raise AttributeError __version__ = "0.9.2" From fcd7cd5a2a607ec6e2dc906014786ce4c6c4f3a0 Mon Sep 17 00:00:00 2001 From: Isuru Fernando Date: Mon, 20 Mar 2023 16:09:40 -0500 Subject: [PATCH 3/3] Update error message --- symengine/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/symengine/__init__.py b/symengine/__init__.py index 656d80f2..c65d4143 100644 --- a/symengine/__init__.py +++ b/symengine/__init__.py @@ -59,7 +59,7 @@ def lambdify(args, exprs, **kwargs): def __getattr__(name): if name == 'lambdify': raise AttributeError("Cannot import numpy, which is required for `lambdify` to work") - raise AttributeError + raise AttributeError(f"module 'symengine' has no attribute '{name}'") __version__ = "0.9.2"