Skip to content

Commit

Permalink
Check for empty user-defined subsampling scheme
Browse files Browse the repository at this point in the history
Adds a check for an empty user-defined subsampling scheme and provides a
helpful error message when this happens to replace the unhelpful
`AttributeError` message users would get before when the workflow tried to
access a nonexistent method of a `NoneType`.

This error can happen when a user defines a custom subsampling scheme
where the contents are not properly indented below the `subsampling`
key. The resulting config is still a valid YAML file, so the emptiness
of the subsampling scheme needs to be checked specifically. We could
probably handle this better and more generically with a more stringent
YAML schema.
  • Loading branch information
huddlej committed Sep 18, 2023
1 parent 8b71e63 commit a5836ac
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ import time
# [4] https://github.com/snakemake/snakemake/blob/a7ac40c96d6e2af47102563d0478a2220e2a2ab7/snakemake/workflow.py#L1088-L1094
# [5] https://github.com/snakemake/snakemake/blob/a7ac40c96d6e2af47102563d0478a2220e2a2ab7/snakemake/utils.py#L455-L476
user_subsampling = copy.deepcopy(config.get("subsampling", {}))
if user_subsampling is None:
logger.error("ERROR: The configuration file you have provided defines a `subsampling` section that appears to be empty.")
logger.error("Check that section of your configuration file to confirm that it isn't empty and that its contents are properly indented below the `subsampling` key.")
sys.exit(1)

configfile: "defaults/parameters.yaml"

Expand Down

0 comments on commit a5836ac

Please sign in to comment.