@@ -99,6 +99,14 @@ def _pairs_add(d, k, v):
99
99
del d [k ]
100
100
101
101
102
+ class ExprWarning (warnings .UserWarning ):
103
+ pass
104
+
105
+
106
+ def warn (message ):
107
+ warnings .warn (message , ExprWarning , stacklevel = 2 )
108
+
109
+
102
110
class Expr :
103
111
"""Represents a Fortran expression as a op-data pair.
104
112
@@ -481,10 +489,7 @@ def __getitem__(self, index):
481
489
if not isinstance (index , tuple ):
482
490
index = index ,
483
491
if len (index ) > 1 :
484
- warnings .warn (
485
- f'C-index should be a single expression but got `{ index } `' ,
486
- category = warnings .SyntaxWarning ,
487
- stacklevel = 1 )
492
+ warn (f'C-index should be a single expression but got `{ index } `' )
488
493
return Expr (Op .INDEXING , (self ,) + index )
489
494
490
495
def substitute (self , symbols_map ):
@@ -520,8 +525,8 @@ def substitute(self, symbols_map):
520
525
else :
521
526
r += term .substitute (symbols_map ) * coeff
522
527
if r is None :
523
- warnings . warn ('substitute: empty TERMS expression interpreted'
524
- ' as int-literal 0' )
528
+ warn ('substitute: empty TERMS expression interpreted as '
529
+ ' int-literal 0' )
525
530
return as_number (0 )
526
531
return r
527
532
if self .op is Op .FACTORS :
@@ -532,9 +537,8 @@ def substitute(self, symbols_map):
532
537
else :
533
538
r *= base .substitute (symbols_map ) ** exponent
534
539
if r is None :
535
- warnings .warn (
536
- 'substitute: empty FACTORS expression interpreted'
537
- ' as int-literal 1' )
540
+ warn ('substitute: empty FACTORS expression interpreted'
541
+ ' as int-literal 1' )
538
542
return as_number (1 )
539
543
return r
540
544
if self .op is Op .APPLY :
@@ -1256,5 +1260,5 @@ def _fromstring_worker(s, dummy=None):
1256
1260
# f2py special dummy name
1257
1261
return as_symbol (r )
1258
1262
1259
- warnings . warn (f'fromstring: treating { r !r} as symbol' )
1263
+ warn (f'fromstring: treating { r !r} as symbol' )
1260
1264
return as_symbol (r )
0 commit comments