def set_uninformative_prior(self, prior_class):
        prior_instance = prior_class()
        if self.min_value is None:
            raise ParameterMustHaveBounds("Parameter %s does not have a defined minimum. Set one first, then re-run "
                                          "set_uninformative_prior" % self.path)
        else:
            try:
                prior_instance.lower_bound = self.min_value
            except SettingOutOfBounds:
                raise SettingOutOfBounds("Cannot use minimum of %s for prior %s" % (self.min_value,
                                                                                    prior_instance.name))
        if self.max_value is None:
            raise ParameterMustHaveBounds("Parameter %s does not have a defined maximum. Set one first, then re-run "
                                          "set_uninformative_prior" % self.path)
        else:
            try:
                prior_instance.upper_bound = self.max_value
            except SettingOutOfBounds:
                raise SettingOutOfBounds("Cannot use maximum of %s for prior %s" % (self.max_value,
                                                                                    prior_instance.name))
        assert np.isfinite(prior_instance.upper_bound.value),"The parameter %s must have a finite maximum" % self.name
        assert np.isfinite(prior_instance.lower_bound.value),"The parameter %s must have a finite minimum" % self.name
        self._set_prior(prior_instance)