Skip to main content

snakemake-logger-plugin-panoptes

PyPI Conda

A Snakemake 9 logger plugin that forwards workflow events to a running panoptes server, replacing the legacy --wms-monitor integration that was removed in Snakemake 9.

Requirements

Install

# via PyPI
pip install snakemake-logger-plugin-panoptes

# or via bioconda
conda install -c conda-forge -c bioconda snakemake-logger-plugin-panoptes

After installing, Snakemake should advertise the plugin in --help:

snakemake --help | grep logger-panoptes
#   --logger-panoptes-address VALUE
#   --logger-panoptes-timeout VALUE

Use

Start a panoptes server, then run Snakemake with the plugin enabled:

snakemake \
    --cores 1 \
    --logger panoptes \
    --logger-panoptes-address http://127.0.0.1:5000

You can also point at the address via an environment variable:

export SNAKEMAKE_LOGGER_PANOPTES_ADDRESS=http://127.0.0.1:5000
snakemake --cores 1 --logger panoptes

Settings

Flag Env var Default Description
--logger-panoptes-address SNAKEMAKE_LOGGER_PANOPTES_ADDRESS (required) Base URL of the panoptes server.
--logger-panoptes-timeout — 10.0 Per-request HTTP timeout in seconds.
--logger-panoptes-workflow-id SNAKEMAKE_LOGGER_PANOPTES_WORKFLOW_ID (auto uuid) Stable workflow id. Re-running with the same id reuses and resets the existing panoptes workflow instead of creating a new one.

Give a run a stable id so re-runs update the same panoptes entry instead of piling up new ones:

snakemake \
    --cores 1 \
    --logger panoptes \
    --logger-panoptes-address http://127.0.0.1:5000 \
    --logger-panoptes-workflow-id my-pipeline

How it works

On workflow start the plugin calls GET /create_workflow to register a new workflow with the panoptes server and remembers the returned workflow id. When --logger-panoptes-workflow-id is set it is passed along, and the server reuses (and resets) any existing workflow with that id so re-runs land on the same id. It then translates Snakemake LogEvent records (JOB_INFO, JOB_STARTED, JOB_FINISHED, JOB_ERROR, SHELLCMD, PROGRESS, ERROR, RUN_INFO) into the JSON message format that panoptes' /update_workflow_status endpoint already understands.

Network errors are logged but never crash the workflow.

If the panoptes server is served over HTTPS with a certificate signed by a private/corporate CA, point the plugin at the CA bundle via one of REQUESTS_CA_BUNDLE, SSL_CERT_FILE, or CURL_CA_BUNDLE (checked in that order); the plugin uses it to verify the connection.

For a working example workflow that uses this plugin, see snakemake_example_workflow.

Development

pip install -e '.[dev]'   # editable install with test deps (quote .[dev] for zsh)
pytest

License

MIT

Metadata

Release files for snakemake-logger-plugin-panoptes 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snakemake-logger-plugin-panoptes 0.3.0
File Size Uploaded
snakemake_logger_plugin_panoptes-0.3.0.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for snakemake-logger-plugin-panoptes 0.3.0
File Interpreter ABI Platform
snakemake_logger_plugin_panoptes-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / snakemake_logger_plugin_panoptes-0.3.0.tar.gz

Download URL snakemake_logger_plugin_panoptes-0.3.0.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
246b1a5b064718aa685cc71272c2234829403c3e30ed70a5ce39d23e76fd3b74
BLAKE2b-256 checksum
How to use checksums
b832bcd071899d552401a18e173441daedc8e8528f944c49a9fe8e7b59bb1ec0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / snakemake_logger_plugin_panoptes-0.3.0-py3-none-any.whl

Download URL snakemake_logger_plugin_panoptes-0.3.0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fcb889d7a6f00204f1f32cc28cd16d4022038d3edcff6245ddb9fe16c32c87d1
BLAKE2b-256 checksum
How to use checksums
3a9d1680499ba0061c7ba9e62c402e5770a77c22e75a5ed6b9b135d8922bc7eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page