From d324bd9da4128599e9d491f9380a6bb6549344bd Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Sun, 5 Jul 2020 10:52:35 +0800 Subject: [PATCH 01/10] add add tool in openEuelr-Advisor for community this tools can query sigs info in openEuler --- advisors/psrtool.py | 123 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100755 advisors/psrtool.py diff --git a/advisors/psrtool.py b/advisors/psrtool.py new file mode 100755 index 00000000..a13cfc3c --- /dev/null +++ b/advisors/psrtool.py @@ -0,0 +1,123 @@ +#!/usr/bin/python +#****************************************************************************** +# Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved. +# licensed under the Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# http://license.coscl.org.cn/MulanPSL2 +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +# PURPOSE. +# See the Mulan PSL v2 for more details. +# Author: Love_hangzhou +# Create: 2020-07-05 +# ******************************************************************************/ +''' +This is a script used for query sigs infomation in openEuelr register in openeuler/community/sig/sigs.yaml +(1) This script depends on openuler/commnity/sig/sigs.yaml file, + suppose you clone commnuity and openEuler-Advisors in the same directory, + then you needn't specify the sigs.yaml path + +(2) Command parameters + -s Specify the sigs name,list the packages in the sigs + (eg:-s dev-utils) + -p Specify the packages name ,query the packages belong which sigs + (eg:-p mate-polkit ) + -l List all sigs in openEuler + Position parameters: + sigs_yaml_path:sigs.yaml path in community repository's location of you clone + default is ../../community/sig/sigs.yaml +''' +import yaml +import sys +import argparse +import re +import os +sig_name="" +package_list="" +package_name="" +list_sigs=False + +def get_sig_package_list(sig_name = None,sig = None): + if sig_name is None or sig is None: + return None + s_name = sig.get('name') + sig_repositories = None + if s_name.upper() == sig_name.upper(): + sig_repositories = sig.get('repositories') + return sig_repositories + +parser = argparse.ArgumentParser("get package list by signame or get signame by package name") +parser.add_argument('-s','--signame',nargs='?',help='list the packages in the signame') +parser.add_argument('-p','--packagename',nargs='?',help='query the package belong which sig') +parser.add_argument('-l','--sigs',action='store_true',help='list all sigs') +parser.add_argument('sigs_yaml_path', nargs='?',help='sigs.yaml path,default is ../../community/sig/sigs.yaml') +if len(sys.argv) < 2: + parser.print_help() + exit(1) + +args=parser.parse_args() + +sigs_file="sigs.yaml" +sig_name=args.signame +package_name=args.packagename +list_sigs=args.sigs +sigs_yaml=args.sigs_yaml_path +if sigs_yaml is None: + current_path=os.path.abspath(os.getcwd()) + sigs_yaml=current_path+'''/../../community/sig/sigs.yaml''' +try: + f=open(sigs_yaml,mode='r') +except IOError: + print(sigs_yaml + " is not accessible") + exit(1) + +data = yaml.load(f) +f.close() +if data is None: + print('Parse %s error'%(sigs_yaml)); + exit(1) +sigs=data.get('sigs') +if sigs is None: + print("Get sigs in %s file error"%(sigs_yaml)) + exit(1) + +if list_sigs == True: + sig_list="" + for sig in sigs: + sig_list = sig_list+sig.get('name')+'\n' + print("Sigs in openeuler:") + print(sig_list.rstrip()) + +if sig_name is not None and sig_name != '': + for sig in sigs: + sig_repositories=get_sig_package_list(sig_name,sig) + if sig_repositories !=None: + break + if sig_repositories is None: + print('No packages contain in sig %s'%(sig_name)) + else: + pkgs="" + for pkg in sig_repositories: + pkgs = pkgs+pkg+"\n" + print("Packages in sig %s:"%(sig.get('name'))); + print(pkgs.rstrip()) + +if package_name is not None and package_name !='': + is_found=False + for sig in sigs: + sig_repositores=sig.get('repositories') + sig_name = None + if sig_repositores is not None: + for pkg in sig_repositores: + seachObj=re.search(package_name,pkg,0) + if seachObj: + sig_name=sig.get('name') + is_found=True + print(pkg +" in "+sig_name + " sig") + break + else: + continue + if is_found== False: + print(package_name+" not found in openEuler"); + -- Gitee From accdb1b3148df54d7b83e8741e0fc208cb185cf8 Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Sun, 5 Jul 2020 10:59:25 +0800 Subject: [PATCH 02/10] remove unused var --- advisors/psrtool.py | 1 - 1 file changed, 1 deletion(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index a13cfc3c..c7d75acc 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -58,7 +58,6 @@ if len(sys.argv) < 2: args=parser.parse_args() -sigs_file="sigs.yaml" sig_name=args.signame package_name=args.packagename list_sigs=args.sigs -- Gitee From 10678b531cf0602373f5670eed95995213c3093f Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Sun, 5 Jul 2020 11:20:23 +0800 Subject: [PATCH 03/10] fix for codesmell --- advisors/psrtool.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index c7d75acc..94c2fc07 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -33,19 +33,15 @@ import sys import argparse import re import os -sig_name="" -package_list="" -package_name="" -list_sigs=False -def get_sig_package_list(sig_name = None,sig = None): - if sig_name is None or sig is None: +def get_sig_package_list(i_sig_name = None,i_sig = None): + if i_sig_name is None or i_sig is None: return None - s_name = sig.get('name') - sig_repositories = None - if s_name.upper() == sig_name.upper(): - sig_repositories = sig.get('repositories') - return sig_repositories + s_name = i_sig.get('name') + o_sig_repositories = None + if s_name.upper() == i_sig_name.upper(): + o_sig_repositories = i_sig.get('repositories') + return o_sig_repositories parser = argparse.ArgumentParser("get package list by signame or get signame by package name") parser.add_argument('-s','--signame',nargs='?',help='list the packages in the signame') @@ -56,8 +52,12 @@ if len(sys.argv) < 2: parser.print_help() exit(1) -args=parser.parse_args() +sig_name="" +package_list="" +package_name="" +list_sigs=False +args=parser.parse_args() sig_name=args.signame package_name=args.packagename list_sigs=args.sigs @@ -65,6 +65,7 @@ sigs_yaml=args.sigs_yaml_path if sigs_yaml is None: current_path=os.path.abspath(os.getcwd()) sigs_yaml=current_path+'''/../../community/sig/sigs.yaml''' + try: f=open(sigs_yaml,mode='r') except IOError: @@ -74,7 +75,7 @@ except IOError: data = yaml.load(f) f.close() if data is None: - print('Parse %s error'%(sigs_yaml)); + print('Parse %s error'%(sigs_yaml)) exit(1) sigs=data.get('sigs') if sigs is None: @@ -89,17 +90,17 @@ if list_sigs == True: print(sig_list.rstrip()) if sig_name is not None and sig_name != '': - for sig in sigs: - sig_repositories=get_sig_package_list(sig_name,sig) - if sig_repositories !=None: - break + for sig in sigs: + sig_repositories=get_sig_package_list(sig_name,sig) + if sig_repositories !=None: + break if sig_repositories is None: print('No packages contain in sig %s'%(sig_name)) else: pkgs="" for pkg in sig_repositories: pkgs = pkgs+pkg+"\n" - print("Packages in sig %s:"%(sig.get('name'))); + print("Packages in sig %s:"%(sig.get('name'))) print(pkgs.rstrip()) if package_name is not None and package_name !='': @@ -118,5 +119,5 @@ if package_name is not None and package_name !='': else: continue if is_found== False: - print(package_name+" not found in openEuler"); + print(package_name+" not found in openEuler") -- Gitee From 719660f478cabb98e65f61f098e8ee18c1ea65fd Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Sun, 5 Jul 2020 11:20:23 +0800 Subject: [PATCH 04/10] fix for codesmell --- advisors/psrtool.py | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index c7d75acc..ed52ab5d 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -33,19 +33,15 @@ import sys import argparse import re import os -sig_name="" -package_list="" -package_name="" -list_sigs=False -def get_sig_package_list(sig_name = None,sig = None): - if sig_name is None or sig is None: +def get_sig_package_list(i_sig_name = None,i_sig = None): + if i_sig_name is None or i_sig is None: return None - s_name = sig.get('name') - sig_repositories = None - if s_name.upper() == sig_name.upper(): - sig_repositories = sig.get('repositories') - return sig_repositories + s_name = i_sig.get('name') + o_sig_repositories = None + if s_name.upper() == i_sig_name.upper(): + o_sig_repositories = i_sig.get('repositories') + return o_sig_repositories parser = argparse.ArgumentParser("get package list by signame or get signame by package name") parser.add_argument('-s','--signame',nargs='?',help='list the packages in the signame') @@ -56,8 +52,12 @@ if len(sys.argv) < 2: parser.print_help() exit(1) -args=parser.parse_args() +sig_name="" +package_list="" +package_name="" +list_sigs=False +args=parser.parse_args() sig_name=args.signame package_name=args.packagename list_sigs=args.sigs @@ -65,6 +65,7 @@ sigs_yaml=args.sigs_yaml_path if sigs_yaml is None: current_path=os.path.abspath(os.getcwd()) sigs_yaml=current_path+'''/../../community/sig/sigs.yaml''' + try: f=open(sigs_yaml,mode='r') except IOError: @@ -74,7 +75,7 @@ except IOError: data = yaml.load(f) f.close() if data is None: - print('Parse %s error'%(sigs_yaml)); + print('Parse %s error'%(sigs_yaml)) exit(1) sigs=data.get('sigs') if sigs is None: @@ -89,17 +90,17 @@ if list_sigs == True: print(sig_list.rstrip()) if sig_name is not None and sig_name != '': - for sig in sigs: - sig_repositories=get_sig_package_list(sig_name,sig) - if sig_repositories !=None: - break + for sig in sigs: + sig_repositories=get_sig_package_list(sig_name,sig) + if sig_repositories !=None: + break if sig_repositories is None: print('No packages contain in sig %s'%(sig_name)) else: pkgs="" for pkg in sig_repositories: pkgs = pkgs+pkg+"\n" - print("Packages in sig %s:"%(sig.get('name'))); + print("Packages in sig %s:"%(sig.get('name'))) print(pkgs.rstrip()) if package_name is not None and package_name !='': @@ -118,5 +119,5 @@ if package_name is not None and package_name !='': else: continue if is_found== False: - print(package_name+" not found in openEuler"); + print(package_name+" not found in openEuler") -- Gitee From 1372ba80f6234714b4bd7bd1a295f384064ee97f Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Tue, 7 Jul 2020 10:56:10 +0800 Subject: [PATCH 05/10] modify some review comments --- advisors/psrtool.py | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index ed52ab5d..0eafb1fa 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -47,15 +47,12 @@ parser = argparse.ArgumentParser("get package list by signame or get signame by parser.add_argument('-s','--signame',nargs='?',help='list the packages in the signame') parser.add_argument('-p','--packagename',nargs='?',help='query the package belong which sig') parser.add_argument('-l','--sigs',action='store_true',help='list all sigs') -parser.add_argument('sigs_yaml_path', nargs='?',help='sigs.yaml path,default is ../../community/sig/sigs.yaml') +parser.add_argument('sigs_yaml_path', nargs='?',help='''sigs.yaml path,default is ../../community/sig/sigs.yaml; + assume you clone Community repository with openEuler-Advisor in the same directory''') if len(sys.argv) < 2: parser.print_help() exit(1) -sig_name="" -package_list="" -package_name="" -list_sigs=False args=parser.parse_args() sig_name=args.signame @@ -63,20 +60,14 @@ package_name=args.packagename list_sigs=args.sigs sigs_yaml=args.sigs_yaml_path if sigs_yaml is None: - current_path=os.path.abspath(os.getcwd()) - sigs_yaml=current_path+'''/../../community/sig/sigs.yaml''' + sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') -try: - f=open(sigs_yaml,mode='r') -except IOError: - print(sigs_yaml + " is not accessible") - exit(1) - -data = yaml.load(f) -f.close() +with open(sigs_yaml,mode='r') as f: + data = yaml.load(f,Loader=yaml.SafeLoader) if data is None: print('Parse %s error'%(sigs_yaml)) exit(1) + sigs=data.get('sigs') if sigs is None: print("Get sigs in %s file error"%(sigs_yaml)) -- Gitee From 407d26a1d7479fa4c23c0f12b4d754354df46f75 Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Thu, 16 Jul 2020 15:40:25 +0800 Subject: [PATCH 06/10] reconstruction psrtool --- advisors/psrtool.py | 122 +++++++++++++++++++------------------------- 1 file changed, 53 insertions(+), 69 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index 0eafb1fa..e5b9d5d8 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -25,7 +25,7 @@ This is a script used for query sigs infomation in openEuelr register in openeul (eg:-p mate-polkit ) -l List all sigs in openEuler Position parameters: - sigs_yaml_path:sigs.yaml path in community repository's location of you clone + yaml:sigs.yaml path in community repository's location of you clone default is ../../community/sig/sigs.yaml ''' import yaml @@ -34,81 +34,65 @@ import argparse import re import os -def get_sig_package_list(i_sig_name = None,i_sig = None): - if i_sig_name is None or i_sig is None: +def list_packages_in_sig(sig_name = None,sigs = None): + if sig_name is None or sigs is None: return None - s_name = i_sig.get('name') - o_sig_repositories = None - if s_name.upper() == i_sig_name.upper(): - o_sig_repositories = i_sig.get('repositories') - return o_sig_repositories + for sig in sigs: + if sig['name'].lower() == sig_name.lower(): + return sig['repositories'] -parser = argparse.ArgumentParser("get package list by signame or get signame by package name") -parser.add_argument('-s','--signame',nargs='?',help='list the packages in the signame') -parser.add_argument('-p','--packagename',nargs='?',help='query the package belong which sig') -parser.add_argument('-l','--sigs',action='store_true',help='list all sigs') -parser.add_argument('sigs_yaml_path', nargs='?',help='''sigs.yaml path,default is ../../community/sig/sigs.yaml; - assume you clone Community repository with openEuler-Advisor in the same directory''') -if len(sys.argv) < 2: - parser.print_help() - exit(1) +def pkg_2_sig(pkgname,sigs): + result = {} + for pkg in pkgname: + for sig in sigs: + repos = sig['repositories'] + for repo in repos: + seachObj=re.search(pkg.lower(),repo.lower(),0) + if seachObj: + result[repo]=sig['name'] + return result +def list_sigs(sigs): + result = [] + for sig in sigs: + result.append(sig['name']) + return result -args=parser.parse_args() -sig_name=args.signame -package_name=args.packagename -list_sigs=args.sigs -sigs_yaml=args.sigs_yaml_path -if sigs_yaml is None: - sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') +def print_list(l): + for i in l: + print(i) -with open(sigs_yaml,mode='r') as f: - data = yaml.load(f,Loader=yaml.SafeLoader) -if data is None: - print('Parse %s error'%(sigs_yaml)) - exit(1) +def print_dict(d): + for key,value in d.items(): + print(key+": "+ value) + + +default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') -sigs=data.get('sigs') -if sigs is None: - print("Get sigs in %s file error"%(sigs_yaml)) +parser = argparse.ArgumentParser("get package list by signame or get signame by package name") +group = parser.add_mutually_exclusive_group(required=True) +group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') +group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') +group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') +group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, +assume you clone Community repository with openEuler-Advisor in the same directory''') + +args=parser.parse_args() + +try: + with open(args.yaml,mode='r') as f: + data = yaml.load(f,Loader=yaml.SafeLoader) + sigs=data['sigs'] +except: + print('Failed to load info from %s '%(args.yaml)) + parser.print_help() exit(1) -if list_sigs == True: - sig_list="" - for sig in sigs: - sig_list = sig_list+sig.get('name')+'\n' - print("Sigs in openeuler:") - print(sig_list.rstrip()) -if sig_name is not None and sig_name != '': - for sig in sigs: - sig_repositories=get_sig_package_list(sig_name,sig) - if sig_repositories !=None: - break - if sig_repositories is None: - print('No packages contain in sig %s'%(sig_name)) - else: - pkgs="" - for pkg in sig_repositories: - pkgs = pkgs+pkg+"\n" - print("Packages in sig %s:"%(sig.get('name'))) - print(pkgs.rstrip()) - -if package_name is not None and package_name !='': - is_found=False - for sig in sigs: - sig_repositores=sig.get('repositories') - sig_name = None - if sig_repositores is not None: - for pkg in sig_repositores: - seachObj=re.search(package_name,pkg,0) - if seachObj: - sig_name=sig.get('name') - is_found=True - print(pkg +" in "+sig_name + " sig") - break - else: - continue - if is_found== False: - print(package_name+" not found in openEuler") +if args.list == True: + print_list(list_sigs(sigs)) +elif args.signame: + print_list(list_packages_in_sig(args.signame,sigs)) +elif args.pkgs: + print_dict(pkg_2_sig(args.pkgs,sigs)) -- Gitee From e4459e09057b4a7460b9824d5e06869eec56e98c Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Thu, 16 Jul 2020 15:48:52 +0800 Subject: [PATCH 07/10] Clear Codesmell --- advisors/psrtool.py | 46 ++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index e5b9d5d8..235ad43e 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -66,33 +66,33 @@ def print_dict(d): for key,value in d.items(): print(key+": "+ value) +if __name__ == "__main__": + default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') -default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') - -parser = argparse.ArgumentParser("get package list by signame or get signame by package name") -group = parser.add_mutually_exclusive_group(required=True) -group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') -group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') -group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') -group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, + parser = argparse.ArgumentParser("get package list by signame or get signame by package name") + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') + group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') + group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') + group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, assume you clone Community repository with openEuler-Advisor in the same directory''') -args=parser.parse_args() + args=parser.parse_args() -try: - with open(args.yaml,mode='r') as f: - data = yaml.load(f,Loader=yaml.SafeLoader) - sigs=data['sigs'] -except: - print('Failed to load info from %s '%(args.yaml)) - parser.print_help() - exit(1) + try: + with open(args.yaml,mode='r') as f: + data = yaml.load(f,Loader=yaml.SafeLoader) + sigs=data['sigs'] + except: + print('Failed to load info from %s '%(args.yaml)) + parser.print_help() + exit(1) -if args.list == True: - print_list(list_sigs(sigs)) -elif args.signame: - print_list(list_packages_in_sig(args.signame,sigs)) -elif args.pkgs: - print_dict(pkg_2_sig(args.pkgs,sigs)) + if args.list == True: + print_list(list_sigs(sigs)) + elif args.signame: + print_list(list_packages_in_sig(args.signame,sigs)) + elif args.pkgs: + print_dict(pkg_2_sig(args.pkgs,sigs)) -- Gitee From 87e72b4d4649c1528530fb513f8a041b5e39b5c7 Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Thu, 16 Jul 2020 15:53:06 +0800 Subject: [PATCH 08/10] Clear Codesmell --- advisors/psrtool.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index 235ad43e..ad3b1409 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -67,17 +67,17 @@ def print_dict(d): print(key+": "+ value) if __name__ == "__main__": - default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') + default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') - parser = argparse.ArgumentParser("get package list by signame or get signame by package name") - group = parser.add_mutually_exclusive_group(required=True) - group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') - group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') - group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') - group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, + parser = argparse.ArgumentParser("get package list by signame or get signame by package name") + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') + group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') + group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') + group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, assume you clone Community repository with openEuler-Advisor in the same directory''') - args=parser.parse_args() + args=parser.parse_args() try: with open(args.yaml,mode='r') as f: -- Gitee From ec9966befbfaff9b6fc6bbf5ebd557bbcbf06292 Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Thu, 16 Jul 2020 16:49:29 +0800 Subject: [PATCH 09/10] clean codesmell --- advisors/psrtool.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index ad3b1409..b7ae0683 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -74,7 +74,7 @@ if __name__ == "__main__": group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') - group.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, + parser.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, assume you clone Community repository with openEuler-Advisor in the same directory''') args=parser.parse_args() @@ -82,17 +82,17 @@ assume you clone Community repository with openEuler-Advisor in the same directo try: with open(args.yaml,mode='r') as f: data = yaml.load(f,Loader=yaml.SafeLoader) - sigs=data['sigs'] - except: - print('Failed to load info from %s '%(args.yaml)) + input_sigs=data['sigs'] + except Exception as e: + print('Failed to load infomation from %s' %args.yaml) parser.print_help() exit(1) if args.list == True: - print_list(list_sigs(sigs)) + print_list(list_sigs(input_sigs)) elif args.signame: - print_list(list_packages_in_sig(args.signame,sigs)) + print_list(list_packages_in_sig(args.signame,input_sigs)) elif args.pkgs: - print_dict(pkg_2_sig(args.pkgs,sigs)) + print_dict(pkg_2_sig(args.pkgs,input_sigs)) -- Gitee From 98bcc4818211bbb5cc89a9bf2ed1a594d2646aa7 Mon Sep 17 00:00:00 2001 From: love_hangzhou Date: Thu, 16 Jul 2020 17:06:00 +0800 Subject: [PATCH 10/10] clean codesmell and fix a bug --- advisors/psrtool.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/advisors/psrtool.py b/advisors/psrtool.py index b7ae0683..b41f9943 100755 --- a/advisors/psrtool.py +++ b/advisors/psrtool.py @@ -24,8 +24,7 @@ This is a script used for query sigs infomation in openEuelr register in openeul -p Specify the packages name ,query the packages belong which sigs (eg:-p mate-polkit ) -l List all sigs in openEuler - Position parameters: - yaml:sigs.yaml path in community repository's location of you clone + -y yaml:sigs.yaml path in community repository's location of you clone default is ../../community/sig/sigs.yaml ''' import yaml @@ -69,12 +68,12 @@ def print_dict(d): if __name__ == "__main__": default_sigs_yaml=os.path.join(sys.path[0],'../../community/sig/sigs.yaml') - parser = argparse.ArgumentParser("get package list by signame or get signame by package name") + parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group(required=True) group.add_argument('-s','--signame',nargs='?',help='List packages managed by the specific SIG') group.add_argument('-p','--pkgs',nargs='+',help='Query which SIG manage the specific package') group.add_argument('-l','--list',action='store_true',help='List all SIGS in openEuler') - parser.add_argument('yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, + parser.add_argument('-y','--yaml', nargs='?',default=default_sigs_yaml,help='''Local path of sigs.yaml file,default is ../../community/sig/sigs.yaml, assume you clone Community repository with openEuler-Advisor in the same directory''') args=parser.parse_args() @@ -83,12 +82,11 @@ assume you clone Community repository with openEuler-Advisor in the same directo with open(args.yaml,mode='r') as f: data = yaml.load(f,Loader=yaml.SafeLoader) input_sigs=data['sigs'] - except Exception as e: + except (IOError,TypeError): print('Failed to load infomation from %s' %args.yaml) parser.print_help() exit(1) - - + if args.list == True: print_list(list_sigs(input_sigs)) elif args.signame: -- Gitee