An all-in-one toolkit package to easy my Python work in my PhD.

PHD, Accelerator, Physics, Simulation, Visualisation, Docker, accelerator-physics, physics-simulation, poetry, python3, utility
pip install pyhdtoolkit==0.5.0



PyPI Version Github Release
Travis Build Code Coverage Docker Build
Code Style Linter Build tool Test runner License

♻️ An all-in-one package for Python work in my PhD

Made With Python


This code is compatible with Python 3.6+. If for some reason you have a need for it, create & activate a virtual enrivonment, then install with pip:

> pip install pyhdtoolkit

This repository respects the PEP 518 development and build recommandations, and Poetry as a tool to do so. If you intend on making changes, clone this repository through VCS and set yourself up with:

> git clone
> cd PyhDToolkit
> poetry install

Standards, Testing, Tools and VCS

This repository follows the Google docstring format, uses Black as a code formatter with a default enforced line length of 100 characters, and Pylint as a linter. You can format the code with make format and lint it (which will format first) with make lint.

Testing builds are ensured after each commit through Travis-CI. You can run tests locally with the predefined make tests, or through poetry run pytest <options> for customized options.

VCS is done through git and follows the Gitflow workflow. As a consequence, make sure to always install from master.


Feel free to explore the Makefile for sensible defaults commands. You will get an idea of what functionality is available by running make help.

Python Environment

This repository currently comes with an environment.yml file to reproduce my work conda environment. You can install this environment and add it to your ipython kernel by running make condaenv.


You can directly pull a pre-built image - tag latest is an automated build - from Dockerhub with:

> docker pull fsoubelet/simenv

You can then run the container in interactive mode, and make use of the already activated conda environment. It is highly advised to run with --init for zombie processes protection (see Tini for details). Assuming you pulled the provided image from Dockerhub, the command is then (remove the --rm flag if you wish to preserve it after running):

> docker run -it --rm --init fsoubelet/simenv

If you want to do some exploration through jupyter you will need to install it first as it is not bundled in the image, then add the custom environment kernelspec. Run the following command before heading over to localhost:8888:

> docker run -it --rm --init -p 8888:8888 fsoubelet/simenv /bin/bash -c "/opt/conda/bin/conda install -c conda-forge jupyterlab -y --quiet > /dev/null && mkdir /opt/notebooks && /opt/conda/envs/PHD/bin/ipython kernel install --user --name=PHD && /opt/conda/bin/jupyter lab --notebook-dir=/opt/notebooks --ip='*' --port=8888 --no-browser --allow-root"


Copyright © 2019-2020 Felix Soubelet. MIT License