CI License

python-copier-template#

Diamond’s opinionated copier template for pure Python projects managed by pip. It can be optionally used to:

  • Create new projects from

  • Update existing projects in line with it

  • Keep projects in sync with changes to it

  • Provide a source of inspiration to cherry-pick from

Source

DiamondLightSource/python-copier-template

Documentation

https://DiamondLightSource.github.io/python-copier-template

Releases

DiamondLightSource/python-copier-template

It integrates the following tools:

  • setuptools and setuptools-scm for packaging

  • pip to manage installation

  • pytest for code testing and coverage

  • pre-commit to run linting and formatting such as ruff

  • pyright for static type checking

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

  • tox to run the above tasks locally and in CI

  • GitHub Actions to provide CI and deployment to PyPI and GitHub Pages

  • VSCode settings for running the above tools on save

Create a new project via Developer Portal#

[!NOTE] Template creation from the developer portal is currently under construction, so these instructions do not work yet

Visit https://dev-portal.diamond.ac.uk/create and you will see a list of templates that you can create. Pick the one marked Python Template and fill in the details of the project.

Create a new project from the commandline#

You will need to pip install copier inside an activated venv, then you can create a new module via:

mkdir /path/to/my-project
# The --trust argument is required to run setup tasks such as initializing a git repository
copier copy --trust gh:DiamondLightSource/python-copier-template /path/to/my-project

You can also use it via pipx run copier if you have that installed.

How the documentation is structured#

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