--- id: snakemake-interface-scheduler-plugins version: "2.0.2" license: unclear license_treatment: unclear maintenance: aging --- # snakemake-interface-scheduler-plugins — Scheduler plugin interface for snakemake License: unclear · Maintenance: aging · Downloads: 96.0K/mo ## 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 above — 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 pip install snakemake-interface-scheduler-plugins uv add snakemake-interface-scheduler-plugins 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_current - Install friction: low - Maintenance: aging - Downloads: 96.0K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags snakemake scheduler plugin interface, custom job scheduler for snakemake, snakemake plugin development, workflow scheduling interface, snakemake task scheduling, plugin base classes snakemake, scheduler plugin skeleton, snakemake-plugin, workflow-scheduling, interface-specification [View on SkillFed](https://skillfed.io/packages/snakemake-interface-scheduler-plugins) · [View on PyPI](https://pypi.org/project/snakemake-interface-scheduler-plugins/)