simplify tiramisu/option/syndynoptiondescription.py

This commit is contained in:
2018-11-13 22:44:42 +01:00
parent 974a178d4b
commit 872d6cd9c8
6 changed files with 72 additions and 67 deletions

View File

@ -26,7 +26,7 @@ from ..i18n import _
from ..setting import ConfigBag, OptionBag, groups, undefined, owners, Undefined
from .baseoption import BaseOption
from .option import ALLOWED_CONST_LIST
from .syndynoptiondescription import SynDynOptionDescription
from .syndynoptiondescription import SynDynOptionDescription, SynDynMasterSlaves
from ..error import ConfigError, ConflictError
@ -212,11 +212,10 @@ class OptionDescriptionWalk(CacheOptionDescription):
if child.impl_is_dynoptiondescription():
cname = child.impl_getname()
if name.startswith(cname):
for value in child.impl_get_suffixes(config_bag):
if name == cname + value:
return SynDynOptionDescription(child,
subpath,
value)
for suffix in child.impl_get_suffixes(config_bag):
if name == cname + suffix:
return child.to_dynoption(subpath,
suffix)
raise AttributeError(_('unknown option "{0}" '
'in optiondescription "{1}"'
'').format(name, self.impl_getname()))
@ -232,9 +231,8 @@ class OptionDescriptionWalk(CacheOptionDescription):
for child in self._children[1]:
if dyn and child.impl_is_dynoptiondescription():
for suffix in child.impl_get_suffixes(config_bag):
yield SynDynOptionDescription(child,
subpath,
suffix)
yield child.to_dynoption(subpath,
suffix)
else:
yield child
@ -340,3 +338,10 @@ class OptionDescription(OptionDescriptionWalk):
def impl_get_group_type(self) -> groups.GroupType:
return self._group_type
def to_dynoption(self,
rootpath: str,
suffix: str) -> SynDynOptionDescription:
return SynDynOptionDescription(self,
rootpath,
suffix)