[issue15482] __import__() change between 3.2 and 3.3

New submission from Ronan Lamy: I noticed a change in the behaviour of __import__() between 3.2 and 3.3. It looks like in 3.2 __import__() does a Py2-style combo relative/absolute import. Here's a minimal test case: $ ls foo bar.py __init__.py __pycache__ $ cat foo/__init__.py __import__('bar', globals(), locals()) $ python3.3 -c "import foo" Traceback (most recent call last): File "<string>", line 1, in <module> File "./foo/__init__.py", line 1, in <module> __import__('bar', globals(), locals()) ImportError: No module named 'bar' $ python3.2 -c "import foo" $ I believe that 3.3 is correct and that 3.2 is wrong but can't be changed now, so I suppose that 3.2 should just document the actual behaviour of __import__() and 3.3 should document the change. (The context is that I encountered issue 15434. This looks related, but I'm not sure it is.) ---------- assignee: docs@python components: Documentation, Interpreter Core messages: 166706 nosy: Ronan.Lamy, brett.cannon, docs@python, ncoghlan priority: normal severity: normal status: open title: __import__() change between 3.2 and 3.3 versions: Python 3.2, Python 3.3 _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Eric Snow added the comment: See issue14592 (particularly msg158466). ---------- nosy: +eric.snow _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Nick Coghlan added the comment: The specific bug is that, in 3.2, the claimed default (level=0) is not accurate: the default is actually (level=-1), as it was in 2.x. The import statement passes level=0 explicitly (as it does in 2.x when "from __future__ import absolute_import" is in effect). The docstring in 3.2 is accurate, the prose documentation is incorrect. In 3.3, the docstring is currently wrong, but the prose documentation is correct. However, it should have a "versionchanged: 3.3" not added, indicating that the default import level has finally been brought into compliance with the documentation. ---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Nick Coghlan added the comment: s/not added/note added/ ---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Martin v. Löwis added the comment: So should 3.2 be changed to adjust the default value to match the documentation? ---------- nosy: +loewis _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Brett Cannon added the comment: On Jul 29, 2012 5:58 AM, "Martin v. Löwis" <report@bugs.python.org> wrote:
Martin v. Löwis added the comment:
So should 3.2 be changed to adjust the default value to match the
documentation? It is probably safe to do so. -brett
---------- nosy: +loewis
_______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________
---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Changes by Arfrever Frehtes Taifersar Arahesis <Arfrever.FTA@GMail.Com>: ---------- nosy: +Arfrever _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Brett Cannon added the comment: I just realized my reply was unclear; I meant changing Doc/library/functions.rst, not the code. And 3.3 already has a versionchanged note about no longer accepting negative indexes, but I will update it to mention the new default as well explicitly. ---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Roundup Robot added the comment: New changeset 3fe01f7520e2 by Brett Cannon in branch '3.2': Issue #15482: Properly document the default 'level' parameter for http://hg.python.org/cpython/rev/3fe01f7520e2 New changeset 05bec2e78a5c by Brett Cannon in branch 'default': Issue #15482: Merge 78449:3fe01f7520e2 with a minor clarification. http://hg.python.org/cpython/rev/05bec2e78a5c ---------- nosy: +python-dev _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________

Changes by Brett Cannon <brett@python.org>: ---------- resolution: -> fixed status: open -> closed _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue15482> _______________________________________
participants (7)
-
Arfrever Frehtes Taifersar Arahesis
-
Brett Cannon
-
Eric Snow
-
Martin v. Löwis
-
Nick Coghlan
-
Ronan Lamy
-
Roundup Robot