docs: def full_task(self, token_id, presented_pronunciation, pronunciation, pronunciation_probability,
                    warn=True, default=True):
          """Provide the prediction of the full task.
  
          This function is used to predict the probability of a given pronunciation being reported for a given token.
  
          :param token_id: The token for which the prediction is provided
          :param pronunciation: The pronunciation for which the prediction is being made (as a list of strings
          or space separated string)
          :param pronunciation_probability: The probability of the pronunciation for the given token
          :param warn: Set to False in order to avoid warnings about 0 or 1 probabilities
          :param default: Set to False in order to avoid generating the default probabilities
          """
  
          if pronunciation_probability is not None and not 0. < pronunciation_probability < 1. and warn:
              logging.warning('Setting a probability of [{}] to pronunciation [{}] for token [{}].\n '
                              'Using probabilities of 0.0 or 1.0 '
                              'may lead to likelihoods of -Infinity'.format(pronunciation_probability,
                                                                            pronunciation,
                                                                            token_id))
  
          key = pronunciation
          if isinstance(key, list):
              if not all([isinstance(phoneme, basestring) for phoneme in key]):
                  raise ValueError('The pronunciation must be of type string (a sequence of space separated phonemes) '
                                   'or of type list (containing phonemes of type strings).'
                                   'User supplied: {}'.format(key))
  
              key = ' '.join(pronunciation)
  
          default_preds = self._full_default(presented_pronunciation) if default else {}
  
          self['tokens'].setdefault(token_id, {}) \
              .setdefault('full', default_preds)
  
          if key is not None:
              if pronunciation_probability is not None:
                  self['tokens'][token_id]['full'][key] = pronunciation_probability
  
              else:
                  if key in default_preds:
                      self['tokens'][token_id]['full'][key] = default_preds[key]
  
                  else:
                      self['tokens'][token_id]['full'].pop(key)