I want to propagate some modules(utils) to top, but also controlling what is propagated using __all__
For example:
There is a package all and what is in __init__ are imported in alpha_utils, so from a user perspective the methods are like are coming from alpha_utils.
Also alpha_utils packages is imported by the module top_utils_module.
I want to do:
top_utils_module.beta_fn (even if beta_fn is in all package) top_utils_module.alpha_fn (even if beta is in alpha_utils package)
I can do using always import from <some_module_name> all but I want to have some control on what each module expose, by using "all".
Using a structure as below is not working, I can get what I want a level down but not two levels down.
-- top_2 utils_module
...
+-- alpha_utils
| -- __init__
| -- alpha_module_1
| -- alpha_module_2
| -- alpha_module_3
....
+-- all
| -- __init__
| -- all_module_1
| -- all_module_2
| -- all_module_3
in all folder __init__:
from .all_module_1 import fun1, fun12
from .all_module_2 import fun2
from .all_module_3 import fun3
__all__ = ["fun1", "fun2", "fun12", "fun2", "fun3"]
in alpha_utils folder __init__:
from ..all import *
_all__ = ["alpha_module_1", "alpha_module_2", "alpha_module_3"] ## ? how to integrate ..all
in top_2 utils_module:
from some.tir import tir
from alpha_utils import *
from Propagate module imports using __all__to top
No comments:
Post a Comment