simplify tiramisu/option/syndynoptiondescription.py
This commit is contained in:
@ -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)
|
||||
|
Reference in New Issue
Block a user