docs: def flow(self, container, last_descender, state=None, **kwargs):
          """Flow this flowable into `container` and return the vertical space
          consumed.
  
          The flowable's contents is preceded by a vertical space with a height
          as specified in its style's `space_above` attribute. Similarly, the
          flowed content is followed by a vertical space with a height given
          by the `space_below` style attribute."""
          top_to_baseline = 0
          state = state or self.initial_state(container)
          if state.initial:
              space_above = self.get_style('space_above', container)
              if not container.advance2(float(space_above)):
                  raise EndOfContainer(state)
              top_to_baseline += float(space_above)
          margin_left = self.get_style('margin_left', container)
          margin_right = self.get_style('margin_right', container)
          reference_id = self.get_id(container.document, create=False)
          right = container.width - margin_right
          container.register_styled(self, continued=not state.initial)
          margin_container = InlineDownExpandingContainer('MARGIN', container,
                                                          left=margin_left,
                                                          right=right)
          initial_before = state.initial
          state, width, inner_top_to_baseline, descender = \
              self.flow_inner(margin_container, last_descender,
                              state=state, **kwargs)
          self._align(margin_container, width)
          initial_after = state is not None and state.initial
          top_to_baseline += inner_top_to_baseline
  
          if self.annotation:
              height = float(margin_container.height)
              margin_container.canvas.annotate(self.annotation,
                                               0, 0, width, height)
          self.mark_page_nonempty(container)
          if initial_before and not initial_after:
              if reference_id:
                  self.create_destination(margin_container, True)
  
          if state is not None:
              raise EndOfContainer(state)
  
          space_below = self.get_style('space_below', container)
          container.advance2(float(space_below), ignore_overflow=True)
          container.document.progress(self, container)
          return margin_left + width + margin_right, top_to_baseline, descender