code: def _parse_ellipse(self, ellipse):
      cx = float(ellipse.attrib.get("cx", 0))
      cy = float(ellipse.attrib.get("cy", 0))
      rx = float(ellipse.attrib.get("rx"))
      ry = float(ellipse.attrib.get("ry"))
  
      # arc doesn't seem to like being a complete shape, draw two halves
      self._start_path()
      self.M(cx - rx, cy)
      self.A(rx, ry, cx + rx, cy, large_arc=1)
      self.A(rx, ry, cx - rx, cy, large_arc=1)
  
imports: import re
label_desc: Use image node_id 25 for calling the PathBuilder obj's underlying member method code with example usage: obj._parse_ellipse(ellipse) without return types