doc + description + can updates with dict

This commit is contained in:
2019-07-29 22:12:29 +02:00
parent 613ae47573
commit c5ce9be699
7 changed files with 31 additions and 37 deletions

View File

@ -45,4 +45,4 @@ allfuncs.extend(all_options)
del(all_options)
__all__ = tuple(allfuncs)
del(allfuncs)
__version__ = "3.0rc9"
__version__ = "3.0rc10"

View File

@ -171,6 +171,11 @@ class _TiramisuOptionOptionDescription(CommonTiramisuOption):
option = self._option_bag.option
return option.impl_get_display_name()
def description(self):
"""Get option description"""
option = self._option_bag.option
return option.impl_get_information('doc', None)
def name(self,
follow_symlink: bool=False) -> str:
"""Get option name"""
@ -802,6 +807,15 @@ class _TiramisuOptionDescription(_TiramisuOption):
subconfig,
self._config_bag)
def _load_dict(self,
clearable: str="all",
remotable: str="minimum"):
root = self._get_option().impl_getpath()
self._tiramisu_dict = TiramisuDict(Config(self._config_bag.context),
root=root,
clearable=clearable,
remotable=remotable)
def dict(self,
clearable: str="all",
remotable: str="minimum",
@ -809,21 +823,14 @@ class _TiramisuOptionDescription(_TiramisuOption):
force: bool=False) -> Dict:
"""convert config and option to tiramisu format"""
if force or self._tiramisu_dict is None:
option = self._get_option()
name = option.impl_getname()
root = self._subconfig._get_subpath(name)
config = self._config_bag.context
self._tiramisu_dict = TiramisuDict(Config(self._config_bag.context),
root=root,
clearable=clearable,
remotable=remotable)
self._load_dict(clearable, remotable)
return self._tiramisu_dict.todict(form)
def updates(self,
body: List) -> Dict:
"""updates value with tiramisu format"""
if self._tiramisu_dict is None:
raise APIError(_('please use .dict() before .updates()'))
self._load_dict()
return self._tiramisu_dict.set_updates(body)
@ -1276,6 +1283,14 @@ class TiramisuContextOption(TiramisuContext):
config_bag,
config_bag.context)
def _load_dict(self,
clearable="all",
remotable="minimum"):
self._tiramisu_dict = TiramisuDict(Config(self._config_bag.context),
root=None,
clearable=clearable,
remotable=remotable)
def dict(self,
clearable="all",
remotable="minimum",
@ -1283,17 +1298,14 @@ class TiramisuContextOption(TiramisuContext):
force=False):
"""convert config and option to tiramisu format"""
if force or self._tiramisu_dict is None:
self._tiramisu_dict = TiramisuDict(Config(self._config_bag.context),
root=None,
clearable=clearable,
remotable=remotable)
self._load_dict(clearable, remotable)
return self._tiramisu_dict.todict(form)
def updates(self,
body: List) -> Dict:
"""updates value with tiramisu format"""
if self._tiramisu_dict is None:
raise APIError(_('please use .dict() before .updates()'))
self._load_dict()
return self._tiramisu_dict.set_updates(body)

View File

@ -238,7 +238,7 @@ class SubConfig(object):
context = option_bag.config_bag.context
context.cfgimpl_get_settings().validate_properties(option_bag)
if option_bag.option.impl_is_leader() and len(value) < self._impl_length:
raise LeadershipError(_('cannot reduce length of a leader "{}"'
raise LeadershipError(_('cannot reduce length of the leader "{}"'
'').format(option_bag.option.impl_get_display_name()))
return context.cfgimpl_get_values().setvalue(value,
option_bag,

View File

@ -409,7 +409,7 @@ class BaseOption(Base):
def _impl_get_display_name(self,
dyn_name: Base=None) -> str:
name = self.impl_get_information('doc')
name = self.impl_get_information('doc', None)
if name is None or name == '':
if dyn_name is not None:
name = dyn_name

View File

@ -467,7 +467,7 @@ class TiramisuDict:
childtype)
if schema is not None:
if web_type != 'symlink':
schema[path]['title'] = childapi_option.doc()
schema[path]['title'] = childapi_option.description()
self.add_help(schema[path],
childapi)
except Exception as err: