code: def sanitize_filename(
      filename, replacement_text="", platform=None, max_len=_DEFAULT_MAX_FILENAME_LEN
  ):
      
  
      return FileNameSanitizer(platform=platform, max_len=max_len).sanitize(
          filename, replacement_text
      )
docs: Make a valid filename from a string.
  
      To make a valid filename the function does:
  
          - Replace invalid characters as file names included in the ``filename``
            with the ``replacement_text``. Invalid characters are:
  
              - unprintable characters
              - |invalid_filename_chars|
              - for Windows only: |invalid_win_filename_chars|
  
          - Append underscore (``"_"``) at the tail of the name if sanitized name
            is one of the reserved names by the operating system.
  
      Args:
          filename (str or PathLike object): Filename to sanitize.
          replacement_text (str, optional):
              Replacement text for invalid characters. Defaults to ``""``.
          platform (str, optional):
              .. include:: platform.txt
          max_len (int, optional):
              The upper limit of the ``filename`` length. Truncate the name length if
              the ``filename`` length exceeds this value.
              Defaults to ``255``.
  
      Returns:
          Same type as the ``filename`` (str or PathLike object):
              Sanitized filename.
  
      Raises:
          ValueError:
              If the ``filename`` is an invalid filename.
  
      Example:
          :ref:`example-sanitize-filename`