Kaydet (Commit) 9db3ae04 authored tarafından Brett Cannon's avatar Brett Cannon Kaydeden (comit) GitHub

[3.6] bpo-30645: don't append to an inner loop path in imp.load_package() (GH-2268) (#2364)

Bug didn't manifest itself when importing a module with source as .py files are always the first on the search path. The issue only showed up in bytecode-only packages where the calculated file path would be ``__init__.py/__init__.pyc``.

Patch by Alexandru Ardelean.

(cherry picked from commit c38e32a1)
üst e7135751
...@@ -203,8 +203,9 @@ def load_package(name, path): ...@@ -203,8 +203,9 @@ def load_package(name, path):
extensions = (machinery.SOURCE_SUFFIXES[:] + extensions = (machinery.SOURCE_SUFFIXES[:] +
machinery.BYTECODE_SUFFIXES[:]) machinery.BYTECODE_SUFFIXES[:])
for extension in extensions: for extension in extensions:
path = os.path.join(path, '__init__'+extension) init_path = os.path.join(path, '__init__' + extension)
if os.path.exists(path): if os.path.exists(init_path):
path = init_path
break break
else: else:
raise ValueError('{!r} is not a package'.format(path)) raise ValueError('{!r} is not a package'.format(path))
......
...@@ -56,6 +56,7 @@ Ankur Ankan ...@@ -56,6 +56,7 @@ Ankur Ankan
Heidi Annexstad Heidi Annexstad
Ramchandra Apte Ramchandra Apte
Éric Araujo Éric Araujo
Alexandru Ardelean
Alicia Arlen Alicia Arlen
Jeffrey Armstrong Jeffrey Armstrong
Jason Asbahr Jason Asbahr
......
...@@ -101,6 +101,10 @@ Library ...@@ -101,6 +101,10 @@ Library
variable-argument parameters wrapped with partialmethod. variable-argument parameters wrapped with partialmethod.
Patch by Dong-hee Na. Patch by Dong-hee Na.
- bpo-30645: Fix path calculation in imp.load_package(), fixing it for
cases when a package is only shipped with bytecodes. Patch by
Alexandru Ardelean.
- bpo-29931: Fixed comparison check for ipaddress.ip_interface objects. - bpo-29931: Fixed comparison check for ipaddress.ip_interface objects.
Patch by Sanjay Sundaresan. Patch by Sanjay Sundaresan.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment