SU2 icon indicating copy to clipboard operation
SU2 copied to clipboard

fix: Python 3 compatibility and C++ code quality improvements

Open shbhmexe opened this issue 1 month ago • 0 comments

Proposed Changes

This PR fixes Python 2 to Python 3 compatibility issues and improves C++ code quality.

Files Modified:

Module File Changes
SU2_PY SU2/util/bunch.py .iteritems().items(), keys().sort()sorted(keys())
SU2_PY SU2/util/ordered_bunch.py .iteritems().items()
SU2_PY SU2/util/ordered_dict.py .itervalues().values()
SU2_PY SU2/io/data.py unicodestr
SU2_PY SU2/util/switch.py raise StopIterationreturn (PEP 479)
SU2_CFD src/solvers/CSpeciesFlameletSolver.cpp Remove redundant == true

Issues Fixed

Python 3 Compatibility:

Issue Impact Fix
.iteritems() removed in Py3 AttributeError Use .items()
.itervalues() removed in Py3 AttributeError Use .values()
dict.keys().sort() fails AttributeError Use sorted()
unicode type removed NameError Use str
raise StopIteration in generators RuntimeError (PEP 479) Use return

C++ Code Quality:

Issue Impact Fix
== true comparison Redundant code Direct boolean check

Related Work

This PR extends the Python 3 compatibility work started in PR #2640, addressing remaining issues in utility modules.

PR Checklist

  • [x] I am submitting my contribution to the develop branch.
  • [x] My contribution generates no new compiler warnings.
  • [x] My contribution is commented and consistent with SU2 style.
  • [x] I used the pre-commit hook to prevent dirty commits.
  • [ ] I have added a test case that demonstrates my contribution, if necessary.
  • [ ] I have updated appropriate documentation, if necessary.

shbhmexe avatar Dec 10 '25 18:12 shbhmexe