From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 9AEF9138206 for ; Mon, 25 Apr 2016 15:32:47 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id EAA8021C053; Mon, 25 Apr 2016 15:32:34 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id A4E6221C043 for ; Mon, 25 Apr 2016 15:32:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id ABD39340B29 for ; Mon, 25 Apr 2016 15:32:31 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 935DD96E for ; Mon, 25 Apr 2016 15:32:28 +0000 (UTC) From: "Brian Dolbec" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Brian Dolbec" Message-ID: <1461598133.edd6f6cd73839dad09ce7c65c09ac38c30e6b5eb.dolsen@gentoo> Subject: [gentoo-commits] proj/portage:repoman commit in: pym/repoman/ X-VCS-Repository: proj/portage X-VCS-Files: pym/repoman/scanner.py X-VCS-Directories: pym/repoman/ X-VCS-Committer: dolsen X-VCS-Committer-Name: Brian Dolbec X-VCS-Revision: edd6f6cd73839dad09ce7c65c09ac38c30e6b5eb X-VCS-Branch: repoman Date: Mon, 25 Apr 2016 15:32:28 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: ff6ddd1d-42db-4726-84d9-86e0e638d98a X-Archives-Hash: 45388a603245c58f60bc3ec0ad26c694 commit: edd6f6cd73839dad09ce7c65c09ac38c30e6b5eb Author: Brian Dolbec gentoo org> AuthorDate: Sat Apr 16 23:29:20 2016 +0000 Commit: Brian Dolbec gentoo org> CommitDate: Mon Apr 25 15:28:53 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=edd6f6cd 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..5ac519e 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 of 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])