python - Import nested submodules -
python - Import nested submodules -
i have function attach_connection_pinging in module mylib.tools.db. need phone call in mylib/__init__.py:
from .tools import db db.attach_connection_pinging() or
from .tools.db import attach_connection_pinging attach_connection_pinging() but don't solution, because creates unneeded names in mylib module.
my current solution auto-import needed submodules of tools package. mylib/tools/__init__.py:
from . import db . import log then in mylib/__init__.py:
from . import tools tools.db.attach_connection_pinging() tools.db.make_psycopg2_use_ujson() tools.log.attach_colorsql_logging() well it's best workaround i've found, it's not ideal.
ideally nicer, not compiling:
from . import tools.db . import tools.log tools.db.attach_connection_pinging() tools.db.make_psycopg2_use_ujson() tools.log.attach_colorsql_logging() is there improve solution? missing anything?
you do:
from .tools import db tools_db .tools import log tools_log alternatively, lastly illustration work as:
import tools.db the grab there if have other module named tools in python path, ambiguous.
lastly, take modify current workaround. in tools/__init__.py :
__all__ = ["db", "log"] then:
from tools import * tools.db the grab there "db" exist in namespace , conflict else that's called "db". recommend first "import as" solution.
python
Comments
Post a Comment