This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Created on 2014-09-16 21:00 by simonmweber, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (1)
msg226965 - (view) Author: Simon Weber (simonmweber) Date: 2014-09-16 21:00
When dealing with implicit relative imports of the form "import <dotted_as_names> as...", the 2to3 import fixer will rewrite them as "from . import <dotted_as_names> as...". This is invalid syntax. Here's an example: $ tree package/ package/ ├── __init__.py ├── rootmod.py └── subpackage ├── __init__.py └── mod.py 1 directory, 4 files $ cat package/rootmod.py # this is the only nonempty file import subpackage.mod as my_name $ python package/rootmod.py $ 2to3 -w -f import package/ RefactoringTool: Refactored package/rootmod.py --- package/rootmod.py	(original) +++ package/rootmod.py	(refactored) @@ -1 +1 @@ -import subpackage.mod as my_name +from . import subpackage.mod as my_name RefactoringTool: Files that were modified: RefactoringTool: package/rootmod.py $ python package/rootmod.py File "package/rootmod.py", line 1 from . import subpackage.mod as my_name ^ SyntaxError: invalid syntax Probably the easiest way to rewrite this is "from .subpackage import mod as my_name".
History
Date User Action Args
2022-04-11 14:58:08adminsetgithub: 66615
2021-10-20 22:45:13iritkatrielsetstatus: open -> closed
superseder: Close 2to3 issues and list them here
resolution: wont fix
stage: resolved
2014-09-21 09:09:34Arfreversetnosy: + Arfrever
2014-09-17 00:37:58ned.deilysetnosy: + benjamin.peterson
2014-09-16 21:00:27simonmwebercreate