nodes: 0, module; 1, function_definition; 2, function_name:_naturalize; 3, parameters; 4, block; 5, identifier:string; 6, expression_statement; 7, expression_statement; 8, return_statement; 9, comment:"""Provides a natural representation for string for nice sorting."""; 10, assignment; 11, list_comprehension; 12, identifier:splits; 13, call; 14, conditional_expression:int(text) if text.isdigit() else text.lower(); 15, for_in_clause; 16, attribute; 17, argument_list; 18, call; 19, call; 20, call; 21, identifier:text; 22, identifier:splits; 23, identifier:re; 24, identifier:split; 25, string:"([0-9]+)"; 26, identifier:string; 27, identifier:int; 28, argument_list; 29, attribute; 30, argument_list; 31, attribute; 32, argument_list; 33, identifier:text; 34, identifier:text; 35, identifier:isdigit; 36, identifier:text; 37, identifier:lower
code: def _naturalize(string):
      """Provides a natural representation for string for nice sorting."""
      splits = re.split("([0-9]+)", string)
      return [int(text) if text.isdigit() else text.lower() for text in splits]