docs: def write_sourcemap(
          mappings, sources, names, output_stream, sourcemap_stream,
          normalize_paths=True, source_mapping_url=NotImplemented):
      """
      Write out the mappings, sources and names (generally produced by
      the write function) to the provided sourcemap_stream, and write the
      sourceMappingURL to the output_stream.
  
      Arguments
  
      mappings, sources, names
          These should be values produced by write function from this
          module.
      output_stream
          The original stream object that was written to; its name will
          be used for the file target and if sourceMappingURL is resolved,
          it will be writtened to this stream also as a comment.
      sourcemap_stream
          If one is provided, the sourcemap will be written out to it.
  
          If it is the same stream as the output_stream, the source map
          will be written as an encoded 'data:application/json;base64'
          url to the sourceMappingURL comment.  Note that an appropriate
          encoding must be available as an attribute by the output_stream
          object so that the correct character set will be used for the
          base64 encoded JSON serialized string.
      normalize_paths
          If set to True, absolute paths found will be turned into
          relative paths with relation from the stream being written
          to, and the path separator used will become a '/' (forward
          slash).
      source_mapping_url
          If an explicit value is set, this will be written as the
          sourceMappingURL into the output_stream.  Note that the path
          normalization will NOT use this value, so if paths have been
          manually provided, ensure that normalize_paths is set to False
          if the behavior is unwanted.
      """
  
      encode_sourcemap_args, output_js_map = verify_write_sourcemap_args(
          mappings, sources, names, output_stream, sourcemap_stream,
          normalize_paths
      )
  
      encoded_sourcemap = json.dumps(
          encode_sourcemap(*encode_sourcemap_args),
          sort_keys=True, ensure_ascii=False,
      )
  
      if sourcemap_stream is output_stream:
          # encoding will be missing if using StringIO; fall back to
          # default_encoding
          encoding = getattr(output_stream, 'encoding', None) or default_encoding
          output_stream.writelines([
              '\n//# sourceMappingURL=data:application/json;base64;charset=',
              encoding, ',', base64.b64encode(
                  encoded_sourcemap.encode(encoding)).decode('ascii'),
          ])
      else:
          if source_mapping_url is not None:
              output_stream.writelines(['\n//# sourceMappingURL=', (
                  output_js_map if source_mapping_url is NotImplemented
                  else source_mapping_url
              ), '\n'])
  
          sourcemap_stream.write(encoded_sourcemap)