summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-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)