nodes: 0, module; 1, function_definition; 2, function_name:humansorted; 3, parameters; 4, block; 5, identifier:seq; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, expression_statement; 10, return_statement; 11, identifier:key; 12, None; 13, identifier:reverse; 14, False; 15, identifier:alg; 16, attribute; 17, comment:"""
      Convenience function to properly sort non-numeric characters.
  
      This is a wrapper around ``natsorted(seq, alg=ns.LOCALE)``.
  
      Parameters
      ----------
      seq : iterable
          The input to sort.
  
      key : callable, optional
          A key used to determine how to sort each element of the sequence.
          It is **not** applied recursively.
          It should accept a single argument and return a single value.
  
      reverse : {{True, False}}, optional
          Return the list in reversed sorted order. The default is
          `False`.
  
      alg : ns enum, optional
          This option is used to control which algorithm `natsort`
          uses when sorting. For details into these options, please see
          the :class:`ns` class documentation. The default is `ns.LOCALE`.
  
      Returns
      -------
      out : list
          The sorted input.
  
      See Also
      --------
      index_humansorted : Returns the sorted indexes from `humansorted`.
  
      Notes
      -----
      Please read :ref:`locale_issues` before using `humansorted`.
  
      Examples
      --------
      Use `humansorted` just like the builtin `sorted`::
  
          >>> a = ['Apple', 'Banana', 'apple', 'banana']
          >>> natsorted(a)
          [{u}'Apple', {u}'Banana', {u}'apple', {u}'banana']
          >>> humansorted(a)
          [{u}'apple', {u}'Apple', {u}'banana', {u}'Banana']
  
      """; 18, call; 19, identifier:ns; 20, identifier:DEFAULT; 21, identifier:natsorted; 22, argument_list; 23, identifier:seq; 24, identifier:key; 25, identifier:reverse; 26, binary_operator:alg | ns.LOCALE; 27, identifier:alg; 28, attribute; 29, identifier:ns; 30, identifier:LOCALE
code: def humansorted(seq, key=None, reverse=False, alg=ns.DEFAULT):
      """
      Convenience function to properly sort non-numeric characters.
  
      This is a wrapper around ``natsorted(seq, alg=ns.LOCALE)``.
  
      Parameters
      ----------
      seq : iterable
          The input to sort.
  
      key : callable, optional
          A key used to determine how to sort each element of the sequence.
          It is **not** applied recursively.
          It should accept a single argument and return a single value.
  
      reverse : {{True, False}}, optional
          Return the list in reversed sorted order. The default is
          `False`.
  
      alg : ns enum, optional
          This option is used to control which algorithm `natsort`
          uses when sorting. For details into these options, please see
          the :class:`ns` class documentation. The default is `ns.LOCALE`.
  
      Returns
      -------
      out : list
          The sorted input.
  
      See Also
      --------
      index_humansorted : Returns the sorted indexes from `humansorted`.
  
      Notes
      -----
      Please read :ref:`locale_issues` before using `humansorted`.
  
      Examples
      --------
      Use `humansorted` just like the builtin `sorted`::
  
          >>> a = ['Apple', 'Banana', 'apple', 'banana']
          >>> natsorted(a)
          [{u}'Apple', {u}'Banana', {u}'apple', {u}'banana']
          >>> humansorted(a)
          [{u}'apple', {u}'Apple', {u}'banana', {u}'Banana']
  
      """
      return natsorted(seq, key, reverse, alg | ns.LOCALE)