dls-python3-skeleton

Code CI Docs CI Test Coverage Latest PyPI version Apache License

This skeleton module (inspired by jaraco/skeleton) is a generic Python project structure which provides a means to keep tools and techniques in sync between multiple Python projects.

PyPI

pip install dls-python3-skeleton

Source code

https://github.com/dls-controls/dls-python3-skeleton

Documentation

https://dls-controls.github.io/dls-python3-skeleton

Releases

https://github.com/dls-controls/dls-python3-skeleton/releases

It integrates the following tools:

  • Pipenv for version management

  • Pre-commit with black, flake8, isort and mypy for static analysis

  • Pytest for code and coverage

  • Sphinx for tutorials, how-to guides, explanations and reference documentation

  • GitHub Actions for code and docs CI and deployment to PyPI and GitHub Pages

  • If you use VSCode, it will run black, flake8, isort and mypy on save

The skeleton branch of this module contains the source code that can be merged into new or existing projects, and pulled from to keep them up to date. It can also serve as a working example for those who would prefer to cherry-pick.

The master branch contains the docs and a command line tool to ease the adoption of this skeleton into new:

dls-python3-skeleton new /path/to/be/created

and existing projects:

dls-python3-skeleton existing /path/to/existing/repo

How the documentation is structured

Documentation is split into four categories, also accessible from links in the side-bar.

Tutorials

Tutorials for installation, library and commandline usage. New users start here.

How-to Guides

Practical step-by-step guides for the more experienced user.

Explanations

Explanation of how the library works and why it works that way.

Reference

Practical step-by-step guides for the more experienced user.

About the documentation

Why is the documentation structured this way?