<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _find_year_for_season(league):
 """ Return the necessary seaons's year based on the current date. Since all sports start and end at different times throughout the year, simply using the current year is not sufficient to describe a season. For example, the NCAA Men's Basketball season begins in November every year. However, for the November and December months, the following year is used to denote the season (ie. November 2017 marks the start of the '2018' season) on sports-reference.com. This rule does not apply to all sports. Baseball begins and ends in one single calendar year, so the year never needs to be incremented. Additionally, since information for future seasons is generally not finalized until a month before the season begins, the year will default to the most recent season until the month prior to the season start date. For example, the 2018 MLB season begins in April. In January 2018, however, not all of the season's information is present in the system, so the default year will be '2017'. Parameters league : string A string pertaining to the league start information as listed in SEASON_START_MONTH (ie. 'mlb', 'nba', 'nfl', etc.). League must be present in SEASON_START_MONTH. Returns ------- int The respective season's year. Raises ------ ValueError If the passed 'league' is not a key in SEASON_START_MONTH. """

    today = _todays_date()
    if league not in SEASON_START_MONTH:
        raise ValueError('"%s" league cannot be found!')
    start = SEASON_START_MONTH[league]['start']
    wrap = SEASON_START_MONTH[league]['wrap']
    if wrap and start - 1 <= today.month <= 12:
        return today.year + 1
    elif not wrap and start == 1 and today.month == 12:
        return today.year + 1
    elif not wrap and not start - 1 <= today.month <= 12:
        return today.year - 1
    else:
        return today.year