-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
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.tomlfor dependency management (Poetry or PEP 621 setup). - Refactor codebase for PEP 8 compliance, introduce type hints, apply
blackformatting, and useisort. - Replace deprecated or outdated libraries with current NumPy, SciPy, Matplotlib, Pandas, etc.
- Modularize code structure (src layout, clear module separation,
__init__.pyfiles). - Introduce automated testing with
pytestand 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.
Copilot
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation