pynput краш потока без ошибки и бессмертный терминал
Суть
День добрый. Столкнулся с проблемой в библиотеке pynput: в поток после вызова pynput.mouse.Controller().scroll(dx, dy) единожды выполняется прокрутка и сразу же все логи перестают приходить. Точки остановки в VS code полностью игнорирует. И сами не вылезают, и не удается поймать исключения. Сам скрипт остается бессмертным рухнувшим процессом. Ничем не получалось снять его (про то, что сам терминал можно уничтожить я узнал после второй перезагрузки и двадцатого терминала xd), хоть и показал только Process Hacker 2. В действительности я в ступоре, так как второй день не понимаю этого поведения.
Задача
Подробней о том, что я пытаюсь сделать: эмуляция прокрутки колесика мыши слайдером подобно Blender'овскому слайдеру при изменении радиуса кисти в скульптинге. То есть оттягиваешь курсор по оси от центра слайдера, а он тебе прокручивает. Непонимающих прошу ознакомиться с графическими планшетами.
Не уверен, но вдруг кто захочет посмотреть мои наработки. Ошибка возникает в 75 строчке slider.py (self.cnt.scroll(*offset) (cnt - это pynput.mouse.Controller)). Возможно вам будет удобней иметь свои логи, поэтому предоставляю его чистым от logging.
Мне больше интересно найти причину, по которой это случается, чем альтернативу. Спасибо за потраченое время.
Тут я показываю повтор проблемы, и слайдер размера кисти в Blender'е
Upd
Попробовал отладить события pynput. Для этого скопировал исходники библиотеки и добавил самописец логов о событиях прокрутки. В скриптах подменил библиотеку на модифицированную. В теории ошибка должна была остаться, но она исчезла. Еще больше мозг вынесло то, что программа работает с хоть каким то результатом только если pynput в файле listener.py был подключен из модифицированной библиотеки, а в slider.py из исходной библиотеки. Буквальный вынос мозга..