nodes: 0, module; 1, function_definition; 2, function_name:naturalize_string; 3, parameters; 4, block; 5, identifier:key; 6, expression_statement; 7, return_statement; 8, comment:"""Analyzes string in a human way to enable natural sort
  
      :param nodename: The node name to analyze
      :returns: A structure that can be consumed by 'sorted'
      """; 9, list_comprehension; 10, conditional_expression:int(text) if text.isdigit() else text.lower(); 11, for_in_clause; 12, call; 13, call; 14, call; 15, identifier:text; 16, call; 17, identifier:int; 18, argument_list; 19, attribute; 20, argument_list; 21, attribute; 22, argument_list; 23, attribute; 24, argument_list; 25, identifier:text; 26, identifier:text; 27, identifier:isdigit; 28, identifier:text; 29, identifier:lower; 30, identifier:re; 31, identifier:split; 32, identifier:numregex; 33, identifier:key
code: def naturalize_string(key):
      """Analyzes string in a human way to enable natural sort
  
      :param nodename: The node name to analyze
      :returns: A structure that can be consumed by 'sorted'
      """
      return [int(text) if text.isdigit() else text.lower()
              for text in re.split(numregex, key)]