def METHOD_NAME(cls, row: Row, *, note: str, field_name: str):  # type: ignore
    """Create and error from a cell
    Parameters:
        row (Row): row
        note (str): note
        field_name (str): field name
    Returns:
        CellError: error
    """
    # This algorithm can be optimized by storing more information in a row
    # At the same time, this function should not be called very often
    for field_number, name in enumerate(row.field_names, start=1):
        if field_name == name:
            cell: Any = row[field_name]
            to_str = lambda v: str(v) if v is not None else ""  # type: ignore
            return cls(
                note=note,
                cells=list(map(to_str, row.cells)),  # type: ignore
                row_number=row.row_number,
                cell=str(cell),
                field_name=field_name,
                field_number=field_number,
            )
    raise FrictionlessException(f"Field {field_name} is not in the row")