Skip to content

Commit

Permalink
RF: Fix ast library type and attribute deprecation warnings
Browse files Browse the repository at this point in the history
Fix `ast` library type and attribute deprecation warnings.

Fixes:
```
/home/runner/work/nibabel/nibabel/nibabel/nicom/ascconv.py:177:
 DeprecationWarning: ast.Num is deprecated and will be removed in Python 3.14; use ast.Constant instead
  if isinstance(value, ast.Num):

/home/runner/work/nibabel/nibabel/nibabel/nicom/ascconv.py:179:
 DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead
  if isinstance(value, ast.Str):

/home/runner/work/nibabel/nibabel/nibabel/nicom/ascconv.py:180:
 DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead
  return value.s

/home/runner/work/nibabel/nibabel/nibabel/nicom/ascconv.py:94:
 DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead
  index = target.slice.n

/home/runner/work/nibabel/nibabel/nibabel/nicom/ascconv.py:182:
 DeprecationWarning: Attribute n is deprecated and will be removed in Python 3.14; use value instead
  return -value.operand.n
```

raised for example in:
https://github.com/nipy/nibabel/actions/runs/9637811213/job/26577586721#step:7:207

Documentation:
https://docs.python.org/3/library/ast.html
  • Loading branch information
jhlegarreta committed Jun 27, 2024
1 parent d18022d commit 94e3e83
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions nibabel/nicom/ascconv.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def assign2atoms(assign_ast, default_class=int):
prev_target_type = OrderedDict
elif isinstance(target, ast.Subscript):
if isinstance(target.slice, ast.Constant): # PY39
index = target.slice.n
index = target.slice.value
else: # PY38
index = target.slice.value.n
atoms.append(Atom(target, prev_target_type, index))
Expand Down Expand Up @@ -174,12 +174,10 @@ def obj_from_atoms(atoms, namespace):

def _get_value(assign):
value = assign.value
if isinstance(value, ast.Num):
return value.n
if isinstance(value, ast.Str):
return value.s
if isinstance(value, ast.Constant):
return value.value
if isinstance(value, ast.UnaryOp) and isinstance(value.op, ast.USub):
return -value.operand.n
return -value.operand.value
raise AscconvParseError(f'Unexpected RHS of assignment: {value}')


Expand Down

0 comments on commit 94e3e83

Please sign in to comment.