Use Python >3.5, best is 3.7.
3.6 has issues with multiprocessing.
To simplify the usage of the code on many OS, please use the python pathlib whenever you use paths.
For the sake of simplicity: On Windows use X:\ as mount for /cfs/home/ and Y:\ as mount for /cfs/share
Whenever possible, write simple unittests for you code: use the unittest module.
Makes handling a huge project much easier: trying out new things, merging etc.
Pull requests to master will only be accepted with proper testing.
Add documentation to your code: See Pipeline/erfh5_pipeline.py as reference.
We use the sphinx package for the creation of the documentation.
Please follow the official python guidelines to make the code readable: https://www.python.org/dev/peps/pep-0008/ In some IDEs, like PyCharm the style checks are automatically enabled. In others, you might have to install a linter, first. Before every merge with the master, flake8 linter will be invoked. Specialities: Linelength: 120, currently ignored errors: W291, W503, W504. Your commit will be rejected, unless it is compatible.
- Make sure your code works
- Test not only your model, but at least two others to make sure you did not wreck the pipeline
- Test your model on the DGX
- Merge