code: def draw(self):
          
  
          # Lines should have a square cap to avoid ugly edges
          self.context.set_line_cap(cairo.LINE_CAP_SQUARE)
  
          self.context.save()
          self.context.rectangle(*self.rect)
          self.context.clip()
  
          cell_borders = CellBorders(self.cell_attributes, self.key, self.rect)
          borders = list(cell_borders.gen_all())
          borders.sort(key=attrgetter('width', 'color'))
          for border in borders:
              border.draw(self.context)
  
          self.context.restore()
docs: Draws cell border to context