[1.7.x] Fixed #22991 -- Prevented *.pyc files in autoreload monitoring

This fixes a regression introduced in 6d302f639.
Thanks lorinkoz at gmail.com for the report, Collin Anderson
for the initial patch and Simon Charette for the review.
Backport of 4e424084e from master.
This commit is contained in:
Claude Paroz 2014-07-14 21:40:55 +02:00
parent 6d5238f6c8
commit f2011e21a2
2 changed files with 11 additions and 6 deletions

View File

@ -96,8 +96,9 @@ def gen_filenames(only_new=False):
return _cached_filenames
new_modules = module_values - _cached_modules
new_filenames = [filename.__file__ for filename in new_modules
if hasattr(filename, '__file__')]
new_filenames = clean_files(
[filename.__file__ for filename in new_modules
if hasattr(filename, '__file__')])
if not _cached_filenames and settings.USE_I18N:
# Add the names of the .mo files that can be generated
@ -116,10 +117,15 @@ def gen_filenames(only_new=False):
if filename.endswith('.mo'):
new_filenames.append(os.path.join(dirpath, filename))
_cached_modules = _cached_modules.union(new_modules)
_cached_filenames += new_filenames
if only_new:
filelist = new_filenames
return new_filenames
else:
filelist = _cached_filenames + new_filenames + _error_files
return _cached_filenames + clean_files(_error_files)
def clean_files(filelist):
filenames = []
for filename in filelist:
if not filename:
@ -130,8 +136,6 @@ def gen_filenames(only_new=False):
filename = filename[:-9] + ".py"
if os.path.exists(filename):
filenames.append(filename)
_cached_modules = _cached_modules.union(new_modules)
_cached_filenames += new_filenames
return filenames

View File

@ -81,3 +81,4 @@ class TestFilenameGenerator(TestCase):
filenames2 = list(gen_filenames(only_new=True))
self.assertEqual(len(filenames2), 1)
self.assertTrue(filenames2[0].endswith('fractions.py'))
self.assertFalse(any(f.endswith('.pyc') for f in gen_filenames()))