@@ -475,20 +475,16 @@ class Prepared:
475475 A prepared search for metadata on a possibly-named package.
476476 """
477477 normalized = None
478- prefix = ''
479478 suffixes = '.dist-info' , '.egg-info'
480479 exact_matches = ['' ][:0 ]
481- versionless_egg_name = ''
482480
483481 def __init__ (self , name ):
484482 self .name = name
485483 if name is None :
486484 return
487485 self .normalized = self .normalize (name )
488- self .prefix = self .normalized + '-'
489486 self .exact_matches = [
490487 self .normalized + suffix for suffix in self .suffixes ]
491- self .versionless_egg_name = self .normalized + '.egg'
492488
493489 @staticmethod
494490 def normalize (name ):
@@ -497,6 +493,14 @@ def normalize(name):
497493 """
498494 return re .sub (r"[-_.]+" , "-" , name ).lower ().replace ('-' , '_' )
499495
496+ @staticmethod
497+ def legacy_normalize (name ):
498+ """
499+ Normalize the package name as found in the convention in
500+ older packaging tools versions and specs.
501+ """
502+ return name .lower ().replace ('-' , '_' )
503+
500504 def matches (self , cand , base ):
501505 low = cand .lower ()
502506 pre , ext = os .path .splitext (low )
@@ -512,9 +516,12 @@ def matches(self, cand, base):
512516 )
513517
514518 def is_egg (self , base ):
519+ normalized = self .legacy_normalize (self .name or '' )
520+ prefix = normalized + '-' if normalized else ''
521+ versionless_egg_name = normalized + '.egg' if self .name else ''
515522 return (
516- base == self . versionless_egg_name
517- or base .startswith (self . prefix )
523+ base == versionless_egg_name
524+ or base .startswith (prefix )
518525 and base .endswith ('.egg' ))
519526
520527
0 commit comments