Registry / workflow / snakemake-interface-executor-plugins

snakemake-interface-executor-plugins

JSON →
library9.4.0pypypi✓ verified 89d ago

This package provides a stable, versioned interface for interactions between Snakemake and its executor plugins. It defines the abstract base classes and data structures that plugin developers must implement to integrate custom execution backends with Snakemake. The current version is 9.4.0, and its release cadence is closely tied to major Snakemake releases, ensuring compatibility and stability for plugin development.

pip install snakemake-interface-executor-plugins
INSTALL
IMPORT
SIG · SNAKEMAKE-INTERFAC
S
snakemake-interface-executor-plugins
workflowpythonv9.4.0
Install
1.9s avg
Import
66ms
Disk
17MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.9–3.13
musl
3.9–3.13
Install & Compatibility
Where this runs
tested against v6.0.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.10–3.920 runs
installs and imports cleanly · install 0.0s · import 0.070s · 19MB
glibc
py 3.10–3.920 runs
installs and imports cleanly · install 1.9s · import 0.063s · 19MB
17MB installed
● package 17MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

ExecutorSettingsBase
✓ from snakemake_interface_executor_plugins.settings import ExecutorSettingsBase
CommonExecutorSettings
✓ from snakemake_interface_executor_plugins.settings import CommonExecutorSettings
ExecutorBase
✓ from snakemake_interface_executor_plugins.executors.base import ExecutorBase
✗ from snakemake_interface_executor_plugins.executors.base_executor import ExecutorBase
The 'base' module is the canonical import path; 'base_executor' might be an internal or deprecated path.
RemoteExecutor
✓ from snakemake_interface_executor_plugins.executors.base import RemoteExecutor
ExecutorWorkflowArgs
✓ from snakemake_interface_executor_plugins.workflow import ExecutorWorkflowArgs

This quickstart demonstrates how to define custom executor settings by subclassing `ExecutorSettingsBase`. This is a common first step for developing a Snakemake executor plugin, allowing the plugin to expose configurable parameters.

from snakemake_interface_executor_plugins.settings import ExecutorSettingsBase from typing import Optional # Define custom settings for a hypothetical executor plugin class MyCustomExecutorSettings(ExecutorSettingsBase): """ Settings for MyCustomExecutor. """ my_custom_param: str = "default_value" another_setting: Optional[int] = None def __post_init__(self): # Optional: Add validation or post-initialization logic if not self.my_custom_param: raise ValueError("my_custom_param cannot be empty") print(f"MyCustomExecutorSettings initialized: {self.my_custom_param}") # Example of creating an instance of the custom settings if __name__ == "__main__": try: settings = MyCustomExecutorSettings(my_custom_param="special_value") print(f"Custom param: {settings.my_custom_param}") invalid_settings = MyCustomExecutorSettings(my_custom_param="") except ValueError as e: print(f"Caught expected error for empty param: {e}")
Debug
Known issues
breakingBreaking changes in the interface can occur between major Snakemake versions (e.g., Snakemake 8 to 9). Existing plugins might require updates to adapt to new abstract methods or altered data structures.
fix
Consult the official Snakemake release notes and the `snakemake-interface-executor-plugins` changelog for specific migration instructions when upgrading Snakemake.
affects: All versions across major Snakemake releases
gotchaWhen subclassing `ExecutorBase`, `ExecutorSettingsBase`, or other abstract classes, you must implement all abstract methods defined in the base class. Failure to do so will result in a `TypeError`.
fix
Ensure all abstract methods (marked with `@abstractmethod` in the base class) are implemented in your concrete plugin class. Use `mypy` or similar type checkers during development to catch these issues early.
affects: All versions
gotchaThis package provides *interfaces* for Snakemake plugins, not a standalone executor. It should only be used by developers creating Snakemake executor plugins, not for general Snakemake usage or direct execution.
fix
Understand that this package is a dependency for *plugin development*, defining the contract between Snakemake and a plugin. It's not intended for end-user interaction with Snakemake.
affects: All versions
gotchaThe version of `snakemake-interface-executor-plugins` must be compatible with your installed `snakemake` version. Using an incompatible version might lead to runtime errors or unexpected behavior.
fix
Always install the `snakemake-interface-executor-plugins` version recommended or bundled with your `snakemake` installation, or check the official Snakemake documentation for compatibility matrix.
affects: All versions
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'snakemake_interface_executor_plugins'
The `snakemake-interface-executor-plugins` package is not installed in your Python environment.
fix
Run `pip install snakemake-interface-executor-plugins` to install the package.
TypeError: Can't instantiate abstract class ExecutorBase with abstract methods cleanup, exec_job, ...
You are trying to instantiate an abstract base class or a subclass that has not implemented all required abstract methods.
fix
Ensure that your concrete executor plugin class (e.g., `MyCustomExecutor`) implements all abstract methods defined in `ExecutorBase` (or `ExecutorSettingsBase` if you're subclassing that).
AttributeError: 'MyCustomExecutor' object has no attribute 'workflow_args'
The `ExecutorWorkflowArgs` object or its attributes were not correctly initialized or assigned within your custom executor plugin's `__init__` or `run` methods.
fix
Ensure your executor plugin's `__init__` method correctly receives and stores the `workflow_args` parameter, typically passed by Snakemake when initializing the plugin.
Upgrade
Version history
9.4.0latest on PyPI · released Mar 8, 2026
Audit
Dependencies

No dependency data recorded yet.

Agent activity
24 hits · last 30 days
node
20
Amazon
1
OpenAI (training)
1
Resources
snakemake-interface-executor-plugins — pip install snakemake-interface-executor-plugins · libregistry