code: def url_unescape(  # noqa: F811
      value: Union[str, bytes], encoding: Optional[str] = "utf-8", plus: bool = True
  ) -> Union[str, bytes]:
      
      if encoding is None:
          if plus:
              # unquote_to_bytes doesn't have a _plus variant
              value = to_basestring(value).replace("+", " ")
          return urllib.parse.unquote_to_bytes(value)
      else:
          unquote = urllib.parse.unquote_plus if plus else urllib.parse.unquote
          return unquote(to_basestring(value), encoding=encoding)
docs: Decodes the given value from a URL.
  
      The argument may be either a byte or unicode string.
  
      If encoding is None, the result will be a byte string.  Otherwise,
      the result is a unicode string in the specified encoding.
  
      If ``plus`` is true (the default), plus signs will be interpreted
      as spaces (literal plus signs must be represented as "%2B").  This
      is appropriate for query strings and form-encoded values but not
      for the path component of a URL.  Note that this default is the
      reverse of Python's urllib module.
  
      .. versionadded:: 3.1
         The ``plus`` argument