Griffith Rees - From Research Project to PyPI Release

Learn how to transform a research project into a Python package ready for PyPI release. Discover best practices for version control, documentation, testing, and distribution.

Key takeaways
  • Cookie cutter templates are essential for setting up a new Python project.
  • Use GitHub for version control and continuous integration.
  • Travis is a good option for continuous integration, but GitHub Actions is also worth considering.
  • Use Sphinx for documentation and Read the Docs for hosting the documentation.
  • Use PyPI for package distribution and Zenodo for data and code citation.
  • Use a virtual environment to manage dependencies and avoid conflicts.
  • Use a package manager like pip or poetry to manage dependencies.
  • Use a testing framework like pytest to write tests for your code.
  • Use a code formatter like black to keep your code consistent.
  • Use a linter like flake8 to find potential code issues.
  • Use a type checker like mypy to find potential type errors.
  • Use a code coverage tool like coverage to measure how much of your code is tested.
  • Use a continuous integration service like Travis or GitHub Actions to automatically run tests and deploy your code.
  • Use a documentation generator like Sphinx to generate documentation for your code.
  • Use a package hosting service like PyPI to distribute your code.
  • Use a code citation service like Zenodo to cite your code and data.