General orientation¶
Codebase structure¶
The most important elements of FlowCraft’s directory structure are:
generator
:components
: Contains theProcess
classes for each componenttemplates
: Contains the nextflow jinja template files for each componentengine.py
: The engine of FlowCraft that builds the pipelineprocess.py
: Contains the abstractProcess
class that is inherited- by all component classes
pipeline_parser.py
: Functions that parse and check the pipeline stringrecipe.py
: Class responsible for creating recipes
templates
: A git submodule of the templates repository that contain the template scripts for the components.
Code style¶
- Style: the code base of flowcraft should adhere (the best it can) to the PEP8 style guidelines.
- Docstrings: code should be generally well documented following the numpy docstring style.
- Quality: there is also an integration with the codacy service to evaluate code quality, which is useful for detecting several coding issues that may appear.
Testing¶
Tests are performed using pytest and the source files are stored in the
flowcraft/tests
directory. Tests must be executed on the root directory
of the repository
Documentation¶
Documentation source files are stored in the docs
directory. The general
configuration file is found in docs/conf.py
and the entry
point to the documentation is docs/index.html
.