Skip to content

Commit

Permalink
Fixed #22991 -- Prevented *.pyc files in autoreload monitoring
Browse files Browse the repository at this point in the history
This fixes a regression introduced in 6d302f6.
Thanks lorinkoz at gmail.com for the report, Collin Anderson
for the initial patch and Simon Charette for the review.
  • Loading branch information
claudep committed Jul 15, 2014
1 parent 5dcdbe9 commit 4e42408
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
16 changes: 10 additions & 6 deletions django/utils/autoreload.py
Expand Up @@ -99,8 +99,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
Expand All @@ -119,10 +120,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:
Expand All @@ -133,8 +139,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


Expand Down
1 change: 1 addition & 0 deletions tests/utils_tests/test_autoreload.py
Expand Up @@ -81,3 +81,4 @@ def test_only_new_files(self):
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()))

0 comments on commit 4e42408

Please sign in to comment.