Am I being dumb - is there no way to do this without doing a customer resolver like this?
is user
password
a backend specific arguments? Usually credentials
is the argument and you don't need to use a resolver but the built-in Kedro credentials.
I see ibis.TableDataset
doesn't have credentials
as argument, it is an implementation issue but maybe there are some consideration for this?
My main point is that this feels quite ergonomic for me, why don't we make this default resolver?
I think the Deepayman's implementation is purposefully not opinionated since that way it will work with every Ibis backend
IMO yes, there were some concern but I don't think that's the case. https://github.com/kedro-org/kedro/discussions/4320#discussioncomment-11306477
I see https://github.com/kedro-org/kedro/issues/4259 now, so may be we are moving forward with this finally?
It’s not like https://github.com/kedro-org/kedro/issues/4259 blocks https://github.com/kedro-org/kedro/discussions/4320#discussioncomment-11306477 but vice versa. We start as soon as we decide there’s enough evidence to make credentials a resolver.
what's the actual blockers in the discussion? The only thing I can recall is the credential leak
Oh I see what you mean, it would be nice if the resolver made the catalog repr / dict mask
though we can also argue we should fix that? But if that's not a problem for years, is that really important
Like it's not fool proof, but it's pretty good for interactive workflow and 1 line of code
There’s also one more thing: people inject credentials with hooks like so: https://docs.kedro.org/en/stable/hooks/common_use_cases.html#use-hooks-to-load-external-credentials
It will be slightly more difficult if we resolve them with config loader and make them part of dataset config
though we can also argue we should fix that? But if that's not a problem for years, is that really important
that was the main argument 🙂
https://docs.python.org/3/library/collections.html#collections.UserString
there are always weird Python thing with subclass the native Python type, so you may want to use this one instead.
stdlib
- you're the software engineers - I'm the ideas guy 😎 / imposter