blob: 07e6e1ece6f4b59563a224c1590040da08d06429 [file] [log] [blame]
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
class RootConfig:
"""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