SU2
SU2 copied to clipboard
fix: Python 3 compatibility and C++ code quality improvements
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 |
unicode → str |
| SU2_PY | SU2/util/switch.py |
raise StopIteration → return (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.