From: Ed Bartosh Date: Fri, 16 Jan 2015 12:16:31 +0000 (+0200) Subject: diff: Use difftype namedtuple X-Git-Tag: submit/trunk/20190927.012842~9^2~16 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0f7fab645b817204bc7aef09954fe795d0900272;p=tools%2Frepa.git diff: Use difftype namedtuple Introduced new sturcture difftype to handle project and manifest. This should fix 2 pylint warnings: 'Too many local variables' and 'Too many arguments'. Fixes: #2320 Change-Id: I9912193871da692ca9f297640f7ef593ecff9df5 Signed-off-by: Ed Bartosh --- diff --git a/repa/diff.py b/repa/diff.py index d456bdd..954321b 100644 --- a/repa/diff.py +++ b/repa/diff.py @@ -27,13 +27,14 @@ import sys import os import json +from collections import namedtuple + import xml.etree.ElementTree as ET from repa.common import RepaException, Colorizer, get_prerelease from repa.obs import OBS from repa.main import sub_main - def gen_data(manifest): """Parse manifest. Yield git path and revision for every entry.""" try: @@ -58,16 +59,16 @@ def get_tag(obs, project, package): return None -def diff(obs, cmp_project, target_project, cmp_manifest, - target_manifest, is_colorize=False): +def diff(obs, cmpinfo, targetinfo, is_colorize=False): """ Show the difference between two projects in terms of revisions and tags. + cmpinfo and target info are named tuples: (project, manifest) """ colorizer = Colorizer(is_colorize) - target_data = dict(gen_data(target_manifest)) - cmp_data = dict(gen_data(cmp_manifest)) + target_data = dict(gen_data(targetinfo.manifest)) + cmp_data = dict(gen_data(cmpinfo.manifest)) for path in sorted(cmp_data): rev_target = target_data.get(path) @@ -76,12 +77,12 @@ def diff(obs, cmp_project, target_project, cmp_manifest, package = os.path.basename(path) # Get tag, accepted to cmp_project - cmp_tag = get_tag(obs, cmp_project, package) + cmp_tag = get_tag(obs, cmpinfo.project, package) status = '' # Colorize tag if it's pending in target project if cmp_tag: try: - prerelease = get_prerelease(cmp_tag, target_project) + prerelease = get_prerelease(cmp_tag, targetinfo.project) if obs.exists(prerelease): if is_colorize: cmp_tag = colorizer.green(cmp_tag) @@ -112,8 +113,9 @@ class Diff(object): def run(argv): """Command line entry point. Called from [sub_]main.""" obs = OBS(argv.apiurl, argv.apiuser, argv.apipasswd) - return diff(obs, argv.cmp_project, argv.project, - argv.cmp_manifest, argv.manifest, argv.colorize) + difftype = namedtuple('diff', ['project', 'manifest']) + return diff(obs, difftype(argv.cmp_project, argv.cmp_manifest), + difftype(argv.project, argv.manifest), argv.colorize) if __name__ == '__main__': sys.exit(sub_main(sys.argv[1:], Diff()))