Skip to content

Modernize ComputationalPhysics2016 to Current Industry Standards #8

@VaeterchenFrost

Description

@VaeterchenFrost

Proposal

This issue proposes a comprehensive modernization of the ComputationalPhysics2016 repository to align it with current industry standards and best practices for Python scientific computing projects. The modernization will not maintain backward compatibility with legacy code, in order to fully leverage modern Python tooling, libraries, and workflows.

Main Goals

  • Upgrade to latest Python versions (3.11+), removing Python 2/early Python 3 compatibility.
  • Adopt pyproject.toml for dependency management (Poetry or PEP 621 setup).
  • Refactor codebase for PEP 8 compliance, introduce type hints, apply black formatting, and use isort.
  • Replace deprecated or outdated libraries with current NumPy, SciPy, Matplotlib, Pandas, etc.
  • Modularize code structure (src layout, clear module separation, __init__.py files).
  • Introduce automated testing with pytest and add basic test coverage.
  • Set up pre-commit hooks for code quality (black, isort, flake8/ruff).
  • Migrate string formatting to f-strings, adopt pathlib for file handling, and use dataclasses where suitable.
  • Add comprehensive documentation using Sphinx and Markdown README.
  • Provide Jupyter notebooks for demonstrations and interactive exploration.

Benefits

  • Improved maintainability, readability, and consistency.
  • Easier onboarding for new contributors.
  • Enhanced scientific reproducibility.
  • Modern development and deployment workflows.

Note: This proposal intentionally does not preserve backward compatibility. All legacy interfaces will be updated or removed as needed for modernization.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions