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

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -