# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 class RootConfig(object): """This is used internally by depgraph to track information about a particular $ROOT.""" __slots__ = ("mtimedb", "root", "setconfig", "sets", "settings", "trees") pkg_tree_map = { "ebuild" : "porttree", "binary" : "bintree", "installed" : "vartree" } tree_pkg_map = {} for k, v in pkg_tree_map.items(): tree_pkg_map[v] = k def __init__(self, settings, trees, setconfig): self.trees = trees self.settings = settings self.root = self.settings['EROOT'] self.setconfig = setconfig if setconfig is None: self.sets = {} else: self.sets = self.setconfig.getSets() def update(self, other): """ Shallow copy all attributes from another instance. """ for k in self.__slots__: try: setattr(self, k, getattr(other, k)) except AttributeError: # mtimedb is currently not a required attribute try: delattr(self, k) except AttributeError: pass