As I work on including more exceptions in Friendly-traceback, I am mostly pleasantly surprised by generally more precise error messages. For example, in Python 3.7, the following
__debug__ = 1
would yield "SyntaxError: assignment to keyword" which likely would baffle almost everyone looking up the list of Python keywords. In Python 3.8, that message has been replaced by the more precise: "SyntaxError: cannot assign to __debug__". Much better, in my opinion, even though one may be surprised to learn about this constant.
However, today as I was working on adding another case, I came accross the following:
This change is ... unexpected. And the "helpful hint", is not so helpful in this case. However, I can guess as to how it came about. It will be a challenge to provide a "friendly" explanation that does not lead the users looking for an incorrect solution to their problem.
Edit: Based on my own (limited) experience working on Friendly-traceback, I do realize that trying to provide helpful hints to assist programmers in fixing code that raises exceptions is a very difficult problem. My task, with Friendly-traceback, is generally made much easier thanks to accurate and usually helpful error messages provided by Python. So, please do not read this post and conclude that I am dismissive of the efforts of the Python core developers in this area.