Issue26367
Created on 2016-02-16 00:59 by mjacob, last changed 2022-04-11 14:58 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| relimport-3.5.patch | mjacob, 2016-02-17 00:19 | Patch against 3.5 branch (without changes in Python/importlib.h) | ||
| relimport-3.6.patch | mjacob, 2016-02-17 00:20 | Patch against default branch (without changes in Python/importlib.h) | review | |
| Messages (11) | |||
|---|---|---|---|
| msg260338 - (view) | Author: Manuel Jacob (mjacob) * | Date: 2016-02-16 00:59 | |
Python 3.6.0a0 (default:6c6f7dff597b, Feb 16 2016, 01:24:51)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import importlib
>>> importlib.__import__('array', globals(), locals(), level=1)
<module '.array' from '/home/manu/vcs/cpython/build/lib.linux-x86_64-3.6/array.cpython-36m-x86_64-linux-gnu.so'>
>>> __import__('array', globals(), locals(), level=1)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: attempted relative import with no known parent package
Instead of failing, importlib.__import__ returns a module with a wrong name. This happens with both built-in modules and pure python modules. However it fails when replacing 'array' with 'time' (this seems to be related to whether the module is in Modules/Setup.dist).
|
|||
| msg260461 - (view) | Author: Manuel Jacob (mjacob) * | Date: 2016-02-18 14:44 | |
(For some reason, I forgot to submit the previous comment). The attached patches fix the issue (one for the 3.5 branch, one for the default branch) by bringing importlib.__import__ closer to the builtin __import__. The extra code in the default / 3.6 branch is because of the changes from issue18018. |
|||
| msg260484 - (view) | Author: Brett Cannon (brett.cannon) * | Date: 2016-02-18 22:53 | |
The corresponding code in C that actually does the check: https://hg.python.org/cpython/file/default/Python/import.c#l1498 Manuel, can you sign the CLA at https://www.python.org/psf/contrib/contrib-form/ ? Once you sign it I can officially review your patch, otherwise I technically can't touch your code. |
|||
| msg260486 - (view) | Author: Manuel Jacob (mjacob) * | Date: 2016-02-18 23:07 | |
Done. I'm a bit surprised this wasn't necessary for my previous two patches, but they were even more trival than this one. ;) Do we have to wait until my tracker profile is updated? |
|||
| msg260491 - (view) | Author: Brett Cannon (brett.cannon) * | Date: 2016-02-19 00:06 | |
If a contribution is insignificant enough then technically a CLA isn't necessary, but I just make it a habit to ask for one regardless. And your profile will probably get updated fairly quickly, so I wouldn't worry about it holding anything up (I'm hoping to commit the code tomorrow; I already did a review and it LGTM). |
|||
| msg260540 - (view) | Author: Terry J. Reedy (terry.reedy) * | Date: 2016-02-20 00:19 | |
Manuel, welcome to the tracker and thank you for submitting patches. I agree that 5 lines is past the threshhold. Your profile has been CLA-updated, so we are good to go. |
|||
| msg260575 - (view) | Author: Roundup Robot (python-dev) | Date: 2016-02-20 20:59 | |
New changeset e523efd47418 by Brett Cannon in branch '3.5': Issue #26367: Have importlib.__init__() raise RuntimeError when https://hg.python.org/cpython/rev/e523efd47418 New changeset 8f72bf88f471 by Brett Cannon in branch 'default': Merge for issue #26367 https://hg.python.org/cpython/rev/8f72bf88f471 |
|||
| msg260576 - (view) | Author: Brett Cannon (brett.cannon) * | Date: 2016-02-20 21:00 | |
Thanks for the patch, Manuel! |
|||
| msg260599 - (view) | Author: Manuel Jacob (mjacob) * | Date: 2016-02-21 09:29 | |
I think the "What's New" entry has two typos. It should be `importlib.__import__()` instead of `importlib.__init__()` and SystemError instead of RuntimeError. |
|||
| msg260623 - (view) | Author: Brett Cannon (brett.cannon) * | Date: 2016-02-21 17:23 | |
Thanks for spotting those! And just to clarify on terminology, the typos were in the NEWS file, not "What's New" which is a different thing (https://hg.python.org/cpython/file/default/Doc/whatsnew). |
|||
| msg298891 - (view) | Author: Serhiy Storchaka (serhiy.storchaka) * | Date: 2017-07-23 06:44 | |
New changeset c824cc8426a16dd9f3949a3ed135523d37787bae by Serhiy Storchaka in branch '3.5': [3.5] Backport bpo-30876 (GH-2639), bpo-18018 and bpo-26367. (#2677) https://github.com/python/cpython/commit/c824cc8426a16dd9f3949a3ed135523d37787bae |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022-04-11 14:58:27 | admin | set | github: 70555 |
| 2017-07-23 06:44:07 | serhiy.storchaka | set | nosy:
+ serhiy.storchaka messages: + msg298891 |
| 2016-02-21 17:23:08 | brett.cannon | set | messages: + msg260623 |
| 2016-02-21 09:29:39 | mjacob | set | messages: + msg260599 |
| 2016-02-20 21:00:13 | brett.cannon | set | status: open -> closed resolution: fixed messages: + msg260576 |
| 2016-02-20 20:59:44 | python-dev | set | nosy:
+ python-dev messages: + msg260575 |
| 2016-02-20 00:19:36 | terry.reedy | set | nosy:
+ terry.reedy messages: + msg260540 |
| 2016-02-19 00:06:38 | brett.cannon | set | messages: + msg260491 |
| 2016-02-18 23:07:12 | mjacob | set | messages: + msg260486 |
| 2016-02-18 22:53:43 | brett.cannon | set | messages:
+ msg260484 stage: patch review |
| 2016-02-18 14:44:03 | mjacob | set | messages: + msg260461 |
| 2016-02-17 19:44:31 | brett.cannon | set | assignee: brett.cannon |
| 2016-02-17 00:20:00 | mjacob | set | files: + relimport-3.6.patch |
| 2016-02-17 00:19:45 | mjacob | set | files:
+ relimport-3.5.patch keywords: + patch |
| 2016-02-16 00:59:01 | mjacob | create | |