What is the rationale given for not allowing: import .moduleY as a relative import statement meaning "from the package containing the module running the import statement, import moduleY"? The PEP suggests that "relative imports will require listing specific names to import". I'm wondering what about "moduleY" in the above isn't specific? FWIW, I read through much of the meanderings of the old threads but never saw a specific damnation-with-cause of this. - C On Sun, 2004-04-11 at 13:23, Aahz wrote:
On Sun, Apr 11, 2004, Barry Warsaw wrote:
This is one of the reasons I suggested early on that there be a way to spell -- at the package level by the package developer -- "I'm using absolute imports here". Without that spelling, the package would still use the old semantics, however broken they are <wink>.
E.g. if I could put in email/__init__.py something like:
from __future__ import i_am_absolutely_resolved_about_my_imports
then I'd expect PEP 328 semantics in package email and all subpackages. Older packages wouldn't have this declaration and would operate under the old rules. (I still don't have any need for relative imports. ;)
Anyone else favor having the ``__future__`` directive apply to the package and all its subpackages? (Currently it follows the standard rules of applying only to each module.) Note that this would make it impossible to do what some people want, where a package becomes another package's subpackage, if the new subpackage relies on relative imports under the old rules.