blob: 3648d01d74360231243aea2290aab89efd5c8f9b [file] [log] [blame]
# 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