code: def _check_ui_parameters(self):
          
          if isinstance(self.PARAMETER_UI_STUFF, dict):
              for param in self.PARAMETER_UI_STUFF.keys():
                  # check parameter value can be found
                  if not hasattr(self, param) and not hasattr(Task, param):
                      raise TaskValidationError('task "{}" defines parameter "{}" but a task attribute with that name '
                                                'could not be found'.format(self.NAME, param))
  
                  # parameter cannot be None if not explicitly allowed
                  if (getattr(self, param) is None
                      and (KEY_NONE_ALLOWED not in self.PARAMETER_UI_STUFF[param]
                           or not self.PARAMETER_UI_STUFF[param][KEY_NONE_ALLOWED])):
                      raise TaskValidationError('parameter "{}" is None and None is not explicitly allowed'
                                                ''.format(param))
docs: Checks that tasks parameters exist in the task and are of the right type. Runs before the task is run.
          :return: None
          :raises TaskValidationError: the task parameter is missing or invalid.