<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def diagonal_basis_commutes(pauli_a, pauli_b):
 """ Test if `pauli_a` and `pauli_b` share a diagonal basis Example: Check if [A, B] with the constraint that A & B must share a one-qubit diagonalizing basis. If the inputs were [sZ(0), sZ(0) * sZ(1)] then this function would return True. If the inputs were [sX(5), sZ(4)] this function would return True. If the inputs were [sX(0), sY(0) * sZ(2)] this function would return False. :param pauli_a: Pauli term to check commutation against `pauli_b` :param pauli_b: Pauli term to check commutation against `pauli_a` :return: Boolean of commutation result :rtype: Bool """

    overlapping_active_qubits = set(pauli_a.get_qubits()) & set(pauli_b.get_qubits())
    for qubit_index in overlapping_active_qubits:
        if (pauli_a[qubit_index] != 'I' and pauli_b[qubit_index] != 'I' and
           pauli_a[qubit_index] != pauli_b[qubit_index]):
            return False

    return True