Merge branch 'performance_style_guide_for' into 'master'

Fix performance regression with per-file-ignores

Closes #501

See merge request pycqa/flake8!299
This commit is contained in:
Anthony Sottile 2019-01-31 18:58:02 +00:00
commit 59fdc5250c
3 changed files with 8 additions and 9 deletions

View file

@ -11,6 +11,7 @@ requires-dist =
enum34; python_version<"3.4"
typing; python_version<"3.5"
configparser; python_version<"3.2"
functools32; python_version<"3.2"
entrypoints >= 0.3.0, < 0.4.0
pyflakes >= 2.1.0, < 2.2.0
pycodestyle >= 2.5.0, < 2.6.0

View file

@ -28,7 +28,7 @@ requires = [
extras_require = {
":python_version<'3.4'": ['enum34'],
":python_version<'3.5'": ['typing'],
":python_version<'3.2'": ['configparser'],
":python_version<'3.2'": ['configparser', 'functools32'],
}
if int(setuptools.__version__.split('.')[0]) < 18:

View file

@ -3,10 +3,10 @@ import collections
import contextlib
import copy
import enum
import functools
import itertools
import linecache
import logging
import sys
from typing import Optional, Union # noqa: F401 (until flake8 3.7)
from flake8 import defaults
@ -18,13 +18,10 @@ __all__ = ("StyleGuide",)
LOG = logging.getLogger(__name__)
try:
lru_cache = functools.lru_cache
except AttributeError:
def lru_cache(maxsize=128, typed=False):
"""Stub for missing lru_cache."""
return lambda func: func
if sys.version_info < (3, 2):
from functools32 import lru_cache
else:
from functools import lru_cache
# TODO(sigmavirus24): Determine if we need to use enum/enum34
@ -366,6 +363,7 @@ class StyleGuideManager(object):
filename=filename, extend_ignore_with=violations
)
@lru_cache(maxsize=None)
def style_guide_for(self, filename):
"""Find the StyleGuide for the filename in particular."""
guides = sorted(