From 8267a1446ff9b65cf9df8540f4816ccdcc25068f Mon Sep 17 00:00:00 2001 From: fling Date: Sat, 20 Nov 2010 11:09:06 +0800 Subject: [PATCH] modified: ri_dep.py modified: ri_oper.py modified: ri_tk_cmd.py modified: ../xml/interface.xml funcation and packages dependency not add InstallPkg of ri_oper modules --- interface/ri_dep.py | 24 +++++++++++++++++------- interface/ri_oper.py | 8 ++++++-- interface/ri_tk_cmd.py | 19 +++++-------------- xml/interface.xml | 2 +- 4 files changed, 29 insertions(+), 24 deletions(-) diff --git a/interface/ri_dep.py b/interface/ri_dep.py index 8b42694..04b3215 100644 --- a/interface/ri_dep.py +++ b/interface/ri_dep.py @@ -1,7 +1,7 @@ #!/usr/bin/python import ri_data - +import ri_func_dep from xml.dom import minidom import os.path @@ -61,8 +61,8 @@ def construct_depended(): Depended(dep) Depended.dict[dep].depended_by.add(d.name) -def get_extra_depending(pkg_list = []): - l = ri_data.Group.get_install_pkgs() + pkg_list +def get_extra_depending(fun_pkg_list = []): + l = ri_data.Group.get_install_pkgs() + fun_pkg_list set1 = set(l) set2 = set(set1) @@ -70,12 +70,22 @@ def get_extra_depending(pkg_list = []): for d in set1: set2.update(Depending.dict[d].depending) - global extra_pkgs - extra_pkgs = set2.difference(set1) res = {} - for d in extra_pkgs: + for d in set2.difference(set1): res[d] = Depended.dict[d].depended_by.intersection(set1) return res -extra_pkgs = [] +class dependency_init(): + ''' init dependency package and funcation''' + func_dep_list = [] + func_dep_dict={} + dep_dict={} + def __init__(self): + dependency_init.func_dep_dict = ri_func_dep.check_function_depending() + dependency_init.func_dep_list.extend(dependency_init.func_dep_dict.values()) + construct_depending() + resolve_recursive_depending() + construct_depended() + dependency_init.dep_dict = get_extra_depending(dependency_init.func_dep_list) + diff --git a/interface/ri_oper.py b/interface/ri_oper.py index 777186f..6db4c28 100644 --- a/interface/ri_oper.py +++ b/interface/ri_oper.py @@ -191,13 +191,17 @@ class InstallPkg(Operation): self.return_value[3]=("Software package doesn't exist",u"软件包不存在") def get_stdin(self): - pkgname = ri_data.Group.get_install_pkgs() + ri_dep.extra_pkgs + pkgname = set(ri_data.Group.get_install_pkgs() + self.get_dependency_pkg()) self.steps += len(pkgname) - return '\n'.join(pkgname) + '\n' + return '\n'.join(pkgname)+'\n' def get_arguments(self): return ["-s","/Rocky/packages"] + def get_dependency_pkg(self): + ri_dep.dependency_init() + return ri_dep.dependency_init.dep_dict.keys() + ri_dep.dependency_init.func_dep_list + class ConfigureFstab(Mount): """class for configure /etc/fstab""" def __init__(self,scr): diff --git a/interface/ri_tk_cmd.py b/interface/ri_tk_cmd.py index 8f286c7..1c29253 100644 --- a/interface/ri_tk_cmd.py +++ b/interface/ri_tk_cmd.py @@ -204,27 +204,18 @@ def software_group_optional_quit(): vn = "software_group_%s" %(i.name) i.install = display.var_dict[vn].get() -def dependency_list_init(): +def dependency_fun_pkg_display(): ''' init function for list in dependency step ''' - func_dep_list = [] + ri_dep.dependency_init() f_dep_text = ["function dependency list"] - func_dep_dict = ri_func_dep.check_function_depending() - for key in func_dep_dict.keys(): - func_dep_list.append(func_dep_dict[key]) - f = [ k.ljust(30) + ': ' + func_dep_dict[k] for k in func_dep_dict.keys() ] + f = [ k.ljust(30) + ': ' + ri_dep.dependency_init.func_dep_dict[k] for k in ri_dep.dependency_init.func_dep_dict.keys() ] dep_text = ["package dependency list"] - ri_dep.construct_depending() - ri_dep.resolve_recursive_depending() - ri_dep.construct_depended() - - dep_dict = ri_dep.get_extra_depending(func_dep_list) - l = [ k.ljust(20) + ': ' + ' '.join(dep_dict[k]) for k in dep_dict.keys()] + l = [ k.ljust(20) + ': ' + ' '.join(ri_dep.dependency_init.dep_dict[k]) for k in ri_dep.dependency_init.dep_dict.keys()] l = f_dep_text + f + dep_text + l display.var_dict['dependency.list'].set(value=tuple(l)) - - + def service_construct(w): ''' construct service widget based on actual data w - Widget instance ''' diff --git a/xml/interface.xml b/xml/interface.xml index 8118783..812f32a 100644 --- a/xml/interface.xml +++ b/xml/interface.xml @@ -715,7 +715,7 @@ row 4 | | - +