def _update(self, other, only_propagate=True):
        """Populate from the listeners in another :class:`_Dispatch`
            object."""

        existing_listeners = self.listeners
        existing_listener_set = set(existing_listeners)
        self.propagate.update(other.propagate)
        other_listeners = [l for l
                           in other.listeners
                           if l not in existing_listener_set
                           and not only_propagate or l in self.propagate
                           ]

        existing_listeners.extend(other_listeners)

        to_associate = other.propagate.union(other_listeners)
        registry._stored_in_collection_multi(self, other, to_associate)
dataset/ETHPy150Open zzzeek/sqlalchemy/lib/sqlalchemy/event/attr.py/_ListenerCollection._update/original