<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_uninformative_prior(self, prior_class):
 """ Sets the prior for the parameter to a uniform prior between the current minimum and maximum, or a log-uniform prior between the current minimum and maximum. NOTE: if the current minimum and maximum are not defined, the default bounds for the prior class will be used. :param prior_class : the class to be used as prior (either Log_uniform_prior or Uniform_prior, or a class which provide a lower_bound and an upper_bound properties) :return: (none) """


        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: # pragma: no cover

            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)