Skip to content

Add related plugins support to PluginDescription and Plugin#40

Merged
louiswesterheide merged 4 commits intomainfrom
feature/relatedPlugins-CMEM-7549
Apr 17, 2026
Merged

Add related plugins support to PluginDescription and Plugin#40
louiswesterheide merged 4 commits intomainfrom
feature/relatedPlugins-CMEM-7549

Conversation

@edufuga
Copy link
Copy Markdown

@edufuga edufuga commented Apr 16, 2026

Related plugins support

Introduces PluginReference — a small class carrying a plugin_id and an optional description of the relationship — and wires it into both PluginDescription and the @Plugin decorator via a new related_plugins parameter.

Plugin authors can now declare related plugins directly in the annotation:

@Plugin(
    label="My Plugin",
    related_plugins=[
        PluginReference(plugin_id="some-other-plugin", description="Recommended replacement"),
        PluginReference(plugin_id="another-plugin")
    ]
)

The field defaults to an empty list and is purely additive — no existing plugins are affected. DataIntegration reads it via jep and exposes it in the plugin list API as part of CMEM-7549.

Also bumps trivy-py-ecc to 0.69.3.1, which was required to build on Python 3.13 — the previous version failed with a PEP 517 wheel build error.

Eduard Fugarolas added 4 commits April 15, 2026 09:53
Adds a PluginReference class to hold a plugin identifier and an optional description of the relationship. Extends PluginDescription and the Plugin decorator with a related_plugins parameter.
…on.init.

Bumps trivy-py-ecc from 0.68.2.1 to 0.69.3.1. Adds PLR0912 to the existing noqa suppression on PluginDescription.init, which now exceeds the branch limit after the related_plugins addition.
Replaces four if/else blocks with ternary expressions, removing the need for the PLR0912 branch-count suppression.
@github-actions
Copy link
Copy Markdown

Coverage

Coverage Report
File Stmts Miss Cover Missing
init.py 0 0 100%
testing.py 64 16 75% 75 89-93 115 119 123 127 131 135 148-149 153 157
dataintegration/init.py 0 0 100%
dataintegration/context.py 57 0 100%
dataintegration/description.py 182 16 91% 46 73-74 146-147 151 161 166 180 186 227 241 365 408 416-417
dataintegration/discovery.py 49 36 27% 27 38-43 55-62 64 66-68 70 84-85 87-90 92-93 95-100 106 108
dataintegration/entity.py 31 3 90% 41 66 86
dataintegration/plugins.py 30 5 83% 23 27 31 35 50
dataintegration/ports.py 15 1 93% 32
dataintegration/types.py 115 13 89% 70-71 87 99 107 120 155 159-161 171 175 276
dataintegration/parameter/init.py 0 0 100%
dataintegration/parameter/choice.py 23 1 96% 26
dataintegration/parameter/code.py 52 0 100%
dataintegration/parameter/dataset.py 33 5 85% 30-32 51 54
dataintegration/parameter/graph.py 53 6 89% 47 72 75 79 90-91
dataintegration/parameter/multiline.py 4 4 0% 3 6 9-10
dataintegration/parameter/password.py 26 13 50% 11-13 17 34-37 39-40 47-49
dataintegration/parameter/resource.py 17 0 100%
dataintegration/typed_entities/init.py 6 0 100%
dataintegration/typed_entities/file.py 136 30 78% 71 75-76 80-81 85-86 90 93 96 149 160-161 183 205 207 225-230 235 253 256-261
dataintegration/typed_entities/quads.py 99 57 42% 90-106 135-139 142-146 149 159 162 179-186 189 192-194 196 199 202-208 210 213-216 219
dataintegration/typed_entities/typed_entities.py 28 2 93% 56-57
dataintegration/utils/init.py 38 13 66% 23 25 29 39-46 49-50
dataintegration/utils/entity_builder.py 86 0 100%
TOTAL 1144 221 81%  

Tests Skipped Failures Errors Time
38 1 💤 0 ❌ 0 🔥 25.890 ⏱

@edufuga edufuga requested a review from robertisele April 16, 2026 12:57
@edufuga edufuga requested review from louiswesterheide and seebi and removed request for robertisele April 16, 2026 13:24
@louiswesterheide louiswesterheide merged commit b6c64ae into main Apr 17, 2026
2 checks passed
@louiswesterheide louiswesterheide deleted the feature/relatedPlugins-CMEM-7549 branch April 17, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants