<｜begin▁of▁sentence｜>### Instruction:
Given a graph with a single vertex, how can you use the CircleDrawer class from igraph to draw a circle at a specified location with a given width on a Cairo context, and then save the drawing to a PNG file?
### Response:
from igraph import Graph, plot
from igraph.drawing.shapes import CircleDrawer
import cairo

# Create a graph with a single vertex
g = Graph()
g.add_vertex()

# Define the drawing function using a CircleDrawer
def draw_circle(ctx, center_x, center_y, width, height=None):
    CircleDrawer.draw_path(ctx, center_x, center_y, width, height)
    ctx.set_source_rgb(0, 0, 0) # Black color
    ctx.stroke() # Stroke the path

# Get a Cairo context to draw on
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 400, 400)
ctx = cairo.Context(surface)

# Draw a circle at center (200, 200) with width 100
draw_circle(ctx, 200, 200, 100)

# Save the drawing to a file
surface.write_to_png('circle.png')
<|EOT|>
