docs: def fast_int(
      x,
      key=lambda x: x,
      _uni=unicodedata.digit,
      _first_char=POTENTIAL_FIRST_CHAR,
  ):
      """
      Convert a string to a int quickly, return input as-is if not possible.
  
      We don't need to accept all input that the real fast_int accepts because
      natsort is controlling what is passed to this function.
  
      Parameters
      ----------
      x : str
          String to attempt to convert to an int.
      key : callable
          Single-argument function to apply to *x* if conversion fails.
  
      Returns
      -------
      *str* or *int*
  
      """
      if x[0] in _first_char:
          try:
              return long(x)
          except ValueError:
              try:
                  return _uni(x, key(x)) if len(x) == 1 else key(x)
              except TypeError:  # pragma: no cover
                  return key(x)
      else:
          try:
              return _uni(x, key(x)) if len(x) == 1 else key(x)
          except TypeError:  # pragma: no cover
              return key(x)