Developer API#

Welcome to the guts of showyourwork!. The backend is fairly complicated given that showyourwork is not just a Python package: it is simultaneously a wrapper around Snakemake and a child process of Snakemake, as well as a command-line tool, a cookiecutter template, a GitHub Action, and a conda environment manager. The code is wrapped up into a pip-installable Python package, but users should never have to actually import showyourwork into their scripts. Users should only ever interact with the code via the command line interface, which spawns child processes that themselves import showyourwork.

But if you’re reading this, you’re probably interested in learning how showyourwork actually works, and possibly in tweaking it or adding new features. The documentation pages below are divided into four sections. The first section contains documentation for the Python package proper (The showyourwork module), followed by documentation for the scripts that do the heavy lifting during the article build step (Snakemake workflow scripts), the Snakemake rules that run those scripts (Snakemake rules), and the top-level Snakefiles that define the workflow (Snakefiles).