<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _draw_ellipse(data, obj, draw_options):
 """Return the PGFPlots code for ellipses. """

    if isinstance(obj, mpl.patches.Circle):
        # circle specialization
        return _draw_circle(data, obj, draw_options)
    x, y = obj.center
    ff = data["float format"]

    if obj.angle != 0:
        fmt = "rotate around={{" + ff + ":(axis cs:" + ff + "," + ff + ")}}"
        draw_options.append(fmt.format(obj.angle, x, y))

    cont = (
        "\\draw[{}] (axis cs:"
        + ff
        + ","
        + ff
        + ") ellipse ("
        + ff
        + " and "
        + ff
        + ");\n"
    ).format(",".join(draw_options), x, y, 0.5 * obj.width, 0.5 * obj.height)
    return data, cont