'Returns True if a new template is created as opposed to reusing the existing template.
When there are multiple available formats, the formatter uses the
first format where a formatting template could be created.'

def _maybe_create_new_template(self):

    ii = 0
    while (ii < len(self._possible_formats)):
        number_format = self._possible_formats[ii]
        pattern = number_format.pattern
        if (self._current_formatting_pattern == pattern):
            return False
        if self._create_formatting_template(number_format):
            self._current_formatting_pattern = pattern
            if (number_format.national_prefix_formatting_rule is None):
                self._should_add_space_after_national_prefix = False
            else:
                self._should_add_space_after_national_prefix = bool(_NATIONAL_PREFIX_SEPARATORS_PATTERN.search(number_format.national_prefix_formatting_rule))
            self._last_match_position = 0
            return True
        else:
            del self._possible_formats[ii]
            ii -= 1
        ii += 1
    self._able_to_format = False
    return False
