code: def add_hline(self, start=None, end=None, *, color=None,
                    cmidruleoption=None):
          r
          if self.booktabs:
              hline = 'midrule'
              cline = 'cmidrule'
              if cmidruleoption is not None:
                  cline += '(' + cmidruleoption + ')'
          else:
              hline = 'hline'
              cline = 'cline'
  
          if color is not None:
              if not self.color:
                  self.packages.append(Package('xcolor', options='table'))
                  self.color = True
              color_command = Command(command="arrayrulecolor", arguments=color)
              self.append(color_command)
  
          if start is None and end is None:
              self.append(Command(hline))
          else:
              if start is None:
                  start = 1
              elif end is None:
                  end = self.width
  
              self.append(Command(cline,
                                  dumps_list([start, NoEscape('-'), end])))
docs: r"""Add a horizontal line to the table.
  
          Args
          ----
          start: int
              At what cell the line should begin
          end: int
              At what cell the line should end
          color: str
              The hline color.
          cmidruleoption: str
              The option to be used for the booktabs cmidrule, i.e. the ``x`` in
              ``\cmidrule(x){1-3}``.