config is context in ConfigBag
This commit is contained in:
@ -140,7 +140,7 @@ class OptionBag:
|
||||
if self.option != None:
|
||||
raise Exception('hu?')
|
||||
if path is None:
|
||||
path = config_bag.config.cfgimpl_get_description().impl_get_path_by_opt(option)
|
||||
path = config_bag.context.cfgimpl_get_description().impl_get_path_by_opt(option)
|
||||
self.path = path
|
||||
self.index = index
|
||||
self.option = option
|
||||
@ -148,7 +148,7 @@ class OptionBag:
|
||||
|
||||
def __getattr__(self, key):
|
||||
if key == 'properties':
|
||||
settings = self.config_bag.config.cfgimpl_get_settings()
|
||||
settings = self.config_bag.context.cfgimpl_get_settings()
|
||||
self.properties = settings.getproperties(self, apply_requires=self.apply_requires)
|
||||
return self.properties
|
||||
elif key == 'ori_option':
|
||||
@ -159,16 +159,16 @@ class OptionBag:
|
||||
|
||||
|
||||
class ConfigBag:
|
||||
__slots__ = ('config', # link to the current config (context)
|
||||
__slots__ = ('context', # link to the current config (context)
|
||||
'_setting_properties', # properties for current config
|
||||
'force_permissive', # force permissive
|
||||
'force_unrestraint', # do not validate properties
|
||||
'_validate', # validate
|
||||
)
|
||||
def __init__(self, config, **kwargs):
|
||||
def __init__(self, context, **kwargs):
|
||||
self.force_permissive = False
|
||||
self.force_unrestraint = False
|
||||
self.config = config
|
||||
self.context = context
|
||||
self._validate = True
|
||||
for key, value in kwargs.items():
|
||||
setattr(self, key, value)
|
||||
@ -185,7 +185,7 @@ class ConfigBag:
|
||||
return None
|
||||
return self._setting_properties
|
||||
if key == '_setting_properties':
|
||||
self._setting_properties = self.config.cfgimpl_get_settings().get_context_properties()
|
||||
self._setting_properties = self.context.cfgimpl_get_settings().get_context_properties()
|
||||
if self._validate is False:
|
||||
self._setting_properties = self._setting_properties - {'validator'}
|
||||
return self._setting_properties
|
||||
@ -514,17 +514,13 @@ class Settings(object):
|
||||
idx = option_bag.index
|
||||
elif option.impl_is_multi():
|
||||
is_indexed = True
|
||||
config_bag = ConfigBag(config=option_bag.config_bag.config,
|
||||
_setting_properties=option_bag.config_bag._setting_properties,
|
||||
force_permissive=True,
|
||||
force_unrestraint=option_bag.config_bag.force_unrestraint,
|
||||
_validate=option_bag.config_bag._validate)
|
||||
config_bag = option_bag.config_bag.copy()
|
||||
config_bag.force_permissive = True
|
||||
soption_bag = OptionBag()
|
||||
soption_bag.set_option(option,
|
||||
reqpath,
|
||||
idx,
|
||||
config_bag)
|
||||
soption_bag.config_bag.force_permissive = True
|
||||
if option_bag.option == option:
|
||||
soption_bag.config_bag.force_unrestraint = True
|
||||
soption_bag.config_bag.validate = False
|
||||
@ -718,9 +714,8 @@ class Settings(object):
|
||||
was present
|
||||
"""
|
||||
# calc properties
|
||||
self_properties = option_bag.properties
|
||||
config_bag = option_bag.config_bag
|
||||
properties = self_properties & config_bag.setting_properties - {'frozen', 'mandatory', 'empty'}
|
||||
properties = option_bag.properties & config_bag.setting_properties - {'frozen', 'mandatory', 'empty'}
|
||||
|
||||
# remove permissive properties
|
||||
if (config_bag.force_permissive is True or \
|
||||
|
Reference in New Issue
Block a user