Working on Lazy load legacy imports in skimage top module #6892 has raised the question for me on how our utility functions in our top-level skimage
namespace should be treated going forward. The current situation has several problems that I’d like to address:
- The
skimage
module includes a manually curated list of submodules and utility functions. This list is hard to keep in sync. E.g. right now theregistration
subpackage isn’t listed. - There’s no
skimage.__all__
at runtime (see 6904).dir(skimage)
works though. - Lazy loading of
skimage.data
is rendered ineffective by import ofdata_dir
(see #6891).
How do we want the skimage
namespace to behave with respect to runtime and inspection tools (that take into account the stub file)?
If we decide to keep advertising utility functions like img_as_float
we need to be aware, that they will be duplicated in our HTML documentation and simple references like :func:~img_as_float
need to be made more explicit.
I don’t particularly like a duplication in our docs, so my gut feeling right now would be to stop advertising and duplicating the utility functions in skimage
but keep them around at runtime indefinitely during “skimage1”. I don’t want to break user code unnecessarily. For skimage2 I’d remove the skimage2 namespace altogether.
Thoughts?