'Cleans all of self.data and populates self._errors and
self._non_form_errors.'

def full_clean(self):

    self._errors = []
    self._non_form_errors = self.error_class()
    if (not self.is_bound):
        return
    for i in range(0, self.total_form_count()):
        form = self.forms[i]
        self._errors.append(form.errors)
    try:
        if ((self.validate_max and ((self.total_form_count() - len(self.deleted_forms)) > self.max_num)) or (self.management_form.cleaned_data[TOTAL_FORM_COUNT] > self.absolute_max)):
            raise ValidationError((ungettext(u'Please    submit    %d    or    fewer    forms.', u'Please    submit    %d    or    fewer    forms.', self.max_num) % self.max_num), code=u'too_many_forms')
        self.clean()
    except ValidationError as e:
        self._non_form_errors = self.error_class(e.messages)
