def _draw_arc(self, inner_radius, outer_radius, startangle, endangle, color, border=None, colour=None, **kwargs):
    ' draw_arc(self, inner_radius, outer_radius, startangle, endangle, color)\n                -> Group\n\n            o inner_radius  Float distance of inside of arc from drawing center\n\n            o outer_radius  Float distance of outside of arc from drawing center\n\n            o startangle    Float angle subtended by start of arc at drawing center\n                            (in radians)\n\n            o endangle      Float angle subtended by end of arc at drawing center\n                            (in radians)\n\n            o color        colors.Color object for arc (overridden by backwards\n                           compatible argument with UK spelling, colour).\n\n            Returns a closed path object describing an arced box corresponding to\n            the passed values.  For very small angles, a simple four sided\n            polygon is used.\n        '
    if (colour is not None):
        color = colour
    if (border is None):
        border = color
    if (color is None):
        color = colour
    if ((color == colors.white) and (border is None)):
        strokecolor = colors.black
    elif (border is None):
        strokecolor = color
    elif (border is not None):
        strokecolor = border
    if (abs(float((endangle - startangle))) > 0.01):
        p = ArcPath(strokeColor=strokecolor, fillColor=color, strokewidth=0)
        p.addArc(self.xcenter, self.ycenter, inner_radius, (90 - ((endangle * 180) / pi)), (90 - ((startangle * 180) / pi)), moveTo=True)
        p.addArc(self.xcenter, self.ycenter, outer_radius, (90 - ((endangle * 180) / pi)), (90 - ((startangle * 180) / pi)), reverse=True)
        p.closePath()
        return p
    else:
        (startcos, startsin) = (cos(startangle), sin(startangle))
        (endcos, endsin) = (cos(endangle), sin(endangle))
        (x0, y0) = (self.xcenter, self.ycenter)
        (x1, y1) = ((x0 + (inner_radius * startsin)), (y0 + (inner_radius * startcos)))
        (x2, y2) = ((x0 + (inner_radius * endsin)), (y0 + (inner_radius * endcos)))
        (x3, y3) = ((x0 + (outer_radius * endsin)), (y0 + (outer_radius * endcos)))
        (x4, y4) = ((x0 + (outer_radius * startsin)), (y0 + (outer_radius * startcos)))
        return draw_polygon([(x1, y1), (x2, y2), (x3, y3), (x4, y4)], color, border)
draw_arc(self, inner_radius, outer_radius, startangle, endangle, color)
    -> Group

o inner_radius  Float distance of inside of arc from drawing center

o outer_radius  Float distance of outside of arc from drawing center

o startangle    Float angle subtended by start of arc at drawing center
                (in radians)

o endangle      Float angle subtended by end of arc at drawing center
                (in radians)

o color        colors.Color object for arc (overridden by backwards
               compatible argument with UK spelling, colour).

Returns a closed path object describing an arced box corresponding to
the passed values.  For very small angles, a simple four sided
polygon is used.
def _draw_arc(self, inner_radius, outer_radius, startangle, endangle, color, border=None, colour=None, **kwargs):
    ' draw_arc(self, inner_radius, outer_radius, startangle, endangle, color)\n                -> Group\n\n            o inner_radius  Float distance of inside of arc from drawing center\n\n            o outer_radius  Float distance of outside of arc from drawing center\n\n            o startangle    Float angle subtended by start of arc at drawing center\n                            (in radians)\n\n            o endangle      Float angle subtended by end of arc at drawing center\n                            (in radians)\n\n            o color        colors.Color object for arc (overridden by backwards\n                           compatible argument with UK spelling, colour).\n\n            Returns a closed path object describing an arced box corresponding to\n            the passed values.  For very small angles, a simple four sided\n            polygon is used.\n        '
    if (colour is not None):
        color = colour
    if (border is None):
        border = color
    if (color is None):
        color = colour
    if ((color == colors.white) and (border is None)):
        strokecolor = colors.black
    elif (border is None):
        strokecolor = color
    elif (border is not None):
        strokecolor = border
    if (abs(float((endangle - startangle))) > 0.01):
        p = ArcPath(strokeColor=strokecolor, fillColor=color, strokewidth=0)
        p.addArc(self.xcenter, self.ycenter, inner_radius, (90 - ((endangle * 180) / pi)), (90 - ((startangle * 180) / pi)), moveTo=True)
        p.addArc(self.xcenter, self.ycenter, outer_radius, (90 - ((endangle * 180) / pi)), (90 - ((startangle * 180) / pi)), reverse=True)
        p.closePath()
        return p
    else:
        (startcos, startsin) = (cos(startangle), sin(startangle))
        (endcos, endsin) = (cos(endangle), sin(endangle))
        (x0, y0) = (self.xcenter, self.ycenter)
        (x1, y1) = ((x0 + (inner_radius * startsin)), (y0 + (inner_radius * startcos)))
        (x2, y2) = ((x0 + (inner_radius * endsin)), (y0 + (inner_radius * endcos)))
        (x3, y3) = ((x0 + (outer_radius * endsin)), (y0 + (outer_radius * endcos)))
        (x4, y4) = ((x0 + (outer_radius * startsin)), (y0 + (outer_radius * startcos)))
        return draw_polygon([(x1, y1), (x2, y2), (x3, y3), (x4, y4)], color, border)