r""" Pauli-type Y-operator

    .. math::

        \hat{\sigma}_x = \begin{pmatrix}
            0 & -i \\
            i & 0
        \end{pmatrix}

    on an arbitrary two-level system.


    See :func:`PauliX`

def PauliY(local_space, states=None):
    r""" Pauli-type Y-operator

    .. math::

        \hat{\sigma}_x = \begin{pmatrix}
            0 & -i \\
            i & 0
        \end{pmatrix}

    on an arbitrary two-level system.


    See :func:`PauliX`
    """
    local_space, states = _get_pauli_args(local_space, states)
    g, e = states
    return I * (-LocalSigma.create(g, e, hs=local_space) +
                LocalSigma.create(e, g, hs=local_space))