def __getattr__(self, name): """Access to parameters is case insensitive.""" if "_par_index" == name: if self.__dict__.get('_par_index') is None: self.__dict__['_par_index'] = {} return self.__dict__['_par_index'] lowered_name = name.lower() def warn(oname, nname): wmsg = 'Parameter name {} is deprecated'.format(oname) + \ ' for model {}, '.format(type(self).__name__) + \ 'use {} instead'.format(nname) warnings.warn(wmsg, DeprecationWarning) parameter = self._par_index.get(lowered_name) if parameter is not None: if lowered_name in parameter.aliases: warn(lowered_name, parameter.name) return parameter NoNewAttributesAfterInit.__getattribute__(self, name)