From 6afcd3bc3c083528f9addf53adb9502ccab5bd76 Mon Sep 17 00:00:00 2001 From: Victor Lin Date: Wed, 22 Jul 2026 14:13:43 -0700 Subject: [PATCH] Check Augur version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit augur.config.resolve_filepath is only available starting with version 34.1.0. Added the version checking code¹ to a new file for future similar usage. ¹ copied from mpox with some modifications --- README.md | 1 + snakemake/config.smk | 3 +++ snakemake/dependencies.py | 10 ++++++++++ 3 files changed, 14 insertions(+) create mode 100644 snakemake/dependencies.py 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)