code: def process_document_events(events, use_buffers=True):
      ''' Create a JSON string describing a patch to be applied as well as
      any optional buffers.
  
      Args:
        events : list of events to be translated into patches
  
      Returns:
        str, list :
          JSON string which can be applied to make the given updates to obj
          as well as any optional buffers
  
      '''
  
      json_events = []
      references = set()
  
      buffers = [] if use_buffers else None
  
      for event in events:
          json_events.append(event.generate(references, buffers))
  
      json = {
          'events'     : json_events,
          'references' : references_json(references),
      }
  
      return serialize_json(json), buffers if use_buffers else [f process_document_events(events, use_buffers=True):
      ''' Create a JSON string describing a patch to be applied as well as
      any optional buffers.
  
      Args:
        events : list of events to be translated into patches
  
      Returns:
        str, list :
          JSON string which can be applied to make the given updates to obj
          as well as any optional buffers
  
      '''
  
      json_events = []
      references = set()
  
      buffers = [] if use_buffers else None
  
      for event in events:
          json_events.append(event.generate(references, buffers))
  
      json = {
          'events'     : json_events,
          'references' : references_json(references),
      }
  
      return serialize_json(json), buffers if use_buffers else []
docs: Create a JSON string describing a patch to be applied as well as
      any optional buffers.
  
      Args:
        events : list of events to be translated into patches
  
      Returns:
        str, list :
          JSON string which can be applied to make the given updates to obj
          as well as any optional buffers