def __call__(self, depgraph, mylist, favorites=None, verbosity=None): """The main operation to format and display the resolver output. @param depgraph: dependency grah @param mylist: list of packages being processed @param favorites: list, defaults to [] @param verbosity: verbose level, defaults to None Modifies self.conf, self.myfetchlist, self.portdb, self.vardb, self.pkgsettings, self.verboseadd, self.oldlp, self.newlp, self.print_msg, """ if favorites is None: favorites = [] self.conf = _DisplayConfig(depgraph, mylist, favorites, verbosity) mylist = self.get_display_list(self.conf.mylist) # files to fetch list - avoids counting a same file twice # in size display (verbose mode) self.myfetchlist = set() self.quiet_repo_display = "--quiet-repo-display" in depgraph._frozen_config.myopts if self.quiet_repo_display: # Use this set to detect when all the "repoadd" strings are "[0]" # and disable the entire repo display in this case. repoadd_set = set() self.verbose_main_repo_display = "--verbose-main-repo-display" in depgraph._frozen_config.myopts self.restrict_fetch_list = {} for mylist_index in range(len(mylist)): pkg, depth, ordered = mylist[mylist_index] self.portdb = self.conf.trees[pkg.root]["porttree"].dbapi self.vardb = self.conf.trees[pkg.root]["vartree"].dbapi self.pkgsettings = self.conf.pkgsettings[pkg.root] self.indent = " " * depth if isinstance(pkg, Blocker): self._blockers(pkg) else: pkg_info = self.set_pkg_info(pkg, ordered) pkg_info.oldbest_list, myinslotlist = \ self._get_installed_best(pkg, pkg_info) if ordered and pkg_info.merge and \ not pkg_info.attr_display.new: for arg, atom in depgraph._iter_atoms_for_pkg(pkg): if arg.force_reinstall: pkg_info.attr_display.force_reinstall = True break self.verboseadd = "" if self.quiet_repo_display: self.repoadd = None self._display_use(pkg, pkg_info) if self.conf.verbosity == 3: if self.quiet_repo_display: self.verbose_size(pkg, repoadd_set, pkg_info) else: self.verbose_size(pkg, None, pkg_info) self.oldlp = self.conf.columnwidth - 30 self.newlp = self.oldlp - 30 pkg_info.oldbest = self.convert_myoldbest(pkg, pkg_info) pkg_info.system, pkg_info.world = \ self.check_system_world(pkg) if 'interactive' in pkg.properties and \ pkg.operation == 'merge': pkg_info.attr_display.interactive = True if ordered: self.counters.interactive += 1 if self.include_mask_str(): pkg_info.attr_display.mask = self.gen_mask_str(pkg) if pkg.root_config.settings["ROOT"] != "/": if pkg_info.oldbest: pkg_info.oldbest += " " if self.conf.columns: myprint = self._set_non_root_columns(pkg, pkg_info) else: pkg_str = pkg.cpv if self.conf.verbosity == 3: pkg_str = self._append_slot(pkg_str, pkg, pkg_info) pkg_str = self._append_repository(pkg_str, pkg, pkg_info) if not pkg_info.merge: addl = self.empty_space_in_brackets() myprint = "[%s%s] " % ( self.pkgprint(pkg_info.operation.ljust(13), pkg_info), addl, ) else: myprint = "[%s %s] " % ( self.pkgprint(pkg.type_name, pkg_info), pkg_info.attr_display) myprint += self.indent + \ self.pkgprint(pkg_str, pkg_info) + " " + \ pkg_info.oldbest + darkgreen("to " + pkg.root) else: if self.conf.columns: myprint = self._set_root_columns(pkg, pkg_info) else: myprint = self._set_no_columns(pkg, pkg_info) if self.conf.columns and pkg.operation == "uninstall": continue if self.quiet_repo_display: self.print_msg.append((myprint, self.verboseadd, self.repoadd)) else: self.print_msg.append((myprint, self.verboseadd, None)) show_repos = self.quiet_repo_display and repoadd_set and repoadd_set != set(["0"]) # now finally print out the messages self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: self.print_verbose(show_repos) for pkg, pkg_info in self.restrict_fetch_list.items(): writemsg_stdout("\nFetch instructions for %s:\n" % (pkg.cpv,), noiselevel=-1) spawn_nofetch(self.conf.trees[pkg.root]["porttree"].dbapi, pkg_info.ebuild_path) if self.conf.changelog: self.print_changelog() return os.EX_OK
def __call__(self, depgraph, mylist, favorites=None, verbosity=None): """The main operation to format and display the resolver output. @param depgraph: dependency grah @param mylist: list of packages being processed @param favorites: list, defaults to [] @param verbosity: verbose level, defaults to None Modifies self.conf, self.myfetchlist, self.portdb, self.vardb, self.pkgsettings, self.verboseadd, self.oldlp, self.newlp, self.print_msg, """ if favorites is None: favorites = [] self.conf = _DisplayConfig(depgraph, mylist, favorites, verbosity) mylist = self.get_display_list(self.conf.mylist) # files to fetch list - avoids counting a same file twice # in size display (verbose mode) self.myfetchlist = set() self.quiet_repo_display = "--quiet-repo-display" in depgraph._frozen_config.myopts if self.quiet_repo_display: # Use this set to detect when all the "repoadd" strings are "[0]" # and disable the entire repo display in this case. repoadd_set = set() self.restrict_fetch_list = {} for mylist_index in range(len(mylist)): pkg, depth, ordered = mylist[mylist_index] self.portdb = self.conf.trees[pkg.root]["porttree"].dbapi self.vardb = self.conf.trees[pkg.root]["vartree"].dbapi self.pkgsettings = self.conf.pkgsettings[pkg.root] self.indent = " " * depth if isinstance(pkg, Blocker): self._blockers(pkg) else: pkg_info = self.set_pkg_info(pkg, ordered) pkg_info.oldbest_list, myinslotlist = \ self._get_installed_best(pkg, pkg_info) if ordered and pkg_info.merge and \ not pkg_info.attr_display.new: for arg, atom in depgraph._iter_atoms_for_pkg(pkg): if arg.force_reinstall: pkg_info.attr_display.force_reinstall = True break self.verboseadd = "" if self.quiet_repo_display: self.repoadd = None self._display_use(pkg, pkg_info) if self.conf.verbosity == 3: if self.quiet_repo_display: self.verbose_size(pkg, repoadd_set, pkg_info) else: self.verbose_size(pkg, None, pkg_info) self.oldlp = self.conf.columnwidth - 30 self.newlp = self.oldlp - 30 pkg_info.oldbest = self.convert_myoldbest(pkg, pkg_info) pkg_info.system, pkg_info.world = \ self.check_system_world(pkg) if 'interactive' in pkg.properties and \ pkg.operation == 'merge': pkg_info.attr_display.interactive = True if ordered: self.counters.interactive += 1 if self.include_mask_str(): pkg_info.attr_display.mask = self.gen_mask_str(pkg) if pkg.root_config.settings["ROOT"] != "/": if pkg_info.oldbest: pkg_info.oldbest += " " if self.conf.columns: myprint = self._set_non_root_columns(pkg, pkg_info) else: pkg_str = self._append_build_id(pkg.cpv, pkg, pkg_info) if self.conf.verbosity == 3: pkg_str = self._append_slot(pkg_str, pkg, pkg_info) pkg_str = self._append_repository( pkg_str, pkg, pkg_info) if not pkg_info.merge: addl = self.empty_space_in_brackets() myprint = "[%s%s] " % ( self.pkgprint(pkg_info.operation.ljust(13), pkg_info), addl, ) else: myprint = "[%s %s] " % (self.pkgprint( pkg.type_name, pkg_info), pkg_info.attr_display) myprint += self.indent + \ self.pkgprint(pkg_str, pkg_info) + " " + \ pkg_info.oldbest + darkgreen("to " + pkg.root) else: if self.conf.columns: myprint = self._set_root_columns(pkg, pkg_info) else: myprint = self._set_no_columns(pkg, pkg_info) if self.conf.columns and pkg.operation == "uninstall": continue if self.quiet_repo_display: self.print_msg.append( (myprint, self.verboseadd, self.repoadd)) else: self.print_msg.append((myprint, self.verboseadd, None)) show_repos = self.quiet_repo_display and repoadd_set and repoadd_set != set( ["0"]) # now finally print out the messages self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: self.print_verbose(show_repos) for pkg, pkg_info in self.restrict_fetch_list.items(): writemsg_stdout("\nFetch instructions for %s:\n" % (pkg.cpv, ), noiselevel=-1) spawn_nofetch(self.conf.trees[pkg.root]["porttree"].dbapi, pkg_info.ebuild_path) if self.conf.changelog: self.print_changelog() return os.EX_OK
def __call__(self, depgraph, mylist, favorites=None, verbosity=None): """The main operation to format and display the resolver output. @param depgraph: dependency grah @param mylist: list of packages being processed @param favorites: list, defaults to [] @param verbosity: verbose level, defaults to None Modifies self.conf, self.myfetchlist, self.portdb, self.vardb, self.pkgsettings, self.verboseadd, self.oldlp, self.newlp, self.print_msg, """ if favorites is None: favorites = [] self.conf = _DisplayConfig(depgraph, mylist, favorites, verbosity) mylist = self.get_display_list(self.conf.mylist) # files to fetch list - avoids counting a same file twice # in size display (verbose mode) self.myfetchlist = set() # Use this set to detect when all the "repoadd" strings are "[0]" # and disable the entire repo display in this case. repoadd_set = set() for mylist_index in range(len(mylist)): pkg, depth, ordered = mylist[mylist_index] self.portdb = self.conf.trees[pkg.root]["porttree"].dbapi self.vardb = self.conf.trees[pkg.root]["vartree"].dbapi self.pkgsettings = self.conf.pkgsettings[pkg.root] self.indent = " " * depth if isinstance(pkg, Blocker): if self._blockers(pkg, fetch_symbol=" "): continue else: pkg_info = self.set_pkg_info(pkg, ordered) addl, pkg_info.oldbest, myinslotlist = \ self._get_installed_best(pkg, pkg_info) self.verboseadd = "" self.repoadd = None self._display_use(pkg, pkg_info.oldbest, myinslotlist) self.recheck_hidden(pkg) if self.conf.verbosity == 3: self.verbose_size(pkg, repoadd_set, pkg_info) pkg_info.cp = pkg.cp pkg_info.ver = self.get_ver_str(pkg) self.oldlp = self.conf.columnwidth - 30 self.newlp = self.oldlp - 30 pkg_info.oldbest = self.convert_myoldbest(pkg_info.oldbest) pkg_info.system, pkg_info.world = \ self.check_system_world(pkg) addl = self.set_interactive(pkg, pkg_info.ordered, addl) if self.include_mask_str(): addl += self.gen_mask_str(pkg) if pkg.root != "/": if pkg_info.oldbest: pkg_info.oldbest += " " if self.conf.columns: myprint = self._set_non_root_columns( addl, pkg_info, pkg) else: if not pkg_info.merge: addl = self.empty_space_in_brackets() myprint = "[%s%s] " % ( self.pkgprint(pkg_info.operation.ljust(13), pkg_info), addl, ) else: myprint = "[%s %s] " % ( self.pkgprint(pkg.type_name, pkg_info), addl) myprint += self.indent + \ self.pkgprint(pkg.cpv, pkg_info) + " " + \ pkg_info.oldbest + darkgreen("to " + pkg.root) else: if self.conf.columns: myprint = self._set_root_columns( addl, pkg_info, pkg) else: myprint = self._set_no_columns( pkg, pkg_info, addl) if self.conf.columns and pkg.operation == "uninstall": continue self.print_msg.append((myprint, self.verboseadd, self.repoadd)) if not self.conf.tree_display \ and not self.conf.no_restart \ and pkg.root == self.conf.running_root.root \ and match_from_list(PORTAGE_PACKAGE_ATOM, [pkg]) \ and not self.conf.quiet: if not self.vardb.cpv_exists(pkg.cpv) or \ '9999' in pkg.cpv or \ 'git' in pkg.inherited or \ 'git-2' in pkg.inherited: if mylist_index < len(mylist) - 1: self.print_msg.append( colorize( "WARN", "*** Portage will stop merging " "at this point and reload itself," ) ) self.print_msg.append( colorize("WARN", " then resume the merge.") ) show_repos = repoadd_set and repoadd_set != set(["0"]) # now finally print out the messages self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: self.print_verbose(show_repos) if self.conf.changelog: self.print_changelog() return os.EX_OK
def __call__(self, depgraph, mylist, favorites=None, verbosity=None): """The main operation to format and display the resolver output. @param depgraph: dependency grah @param mylist: list of packages being processed @param favorites: list, defaults to [] @param verbosity: verbose level, defaults to None Modifies self.conf, self.myfetchlist, self.portdb, self.vardb, self.pkgsettings, self.verboseadd, self.oldlp, self.newlp, self.print_msg, """ if favorites is None: favorites = [] self.conf = _DisplayConfig(depgraph, mylist, favorites, verbosity) mylist = self.get_display_list(self.conf.mylist) # files to fetch list - avoids counting a same file twice # in size display (verbose mode) self.myfetchlist = set() self.quiet_repo_display = "--quiet-repo-display" in depgraph._frozen_config.myopts if self.quiet_repo_display: # Use this set to detect when all the "repoadd" strings are "[0]" # and disable the entire repo display in this case. repoadd_set = set() self.verbose_main_repo_display = "--verbose-main-repo-display" in depgraph._frozen_config.myopts for mylist_index in range(len(mylist)): pkg, depth, ordered = mylist[mylist_index] self.portdb = self.conf.trees[pkg.root]["porttree"].dbapi self.vardb = self.conf.trees[pkg.root]["vartree"].dbapi self.pkgsettings = self.conf.pkgsettings[pkg.root] self.indent = " " * depth if isinstance(pkg, Blocker): if self._blockers(pkg, fetch_symbol=" "): continue else: pkg_info = self.set_pkg_info(pkg, ordered) addl, pkg_info.oldbest_list, myinslotlist = \ self._get_installed_best(pkg, pkg_info) self.verboseadd = "" if self.quiet_repo_display: self.repoadd = None self._display_use(pkg, pkg_info.oldbest_list, myinslotlist) self.recheck_hidden(pkg) if self.conf.verbosity == 3: if self.quiet_repo_display: self.verbose_size(pkg, repoadd_set, pkg_info) else: self.verbose_size(pkg, None, pkg_info) pkg_info.cp = pkg.cp pkg_info.ver = self.get_ver_str(pkg) self.oldlp = self.conf.columnwidth - 30 self.newlp = self.oldlp - 30 pkg_info.oldbest = self.convert_myoldbest(pkg, pkg_info.oldbest_list) pkg_info.system, pkg_info.world = \ self.check_system_world(pkg) addl = self.set_interactive(pkg, pkg_info.ordered, addl) if self.include_mask_str(): addl += self.gen_mask_str(pkg) if pkg.root_config.settings["ROOT"] != "/": if pkg_info.oldbest: pkg_info.oldbest += " " if self.conf.columns: myprint = self._set_non_root_columns( addl, pkg_info, pkg) else: pkg_str = pkg.cpv if self.conf.verbosity == 3 and not self.quiet_repo_display and (self.verbose_main_repo_display or any(x.repo != self.portdb.repositories.mainRepo().name for x in pkg_info.oldbest_list + [pkg])): pkg_str += _repo_separator + pkg.repo if not pkg_info.merge: addl = self.empty_space_in_brackets() myprint = "[%s%s] " % ( self.pkgprint(pkg_info.operation.ljust(13), pkg_info), addl, ) else: myprint = "[%s %s] " % ( self.pkgprint(pkg.type_name, pkg_info), addl) myprint += self.indent + \ self.pkgprint(pkg_str, pkg_info) + " " + \ pkg_info.oldbest + darkgreen("to " + pkg.root) else: if self.conf.columns: myprint = self._set_root_columns( addl, pkg_info, pkg) else: myprint = self._set_no_columns( pkg, pkg_info, addl) if self.conf.columns and pkg.operation == "uninstall": continue if self.quiet_repo_display: self.print_msg.append((myprint, self.verboseadd, self.repoadd)) else: self.print_msg.append((myprint, self.verboseadd, None)) show_repos = self.quiet_repo_display and repoadd_set and repoadd_set != set(["0"]) # now finally print out the messages self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: self.print_verbose(show_repos) if self.conf.changelog: self.print_changelog() return os.EX_OK
def __call__(self, depgraph, mylist, favorites=None, verbosity=None): """The main operation to format and display the resolver output. @param depgraph: dependency grah @param mylist: list of packages being processed @param favorites: list, defaults to [] @param verbosity: verbose level, defaults to None Modifies self.conf, self.myfetchlist, self.portdb, self.vardb, self.pkgsettings, self.verboseadd, self.oldlp, self.newlp, self.print_msg, """ if favorites is None: favorites = [] self.conf = _DisplayConfig(depgraph, mylist, favorites, verbosity) mylist = self.get_display_list(self.conf.mylist) # files to fetch list - avoids counting a same file twice # in size display (verbose mode) self.myfetchlist = set() self.quiet_repo_display = "--quiet-repo-display" in depgraph._frozen_config.myopts if self.quiet_repo_display: # Use this set to detect when all the "repoadd" strings are "[0]" # and disable the entire repo display in this case. repoadd_set = set() self.verbose_main_repo_display = "--verbose-main-repo-display" in depgraph._frozen_config.myopts for mylist_index in range(len(mylist)): pkg, depth, ordered = mylist[mylist_index] self.portdb = self.conf.trees[pkg.root]["porttree"].dbapi self.vardb = self.conf.trees[pkg.root]["vartree"].dbapi self.pkgsettings = self.conf.pkgsettings[pkg.root] self.indent = " " * depth if isinstance(pkg, Blocker): if self._blockers(pkg, fetch_symbol=" "): continue else: pkg_info = self.set_pkg_info(pkg, ordered) addl, pkg_info.oldbest_list, myinslotlist = \ self._get_installed_best(pkg, pkg_info) self.verboseadd = "" if self.quiet_repo_display: self.repoadd = None self._display_use(pkg, pkg_info.oldbest_list, myinslotlist) self.recheck_hidden(pkg) if self.conf.verbosity == 3: if self.quiet_repo_display: self.verbose_size(pkg, repoadd_set, pkg_info) else: self.verbose_size(pkg, None, pkg_info) pkg_info.cp = pkg.cp pkg_info.ver = self.get_ver_str(pkg) self.oldlp = self.conf.columnwidth - 30 self.newlp = self.oldlp - 30 pkg_info.oldbest = self.convert_myoldbest( pkg, pkg_info.oldbest_list) pkg_info.system, pkg_info.world = \ self.check_system_world(pkg) addl = self.set_interactive(pkg, pkg_info.ordered, addl) if self.include_mask_str(): addl += self.gen_mask_str(pkg) if pkg.root_config.settings["ROOT"] != "/": if pkg_info.oldbest: pkg_info.oldbest += " " if self.conf.columns: myprint = self._set_non_root_columns( addl, pkg_info, pkg) else: pkg_str = pkg.cpv if self.conf.verbosity == 3 and not self.quiet_repo_display and ( self.verbose_main_repo_display or any( x.repo != self.portdb.repositories.mainRepo().name for x in pkg_info.oldbest_list + [pkg])): pkg_str += _repo_separator + pkg.repo if not pkg_info.merge: addl = self.empty_space_in_brackets() myprint = "[%s%s] " % ( self.pkgprint(pkg_info.operation.ljust(13), pkg_info), addl, ) else: myprint = "[%s %s] " % (self.pkgprint( pkg.type_name, pkg_info), addl) myprint += self.indent + \ self.pkgprint(pkg_str, pkg_info) + " " + \ pkg_info.oldbest + darkgreen("to " + pkg.root) else: if self.conf.columns: myprint = self._set_root_columns(addl, pkg_info, pkg) else: myprint = self._set_no_columns(pkg, pkg_info, addl) if self.conf.columns and pkg.operation == "uninstall": continue if self.quiet_repo_display: self.print_msg.append( (myprint, self.verboseadd, self.repoadd)) else: self.print_msg.append((myprint, self.verboseadd, None)) show_repos = self.quiet_repo_display and repoadd_set and repoadd_set != set( ["0"]) # now finally print out the messages self.print_messages(show_repos) self.print_blockers() if self.conf.verbosity == 3: self.print_verbose(show_repos) if self.conf.changelog: self.print_changelog() return os.EX_OK