Spike: Provide a way for plugins to have runtime configuration and extend CLI arguments #2866
Labels
Issue: Feature Request
New feature or improvement to existing feature
Milestone
Description
settings.py
is the place that where you can disable/enable plugins, however it's not a good place to put runtime argument in.Consider that I have a plugin which utilize hooks to do runtime validation. The ideal way of doing so is
kedro run --my_plugin_check=True
. However, it's not possible to directly override thekedro run
command.Possible Implementations/Issues
cli.py
- this is documented badly - It's probably not a good choice because you need to do this per project, plugin have no control over it.kedro run
- If plugins are allowed to override/extendkedro run
(Is this even feasible?) - there are risks that argument will conflict with each other.What are the workarounds?
if/else
logic where plugin will behave differently when it sees a specific configuration. The config can be either change withmlflow.yml
(takekedro-mlflow
as an example) or inject via--params
(Separateparams
toruntime_params
andmeta_params
#2530 suggests thatparams
should beparameters.yml
specific, but this seems to be the most natural way to do it from the user perspective. In general, people don't really separate the "kedro parameters", they simply view everything that can be parameterized as "parameters".Outcome of this Issue:
Context
Related to #2384 in terms of adding new arguments for kedro run, but may not be a complete replacement.
Possible Implementation
pytest
did this for its plugins ecosystemPossible Alternatives
The text was updated successfully, but these errors were encountered: