first version of new api
This commit is contained in:
@ -270,7 +270,7 @@ class Property(object):
|
||||
raise ConfigError(_('cannot add those properties: {0}').format(propname))
|
||||
self._properties.add(propname)
|
||||
if save:
|
||||
self._setting._setproperties(self._properties, self._opt, self._path, force=True)
|
||||
self._setting.setproperties(self._properties, self._opt, self._path, force=True)
|
||||
|
||||
def remove(self, propname):
|
||||
"""Removes a property named propname
|
||||
@ -280,7 +280,7 @@ class Property(object):
|
||||
"""
|
||||
if propname in self._properties:
|
||||
self._properties.remove(propname)
|
||||
self._setting._setproperties(self._properties, self._opt, self._path)
|
||||
self._setting.setproperties(self._properties, self._opt, self._path)
|
||||
|
||||
def extend(self, propnames):
|
||||
"""Extends properties to the existing properties
|
||||
@ -290,7 +290,7 @@ class Property(object):
|
||||
"""
|
||||
for propname in propnames:
|
||||
self._append(propname, save=False)
|
||||
self._setting._setproperties(self._properties, self._opt, self._path)
|
||||
self._setting.setproperties(self._properties, self._opt, self._path)
|
||||
|
||||
def reset(self):
|
||||
"""resets the properties (does not **clear** the properties,
|
||||
@ -353,11 +353,14 @@ class Settings(object):
|
||||
path = opt.impl_getpath(self._getcontext())
|
||||
return self.getproperties(opt, path)
|
||||
|
||||
def getproperties(self, opt, path, setting_properties=undefined):
|
||||
return Property(self,
|
||||
self._getproperties(opt, path,
|
||||
setting_properties=setting_properties),
|
||||
opt, path)
|
||||
def getproperties(self, opt, path, setting_properties=undefined, index=None, obj=True):
|
||||
"""get properties for a specified option
|
||||
"""
|
||||
properties = self._getproperties(opt, path, index=index,
|
||||
setting_properties=setting_properties)
|
||||
if obj:
|
||||
return Property(self, properties, opt, path)
|
||||
return properties
|
||||
|
||||
def __setitem__(self, opt, value): # pragma: optional cover
|
||||
raise ValueError(_('you should only append/remove properties'))
|
||||
@ -435,20 +438,25 @@ class Settings(object):
|
||||
props = self._p_.getproperties(None, default_properties)
|
||||
if propname not in props:
|
||||
props.add(propname)
|
||||
self._setproperties(props, None, None)
|
||||
self.setproperties(props, None, None)
|
||||
|
||||
def remove(self, propname):
|
||||
"deletes property propname in the Config's properties attribute"
|
||||
props = self._p_.getproperties(None, default_properties)
|
||||
if propname in props:
|
||||
props.remove(propname)
|
||||
self._setproperties(props, None, None)
|
||||
self.setproperties(props, None, None)
|
||||
|
||||
def extend(self, propnames):
|
||||
for propname in propnames:
|
||||
self.append(propname)
|
||||
|
||||
def _setproperties(self, properties, opt, path, force=False):
|
||||
"""just for compatibility
|
||||
"""
|
||||
self.setproperties(properties, opt, path, force)
|
||||
|
||||
def setproperties(self, properties, opt, path, force=False):
|
||||
"""save properties for specified path
|
||||
(never save properties if same has option properties)
|
||||
"""
|
||||
@ -617,7 +625,7 @@ class Settings(object):
|
||||
props = props | append
|
||||
modified = True
|
||||
if modified:
|
||||
self._setproperties(props, None, None)
|
||||
self.setproperties(props, None, None)
|
||||
|
||||
def read_only(self):
|
||||
"convenience method to freeze, hide and disable"
|
||||
|
Reference in New Issue
Block a user