def __getattr__(self, attr): if attr in self.__dict__: return self.__dict__[attr] data = self.__dict__['_data'] from rez.plugin_managers import plugin_manager if attr in plugin_manager.get_plugin_types(): # get plugin config data, and apply overrides plugin_type = attr config_data = plugin_manager.get_plugin_config_data(plugin_type) d = copy.deepcopy(config_data) deep_update(d, data.get(plugin_type, {})) # validate schema = plugin_manager.get_plugin_config_schema(plugin_type) try: d = schema.validate(d) except SchemaError as e: raise ConfigurationError( "Error in Rez configuration under plugins.%s: %s" % (plugin_type, str(e))) elif attr in data: d = data[attr] else: raise AttributeError("No such configuration setting: 'plugins.%s'" % attr) d_ = convert_dicts(d, RO_AttrDictWrapper) self.__dict__[attr] = d_ return d_
def __getattr__(self, attr): if attr in self.__dict__: return self.__dict__[attr] data = self.__dict__['_data'] from rez.plugin_managers import plugin_manager if attr in plugin_manager.get_plugin_types(): # get plugin config data, and apply overrides plugin_type = attr config_data = plugin_manager.get_plugin_config_data(plugin_type) d = copy.deepcopy(config_data) deep_update(d, data.get(plugin_type, {})) # validate schema = plugin_manager.get_plugin_config_schema(plugin_type) try: d = schema.validate(d) except SchemaError as e: raise ConfigurationError( "Error in Rez configuration under plugins.%s: %s" % (plugin_type, str(e))) elif attr in data: d = data[attr] else: raise AttributeError( "No such configuration setting: 'plugins.%s'" % attr) d_ = convert_dicts(d, RO_AttrDictWrapper) self.__dict__[attr] = d_ return d_