summaryrefslogtreecommitdiff
path: root/numpy/f2py/symbolic.py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2021-09-01 12:03:36 +0300
committerPearu Peterson <pearu.peterson@gmail.com>2021-09-01 12:03:36 +0300
commit04585856537ccf802d881943235205d95b59527e (patch)
treec3353b2eff1a8da671d628e2eaa4c52dd0fcd102 /numpy/f2py/symbolic.py
parentf3fd6273fee44d1cc1aba502cf56aaea4b59d22c (diff)
downloadnumpy-04585856537ccf802d881943235205d95b59527e.tar.gz
Handle more Expr warnings.
Diffstat (limited to 'numpy/f2py/symbolic.py')
-rw-r--r--numpy/f2py/symbolic.py24
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)