def _combine_season_stats(self, table_rows, career_stats, all_stats_dict):
most_recent_season = self._most_recent_season<EOL>if not table_rows:<EOL><INDENT>table_rows = []<EOL><DEDENT>for row in table_rows:<EOL><INDENT>season = self._parse_season(row)<EOL>try:<EOL><INDENT>all_stats_dict[season]['<STR_LIT:data>'] += str(row)<EOL><DEDENT>except KeyError:<EOL><INDENT>all_stats_dict[season] = {'<STR_LIT:data>': str(row)}<EOL><DEDENT>most_recent_season = season<EOL><DEDENT>self._most_recent_season = most_recent_season<EOL>if not career_stats:<EOL><INDENT>return all_stats_dict<EOL><DEDENT>try:<EOL><INDENT>all_stats_dict['<STR_LIT>']['<STR_LIT:data>'] += str(next(career_stats))<EOL><DEDENT>except KeyError:<EOL><INDENT>all_stats_dict['<STR_LIT>'] = {'<STR_LIT:data>': str(next(career_stats))}<EOL><DEDENT>return all_stats_dict<EOL>
Combine all stats for each season.

Since all of the stats are spread across multiple tables, they should
be combined into a single field which can be used to easily query stats
at once.

Parameters
----------
table_rows : generator
    A generator where each element is a row in a stats table.
career_stats : generator
    A generator where each element is a row in the footer of a stats
    table. Career stats are kept in the footer, hence the usage.
all_stats_dict : dictionary
    A dictionary of all stats separated by season where each key is the
    season ``string``, such as '2017-18', and the value is a
    ``dictionary`` with a ``string`` of 'data' and ``string``
    containing all of the data.

Returns
-------
dictionary
    Returns an updated version of the passed all_stats_dict which
    includes more metrics from the provided table.