General orientation

Codebase structure

The most important elements of FlowCraft’s directory structure are:

  • generator:
    • components: Contains the Process classes for each component
    • templates: Contains the nextflow jinja template files for each component
    • engine.py: The engine of FlowCraft that builds the pipeline
    • process.py: Contains the abstract Process class that is inherited
    • by all component classes
    • pipeline_parser.py: Functions that parse and check the pipeline string
    • recipe.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.