'Compute ``extra_rows`` for transitive dependencies of ``root_terms``'

def set_extra_rows(self, term, all_dates, start_date, end_date, min_extra_rows):

    extra_rows_for_term = term.compute_extra_rows(all_dates, start_date, end_date, min_extra_rows)
    if (extra_rows_for_term < min_extra_rows):
        raise ValueError(('term    %s    requested    fewer    rows    than    the    minimum    of    %d' % (term, min_extra_rows)))
    self._ensure_extra_rows(term, extra_rows_for_term)
    for (dependency, additional_extra_rows) in term.dependencies.items():
        self.set_extra_rows(dependency, all_dates, start_date, end_date, min_extra_rows=(extra_rows_for_term + additional_extra_rows))
