https://github.com/snakemake/poetry-snakemake-plugin
Plugin for poetry that adds snakemake specific functionality
https://github.com/snakemake/poetry-snakemake-plugin
Last synced: about 1 year ago
JSON representation
Plugin for poetry that adds snakemake specific functionality
- Host: GitHub
- URL: https://github.com/snakemake/poetry-snakemake-plugin
- Owner: snakemake
- Created: 2023-09-05T14:01:03.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-04-08T07:48:21.000Z (about 1 year ago)
- Last Synced: 2025-04-08T08:42:09.212Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 144 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# poetry-snakemake-plugin
[](https://github.com/yte-template-engine/yte/blob/main/pyproject.toml#L30)
A plugin for poetry that adds Snakemake-specific functionality.
Currently it supports scaffolding the source code for new Snakemake [executor plugins](https://github.com/snakemake/snakemake-interface-executor-plugins), [storage plugins](https://github.com/snakemake/snakemake-interface-storage-plugins), and [report plugins](https://github.com/snakemake/snakemake-interface-report-plugins).
This works as follows.
## Scaffolding an executor plugin
Lets assume that you want to create a snakemake executor plugin with the name `snakemake-executor-plugin-myfancyexecutor`.
```bash
# Install poetry plugin via
poetry self add poetry-snakemake-plugin@latest
# Create a new poetry project via
poetry new snakemake-executor-plugin-myfancyexecutor
cd snakemake-executor-plugin-myfancyexecutor
# Scaffold the project as a snakemake executor plugin
poetry scaffold-snakemake-executor-plugin
# Next, edit the scaffolded code according to your needs, and publish
# the resulting plugin into a github repository. The scaffold command also
# creates github actions workflows that will immediately start to check and test
# the plugin.
```
## Scaffolding a storage plugin
Lets assume that you want to create a snakemake storage plugin with the name `snakemake-storage-plugin-myfancystorage`.
```bash
# Install poetry plugin via
poetry self add poetry-snakemake-plugin@latest
# Create a new poetry project via
poetry new snakemake-storage-plugin-myfancystorage
cd snakemake-storage-plugin-myfancystorage
# Scaffold the project as a snakemake executor plugin
poetry scaffold-snakemake-storage-plugin
# Next, edit the scaffolded code according to your needs, and publish
# the resulting plugin into a github repository. The scaffold command also
# creates github actions workflows that will immediately start to check and test
# the plugin.
```
## Scaffolding a report plugin
Lets assume that you want to create a snakemake report plugin with the name `snakemake-report-plugin-myfancyreport`.
```bash
# Install poetry plugin via
poetry self add poetry-snakemake-plugin@latest
# Create a new poetry project via
poetry new snakemake-report-plugin-myfancyreport
cd snakemake-storage-plugin-myfancyreport
# Scaffold the project as a snakemake executor plugin
poetry scaffold-snakemake-report-plugin
# Next, edit the scaffolded code according to your needs, and publish
# the resulting plugin into a github repository. The scaffold command also
# creates github actions workflows that will immediately start to check and test
# the plugin.
```
## Scaffold a software deployment plugin
Lets assume that you want to create a snakemake software deployment plugin with the name `snakemake-deployment-plugin-myfancydeployment`.
```bash
# Install poetry plugin via
poetry self add poetry-snakemake-plugin@latest
# Create a new poetry project via
poetry new snakemake-software-deployment-plugin-myfancydeployment
cd snakemake-software-deployment-plugin-myfancydeployment
# Scaffold the project as a snakemake software deployment plugin
poetry scaffold-snakemake-software-deployment-plugin
# Next, edit the scaffolded code according to your needs, and publish
# the resulting plugin into a github repository. The scaffold command also
# creates github actions workflows that will immediately start to check and test
# the plugin.
```