Существует несколько пакетов, которые анализируют зависимости кода:
https://docs.python.org/2/library/modulefinder.html
Modulefinder выглядит так, как вы хотите, и сообщает, какие модули не могут быть загружены. Похоже, он работает транзитивно из примера, но я не уверен.
https://pypi.org/project/findimports/
Это также анализирует транзитный импорт, я не уверен, однако, какой результат, если модуль отсутствует.
... И еще несколько вы можете найти в своей любимой поисковой системе
Как предполагает Марк Кин, .distinctUntilChanged
добивается цели.
Таким образом, следующий код будет выдвигать список событий, если после буферизации есть 1+ элементов: