remove _getcontext in Settings
This commit is contained in:
parent
09c9fa4906
commit
05404e89bc
5 changed files with 128 additions and 130 deletions
|
@ -71,7 +71,7 @@ def autocheck(func):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_option_multi(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_option_multi(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
if not kwargs.get('permissive', False) and not kwargs.get('propertyerror', False):
|
||||
cfg.option(pathread).option.ismulti()
|
||||
cfg.option(pathread).option.issubmulti()
|
||||
|
@ -101,7 +101,7 @@ def autocheck_option_multi(cfg, pathread, pathwrite, confread, confwrite, **kwar
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_default_owner(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_default_owner(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""check different value of owner when any value is set to this option
|
||||
"""
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
@ -195,7 +195,7 @@ def _autocheck_default_value(cfg, path, conf, **kwargs):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_default_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_default_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
_autocheck_default_value(cfg, pathread, confread, **kwargs)
|
||||
if confread != confwrite:
|
||||
_autocheck_default_value(cfg, pathread, confwrite, **kwargs)
|
||||
|
@ -276,12 +276,12 @@ def _set_value(cfg, pathwrite, conf, **kwargs):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_set_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_set_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
_set_value(cfg, pathwrite, confwrite, **kwargs)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_get_value_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_get_value_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
multi = cfg.unrestraint.option(pathread).option.ismulti()
|
||||
submulti_ = cfg.unrestraint.option(pathread).option.issubmulti()
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
@ -390,7 +390,7 @@ def _autocheck_get_value(cfg, pathread, conf, **kwargs):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_get_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_get_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
_set_value(cfg, pathwrite, confwrite, set_permissive=False, **kwargs)
|
||||
_autocheck_get_value(cfg, pathread, confread, set_permissive=False, **kwargs)
|
||||
if pathread.endswith('val1'):
|
||||
|
@ -403,7 +403,7 @@ def autocheck_get_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_value_slave(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_value_slave(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
if not isslave:
|
||||
if kwargs.get('propertyerror', False):
|
||||
|
@ -454,7 +454,7 @@ def autocheck_value_slave(cfg, pathread, pathwrite, confread, confwrite, **kwarg
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_reset_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_reset_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# check if is a multi, a master or a slave
|
||||
multi = cfg.unrestraint.option(pathread).option.ismulti()
|
||||
submulti_ = cfg.unrestraint.option(pathread).option.issubmulti()
|
||||
|
@ -509,7 +509,7 @@ def autocheck_reset_value(cfg, pathread, pathwrite, confread, confwrite, **kwarg
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_append_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_append_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
ismaster = cfg.unrestraint.option(pathread).option.ismaster()
|
||||
submulti_ = cfg.unrestraint.option(pathread).option.issubmulti()
|
||||
if not ismaster:
|
||||
|
@ -546,7 +546,7 @@ def autocheck_append_value(cfg, pathread, pathwrite, confread, confwrite, **kwar
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_pop_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_pop_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
ismaster = cfg.unrestraint.option(pathread).option.ismaster()
|
||||
submulti_ = cfg.unrestraint.option(pathread).option.issubmulti()
|
||||
if not ismaster:
|
||||
|
@ -597,7 +597,7 @@ def autocheck_pop_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_reset_value_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_reset_value_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# check if is a multi, a master or a slave
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
_set_value(cfg, pathwrite, confwrite, **kwargs)
|
||||
|
@ -624,7 +624,7 @@ def autocheck_reset_value_permissive(cfg, pathread, pathwrite, confread, confwri
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_display(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_display(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""re set value
|
||||
"""
|
||||
if kwargs['callback']:
|
||||
|
@ -655,7 +655,7 @@ def _getproperties(multi, isslave, kwargs):
|
|||
return default_props, frozenset(properties)
|
||||
|
||||
|
||||
def _check_properties(cfg, pathread, conf, kwargs, props_permissive, props):
|
||||
def _check_properties(cfg, mcfg, pathread, conf, kwargs, props_permissive, props):
|
||||
if not cfg.unrestraint.option(pathread).option.isslave():
|
||||
if not kwargs.get('permissive', False) and not kwargs.get('propertyerror', False):
|
||||
assert set(cfg.config(conf).option(pathread).property.get()) == set(props_permissive)
|
||||
|
@ -704,7 +704,7 @@ def _check_properties(cfg, pathread, conf, kwargs, props_permissive, props):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_property(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_property(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""get property from path
|
||||
"""
|
||||
# check if is a multi or a slave
|
||||
|
@ -713,20 +713,20 @@ def autocheck_property(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
|||
|
||||
default_props, properties = _getproperties(multi, isslave, kwargs)
|
||||
|
||||
_check_properties(cfg, pathread, confread, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confread, kwargs, default_props, default_props)
|
||||
if confread != confwrite:
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
|
||||
# set properties without permissive
|
||||
for prop in properties:
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite).property.add(prop)
|
||||
_check_properties(cfg, pathread, confread, kwargs, properties, properties)
|
||||
if confread != confwrite:
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, properties, properties)
|
||||
cfg.unrestraint.config(confread).option(pathwrite).property.add(prop)
|
||||
_check_properties(cfg, mcfg, pathread, confread, kwargs, properties, properties)
|
||||
#if confread != confwrite:
|
||||
# _check_properties(cfg, mcfg, pathread, confwrite, kwargs, properties, properties)
|
||||
|
||||
|
||||
|
||||
def _property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def _property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# check if is a multi or a slave
|
||||
multi = cfg.unrestraint.option(pathread).option.ismulti()
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
@ -744,30 +744,30 @@ def _property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
default_props.extend(extra_properties)
|
||||
default_props, properties = _getproperties(multi, isslave, kwargs)
|
||||
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
if confwrite != confread:
|
||||
_check_properties(cfg, pathread, confread, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
#if confwrite != confread:
|
||||
# _check_properties(cfg, mcfg, pathread, confread, kwargs, default_props, default_props)
|
||||
|
||||
# set properties with permissive
|
||||
for prop in properties:
|
||||
if not kwargs.get('permissive', False) and not kwargs.get('propertyerror', False):
|
||||
cfg.config(confwrite).option(pathwrite).property.add(prop)
|
||||
cfg.config(confread).option(pathwrite).property.add(prop)
|
||||
if not kwargs.get('propertyerror', False):
|
||||
cfg.forcepermissive.config(confwrite).option(pathwrite).property.add(prop)
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite).property.add(prop)
|
||||
cfg.forcepermissive.config(confread).option(pathwrite).property.add(prop)
|
||||
cfg.unrestraint.config(confread).option(pathwrite).property.add(prop)
|
||||
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, properties, properties)
|
||||
if confwrite != confread:
|
||||
_check_properties(cfg, pathread, confread, kwargs, properties, properties)
|
||||
_check_properties(cfg, mcfg, pathread, confwrite, kwargs, properties, properties)
|
||||
#if confwrite != confread:
|
||||
# _check_properties(cfg, mcfg, pathread, confread, kwargs, properties, properties)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
_property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
def autocheck_property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
_property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_reset_property(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_reset_property(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""check properties after set with permissive
|
||||
"""
|
||||
# check if is a multi or a slave
|
||||
|
@ -775,36 +775,36 @@ def autocheck_reset_property(cfg, pathread, pathwrite, confread, confwrite, **kw
|
|||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
default_props, properties = _getproperties(multi, isslave, kwargs)
|
||||
|
||||
_property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
_property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
|
||||
# reset properties without permissive
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite).property.reset()
|
||||
|
||||
_check_properties(cfg, pathread, confread, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confread, kwargs, default_props, default_props)
|
||||
if confread != confwrite:
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_reset_property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_reset_property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# check if is a multi or a slave
|
||||
multi = cfg.unrestraint.option(pathread).option.ismulti()
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
default_props, properties = _getproperties(multi, isslave, kwargs)
|
||||
|
||||
_property_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
_property_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
||||
|
||||
for prop in properties:
|
||||
cfg.unrestraint.option(pathwrite).property.add(prop)
|
||||
cfg.unrestraint.option(pathwrite).property.reset()
|
||||
|
||||
_check_properties(cfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confwrite, kwargs, default_props, default_props)
|
||||
if confread != confwrite:
|
||||
_check_properties(cfg, pathread, confread, kwargs, default_props, default_props)
|
||||
_check_properties(cfg, mcfg, pathread, confread, kwargs, default_props, default_props)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_context_owner(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_context_owner(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
owner = cfg.owner.get()
|
||||
assert owner == kwargs['owner']
|
||||
|
||||
|
@ -838,7 +838,7 @@ def _check_owner(cfg, pathread, conf, kwargs, owner, permissive_owner):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_owner_with_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_owner_with_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""value is now changed, check owner in this case
|
||||
"""
|
||||
_set_value(cfg, pathwrite, confwrite, **kwargs)
|
||||
|
@ -848,7 +848,7 @@ def autocheck_owner_with_value(cfg, pathread, pathwrite, confread, confwrite, **
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_default_owner_with_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_default_owner_with_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
_set_value(cfg, pathwrite, confwrite, **kwargs)
|
||||
|
||||
|
@ -874,7 +874,7 @@ def autocheck_default_owner_with_value(cfg, pathread, pathwrite, confread, confw
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_default_owner_with_value_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_default_owner_with_value_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# check if is a isslave
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
||||
|
@ -896,7 +896,7 @@ def autocheck_default_owner_with_value_permissive(cfg, pathread, pathwrite, conf
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_set_owner_no_value(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_set_owner_no_value(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
if not kwargs.get('propertyerror', False):
|
||||
if not isslave:
|
||||
|
@ -906,7 +906,7 @@ def autocheck_set_owner_no_value(cfg, pathread, pathwrite, confread, confwrite,
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_set_owner(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_set_owner(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
# test set owner without permissive
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
||||
|
@ -933,7 +933,7 @@ def autocheck_set_owner(cfg, pathread, pathwrite, confread, confwrite, **kwargs)
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_set_owner_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_set_owner_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
isslave = cfg.unrestraint.option(pathread).option.isslave()
|
||||
|
||||
_set_value(cfg, pathwrite, confwrite, **kwargs)
|
||||
|
@ -958,7 +958,7 @@ def autocheck_set_owner_permissive(cfg, pathread, pathwrite, confread, confwrite
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_option(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_option(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
expected_name = pathread.split('.')[-1]
|
||||
if not kwargs.get('permissive', False) and not kwargs.get('propertyerror', False):
|
||||
current_name = cfg.option(pathread).option.name()
|
||||
|
@ -991,13 +991,13 @@ def autocheck_option(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_permissive(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
"""test permissive for hidden and disabled value
|
||||
"""
|
||||
# no permissive before
|
||||
assert cfg.unrestraint.config(confread).option(pathread).permissive.get() == frozenset()
|
||||
assert cfg.unrestraint.config(confwrite).option(pathread).permissive.get() == frozenset()
|
||||
if kwargs.get('permissive_od', False):
|
||||
assert cfg.unrestraint.config(confread).option(pathread.rsplit('.', 1)[0]).permissive.get() == frozenset()
|
||||
assert cfg.unrestraint.config(confwrite).option(pathread.rsplit('.', 1)[0]).permissive.get() == frozenset()
|
||||
|
||||
# cannot access to hidden value without forcepermissive
|
||||
# and to disabled value (with forcepermissive too)
|
||||
|
@ -1017,8 +1017,8 @@ def autocheck_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
|
||||
# have permissive
|
||||
assert cfg.unrestraint.config(confwrite).option(pathread).permissive.get() == frozenset(['disabled'])
|
||||
if confwrite != confread:
|
||||
assert cfg.unrestraint.config(confread).option(pathread).permissive.get() == frozenset(['disabled'])
|
||||
#if confwrite != confread:
|
||||
# assert cfg.unrestraint.config(confread).option(pathread).permissive.get() == frozenset(['disabled'])
|
||||
|
||||
# can access to disabled value
|
||||
ckwargs = copy(kwargs)
|
||||
|
@ -1042,8 +1042,8 @@ def autocheck_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
'hidden']))
|
||||
ckwargs['permissive'] = False
|
||||
_autocheck_default_value(cfg, pathread, confread, **ckwargs)
|
||||
if confread != confwrite:
|
||||
_autocheck_default_value(cfg, pathread, confwrite, **ckwargs)
|
||||
#if confread != confwrite:
|
||||
# _autocheck_default_value(cfg, pathread, confwrite, **ckwargs)
|
||||
|
||||
# only hidden
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite).permissive.set(frozenset(['hidden']))
|
||||
|
@ -1057,8 +1057,8 @@ def autocheck_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
ckwargs = copy(kwargs)
|
||||
ckwargs['permissive'] = False
|
||||
_autocheck_default_value(cfg, pathread, confread, **ckwargs)
|
||||
if confread != confwrite:
|
||||
_autocheck_default_value(cfg, pathread, confwrite, **ckwargs)
|
||||
#if confread != confwrite:
|
||||
# _autocheck_default_value(cfg, pathread, confwrite, **ckwargs)
|
||||
|
||||
# no permissive
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite).permissive.set(frozenset())
|
||||
|
@ -1070,12 +1070,12 @@ def autocheck_permissive(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
_autocheck_default_value(cfg, pathread, confwrite, **ckwargs)
|
||||
cfg.unrestraint.config(confwrite).option(pathwrite.rsplit('.', 1)[0]).permissive.set(frozenset())
|
||||
_autocheck_default_value(cfg, pathread, confread, **kwargs)
|
||||
if confread != confwrite:
|
||||
_autocheck_default_value(cfg, pathread, confwrite, **kwargs)
|
||||
#if confread != confwrite:
|
||||
# _autocheck_default_value(cfg, pathread, confwrite, **kwargs)
|
||||
|
||||
|
||||
@autocheck
|
||||
def autocheck_option_get(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_option_get(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
if '.' in pathread:
|
||||
name = pathread.rsplit('.', 1)[1]
|
||||
else:
|
||||
|
@ -1084,7 +1084,7 @@ def autocheck_option_get(cfg, pathread, pathwrite, confread, confwrite, **kwargs
|
|||
|
||||
|
||||
@autocheck
|
||||
def autocheck_find(cfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def autocheck_find(cfg, mcfg, pathread, pathwrite, confread, confwrite, **kwargs):
|
||||
def _getoption(opt):
|
||||
opt = opt.option.get()
|
||||
if opt.impl_is_dynsymlinkoption():
|
||||
|
@ -1317,20 +1317,22 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
for func in autocheck_registers:
|
||||
cfg_name = 'conftest' + str(idx)
|
||||
idx += 1
|
||||
ncfg = cfg.config.duplicate(session_id=cfg_name)
|
||||
ncfg = cfg.config.copy(session_id=cfg_name)
|
||||
if meta:
|
||||
confwrite = None
|
||||
confread = cfg_name
|
||||
ncfg = MetaConfig([ncfg], session_id='metatest')
|
||||
mcfg = MetaConfig([ncfg], session_id='metatest')
|
||||
weakrefs.append(weakref.ref(cfg))
|
||||
else:
|
||||
mcfg = ncfg
|
||||
ckwargs = copy(kwargs)
|
||||
if meta:
|
||||
ncfg.owner.set('meta')
|
||||
mcfg.owner.set('meta')
|
||||
ckwargs['owner'] = owners.meta
|
||||
else:
|
||||
ckwargs['owner'] = OWNER
|
||||
|
||||
if ncfg.unrestraint.option(path).option.isslave():
|
||||
if mcfg.unrestraint.option(path).option.isslave():
|
||||
dirname = path.rsplit('.', 1)[0]
|
||||
master_path = dirname + '.first'
|
||||
master_path_2 = None
|
||||
|
@ -1343,7 +1345,7 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
else:
|
||||
value = LIST_SECOND_VALUE
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
ncfg.option(master_path).value.set(value)
|
||||
mcfg.option(master_path).value.set(value)
|
||||
ckwargs['make_dict'][master_path] = value
|
||||
ckwargs['make_dict_value'][master_path] = value
|
||||
if symlink:
|
||||
|
@ -1351,7 +1353,7 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
ckwargs['make_dict_value'][master_path + 'link'] = value
|
||||
if master_path_2:
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
ncfg.option(master_path_2).value.set(value)
|
||||
mcfg.option(master_path_2).value.set(value)
|
||||
ckwargs['make_dict'][master_path_2] = value
|
||||
ckwargs['make_dict_value'][master_path_2] = value
|
||||
if symlink:
|
||||
|
@ -1408,11 +1410,12 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
do('val2', 'val1')
|
||||
|
||||
ncfg.property.read_write()
|
||||
mcfg.property.read_write()
|
||||
if req:
|
||||
name = 'extraoptrequire'
|
||||
if symlink:
|
||||
name += 'link'
|
||||
ncfg.option(name).value.set('value')
|
||||
mcfg.option(name).value.set('value')
|
||||
if 'permissive' in ckwargs and not 'permissive_od' in ckwargs or \
|
||||
'propertyerror' in ckwargs and not 'propertyerror_od' in ckwargs:
|
||||
for to_del in ['permissive', 'propertyerror', 'extra_properties']:
|
||||
|
@ -1426,7 +1429,7 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
else:
|
||||
pathwrite = path
|
||||
try:
|
||||
func(ncfg, pathread, pathwrite, confread, confwrite, **ckwargs)
|
||||
func(mcfg, ncfg, pathread, pathwrite, confread, confwrite, **ckwargs)
|
||||
except Exception as err:
|
||||
msg = u'error in function {} for {}'.format(func.__name__, path)
|
||||
if multi is True:
|
||||
|
@ -1441,6 +1444,8 @@ def check_all(cfg, paths_, path, meta, multi, default, default_multi, require, c
|
|||
msg += u' (symlink)'
|
||||
print(u'{}: {}'.format(msg, ckwargs))
|
||||
raise err
|
||||
if meta:
|
||||
del mcfg
|
||||
del ncfg
|
||||
|
||||
|
||||
|
@ -1451,7 +1456,7 @@ def check_deref(weakrefs):
|
|||
assert wrf() is None
|
||||
|
||||
|
||||
def make_conf(options, meta, multi, default, default_multi, require, consistency, callback, symlink):
|
||||
def make_conf(options, multi, default, default_multi, require, consistency, callback, symlink):
|
||||
weakrefs = []
|
||||
dyn = []
|
||||
goptions = []
|
||||
|
@ -1760,7 +1765,7 @@ def test_options(paths):
|
|||
continue
|
||||
if multi is False and default_multi:
|
||||
continue
|
||||
cfg, weakrefs, dyn = make_conf(paths, meta, multi, default, default_multi, require, consistency, callback, symlink)
|
||||
cfg, weakrefs, dyn = make_conf(paths, multi, default, default_multi, require, consistency, callback, symlink)
|
||||
if cfg is None:
|
||||
continue
|
||||
if dyn:
|
||||
|
|
|
@ -328,7 +328,8 @@ class TiramisuOptionProperty(CommonTiramisuOption):
|
|||
apply_requires=False)
|
||||
self.settings.setproperties(self.option_bag.path,
|
||||
props | {prop},
|
||||
self.option_bag)
|
||||
self.option_bag,
|
||||
self.option_bag.config_bag.context)
|
||||
|
||||
def pop(self, prop):
|
||||
"""remove new property for an option"""
|
||||
|
@ -337,12 +338,14 @@ class TiramisuOptionProperty(CommonTiramisuOption):
|
|||
apply_requires=False)
|
||||
self.settings.setproperties(self.option_bag.path,
|
||||
props - {prop},
|
||||
self.option_bag)
|
||||
self.option_bag,
|
||||
self.option_bag.config_bag.context)
|
||||
|
||||
def reset(self):
|
||||
"""reset all personalised properties"""
|
||||
option = self.option_bag.option
|
||||
self.settings.reset(self.option_bag)
|
||||
self.settings.reset(self.option_bag,
|
||||
self.option_bag.config_bag.context)
|
||||
|
||||
|
||||
class TiramisuOptionPermissive(CommonTiramisuOption):
|
||||
|
@ -734,7 +737,7 @@ class TiramisuContextProperty(TiramisuContext):
|
|||
def read_only(self):
|
||||
"""set configuration to read only mode"""
|
||||
settings = self.config_bag.context.cfgimpl_get_settings()
|
||||
settings.read_only()
|
||||
settings.read_only(self.config_bag.context)
|
||||
try:
|
||||
del self.config_bag.properties
|
||||
except AttributeError:
|
||||
|
@ -743,7 +746,7 @@ class TiramisuContextProperty(TiramisuContext):
|
|||
def read_write(self):
|
||||
"""set configuration to read and write mode"""
|
||||
settings = self.config_bag.context.cfgimpl_get_settings()
|
||||
settings.read_write()
|
||||
settings.read_write(self.config_bag.context)
|
||||
# #FIXME ?
|
||||
permissives = frozenset(settings.get_context_permissives() | frozenset(['hidden']))
|
||||
settings.set_context_permissives(permissives)
|
||||
|
@ -772,11 +775,15 @@ class TiramisuContextProperty(TiramisuContext):
|
|||
|
||||
def set(self, props):
|
||||
"""personalise configuration properties"""
|
||||
self.config_bag.context.cfgimpl_get_settings().set_context_properties(props)
|
||||
context = self.config_bag.context
|
||||
context.cfgimpl_get_settings().set_context_properties(props,
|
||||
context)
|
||||
|
||||
def reset(self):
|
||||
"""remove configuration properties"""
|
||||
self.config_bag.context.cfgimpl_get_settings().reset(None)
|
||||
context = self.config_bag.context
|
||||
context.cfgimpl_get_settings().reset(None,
|
||||
context)
|
||||
|
||||
def exportation(self):
|
||||
"""export configuration properties"""
|
||||
|
|
|
@ -746,13 +746,11 @@ class KernelConfig(_CommonConfig):
|
|||
raise ConfigError(_('cannot set dynoptiondescription object has root optiondescription'))
|
||||
if force_settings is not None and force_values is not None:
|
||||
if isinstance(force_settings, tuple):
|
||||
self._impl_settings = Settings(self,
|
||||
force_settings[0],
|
||||
self._impl_settings = Settings(force_settings[0],
|
||||
force_settings[1])
|
||||
else:
|
||||
self._impl_settings = force_settings
|
||||
self._impl_values = Values(self,
|
||||
force_values)
|
||||
self._impl_values = Values(force_values)
|
||||
else:
|
||||
properties, permissives, values, session_id = get_storages(self,
|
||||
session_id,
|
||||
|
@ -760,11 +758,9 @@ class KernelConfig(_CommonConfig):
|
|||
storage=storage)
|
||||
if not valid_name(session_id):
|
||||
raise ValueError(_("invalid session ID: {0} for config").format(session_id))
|
||||
self._impl_settings = Settings(self,
|
||||
properties,
|
||||
self._impl_settings = Settings(properties,
|
||||
permissives)
|
||||
self._impl_values = Values(self,
|
||||
values)
|
||||
self._impl_values = Values(values)
|
||||
super().__init__(descr,
|
||||
weakref.ref(self),
|
||||
ConfigBag(self),
|
||||
|
@ -815,11 +811,9 @@ class KernelGroupConfig(_CommonConfig):
|
|||
self._impl_children = children
|
||||
|
||||
if force_settings is not None and force_values is not None:
|
||||
self._impl_settings = Settings(self,
|
||||
force_settings[0],
|
||||
self._impl_settings = Settings(force_settings[0],
|
||||
force_settings[1])
|
||||
self._impl_values = Values(self,
|
||||
force_values)
|
||||
self._impl_values = Values(force_values)
|
||||
else:
|
||||
properties, permissives, values, session_id = get_storages(self,
|
||||
session_id,
|
||||
|
@ -827,11 +821,9 @@ class KernelGroupConfig(_CommonConfig):
|
|||
storage=storage)
|
||||
if not valid_name(session_id):
|
||||
raise ValueError(_("invalid session ID: {0} for config").format(session_id))
|
||||
self._impl_settings = Settings(self,
|
||||
properties,
|
||||
self._impl_settings = Settings(properties,
|
||||
permissives)
|
||||
self._impl_values = Values(self,
|
||||
values)
|
||||
self._impl_values = Values(values)
|
||||
|
||||
self._impl_meta = None
|
||||
super().__init__(_descr,
|
||||
|
|
|
@ -319,9 +319,11 @@ undefined = Undefined()
|
|||
#____________________________________________________________
|
||||
class Settings(object):
|
||||
"``config.Config()``'s configuration options settings"
|
||||
__slots__ = ('context', '_owner', '_p_', '_pp_', '__weakref__')
|
||||
__slots__ = ('_owner', '_p_', '_pp_', '__weakref__')
|
||||
|
||||
def __init__(self, context, properties, permissives):
|
||||
def __init__(self,
|
||||
properties,
|
||||
permissives):
|
||||
"""
|
||||
initializer
|
||||
|
||||
|
@ -333,21 +335,9 @@ class Settings(object):
|
|||
"""
|
||||
# generic owner
|
||||
self._owner = owners.user
|
||||
self.context = weakref.ref(context)
|
||||
self._p_ = properties
|
||||
self._pp_ = permissives
|
||||
|
||||
def _getcontext(self):
|
||||
"""context could be None, we need to test it
|
||||
context is None only if all reference to `Config` object is deleted
|
||||
(for example we delete a `Config` and we manipulate a reference to
|
||||
old `SubConfig`, `Values`, `Multi` or `Settings`)
|
||||
"""
|
||||
context = self.context()
|
||||
if context is None: # pragma: no cover
|
||||
raise ConfigError(_('the context does not exist anymore'))
|
||||
return context
|
||||
|
||||
#____________________________________________________________
|
||||
# get properties and permissive methods
|
||||
|
||||
|
@ -475,7 +465,7 @@ class Settings(object):
|
|||
if not current_requires:
|
||||
return calc_properties
|
||||
|
||||
context = self._getcontext()
|
||||
context = option_bag.config_bag.context
|
||||
all_properties = None
|
||||
for requires in current_requires:
|
||||
for require in requires:
|
||||
|
@ -574,15 +564,18 @@ class Settings(object):
|
|||
#____________________________________________________________
|
||||
# set methods
|
||||
def set_context_properties(self,
|
||||
properties):
|
||||
properties,
|
||||
context):
|
||||
self.setproperties(None,
|
||||
properties,
|
||||
None)
|
||||
None,
|
||||
context)
|
||||
|
||||
def setproperties(self,
|
||||
path,
|
||||
properties,
|
||||
option_bag):
|
||||
option_bag,
|
||||
context):
|
||||
"""save properties for specified path
|
||||
(never save properties if same has option properties)
|
||||
"""
|
||||
|
@ -611,7 +604,7 @@ class Settings(object):
|
|||
self._p_.setproperties(path,
|
||||
properties)
|
||||
#values too because of slave values could have a PropertiesOptionError has value
|
||||
self._getcontext().cfgimpl_reset_cache(option_bag)
|
||||
context.cfgimpl_reset_cache(option_bag)
|
||||
if option_bag is not None:
|
||||
try:
|
||||
del option_bag.properties
|
||||
|
@ -651,14 +644,14 @@ class Settings(object):
|
|||
' '.join(forbidden_permissives)))
|
||||
self._pp_.setpermissives(path, permissives)
|
||||
if option_bag is not None:
|
||||
self._getcontext().cfgimpl_reset_cache(option_bag)
|
||||
option_bag.config_bag.context.cfgimpl_reset_cache(option_bag)
|
||||
|
||||
#____________________________________________________________
|
||||
# reset methods
|
||||
|
||||
def reset(self,
|
||||
option_bag):
|
||||
# all_properties=False):
|
||||
option_bag,
|
||||
context):
|
||||
if option_bag is None:
|
||||
opt = None
|
||||
else:
|
||||
|
@ -677,7 +670,7 @@ class Settings(object):
|
|||
else:
|
||||
path = None
|
||||
self._p_.delproperties(path)
|
||||
self._getcontext().cfgimpl_reset_cache(option_bag)
|
||||
context.cfgimpl_reset_cache(option_bag)
|
||||
|
||||
#____________________________________________________________
|
||||
# validate properties
|
||||
|
@ -716,7 +709,7 @@ class Settings(object):
|
|||
value,
|
||||
option_bag):
|
||||
if 'mandatory' in option_bag.config_bag.properties:
|
||||
values = self._getcontext().cfgimpl_get_values()
|
||||
values = option_bag.config_bag.context.cfgimpl_get_values()
|
||||
is_mandatory = False
|
||||
if ('permissive' in option_bag.config_bag.properties) and \
|
||||
'mandatory' in option_bag.config_bag.permissives:
|
||||
|
@ -751,7 +744,8 @@ class Settings(object):
|
|||
|
||||
def _read(self,
|
||||
remove,
|
||||
append):
|
||||
append,
|
||||
context):
|
||||
props = self._p_.getproperties(None,
|
||||
default_properties)
|
||||
modified = False
|
||||
|
@ -762,17 +756,22 @@ class Settings(object):
|
|||
props = props | append
|
||||
modified = True
|
||||
if modified:
|
||||
self.set_context_properties(frozenset(props))
|
||||
self.set_context_properties(frozenset(props),
|
||||
context)
|
||||
|
||||
def read_only(self):
|
||||
def read_only(self,
|
||||
context):
|
||||
"convenience method to freeze, hide and disable"
|
||||
self._read(ro_remove,
|
||||
ro_append)
|
||||
ro_append,
|
||||
context)
|
||||
|
||||
def read_write(self):
|
||||
def read_write(self,
|
||||
context):
|
||||
"convenience method to freeze, hide and disable"
|
||||
self._read(rw_remove,
|
||||
rw_append)
|
||||
rw_append,
|
||||
context)
|
||||
|
||||
#____________________________________________________________
|
||||
# default owner methods
|
||||
|
|
|
@ -27,21 +27,17 @@ class Values(object):
|
|||
but the values are physicaly located here, in `Values`, wich is also
|
||||
responsible of a caching utility.
|
||||
"""
|
||||
__slots__ = ('context',
|
||||
'_p_',
|
||||
__slots__ = ('_p_',
|
||||
'__weakref__')
|
||||
|
||||
def __init__(self,
|
||||
context,
|
||||
storage):
|
||||
"""
|
||||
Initializes the values's dict.
|
||||
|
||||
:param context: the context is the home config's values
|
||||
:param storage: where values or owners are stored
|
||||
|
||||
"""
|
||||
self.context = weakref.ref(context)
|
||||
# store the storage
|
||||
self._p_ = storage
|
||||
|
||||
|
@ -436,7 +432,6 @@ class Values(object):
|
|||
_commit=True):
|
||||
|
||||
context = option_bag.config_bag.context
|
||||
setting = context.cfgimpl_get_settings()
|
||||
hasvalue = self._p_.hasvalue(option_bag.path)
|
||||
|
||||
if hasvalue and 'validator' in option_bag.config_bag.properties:
|
||||
|
|
Loading…
Reference in a new issue