def output_names(*names):
    """Decorator to define the names of the outputs for an operation.

    Defines N-number of output names. These names will be used (in-order)
    to define any outputs that the operation has.

    Parameters
    ----------
    names : List[str]
        Names for the outputs in the operation.

    Example
    --------
    Define an operation that has the outputs `x` and `y`.

    >>> @OperationPlugin
    >>> @output_names("x", "y")
    >>> def some_operation(a: int, b: int) -> Tuple[int, int]:
    >>>     return a, b

    """

    def decorator(func):
        func.output_names = names
        return func

    return decorator