Cookiecutter for Computational Molecular Sciences


Establishing good coding habits extends beyond the source code of projects themselves, but also how the project is structured, its testing capabilities, its documentation generation, and even keeping track of the version. Many of these items require semi-obscure or by-word-of-mouth knowledge and first hand experience to employ correctly, but are often just copied from project to project. The Cookiecutter for Computational Molecular Sciences help setup all the following features in a newly generated project from the start:

  • Python-centric skeletal structure with initial module files
  • Pre-configured setup.py for installation and packaging
  • Pre-configured Windows, Linux, and OSX continuous integration on GitHub Actions.
  • Choice of dependency locations through conda-forge, default conda, or pip
  • Basic testing structure with PyTest
  • Automatic git initialization + tag
  • GitHub Hooks
  • Automatic package version control with Versioneer
  • Sample data inclusion with packaging instructions
  • Basic documentation structure powered by Sphinx
  • Automatic license file inclusion from several common Open Source licenses (optional)

For more information about each of these features, and the decisions which went into each of these options, please see the main GitHub Page and join the discussion.