--- id: snakemake-interface-storage-plugins version: "4.4.1" license: unclear license_treatment: unclear maintenance: active --- # snakemake-interface-storage-plugins — This package provides a stable interface for interactions between Snakemake and its storage plugins. License: unclear · Maintenance: active · Downloads: 1.2M/mo ## What it is and what it does This package defines the contract between Snakemake and its storage plugins. It exports base classes and type definitions that plugin developers must implement to create custom storage backends—such as cloud storage, databases, or HTTP endpoints—that Snakemake can read from and write to during workflow execution. The interface includes abstract methods for querying storage validity, reading and writing objects, globbing patterns, rate limiting, and inventory operations. Plugin developers inherit from StorageProviderBase and StorageObject classes, implement required methods like is_valid_query and local_suffix, and optionally define settings dataclasses for CLI parameters. The package handles retry logic via a decorator and provides utilities for caching and safe logging of queries. Use it for: - Develop a custom storage plugin to integrate a proprietary or niche storage system with Snakemake workflows - Create a cloud storage backend plugin (e.g., for a specific object store) that Snakemake can use as a workflow input/output location - Build a database-backed storage plugin to store workflow artifacts in a relational or NoSQL database - Implement a storage plugin with custom rate limiting and retry logic for a rate-limited API or service ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides a stable interface specification and base classes for building Snakemake storage plugins that interact with various storage backends. Yes, if you are developing a Snakemake storage plugin. This is the required interface specification and base class library for that task. If you are a Snakemake end-user, install only if your workflow uses a custom storage plugin that depends on it. Verify the license status before use in proprietary projects. ## Install pip install snakemake-interface-storage-plugins uv add snakemake-interface-storage-plugins poetry add snakemake-interface-storage-plugins ## Installing snakemake-interface-storage-plugins Before you install: Active maintenance with recent commits. Low install friction as a pure Python wheel with five lightweight runtime dependencies (humanfriendly, snakemake-interface-common, tenacity, throttler, wrapt). License in practice: License status is unclear—no SPDX identifier or raw license text is declared in the package metadata. Verify the actual license terms before using in proprietary or restricted contexts. Quickstart: pip install snakemake-interface-storage-plugins from snakemake_interface_storage_plugins.storage_provider import StorageProviderBase from snakemake_interface_storage_plugins.storage_object import StorageObjectRead class MyStorageProvider(StorageProviderBase): pass class MyStorageObject(StorageObjectRead): pass Requires Python 3.10 or later. Intended for plugin developers; end-users need a Snakemake installation and a plugin that depends on this package. Verify before relying: - Whether the package is actually licensed under an open-source license despite the unclear metadata declaration - Stability guarantees or semantic versioning policy for the interface across major versions ## Package facts - License: not declared (unclear) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 1.2M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags snakemake storage plugin interface, snakemake storage backend abstraction, storage provider base classes, snakemake plugin development, storage plugin framework, snakemake-plugin, workflow-storage [View on SkillFed](https://skillfed.io/packages/snakemake-interface-storage-plugins) · [View on PyPI](https://pypi.org/project/snakemake-interface-storage-plugins/)