# HG changeset patch # User Sylvain Thénault # Date 1250608250 -7200 # Node ID 677fa98659a8f18cedf6cecb91a89bcc4360e641 # Parent b23bbb31368c032930f217b9755abc2987215baf fix cw properties initialization diff -r b23bbb31368c -r 677fa98659a8 cwvreg.py --- a/cwvreg.py Tue Aug 18 17:10:08 2009 +0200 +++ b/cwvreg.py Tue Aug 18 17:10:50 2009 +0200 @@ -228,8 +228,8 @@ config.init_log(debug=debug) super(CubicWebVRegistry, self).__init__(config) self.schema = None + self.initialized = False self.reset() - self.initialized = False def setdefault(self, regid): try: @@ -256,10 +256,11 @@ # two special registries, propertydefs which care all the property # definitions, and propertyvals which contains values for those # properties - self['propertydefs'] = {} - self['propertyvalues'] = self.eprop_values = {} - for key, propdef in self.config.eproperty_definitions(): - self.register_property(key, **propdef) + if not self.initialized: + self['propertydefs'] = {} + self['propertyvalues'] = self.eprop_values = {} + for key, propdef in self.config.eproperty_definitions(): + self.register_property(key, **propdef) if path is not None and force_reload: cleanup_sys_modules(path) cubes = self.config.cubes() diff -r b23bbb31368c -r 677fa98659a8 vregistry.py --- a/vregistry.py Tue Aug 18 17:10:08 2009 +0200 +++ b/vregistry.py Tue Aug 18 17:10:50 2009 +0200 @@ -207,7 +207,9 @@ self.config = config def reset(self, path=None, force_reload=None): - self.clear() + # don't use self.clear, we want to keep existing subdictionaries + for subdict in self.itervalues(): + subdict.clear() self._lastmodifs = {} def __getitem__(self, name):