original_docstring: 
      used to sort sequence based on passed key function
      If key is none natural ordering for elements will be used
      
docstring: used to sort sequence based on passed key function
  If key is none natural ordering for elements will be used
docstring_tokens: used to sort sequence based on passed key function If key is none natural ordering for elements will be used
code: def decorated_merge_sort(data, key=None):
      '''
      used to sort sequence based on passed key function
      If key is none natural ordering for elements will be used
      '''
      if key is not None:
          for i in range(len(data)):
              data[i] = (key(data[i]), data[i])
      mergesort(data) # this will not work with current code in merge sort
      if key is not None:
          for i in range(len(data)):
              data[i] = data[i][1]
code_tokens: def decorated_merge_sort ( data , key = None ) : if key is not None : for i in range ( len ( data ) ) : data [ i ] = ( key ( data [ i ] ) , data [ i ] ) mergesort ( data ) if key is not None : for i in range ( len ( data ) ) : data [ i ] = data [ i ] [ 1 ]
short_docstring: used to sort sequence based on passed key function
  If key is none natural ordering for elements will be used
short_docstring_tokens: used to sort sequence based on passed key function If key is none natural ordering for elements will be used
comment: '''
      used to sort sequence based on passed key function
      If key is none natural ordering for elements will be used
      '''$SEP$# this will not work with current code in merge sort