code: def do_dictsort(value, case_sensitive=False, by='key', reverse=False):
      
      if by == 'key':
          pos = 0
      elif by == 'value':
          pos = 1
      else:
          raise FilterArgumentError(
              'You can only sort by either "key" or "value"'
          )
  
      def sort_func(item):
          value = item[pos]
  
          if not case_sensitive:
              value = ignore_case(value)
  
          return value
  
      return sorted(value.items(), key=sort_func, reverse=reverse)
docs: Sort a dict and yield (key, value) pairs. Because python dicts are
      unsorted you may want to use this function to order them by either
      key or value:
  
      .. sourcecode:: jinja
  
          {% for item in mydict|dictsort %}
              sort the dict by key, case insensitive
  
          {% for item in mydict|dictsort(reverse=true) %}
              sort the dict by key, case insensitive, reverse order
  
          {% for item in mydict|dictsort(true) %}
              sort the dict by key, case sensitive
  
          {% for item in mydict|dictsort(false, 'value') %}
              sort the dict by value, case insensitive