commit: 890f4f45fd9bdad86ce0aa5abb2afc8ef20acf48
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 16 23:29:20 2016 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Sat Apr 16 23:38:31 2016 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=890f4f45
repoman: Limit the kwargs passed to the module's __init__()
This has the benefit of forcing the module to declare what data it requires.
Rather than possibly silently fail.
pym/repoman/scanner.py | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
index e9a8e20..d01277e 100644
--- a/pym/repoman/scanner.py
+++ b/pym/repoman/scanner.py
@@ -202,7 +202,18 @@ class Scanner(object):
'fetches', 'pkgmetadata']:
mod_class = MODULE_CONTROLLER.get_class(mod)
logging.debug("Initializing class name: %s",
mod_class.__name__)
- self.modules[mod_class.__name__] =
mod_class(**self.kwargs)
+ self.modules[mod_class.__name__] =
mod_class(**self.set_kwargs(mod))
+
+ def set_kwargs(self, mod):
+ '''Creates a limited set or kwargs to pass to the module's
__init__()
+
+ @param mod: module name string
+ @returns: dictionary
+ '''
+ kwargs = {}
+ for key in MODULE_CONTROLLER.modules[mod]['mod_kwargs']:
+ kwargs[key] = self.kwargs[key]
+ return kwargs
def scan_pkgs(self, can_force):
for xpkg in self.effective_scanlist:
@@ -295,7 +306,7 @@ class Scanner(object):
if mod[0]:
mod_class =
MODULE_CONTROLLER.get_class(mod[0])
logging.debug("Initializing class name:
%s", mod_class.__name__)
- self.modules[mod[1]] =
mod_class(**self.kwargs)
+ self.modules[mod[1]] =
mod_class(**self.set_kwargs(mod))
logging.debug("scan_ebuilds: module: %s",
mod[1])
do_it, functions =
self.modules[mod[1]].runInEbuilds
logging.debug("do_it: %s, functions: %s",
do_it, [x.__name__ for x in functions])
@@ -329,7 +340,7 @@ class Scanner(object):
if mod[0]:
mod_class = MODULE_CONTROLLER.get_class(mod[0])
logging.debug("Initializing class name: %s",
mod_class.__name__)
- self.modules[mod[1]] = mod_class(**self.kwargs)
+ self.modules[mod[1]] =
mod_class(**self.set_kwargs(mod))
logging.debug("scan_ebuilds final checks: module: %s",
mod[1])
do_it, functions = self.modules[mod[1]].runInFinal
logging.debug("do_it: %s, functions: %s", do_it,
[x.__name__ for x in functions])