44from itertools import chain
55
66from pkgcore import fetch
7+ from pkgcore .ebuild .digest import Manifest
78from snakeoil .sequences import iflatten_instance
89from snakeoil .strings import pluralism
910
@@ -80,14 +81,14 @@ class PackageUpdatesCheck(RepoCheck):
8081
8182 _source = (sources .EmptySource , (base .profiles_scope ,))
8283 known_results = frozenset (
83- [
84+ {
8485 MultiMovePackageUpdate ,
8586 OldMultiMovePackageUpdate ,
8687 OldPackageUpdate ,
8788 MovedPackageUpdate ,
8889 BadPackageUpdate ,
8990 RedundantPackageUpdate ,
90- ]
91+ }
9192 )
9293
9394 def __init__ (self , * args ):
@@ -377,17 +378,16 @@ class GlobalUseCheck(RepoCheck):
377378 """Check global USE and USE_EXPAND flags for various issues."""
378379
379380 _source = (sources .RepositoryRepoSource , (), (("source" , sources .PackageRepoSource ),))
380- required_addons = (addons .UseAddon ,)
381381 known_results = frozenset (
382- [
382+ {
383383 PotentialLocalUse ,
384384 PotentialGlobalUse ,
385385 UnusedGlobalUse ,
386386 UnusedGlobalUseExpand ,
387- ]
387+ }
388388 )
389389
390- def __init__ (self , * args , use_addon ):
390+ def __init__ (self , * args ):
391391 super ().__init__ (* args )
392392 self .global_flag_usage = defaultdict (set )
393393 self .repo = self .options .target_repo
@@ -405,8 +405,8 @@ def _similar_flags(pkgs):
405405 """Yield groups of packages with similar local USE flag descriptions."""
406406 # calculate USE flag description difference ratios
407407 diffs = {}
408- for i , (i_pkg , i_desc ) in enumerate (pkgs ):
409- for j , (j_pkg , j_desc ) in enumerate (pkgs [i + 1 :]):
408+ for i , (_i_pkg , i_desc ) in enumerate (pkgs ):
409+ for j , (_j_pkg , j_desc ) in enumerate (pkgs [i + 1 :]):
410410 diffs [(i , i + j + 1 )] = SequenceMatcher (None , i_desc , j_desc ).ratio ()
411411
412412 # create an adjacency list using all closely matching flags pairs
@@ -571,17 +571,17 @@ class ManifestCheck(Check):
571571 required_addons = (addons .UseAddon ,)
572572 _source = sources .PackageRepoSource
573573 known_results = frozenset (
574- [
574+ {
575575 MissingChksum ,
576576 MissingManifest ,
577577 UnknownManifest ,
578578 UnnecessaryManifest ,
579579 DeprecatedChksum ,
580580 InvalidManifest ,
581- ]
581+ }
582582 )
583583
584- def __init__ (self , * args , use_addon ):
584+ def __init__ (self , * args , use_addon : addons . UseAddon ):
585585 super ().__init__ (* args )
586586 repo = self .options .target_repo
587587 self .preferred_checksums = frozenset (
@@ -593,7 +593,8 @@ def __init__(self, *args, use_addon):
593593 self .iuse_filter = use_addon .get_filter ("fetchables" )
594594
595595 def feed (self , pkgset ):
596- pkg_manifest = pkgset [0 ].manifest
596+ pkg_manifest : Manifest = pkgset [0 ].manifest
597+ pkg_manifest .allow_missing = True
597598 manifest_distfiles = set (pkg_manifest .distfiles .keys ())
598599 seen = set ()
599600 for pkg in pkgset :
@@ -625,14 +626,13 @@ def feed(self, pkgset):
625626 seen .add (f_inst .filename )
626627
627628 if pkg_manifest .thin :
628- unnecessary_manifests = []
629+ unnecessary_manifests = set ()
629630 for attr in ("aux_files" , "ebuilds" , "misc" ):
630- unnecessary_manifests .extend (getattr (pkg_manifest , attr , [] ))
631+ unnecessary_manifests .update (getattr (pkg_manifest , attr , () ))
631632 if unnecessary_manifests :
632633 yield UnnecessaryManifest (sorted (unnecessary_manifests ), pkg = pkgset [0 ])
633634
634- unknown_manifests = manifest_distfiles .difference (seen )
635- if unknown_manifests :
635+ if unknown_manifests := manifest_distfiles .difference (seen ):
636636 yield UnknownManifest (sorted (unknown_manifests ), pkg = pkgset [0 ])
637637
638638
@@ -753,6 +753,6 @@ def __init__(self, *args):
753753 self .repo = self .options .target_repo
754754
755755 def finish (self ):
756- for key , project in self .repo .projects_xml .projects .items ():
756+ for _key , project in self .repo .projects_xml .projects .items ():
757757 if not project .recursive_members :
758758 yield EmptyProject (project )
0 commit comments