You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Being more explicit with documenting public API #2235
As a result of discussion in #2234, opening this issue to make consensus on eventually declaring public API directly in Python sources.
Current behavior:
Developers can explore API provided by python-tuf using RTD pages. As per PEP-8 standard, __all__ could be considered to declare public API. Note by doing so, this also affects start imports.
Expected behavior:
Identify possible use-cases for declaring public API in Python sources.
I'll leave some comments for ngclient since I think that's the easy case:
I'm pretty happy with what is in tuf/ngclient/__init__.py: that really defines the public ngclient API. Defining __all__ sounds good to me -- but not sure if it changes anything from default? Maybe defining __all__ even if it is same as default is good practice? 🤷
in hindsight, all of the sub modules could have been internal (so updater.py could be _updater.py or _internal/updater.py)
If we did that, probably the only required addition to __init__.py might be a import TargetFile (because the updater API exposes it so makes sense to make it available)
This would be an API change but likely not a problematic one
I think the ngclient changes sound reasonable (not strictly necessary but result would likely be better software)
Activity
jku commentedon Dec 19, 2022
I'll leave some comments for ngclient since I think that's the easy case:
tuf/ngclient/__init__.py: that really defines the public ngclient API. Defining__all__sounds good to me -- but not sure if it changes anything from default? Maybe defining__all__even if it is same as default is good practice? 🤷__init__.pymight be aimport TargetFile(because the updater API exposes it so makes sense to make it available)I think the ngclient changes sound reasonable (not strictly necessary but result would likely be better software)
fridex commentedon Jan 26, 2023
See also #2234 (comment)
lukpueh commentedon Apr 1, 2025
Is there still a wish to add
__all__to tuf.api.init`?