Parse the element and orbital argument strings.

    The presence of an element without any orbitals means that we want to plot
    all of its orbitals.

    Args:
        string (str): The element and orbitals as a string, in the form
            ``"C.s.p,O"``.

    Returns:
        dict: The elements and orbitals as a :obj:`dict`. For example::

            {'Bi': ['s', 'px', 'py', 'd']}.

        If an element symbol is included with an empty list, then all orbitals
        for that species are considered.

def _el_orb(string):
    """Parse the element and orbital argument strings.

    The presence of an element without any orbitals means that we want to plot
    all of its orbitals.

    Args:
        string (str): The element and orbitals as a string, in the form
            ``"C.s.p,O"``.

    Returns:
        dict: The elements and orbitals as a :obj:`dict`. For example::

            {'Bi': ['s', 'px', 'py', 'd']}.

        If an element symbol is included with an empty list, then all orbitals
        for that species are considered.
    """
    el_orbs = {}
    for split in string.split(','):
        orbs = split.split('.')
        orbs = [orbs[0], 's', 'p', 'd', 'f'] if len(orbs) == 1 else orbs
        el_orbs[orbs.pop(0)] = orbs
    return el_orbs