Open lagru opened 1 year ago
/cc @tlambert03
if I recall correctly, that limitation was more like a NotImplementedError
...
I do think you'd run into NameErrors if you just naively removed the ValueError
, but i think it's something that could be implemented with a little work (need to reorient myself to how that Visitor was working). I'll try to take a look soon
ok, now I remember, this "within-module" limitation is actually hardcoded into the attach
function itself (not just the stub loader).
The lines above limit lazy_loader.attach
to modules that are below whatever module attach
is being used in. So, if the stub loader is to support super-module imports, the attach
function would also need to be updated
In https://github.com/scikit-image/scikit-image/pull/7007 we have run into https://github.com/scientific-python/lazy_loader/blob/2334bd279d40e0dadd3af48fe4ec494d3ce7f47d/lazy_loader/__init__.py#L204-L206
while trying to apply
lazy_loader.attach_stub
toskimage.morphology
. That submodule tries to import and exposelabel
fromskimage.measure
again as a public API function. We can workaround this by just making this import one level-deeper in a submodule, e.g.skimage.morphology._util
.However, I was wondering if this limitation is artificial and could be removed or if this constraint prevents other problems for
lazy_loader
.