If source.mne_info is mutated (e.g. by setting 'bads') then the further nodes down the line will not notice that because their saved "copy" is just a label of the same object. So, right now the only way for the change-noticing scheme to work is to make any changes to mne_info by creating a copy.
Possible solution:
Save a copy and not just a label in self._saved_from_upstream and check the contents (probably not all the keys though).
When comparing current content to the previously saved one in _the_change_requires_reinitialization() we can call a separate function for mutable objects. This function would have to be implemented in the node that uses this mutable object from upstream.
Copying the whole thing might be an overkill though, so we might want to implement a separate saving routing for mutable objects as well.
If source.mne_info is mutated (e.g. by setting 'bads') then the further nodes down the line will not notice that because their saved "copy" is just a label of the same object. So, right now the only way for the change-noticing scheme to work is to make any changes to mne_info by creating a copy.
Possible solution: