Absolute/Relative import switcher for packages (PEP 328)

FWIW: Here is the solution for Absolute/Relative problem that we are using in our modified Python distribution... We have added a few lines of code to to get_parent in import.c. The code checks if there is "__absimport__=True" in parent dict and if so: absolute import is used in "child" module (get_parent returns Py_None) Then putting "__absimport__=True" into an __init__.py is enough to force absolute import for the whole package. (The "__absimport__=True" switcher should be put into each subpackage __init__.py,if desired) Such addition is fully compatible with existing Python import syntax and easy to use. Also: absolute import could be default,and "__relimport__=True" would switch to relative import. If nothing else,the switcher really helps with tracking absolute/relative import bugs in Python packages. Wiktor Sadowski

Wiktor Sadowski wrote:
FWIW: Here is the solution for Absolute/Relative problem that we are using in our modified Python distribution...
We have added a few lines of code to to get_parent in import.c. The code checks if there is "__absimport__=True" in parent dict and if so: absolute import is used in "child" module (get_parent returns Py_None)
Then putting "__absimport__=True" into an __init__.py is enough to force absolute import for the whole package. (The "__absimport__=True" switcher should be put into each subpackage __init__.py,if desired)
Such addition is fully compatible with existing Python import syntax and easy to use.
Also: absolute import could be default,and "__relimport__=True" would switch to relative import.
Personally, I would like very much to have a way to specify as default absolute imports in packages, instead of in modules. I would not mind if I have to specify it in all packages. The environment where I work uses a lot modules in few packages. A way to specify it in packages would ease our development until Python 2.6. Regards, Nicolas
participants (2)
-
Nicolas Fleury
-
Wiktor Sadowski