{"categories":[{"label":"Application Frameworks","url":"https://skillfed.io/packages/category/software-development-libraries-application-frameworks/5"}],"enrichment":{"capability":"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.","skillfed_tags":["snakemake-plugin","workflow-scheduling","interface-specification"],"use_cases":["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."],"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\u2014it is purely a specification layer that ensures plugins can be discovered and loaded by Snakemake at runtime.\n\nPlugin 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.","worth_installing":"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\u2014you 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."},"id":"snakemake-interface-scheduler-plugins","links":{"html":"https://skillfed.io/packages/snakemake-interface-scheduler-plugins","md":"https://skillfed.io/packages/snakemake-interface-scheduler-plugins.md","pypi":"https://pypi.org/project/snakemake-interface-scheduler-plugins/"},"maintenance":{"status":"aging"},"meta":{"latest_release":"2025-10-20","license_spdx":null,"license_treatment":"unclear","name":"snakemake-interface-scheduler-plugins","python_support":"supports_current","summary":"Scheduler plugin interface for snakemake"},"popularity":{"monthly_downloads":95971,"position":13240,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"2.0.2"}
