KeyError: 'darkblue' при использовании trepan3k

Я установил Trepan3k с pip3 install trepan3k и я хочу отладить файл с trepan3k main.py, но я получаю эту ошибку:

Traceback (most recent call last):
  File "/usr/local/bin/trepan3k", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/trepan/cli.py", line 212, in main
    normal_termination = dbg.run_script(mainpyfile)
  File "/usr/local/lib/python3.7/site-packages/trepan/debugger.py", line 217, in run_script
    exec(compiled, globals_, locals_)
...
  File "/usr/local/lib/python3.7/site-packages/pygments/formatters/terminal.py", line 101, in format
    return Formatter.format(self, tokensource, outfile)
  File "/usr/local/lib/python3.7/site-packages/pygments/formatter.py", line 95, in format
    return self.format_unencoded(tokensource, outfile)
  File "/usr/local/lib/python3.7/site-packages/pygments/formatters/terminal.py", line 126, in format_unencoded
    outfile.write(ansiformat(color, line.rstrip('\n')))
  File "/usr/local/lib/python3.7/site-packages/pygments/console.py", line 68, in ansiformat
    result.append(codes[attr])
KeyError: 'darkblue'
Uncaught exception. Entering post-mortem debugger...
trepan3k: That's all, folks...

Это происходит на MacOS Mojave, а также на Ubuntu 18.04. Что происходит и что я могу сделать для отладки с трепаном?

1 ответ

Решение

Обновите trepan3k до версии 0.8.9, которую я только что выпустил, и я думаю, что у вас все будет хорошо.

Длинная история. Извините, я не видел этого раньше. Как большой пользователь trepan3k, я заметил это некоторое время назад и работал над этим, используя ранее установленные версии trepan3k. Так как я не знал, что кто-то еще заметил это, я не думал расследовать, не говоря уже о том, чтобы это исправить.

Потом в какой-то момент у меня появилось немного свободного времени, и я занялся расследованиями. Более длинный ответ заключается в том, что после 2.2.0, похоже, произошло обновление в Pygments, которое несовместимо, а имена цветов отличаются.

Хотелось бы мне более подробно понять, что происходит в Pygments. Я подозреваю, что это связано с использованием сокращенного набора названий цветов и обработкой темного и светлого фона таким образом, чтобы не мешать работе при переключении между темным и светлым.

Если есть кто-то, кто знает и прояснит, я был бы благодарен. И бонусные баллы, если вы точно знаете, как изменить Pygments на версию после 2.2.0.

Соответствующий код, который использует трепан для работы с Pygments, - https://github.com/rocky/python3-trepan/blob/master/trepan/lib/format.py

Мне пришлось написать пользовательский форматер для RsT для консоли. Я предложил это сообществу Pygments, но они решили, что это не должно быть в Pygments, но было прекрасно, чтобы оно было в trepan3k таким, какое оно есть.

Это один небольшой пример дополнительной работы, которую вы найдете в этом отладчике, которой нет в других, чтобы обеспечить лучшее взаимодействие с пользователем. Депарсинг, чтобы показать точное местоположение, является еще одним примером. Но это, конечно, означает, что существует большая вероятность поломки, когда пакеты выполняют несовместимое обновление.

Итак, последние два выноса.

  1. Если есть ошибка в trepan3k, сообщите об этом в трекере: https://github.com/rocky/python3-trepan/issues/new. Я, скорее всего, увижу это там, а не как вопрос о переполнении стека.
  2. Если вы еще этого не сделали, активируйте проект. Я использую рейтинги github, чтобы помочь мне узнать, над чем работать, когда у меня есть свободное время. (И в последнее время у меня все меньше и меньше).
Другие вопросы по тегам