Index options by group too

We will use this in a future change.

Change-Id: I0e0f0b84ee10cf2003d9eae349aee0c4b99cb69c
This commit is contained in:
Stephen Finucane 2017-03-07 12:36:50 +00:00
parent 2860b9df09
commit d77ab16161
1 changed files with 12 additions and 0 deletions

View File

@ -266,6 +266,7 @@ class OptionsCache(object):
def __init__(self, overrides={}, verbose=0):
self._verbose = verbose
self._opts_by_name = {}
self._opts_by_group = {}
self._opt_names = []
self._overrides = overrides
@ -296,6 +297,11 @@ class OptionsCache(object):
self._opts_by_name[optname] = (group, opt)
self._opt_names.append(optname)
if group not in self._opts_by_group:
self._opts_by_group[group] = []
self._opts_by_group[group].append(opt)
if optname in self._overrides:
for new_group in self._overrides[optname]:
if new_group == 'DEFAULT':
@ -343,9 +349,15 @@ class OptionsCache(object):
for ext in needed_exts:
self.load_extension_options(ext)
def get_group_names(self):
return self._opts_by_group.keys()
def get_option_names(self):
return self._opt_names
def get_group(self, name):
return self._opts_by_group[name]
def get_option(self, name):
return self._opts_by_name[name]