skillfed

snakemake-interface-scheduler-plugins

Scheduler plugin interface for snakemake

snakemake-interface-scheduler-plugins v2.0.2 96.0K downloads/30d#13,240 on PyPI
License unclear AGING released

What it is and what it does

This package defines the contract between Snakemake and its scheduler plugins. It exports base classes (SchedulerBase, SchedulerSettingsBase) and interface types (SchedulerDAGInterface, SchedulerJobInterface) that plugin authors must implement to create custom job schedulers. The package itself contains no scheduling logic—it is purely a specification layer that ensures plugins can be discovered and loaded by Snakemake at runtime.

Plugin developers use this interface to implement the select_jobs() method, which receives selectable jobs, remaining jobs, available resources, and input file sizes, then returns a sequence of jobs to execute next. The interface also supports optional configuration via SchedulerSettings and lifecycle hooks like dag_updated(). Plugins must follow the naming convention snakemake-scheduler-plugin-* and be published on PyPI to be recognized by Snakemake.

Use it for:

  • Build a custom scheduler that prioritizes jobs by input file size or estimated runtime for optimized resource utilization.
  • Implement a constraint-based scheduler (e.g., ILP-based) that respects complex resource or dependency constraints beyond Snakemake's defaults.
  • Create a distributed scheduler plugin that coordinates job execution across multiple machines or cloud providers.
  • Develop a scheduler that integrates with external job queuing systems (SLURM, Kubernetes) via a Snakemake plugin.
  • Write a research scheduler that tests novel scheduling heuristics on real bioinformatics or scientific workflows.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a stable interface specification for building Snakemake scheduler plugins, allowing developers to implement custom job scheduling logic that integrates with Snakemake's workflow execution engine.

Yes, if you are developing a Snakemake scheduler plugin. This is a required dependency for that use case and has low install friction. No, if you are a Snakemake end-user—you do not need this directly. Be aware that the license is unclear in the metadata, so verify the actual license before using in proprietary work. The aging maintenance status (298 days since last release) is typical for a stable interface package but means slower response to compatibility issues.

Install

snakemake-interface-scheduler-plugins on PyPI

pip

pip install snakemake-interface-scheduler-plugins

uv

uv add snakemake-interface-scheduler-plugins

poetry

poetry add snakemake-interface-scheduler-plugins

Installing snakemake-interface-scheduler-plugins

Before you install

Low install friction with a single runtime dependency (snakemake-interface-common). Maintenance status is aging—last release was 298 days ago—so expect slower response to issues, though the package appears stable for its narrow interface role.

License in practice

License treatment is unclear; no SPDX identifier or raw license text is available in the package metadata. Verify the actual license before depending on this in proprietary or GPL-sensitive projects.

Quickstart

pip install snakemake-interface-scheduler-plugins

from snakemake_interface_scheduler_plugins.base import SchedulerBase
from snakemake_interface_scheduler_plugins.settings import SchedulerSettingsBase

class Scheduler(SchedulerBase):
    def select_jobs(self, selectable_jobs, remaining_jobs, available_resources, input_sizes):
        # Implement custom scheduling logic
        return selectable_jobs

Requires Python 3.11 or later (supports_current). Plugin implementations must follow naming convention snakemake-scheduler-plugin-* and be published on PyPI to be discoverable by Snakemake.

Verify before relying

  • Whether the package includes automated testing scaffolding or if Snakedeploy is a separate required tool for plugin development.
  • Whether the interface is forward-compatible across Snakemake major versions or if plugins need rebuilding.
  • Actual license text or SPDX identifier (currently marked unclear in metadata).

Package facts

License not declared (unclear)
Python support supports the current Python release (<4.0,>=3.11)
Install friction low — pure-Python wheel
Runtime dependencies 1 — snakemake-interface-common
Maintenance aging — 298 days since the last release
First released
Downloads 95,971/month — #13,240 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: snakemake_interface_scheduler_plugins-2.0.2-py3-none-any.whl

Tags

snakemake scheduler plugin interfacecustom job scheduler for snakemakesnakemake plugin developmentworkflow scheduling interfacesnakemake task schedulingplugin base classes snakemakescheduler plugin skeleton
snakemake-pluginworkflow-schedulinginterface-specification

More Application Frameworks packages

fastapi

FastAPI is a Python web framework for building…

permissive · top 100 on PyPI

annotated-doc

Provides a way to document function parameters,…

permissive · top 100 on PyPI

textual

Textual is a Python framework for building…

permissive · top 100 on PyPI

typer

Typer builds command-line applications from…

permissive · top 1,000 on PyPI

mcp

Build and connect to Model Context Protocol…

permissive · top 1,000 on PyPI

Werkzeug

Werkzeug is a WSGI utility library providing…

permissive · top 1,000 on PyPI

snakemake-interface-executor-plugins

Provides a stable interface specification for…

permissive · top 15,000 on PyPI

snakemake-interface-report-plugins

Defines the interface contract that Snakemake…

unclear · top 15,000 on PyPI

snakemake-interface-logger-plugins

Provides a stable interface specification for…

unclear · top 15,000 on PyPI

snakemake

Snakemake is a workflow management system that…

permissive · top 15,000 on PyPI

snakemake-interface-storage-plugins

Provides a stable interface specification and…

unclear · top 5,000 on PyPI

snakemake-interface-common

Provides shared interfaces, utilities, and data…

unclear · top 5,000 on PyPI

rq-scheduler

Adds job scheduling capabilities to RQ (Redis…

permissive · top 15,000 on PyPI

schedule

Schedule provides a human-friendly API for…

permissive · top 5,000 on PyPI

scheduler

An in-process job scheduler for Python that…

copyleft · top 15,000 on PyPI

luigi

Luigi is a Python workflow orchestration…

permissive · top 5,000 on PyPI