Commit f2011e21 authored by Claude Paroz's avatar Claude Paroz
Browse files

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

This fixes a regression introduced in 6d302f63.
Thanks lorinkoz at gmail.com for the report, Collin Anderson
for the initial patch and Simon Charette for the review.
Backport of 4e424084 from master.
parent 6d5238f6
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -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


+1 −0
Original line number Diff line number Diff line
@@ -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()))