@@ -475,20 +475,16 @@ class Prepared:
475
475
A prepared search for metadata on a possibly-named package.
476
476
"""
477
477
normalized = None
478
- prefix = ''
479
478
suffixes = '.dist-info' , '.egg-info'
480
479
exact_matches = ['' ][:0 ]
481
- versionless_egg_name = ''
482
480
483
481
def __init__ (self , name ):
484
482
self .name = name
485
483
if name is None :
486
484
return
487
485
self .normalized = self .normalize (name )
488
- self .prefix = self .normalized + '-'
489
486
self .exact_matches = [
490
487
self .normalized + suffix for suffix in self .suffixes ]
491
- self .versionless_egg_name = self .normalized + '.egg'
492
488
493
489
@staticmethod
494
490
def normalize (name ):
@@ -497,6 +493,14 @@ def normalize(name):
497
493
"""
498
494
return re .sub (r"[-_.]+" , "-" , name ).lower ().replace ('-' , '_' )
499
495
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
+
500
504
def matches (self , cand , base ):
501
505
low = cand .lower ()
502
506
pre , ext = os .path .splitext (low )
@@ -512,9 +516,12 @@ def matches(self, cand, base):
512
516
)
513
517
514
518
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 ''
515
522
return (
516
- base == self . versionless_egg_name
517
- or base .startswith (self . prefix )
523
+ base == versionless_egg_name
524
+ or base .startswith (prefix )
518
525
and base .endswith ('.egg' ))
519
526
520
527
0 commit comments