How does the Kedro dev team think about delineatin...
# questions
g
How does the Kedro dev team think about delineating what components belong to the public API vs being internal-use only? I see single leading underscores
_<foo>
are used, which I assume means they belong to the private API. 'Sometimes' I see _`__all__`_ is used. Are things in that list safe to assume as part of the public API? If a variable (function/method/class/etc) does not have a leading underscore, and is not in a
___all___
, does that mean it is safe to assume it is also part of the public API?
👍🏼 1
d
TBH I don't think Kedro is that consistent in terms of how it defines a public API. At the same time, the team is very conservative around what constitutes a breaking change (almost any breaking change to a non-underscored field or method is considered grounds for a minor version bump).
👀 1
n
Quick answer: I think yes. Is there an example where it's not in
__all__
but it does not have a leading
_
?
👍 1
I think sometimes it's in
__all__
because we want to surface the API a little bit instead of
from a.b.c.d.e.f import x,y,z
. In pricinple anything does not have a
_
is consider "public" that we try not to break it during minor release.
👍 1
💡 1
g
@Nok Lam Chan Thanks! > Is there an example where it's not in
__all__
but it does not have a leading
_
? I have not checked. Just wanted to know what I can assume about what is stable for users.
👍🏼 1