[docs]@gf.celldefbend_circular(radius:float|None=None,angle:float=90.0,npoints:int|None=None,cross_section:CrossSectionSpec="xs_sc",**kwargs,)->Component:"""Returns a radial arc. Args: radius: in um. Defaults to cross_section_radius. angle: angle of arc (degrees). npoints: number of points. layer: layer to use. Defaults to cross_section.layer. width: width to use. Defaults to cross_section.width. cross_section: spec (CrossSection, string or dict). kwargs: additional cross_section arguments. .. code:: o2 | / / / o1_____/ """x=gf.get_cross_section(cross_section,**kwargs)radius=radiusorx.radiusp=arc(radius=radius,angle=angle,npoints=npoints)c=Component()path=p.extrude(x)ref=c<<pathc.add_ports(ref.ports)c.absorb(ref)c.info["length"]=float(snap_to_grid(p.length()))c.info["dy"]=snap_to_grid(float(abs(p.points[0][0]-p.points[-1][0])))c.info["radius"]=float(radius)x.validate_radius(radius)c.add_route_info(cross_section=x,length=c.info["length"],n_bend_90=abs(angle/90.0))returnc