def _write_edge_symbol(molecule, n_idx, n_jdx):
    """
    Determines whether a symbol should be written for the edge between `n_idx`
    and `n_jdx` in `molecule`. It should not be written if it's a bond of order
    1 or an aromatic bond between two aromatic atoms; unless it's a single bond
    between two aromatic atoms.

    Parameters
    ----------
    molecule : nx.Graph
        The molecule.
    n_idx : Hashable
        The first node key describing the edge.
    n_jdx : Hashable
        The second node key describing the edge.

    Returns
    -------
    bool
        Whether an explicit symbol is needed for this edge.
    """
    order = molecule.edges[n_idx, n_jdx].get('order', 1)
    aromatic_atoms = molecule.nodes[n_idx].get('element', '*').islower(
        ) and molecule.nodes[n_jdx].get('element', '*').islower()
    aromatic_bond = aromatic_atoms and order == 1.5
    cross_aromatic = aromatic_atoms and order == 1
    single_bond = order == 1
    return cross_aromatic or not (aromatic_bond or single_bond)
