def to_parse_result(self, name, guess): """Guess the episode information from a given release name. Uses guessit and returns a dictionary with keys and values according to ParseResult :param name: :type name: str :param guess: :type guess: dict :return: :rtype: ParseResult """ if not self.allow_multi_season: season_numbers = helpers.ensure_list(guess.get('season')) if len(season_numbers) > 1: raise InvalidNameException( "Discarding result. Multi-season detected for '{name}': {guess}" .format(name=name, guess=guess)) versions = helpers.ensure_list(guess.get('version')) if len(versions) > 1: raise InvalidNameException( "Discarding result. Multi-version detected for '{name}': {guess}" .format(name=name, guess=guess)) return ParseResult(guess, original_name=name, series_name=guess.get('alias') or guess.get('title'), season_number=helpers.single_or_list(season_numbers, self.allow_multi_season), episode_numbers=helpers.ensure_list(guess.get('episode')), ab_episode_numbers=helpers.ensure_list(guess.get('absolute_episode')), air_date=guess.get('date'), release_group=guess.get('release_group'), proper_tags=helpers.ensure_list(guess.get('proper_tag')), version=guess.get('version', -1))
def to_parse_result(self, name, guess): """Guess the episode information from a given release name. Uses guessit and returns a dictionary with keys and values according to ParseResult :param name: :type name: str :param guess: :type guess: dict :return: :rtype: ParseResult """ if not self.allow_multi_season: season_numbers = helpers.ensure_list(guess.get('season')) if len(season_numbers) > 1: raise InvalidNameException( "Discarding result. Multi-season detected for '{name}': {guess}" .format(name=name, guess=guess)) versions = helpers.ensure_list(guess.get('version')) if len(versions) > 1: raise InvalidNameException( "Discarding result. Multi-version detected for '{name}': {guess}" .format(name=name, guess=guess)) return ParseResult(guess, original_name=name, series_name=guess.get('alias') or guess.get('title'), season_number=helpers.single_or_list(season_numbers, self.allow_multi_season), episode_numbers=helpers.ensure_list(guess.get('episode')) if guess.get('episode') != guess.get('absolute_episode') else [], ab_episode_numbers=helpers.ensure_list(guess.get('absolute_episode')), air_date=guess.get('date'), release_group=guess.get('release_group'), proper_tags=helpers.ensure_list(guess.get('proper_tag')), version=guess.get('version', -1))
def test_single_or_list(p): # Given value = p['value'] # When actual = sut.single_or_list(value) # Then assert p['expected'] == actual