diff options
author | Timothy Edmund Crosley <timothy.crosley@gmail.com> | 2019-03-04 21:22:42 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-04 21:22:42 -0800 |
commit | bcec89b0ea45e310a90bc2ca472f4c3a0ba481ce (patch) | |
tree | 86b219f2a2f03d5d2b79d494e494b5efdd172a8a | |
parent | 2130dffac8c99f68b2dade43ec08dc27549b38a7 (diff) | |
parent | eb653c8bae52efad43fdb9f96b46d51b29214b1a (diff) | |
download | isort-bcec89b0ea45e310a90bc2ca472f4c3a0ba481ce.tar.gz |
Merge pull request #874 from Tenzer/RequirementsFinder-lru-cache-3
Add LRU cache to RequirementsFinder._get_names
-rw-r--r-- | isort/finders.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/isort/finders.py b/isort/finders.py index 6a1c3d5a..537e8491 100644 --- a/isort/finders.py +++ b/isort/finders.py @@ -298,11 +298,20 @@ class RequirementsFinder(ReqsBaseFinder): def _get_names(self, path): """Load required packages from path to requirements file """ + return RequirementsFinder._get_names_cached(path) + + @classmethod + @lru_cache(maxsize=16) + def _get_names_cached(cls, path): + results = [] + with chdir(os.path.dirname(path)): requirements = parse_requirements(path, session=PipSession()) for req in requirements: if req.name: - yield req.name + results.append(req.name) + + return results class PipfileFinder(ReqsBaseFinder): |