fix: Only --bind Snakemake module into container when we're working with a Python script #1206
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
By default Snakemake binds its Python module into the container, but this is only needed for Python script mode.
This is problem if Snakemake is already running inside a Singularity container, as I am experimenting with at https://github.com/frankier/singslurm2 then the Snakemake module is not available on the host when executing.
This patch makes it so the bind is only made when we actually need to run a Python script.
Long term, I would favor a situation where the
snakemake
namespace available to Python scripts was more like a data file, which can somehow be shimmed directly into the script, like the current RustScript implementation --- assuming this is possible. This would seem to allow more flexibility for combining the Singularity implementation with other stuff.