-
Notifications
You must be signed in to change notification settings - Fork 927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spike : Polishing API Surface #4473
Comments
Can we make Also, should we have a broader consultation with the community, or at least our TSC, about this instead of just researching on our own? I know @Galileo-Galilei has expressed some desires for the public API in recent times. |
In Kedro-Viz, we were initially calling |
Also xref kedro-org/kedro-plugins#139 ? Or should we leave that outside of 1.0? |
About |
AFAICT that doesn't require changes in the core Kedro framework, so no need to tackle it as part of |
Hi Team, For reference - Private methods/variables found in plugins Kedro-mlflow
Kedro-airflow
Kedro-datasets Kedro-docker
Kedro-telemetry
Kedro-boot
Thank you |
Here after are some API inconstencies I'd like to discuss. I indicate if they are breaking changes (💥) or not (✅). ✅ Private methods in kedro-mlflowThanks @ravi-kumar-pilla. Some remarks:
💥 Runtime parametersRuntime parameters are, at the very least, confusing #2169 (comment). They are named kedro/kedro/framework/session/session.py Line 261 in 9c70bae
kedro/kedro/config/omegaconf_config.py Lines 426 to 431 in 9c70bae
kedro/kedro/framework/context/context.py Lines 176 to 178 in 9c70bae
not to mention weird documentation references and different recommandation when using runtime parameters inside a notebook, deployment docs, or the CLI:
kedro/docs/source/configuration/parameters.md Line 174 in 9c70bae
kedro/kedro/ipython/__init__.py Line 115 in 9c70bae
kedro/docs/source/deployment/aws_batch.md Line 321 in 9c70bae
▶ We should rename everything runtime params, and make the code and documentation consistent. This is a breaking change though. Datasets✅ Public access to (versioned) filepathCurrently, a lot of plugins or private datasets are using
It was discussed, but never properly tackled in the DataCatalog refactoring (unless I missed something, maybe @ElenaKhaustova or @astrojuanlu can chime in?). I've found this discussion #3753, and I think it's definitely a method / function that should go public before 1.0. I understand that this needs more engineering effort than 'let's just make 💥 io vs data catalogKedro used to use a lot "io" as a synomym for datacatalog, and it was replaced 1 year ago: #3924. 💥 Rename MatplotlibWriter :This one has been on my list for a very long time because it is the only dataset with inconsistent naming, but that's a kedro-dataset issue: kedro-org/kedro-plugins#353 . Note that we once had a user complaining on slack that ChatGPT renamed 💥 Deprecate public "parameters"It is currently possible to pass all parameters in a node witht the keyword |
Amazing writeup, thanks a lot @Galileo-Galilei ! 1 quick Saturday afternoon reaction from me: I agree we should generally move away from |
Thank you @Galileo-Galilei for the writeup. Here is what I think - Private methods in kedro-mlflow
from importlib.metadata import version
version(‘kedro’)
Run time parameter naming
We should rename everything Rename MatplotlibWriter Based on the discussions in kedro-org/kedro-plugins#353 I think we can rename the dataset to Deprecate public "parameters" I am not sure why passing all parameters using
Thank you |
@Galileo-Galilei Regarding Would it make sense to do the same for kedro-mlflow? |
Some thoughts -
|
I tend to disagree, there are several other datasets without load or save method (
Actually it is because it messes up kedro-mlflow automatic parameter tracking with parameters unrelated to the pipeline, but I am not sure this is really an issue. If some people want to do this, maybe we should allow them ; on the same time we should promote getting parameters from a dict unpacking with a syntax like "params:hyperparameters.temperature`` (I think something like this is already possible?).
😮 I did not know the package name was accessible like this. I should try to check if there is any issue with kedro-mlflow (especially if bootstrapping is necessary first), but it should do the trick, thanks!
I tag @takikadiri for reference. Hopefully we can make most of the hack go away if reinjecting data in the session become possible in the core framework, and I hope this will become a reality soon! |
I'd love to have a broader conversation of dict unpacking
It would be cool to support |
Description
This is a spike ticket to review how Kedro-Viz and Kedro plugins interact with Kedro APIs and identify potential improvements for Kedro 1.0, particularly regarding the use of private methods. Additionally, we will assess how general users engage with Kedro APIs to explore further enhancements.
The text was updated successfully, but these errors were encountered: