summaryrefslogtreecommitdiffstats
path: root/pym/portage/package/ebuild/_config/LocationsManager.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-27 13:49:40 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-27 13:49:40 -0700
commit10202ff80ebd212457db95d76ca1fbc79567bf8d (patch)
tree0c050c71411d4d752446c6143571374500a3103c /pym/portage/package/ebuild/_config/LocationsManager.py
parenta68a292f89aeea222421b8db5901bf0c5e7774a1 (diff)
downloadportage-10202ff80ebd212457db95d76ca1fbc79567bf8d.tar.gz
portage-10202ff80ebd212457db95d76ca1fbc79567bf8d.tar.bz2
portage-10202ff80ebd212457db95d76ca1fbc79567bf8d.zip
LocationsManager: extensible _profile_node object
Use immutable object attrubutes instead of tuples, for extensibility.
Diffstat (limited to 'pym/portage/package/ebuild/_config/LocationsManager.py')
-rw-r--r--pym/portage/package/ebuild/_config/LocationsManager.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/pym/portage/package/ebuild/_config/LocationsManager.py b/pym/portage/package/ebuild/_config/LocationsManager.py
index d79362542..ec3f0035f 100644
--- a/pym/portage/package/ebuild/_config/LocationsManager.py
+++ b/pym/portage/package/ebuild/_config/LocationsManager.py
@@ -23,6 +23,18 @@ _PORTAGE1_DIRECTORIES = frozenset([
'package.use', 'package.use.mask', 'package.use.force',
'use.mask', 'use.force'])
+class _profile_node(object):
+
+ __slots__ = ('location', 'portage1_directories')
+
+ def __init__(self, location, portage1_directories):
+ object.__setattr__(self, 'location', location)
+ object.__setattr__(self, 'portage1_directories', portage1_directories)
+
+ def __setattr__(self, name, value):
+ raise AttributeError("_profile_node instances are immutable",
+ self.__class__, name, value)
+
class LocationsManager(object):
def __init__(self, config_root=None, eprefix=None, config_profile_path=None, local_config=True, \
@@ -92,7 +104,7 @@ class LocationsManager(object):
if os.path.exists(custom_prof):
self.user_profile_dir = custom_prof
self.profiles.append(custom_prof)
- self.profiles_complex.append((custom_prof, True))
+ self.profiles_complex.append(_profile_node(custom_prof, True))
del custom_prof
self.profiles = tuple(self.profiles)
@@ -177,7 +189,8 @@ class LocationsManager(object):
(parentPath, parentsFile))
self.profiles.append(currentPath)
- self.profiles_complex.append((currentPath, allow_directories))
+ self.profiles_complex.append(
+ _profile_node(currentPath, allow_directories))
def set_root_override(self, root_overwrite=None):
# Allow ROOT setting to come from make.conf if it's not overridden