Snakemake errors out if plugin is not installed
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
Research direction
Start with the plugin-loading exception at snakemake_interface_common/exceptions.py line 79 and trace how a missing storage plugin is handled for the fs example. Check how local file existence and remote-plugin requirements can be distinguished; done means an existing local file can proceed without the plugin, with an appropriate warning, while required remote handling still errors.
Written by the indexing model from the issue text.
Description
This is effectively the same as https://github.com/snakemake/snakemake-storage-plugin-fs/issues/40, but should likely be handled by snakemake interface rather than the plugin itself.
In the use case, I have a large file in my working directory that benefits from being copied to node-local storage on an HPC (i.e. a job-defined $TMPDIR). I can do this with the strorage-plugin-fs, setting remote-job-local-storage-prefix: "$TMPDIR" in my profile config. The rule looks like
rule test:
input:
BAM=storage.fs("genome.bam")
output:
...
If I run this without the plugin being installed, I get an error like
Error loading Snakemake plugin fs: The package snakemake-storage-plugin-fs is not installed.
coming from here.
Given the file exists, it would be ideal for the fallback to just ignore the storage.fs "decoration" and use the original file in the working directory, maybe emitting a warning. This may be complicated by remote storage plugins where the file only exists remotely and so needs to be handled by the plugin, but at least for the fs plugin this shouldn't be an issue.
Maybe deciding if a plugin is optionally helpful versus necessary is challenging, but the main snakemake process erroring out because a plugin is not installed is very limiting.
- Dominant language
- Python
- Stars
- 0
- Forks
- 7
- Avg merge
- 13m
- Merged PRs (30d)
- 2
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from snakemake/snakemake-interface-common
-
plugin settings with list values cannot be parsedPossibly taken @tedil claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
`io.py` needs python 3.11 for `StrEnum`, which breaks older envsPossibly taken @tedil claimed this 2 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
-
Difficulty 5/5 Over a week Newbie friendliness 42/100
snakemake/snakemake-interface-common#95 · 8 comments · 3 reactions ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
snakemake/snakemake-interface-common#80 · 3 comments ·
All issues in snakemake/snakemake-interface-common
Similar issues
-
Project submission:Open
Difficulty 1/5 Under an hour Newbie friendliness 72/100
slavakurilyak/awesome-ai-agents#845 ·
Maintainers usually reply within 1 day
-
tests: pin that the atomic writers in utils/paths.py stage the temporary file in the target's directoryPossibly taken A pull request linked to this issue is open or already merged. Opendifficulty:2 enhancement good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
MakazhanAlpamys/Soup#2178 ·
Maintainers usually reply within 1 day
-
[BUG] dcg.waggr permutation p-values are folded twice, so near-zero scores get the smallest p-valuesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
scverse/rapids-singlecell#854 ·
Maintainers usually reply within 1 day
-
Slang input: int8_t4_packed and uint8_t4_packed are copied into CrossGLPossibly taken @ninglinLiu claimed this today. Openarea:frontend backend:slang bug direction:input
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
random_elements(unique=True) on an OrderedDict: ZeroDivisionError once only zero weights remain, AssertionError with use_weighting=FalsePossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 13 days