docs: restructure plugin docs with multi-file layout and seed reader type#302
Open
johnnygreco wants to merge 7 commits intomainfrom
Open
docs: restructure plugin docs with multi-file layout and seed reader type#302johnnygreco wants to merge 7 commits intomainfrom
johnnygreco wants to merge 7 commits intomainfrom
Conversation
…type - Update plugin overview to document both column generator and seed reader plugin types - Restructure example plugin to use separate config.py, impl.py, and plugin.py files instead of a single-file approach - Add sections for plugin validation and multiple plugins per package - Document required config class methods (get_column_emoji, required_columns, side_effect_columns)
Expand explanation to mention circular dependency prevention as a key reason for separating config, impl, and plugin modules.
Greptile OverviewGreptile SummaryThis PR restructures the plugin documentation to recommend a multi-file layout and adds seed reader plugins as a second supported plugin type. Key Documentation Updates:
The documentation changes are accurate and align with the actual plugin implementation in
|
| Filename | Overview |
|---|---|
| docs/plugins/example.md | Restructured plugin documentation from single-file to multi-file layout (config.py, impl.py, plugin.py). Updated terminology, expanded config examples with get_column_emoji(), required_columns, side_effect_columns. Added sections for plugin validation and multiple plugins per package. |
| docs/plugins/overview.md | Updated to document both column generator and seed reader plugin types. Revised plugin component descriptions to recommend multi-file structure and updated base classes. |
Sequence Diagram
sequenceDiagram
participant Dev as Plugin Developer
participant Doc as Documentation
participant Pkg as Plugin Package
participant DD as DataDesigner
Note over Dev,DD: Plugin Development Workflow (New Multi-File Structure)
Dev->>Doc: Read restructured plugin docs
Doc-->>Dev: Shows multi-file layout recommendation
Dev->>Pkg: Create config.py
Note over Pkg: Defines SingleColumnConfig/SeedSource<br/>with discriminator field
Dev->>Pkg: Create impl.py
Note over Pkg: Implements ColumnGenerator or SeedReader
Dev->>Pkg: Create plugin.py
Note over Pkg: Instantiates Plugin object<br/>connecting config and impl
Dev->>Pkg: Define pyproject.toml entry point
Note over Pkg: Registers under data_designer.plugins
Dev->>DD: Install plugin (uv pip install -e .)
DD->>Pkg: Discover plugin via entry point
Pkg-->>DD: Load Plugin instance
Dev->>DD: Use plugin in config builder
Note over DD: Plugin works like built-in types
Dev->>DD: Validate with assert_valid_plugin()
DD-->>Dev: Confirms correct structure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Summary
Restructures the plugin documentation to recommend a multi-file layout (
config.py,impl.py,plugin.py) and documents seed reader plugins as a second supported plugin type.🔄 Changes
🔧 Changed
docs/plugins/example.md): Refactored from a single-file plugin layout to a multi-file structure with separateconfig.py,impl.py, andplugin.pyfiles. Updated terminology ("Task Class" → "Implementation Class"), expanded the config class example withget_column_emoji(),required_columns, andside_effect_columns, and removed the redundant "Complete plugin code" section.docs/plugins/overview.md): Updated to list both column generator and seed reader plugin types, and revised the "Implement the Plugin Components" section to describe the recommended multi-file structure.✨ Added
assert_valid_plugintesting utilitytests_e2e/as a reference🤖 Generated with AI