@cell
def cdsem_straight(widths: Tuple[(float, ...)]=(0.4, 0.45, 0.5, 0.6, 0.8, 1.0), length: float=LINE_LENGTH, cross_section: CrossSectionFactory=strip, text: Optional[ComponentFactory]=text_rectangular_mini, spacing: float=3) -> Component:
    'Returns straight waveguide lines width sweep.\n\n    Args:\n        widths: for the sweep\n        length: for the line\n        cross_section: for the lines\n        text: optional text for labels\n        spacing: edge to edge spacing\n    '
    lines = []
    for width in widths:
        cross_section = partial(cross_section, width=width)
        line = straight_function(length=length, cross_section=cross_section)
        if text:
            line = line.copy()
            t = (line << text(str(int((width * 1000.0)))))
            t.xmin = (line.xmax + 5)
            t.y = 0
        lines.append(line)
    return grid(lines, spacing=(0, spacing))
Returns straight waveguide lines width sweep.

Args:
    widths: for the sweep
    length: for the line
    cross_section: for the lines
    text: optional text for labels
    spacing: edge to edge spacing
@cell
def cdsem_straight(widths: Tuple[(float, ...)]=(0.4, 0.45, 0.5, 0.6, 0.8, 1.0), length: float=LINE_LENGTH, cross_section: CrossSectionFactory=strip, text: Optional[ComponentFactory]=text_rectangular_mini, spacing: float=3) -> Component:
    'Returns straight waveguide lines width sweep.\n\n    Args:\n        widths: for the sweep\n        length: for the line\n        cross_section: for the lines\n        text: optional text for labels\n        spacing: edge to edge spacing\n    '
    lines = []
    for width in widths:
        cross_section = partial(cross_section, width=width)
        line = straight_function(length=length, cross_section=cross_section)
        if text:
            line = line.copy()
            t = (line << text(str(int((width * 1000.0)))))
            t.xmin = (line.xmax + 5)
            t.y = 0
        lines.append(line)
    return grid(lines, spacing=(0, spacing))