code: def is_readable(value, **kwargs):
      
      try:
          validators.readable(value, **kwargs)
      except SyntaxError as error:
          raise error
      except Exception:
          return False
  
      return True
docs: Indicate whether ``value`` is a readable file.
  
      .. caution::
  
        **Use of this validator is an anti-pattern and should be used with caution.**
  
        Validating the readability of a file *before* attempting to read it
        exposes your code to a bug called
        `TOCTOU <https://en.wikipedia.org/wiki/Time_of_check_to_time_of_use>`_.
  
        This particular class of bug can expose your code to **security vulnerabilities**
        and so this validator should only be used if you are an advanced user.
  
        A better pattern to use when reading from a file is to apply the principle of
        EAFP ("easier to ask forgiveness than permission"), and simply attempt to
        write to the file using a ``try ... except`` block:
  
        .. code-block:: python
  
          try:
              with open('path/to/filename.txt', mode = 'r') as file_object:
                  # read from file here
          except (OSError, IOError) as error:
              # Handle an error if unable to write.
  
      :param value: The value to evaluate.
      :type value: Path-like object
  
      :returns: ``True`` if ``value`` is valid, ``False`` if it is not.
      :rtype: :class:`bool <python:bool>`
  
      :raises SyntaxError: if ``kwargs`` contains duplicate keyword parameters or duplicates
        keyword parameters passed to the underlying validator