Registry /
workflow / snakemake-interface-executor-plugins
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
muslpy 3.10–3.920 runs
installs and imports cleanly · install 0.0s · import 0.070s · 19MB
glibcpy 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.fixConsult 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`.fixEnsure 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.fixUnderstand 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.fixAlways 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.
fixRun `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.
fixEnsure 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.
fixEnsure 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.