Issue #12618: py_compile cannot create files in current directory

Initial patch by Sjoerd de Vries.
This commit is contained in:
Meador Inge 2011-11-28 09:27:32 -06:00
parent 7be8f68d37
commit 22b9b37915
4 changed files with 16 additions and 1 deletions

View File

@ -130,7 +130,9 @@ def compile(file, cfile=None, dfile=None, doraise=False, optimize=-1):
else:
cfile = imp.cache_from_source(file)
try:
os.makedirs(os.path.dirname(cfile))
dirname = os.path.dirname(cfile)
if dirname:
os.makedirs(dirname)
except OSError as error:
if error.errno != errno.EEXIST:
raise

View File

@ -39,6 +39,15 @@ class PyCompileTests(unittest.TestCase):
py_compile.compile(self.source_path)
self.assertTrue(os.path.exists(self.cache_path))
def test_cwd(self):
cwd = os.getcwd()
os.chdir(self.directory)
py_compile.compile(os.path.basename(self.source_path),
os.path.basename(self.pyc_path))
os.chdir(cwd)
self.assertTrue(os.path.exists(self.pyc_path))
self.assertFalse(os.path.exists(self.cache_path))
def test_relative_path(self):
py_compile.compile(os.path.relpath(self.source_path),
os.path.relpath(self.pyc_path))

View File

@ -941,6 +941,7 @@ Kannan Vijayan
Kurt Vile
Norman Vine
Frank Visser
Sjoerd de Vries
Niki W. Waibel
Wojtek Walczak
Charles Waldman

View File

@ -83,6 +83,9 @@ Core and Builtins
Library
-------
- Issue #12618: Fix a bug that prevented py_compile from creating byte
compiled files in the current directory. Initial patch by Sjoerd de Vries.
- Issue #13444: When stdout has been closed explicitly, we should not attempt
to flush it at shutdown and print an error.