docs: def writes(notebook, fmt, version=nbformat.NO_CONVERT, **kwargs):
      """Write a notebook to a string"""
      metadata = deepcopy(notebook.metadata)
      rearrange_jupytext_metadata(metadata)
      fmt = copy(fmt)
      fmt = long_form_one_format(fmt, metadata)
      ext = fmt['extension']
      format_name = fmt.get('format_name')
  
      jupytext_metadata = metadata.get('jupytext', {})
  
      if ext == '.ipynb':
          # Remove jupytext section if empty
          jupytext_metadata.pop('text_representation', {})
          if not jupytext_metadata:
              metadata.pop('jupytext', {})
          return nbformat.writes(new_notebook(cells=notebook.cells, metadata=metadata), version, **kwargs)
  
      if not format_name:
          format_name = format_name_for_ext(metadata, ext, explicit_default=False)
  
      if format_name:
          fmt['format_name'] = format_name
          update_jupytext_formats_metadata(metadata, fmt)
  
      writer = TextNotebookConverter(fmt)
      return writer.writes(notebook, metadata)