From 994f5dcf3c7cab34534fac62d601df87d2191c7c Mon Sep 17 00:00:00 2001 From: dingsheng Date: Thu, 19 Sep 2024 11:30:28 +0000 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=86=E5=B1=82=E7=AE=97?= =?UTF-8?q?=E6=B3=95=E6=A8=A1=E5=9D=97=E5=85=A5=E5=8F=A3=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/alglayer.py | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/main/alglayer.py b/src/main/alglayer.py index 4b44521..7529665 100755 --- a/src/main/alglayer.py +++ b/src/main/alglayer.py @@ -41,8 +41,24 @@ class AlgLayer(object): return res @classmethod - def run(cls): - pass + def run(cls,dep_obj,init_f): + """ + 分层算法模块入口函数 + Args: + dep_obj : DepParse类对象 + init_f (str): 初始化数据文件路径 + + Returns: + pkg2id_dict: 输出分层字典 + """ + obj = cls(dep_obj,init_f) + id2pkgs_dict = obj.filter_init_dict(obj.init_id2pkgs_dict,obj.all_pkgs_set) + id2pkgs_dict = cls.augment_layered_set(id2pkgs_dict,obj.dep_obj,add_no_depby_pkgs=True) + id2pkgs_dict = cls.filter_duplicates(id2pkgs_dict) + unfilter_pkg_list = cls.get_unlayered_pkgs(id2pkgs_dict,obj.all_pkgs_set) + final_id2pkgs_dict = cls.get_layer_by_reqlayer(id2pkgs_dict,unfilter_pkg_list,obj.dep_obj) + pkg2id_dict = cls.get_pkg2id_dict(final_id2pkgs_dict) + return pkg2id_dict @classmethod def filter_init_dict(cls,id2pkgs_dict,all_pkgs_set): @@ -160,4 +176,16 @@ class AlgLayer(object): for i in range(1,5): id2pkgs_dict[i] += tmp_dict[i] id2pkgs_dict = cls.filter_duplicates(id2pkgs_dict) - return id2pkgs_dict \ No newline at end of file + return id2pkgs_dict + + @classmethod + def get_pkg2id_dict(cls,id2pkgs_dict): + """ + 获取pkgname为key,layer_id为value的分层字典 + Args: + id2pkgs_dict (dict): id2pkg_dict + + Returns: + res: pkg2id_dict + """ + return {pkg: id for id, pkgs in id2pkgs_dict.items() for pkg in pkgs} \ No newline at end of file -- Gitee