diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2021-09-01 12:03:36 +0300 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2021-09-01 12:03:36 +0300 |
commit | 04585856537ccf802d881943235205d95b59527e (patch) | |
tree | c3353b2eff1a8da671d628e2eaa4c52dd0fcd102 /numpy/f2py/symbolic.py | |
parent | f3fd6273fee44d1cc1aba502cf56aaea4b59d22c (diff) | |
download | numpy-04585856537ccf802d881943235205d95b59527e.tar.gz |
Handle more Expr warnings.
Diffstat (limited to 'numpy/f2py/symbolic.py')
-rw-r--r-- | numpy/f2py/symbolic.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/numpy/f2py/symbolic.py b/numpy/f2py/symbolic.py index b71a87a76..54b5721c0 100644 --- a/numpy/f2py/symbolic.py +++ b/numpy/f2py/symbolic.py @@ -99,6 +99,14 @@ def _pairs_add(d, k, v): del d[k] +class ExprWarning(warnings.UserWarning): + pass + + +def warn(message): + warnings.warn(message, ExprWarning, stacklevel=2) + + class Expr: """Represents a Fortran expression as a op-data pair. @@ -481,10 +489,7 @@ class Expr: if not isinstance(index, tuple): index = index, if len(index) > 1: - warnings.warn( - f'C-index should be a single expression but got `{index}`', - category=warnings.SyntaxWarning, - stacklevel=1) + warn(f'C-index should be a single expression but got `{index}`') return Expr(Op.INDEXING, (self,) + index) def substitute(self, symbols_map): @@ -520,8 +525,8 @@ class Expr: else: r += term.substitute(symbols_map) * coeff if r is None: - warnings.warn('substitute: empty TERMS expression interpreted' - ' as int-literal 0') + warn('substitute: empty TERMS expression interpreted as' + ' int-literal 0') return as_number(0) return r if self.op is Op.FACTORS: @@ -532,9 +537,8 @@ class Expr: else: r *= base.substitute(symbols_map) ** exponent if r is None: - warnings.warn( - 'substitute: empty FACTORS expression interpreted' - ' as int-literal 1') + warn('substitute: empty FACTORS expression interpreted' + ' as int-literal 1') return as_number(1) return r if self.op is Op.APPLY: @@ -1256,5 +1260,5 @@ def _fromstring_worker(s, dummy=None): # f2py special dummy name return as_symbol(r) - warnings.warn(f'fromstring: treating {r!r} as symbol') + warn(f'fromstring: treating {r!r} as symbol') return as_symbol(r) |