From 7fc4f119985990190554992532286455bd70590b Mon Sep 17 00:00:00 2001 From: Antony Lee Date: Sun, 10 Jan 2021 19:31:07 +0100 Subject: [PATCH] Precompute egg_prefix and versionless_egg_name. --- importlib_metadata/__init__.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/importlib_metadata/__init__.py b/importlib_metadata/__init__.py index c39596a2..1a1c951b 100644 --- a/importlib_metadata/__init__.py +++ b/importlib_metadata/__init__.py @@ -495,6 +495,8 @@ class Prepared: normalized = None suffixes = 'dist-info', 'egg-info' exact_matches = [''][:0] + egg_prefix = '' + versionless_egg_name = '' def __init__(self, name): self.name = name @@ -504,6 +506,9 @@ def __init__(self, name): self.exact_matches = [ self.normalized + '.' + suffix for suffix in self.suffixes ] + legacy_normalized = self.legacy_normalize(self.name) + self.egg_prefix = legacy_normalized + '-' + self.versionless_egg_name = legacy_normalized + '.egg' @staticmethod def normalize(name): @@ -536,12 +541,9 @@ def matches(self, cand, base): ) def is_egg(self, base): - normalized = self.legacy_normalize(self.name or '') - prefix = normalized + '-' if normalized else '' - versionless_egg_name = normalized + '.egg' if self.name else '' return ( - base == versionless_egg_name - or base.startswith(prefix) + base == self.versionless_egg_name + or base.startswith(self.egg_prefix) and base.endswith('.egg') )