@staticmethod<EOL><INDENT>def _case_insensitive_rpartition(input_string: str, separator: str) -> typing.Tuple[str, str, str]:<DEDENT>
lowered_input_string = input_string.lower()<EOL>lowered_separator = separator.lower()<EOL>try:<EOL><INDENT>split_index = lowered_input_string.rindex(lowered_separator)<EOL><DEDENT>except ValueError:<EOL><INDENT>return "<STR_LIT>", "<STR_LIT>", input_string<EOL><DEDENT>else:<EOL><INDENT>split_index_2 = split_index+len(separator)<EOL>return input_string[:split_index], input_string[split_index: split_index_2], input_string[split_index_2:]<EOL><DEDENT>
Same as str.rpartition(), except that the partitioning is done case insensitive.