Experimental in this version Plugins were experimental in v0.5.8 and v0.5.9. For stable plugin docs, see the v0.6.0 plugin docs.
Plugins are Python packages that extend Data Designer’s capabilities without modifying the core library. Similar to VS Code extensions and Pytest plugins, the plugin system empowers you to build specialized extensions for your specific use cases and share them with the community.
Current capabilities: Data Designer supports three plugin types:
A Data Designer plugin is just a Python package configured with an entry point that points to a Data Designer Plugin object. Once installed, plugins are automatically discovered and ready to use — no additional registration or configuration needed.
Use the Data Designer CLI to discover and install published plugin packages from catalogs. See Discover Plugins for the catalog workflow. See the example plugin for a complete authoring walkthrough, or jump to FileSystemSeedReader Plugins for filesystem-backed seed reader authoring.
Creating a plugin involves three main steps:
Each plugin has three components, and we recommend organizing them into separate files within a plugin subdirectory:
config.py — Configuration class defining user-facing parameters
SingleColumnConfig with a column_type discriminatorSeedSource with a seed_type discriminatorProcessorConfig with a processor_type discriminatorimpl.py — Implementation class containing the core logic
ColumnGeneratorFullColumn or ColumnGeneratorCellByCellSeedReader or FileSystemSeedReader for directory-backed sourcesProcessor and override callback methods (process_before_batch, process_after_batch, process_after_generation)plugin.py — A Plugin instance that connects the config and implementation classespyproject.tomldata_designer.pluginsdata-designer)uv pip install -e . (editable mode)data-designer pluginExample entry point for a processor plugin:
Where my_processor_plugin is a Plugin instance with plugin_type=PluginType.PROCESSOR:
Ready to get started?
1:N filesystem reader example