diff --git a/README.md b/README.md index 75e6add..2dc8cb2 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,7 @@ Snakemake workflow functions that are shared across many pathogen workflows that - [config.smk](snakemake/config.smk) - Shared functions for handling workflow configs. - [remote_files.smk](snakemake/remote_files.smk) - Exposes the `path_or_url` function which will use Snakemake's storage plugins to download/upload files to remote providers as needed. +- [dependencies.py](./snakemake/dependencies.py) - Helper functions for checking dependency versions. ## Software requirements diff --git a/snakemake/config.smk b/snakemake/config.smk index ab33cb8..5e96b98 100644 --- a/snakemake/config.smk +++ b/snakemake/config.smk @@ -2,6 +2,9 @@ Shared functions to be used within a Snakemake workflow for handling workflow configs. """ +from dependencies import set_min_augur_version +set_min_augur_version("34.1.0") + import os import sys import yaml diff --git a/snakemake/dependencies.py b/snakemake/dependencies.py new file mode 100644 index 0000000..4524696 --- /dev/null +++ b/snakemake/dependencies.py @@ -0,0 +1,10 @@ +from packaging import version +from augur.__version__ import __version__ as augur_version +import sys + + +def set_min_augur_version(min_augur_version: str): + if version.parse(augur_version) < version.parse(min_augur_version): + print("This pipeline needs a newer version of augur than you currently have...") + print(f"Current augur version: {augur_version}. Minimum required: {min_augur_version}") + sys.exit(1)