docs: def parse_number_factory(alg, sep, pre_sep):
      """
      Create a function that will format a number into a tuple.
  
      Parameters
      ----------
      alg : ns enum
          Indicate how to format the *bytes*.
      sep : str
          The string character to be inserted before the number
          in the returned tuple.
      pre_sep : str
          In the event that *alg* contains ``UNGROUPLETTERS``, this
          string will be placed in a single-element tuple at the front
          of the returned nested tuple.
  
      Returns
      -------
      func : callable
          A function that accepts numeric input (e.g. *int* or *float*)
          and returns a tuple containing the number with the leading string
          *sep*. Intended to be used as the *num_func* argument to
          *natsort_key*.
  
      See Also
      --------
      natsort_key
  
      """
      nan_replace = float("+inf") if alg & ns.NANLAST else float("-inf")
  
      def func(val, _nan_replace=nan_replace, _sep=sep):
          """Given a number, place it in a tuple with a leading null string."""
          return _sep, _nan_replace if val != val else val
  
      # Return the function, possibly wrapping in tuple if PATH is selected.
      if alg & ns.PATH and alg & ns.UNGROUPLETTERS and alg & ns.LOCALEALPHA:
          return lambda x: (((pre_sep,), func(x)),)
      elif alg & ns.UNGROUPLETTERS and alg & ns.LOCALEALPHA:
          return lambda x: ((pre_sep,), func(x))
      elif alg & ns.PATH:
          return lambda x: (func(x),)
      else:
          return func