code: def slice(self, serie, start_angle, total):
          
          serie_node = self.svg.serie(serie)
          dual = self._len > 1 and not self._order == 1
  
          slices = self.svg.node(serie_node['plot'], class_="slices")
          serie_angle = 0
          original_start_angle = start_angle
          if self.half_pie:
              center = ((self.width - self.margin_box.x) / 2.,
                        (self.height - self.margin_box.y) / 1.25)
          else:
              center = ((self.width - self.margin_box.x) / 2.,
                        (self.height - self.margin_box.y) / 2.)
  
          radius = min(center)
          for i, val in enumerate(serie.values):
              perc = val / total
              if self.half_pie:
                  angle = 2 * pi * perc / 2
              else:
                  angle = 2 * pi * perc
              serie_angle += angle
              val = self._format(serie, i)
              metadata = serie.metadata.get(i)
              slice_ = decorate(
                  self.svg, self.svg.node(slices, class_="slice"), metadata
              )
              if dual:
                  small_radius = radius * .9
                  big_radius = radius
              else:
                  big_radius = radius * .9
                  small_radius = radius * serie.inner_radius
  
              alter(
                  self.svg.slice(
                      serie_node, slice_, big_radius, small_radius, angle,
                      start_angle, center, val, i, metadata
                  ), metadata
              )
              start_angle += angle
  
          if dual:
              val = self._serie_format(serie, sum(serie.values))
              self.svg.slice(
                  serie_node, self.svg.node(slices,
                                            class_="big_slice"), radius * .9, 0,
                  serie_angle, original_start_angle, center, val, i, metadata
              )
          return serie_angle
docs: Make a serie slice