{"library":"snakemake-interface-executor-plugins","title":"Snakemake Executor Plugins Interface","type":"library","description":"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.","language":"python","status":"active","last_verified":"Mon May 18","install":{"commands":["pip install snakemake-interface-executor-plugins"],"cli":null},"imports":["from snakemake_interface_executor_plugins.settings import ExecutorSettingsBase","from snakemake_interface_executor_plugins.settings import CommonExecutorSettings","from snakemake_interface_executor_plugins.executors.base import ExecutorBase","from snakemake_interface_executor_plugins.executors.base import RemoteExecutor","from snakemake_interface_executor_plugins.workflow import ExecutorWorkflowArgs"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":null,"docs":null,"changelog":null,"pypi":"https://pypi.org/project/snakemake-interface-executor-plugins/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"from snakemake_interface_executor_plugins.settings import ExecutorSettingsBase\nfrom typing import Optional\n\n# Define custom settings for a hypothetical executor plugin\nclass MyCustomExecutorSettings(ExecutorSettingsBase):\n    \"\"\"\n    Settings for MyCustomExecutor.\n    \"\"\"\n    my_custom_param: str = \"default_value\"\n    another_setting: Optional[int] = None\n\n    def __post_init__(self):\n        # Optional: Add validation or post-initialization logic\n        if not self.my_custom_param:\n            raise ValueError(\"my_custom_param cannot be empty\")\n        print(f\"MyCustomExecutorSettings initialized: {self.my_custom_param}\")\n\n# Example of creating an instance of the custom settings\nif __name__ == \"__main__\":\n    try:\n        settings = MyCustomExecutorSettings(my_custom_param=\"special_value\")\n        print(f\"Custom param: {settings.my_custom_param}\")\n        \n        invalid_settings = MyCustomExecutorSettings(my_custom_param=\"\")\n    except ValueError as e:\n        print(f\"Caught expected error for empty param: {e}\")","lang":"python","description":"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.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-18","installed_version":"6.0.0","pypi_latest":"9.4.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":1.9,"avg_import_s":0.06,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":2.4,"disk_size":"19.0M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.03,"mem_mb":2.4,"disk_size":"19M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.09,"mem_mb":2.9,"disk_size":"21.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.9,"import_time_s":0.08,"mem_mb":2.9,"disk_size":"22M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.08,"mem_mb":2.7,"disk_size":"12.8M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.08,"mem_mb":2.7,"disk_size":"13M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.07,"mem_mb":2.7,"disk_size":"12.6M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":1.8,"import_time_s":0.07,"mem_mb":2.5,"disk_size":"13M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.05,"mem_mb":2.4,"disk_size":"18.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"snakemake-interface-executor-plugins","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":2.1,"import_time_s":0.04,"mem_mb":2.4,"disk_size":"19M"}]}}