Andre, did you have an experience where something related to Ellipsis/... confused you? It is not clear to me what exactly prompted you to single out Ellipsis (or it’s repr()?)
Guido, the reason why I tried is that I am working on a project called friendly (previously named friendly-traceback) which aims to provide "easy to understand" explanations to beginners when they encounter tracebacks.[1]
In playing with different cases involving assignments to a constant (__debug__, None, True, False, ... and Ellipsis as '...'), I came across this particular case which I thought was confusing: Python says that we cannot assign to Ellipsis ... and yet we can. I thought that the explanation provided by cPython itself could be made a bit clearer.
The specific suggestion I made is based on the explanation *friendly* currently gives, where it specifies that Ellipsis refers to (...).
Admittedly, this is rather a corner case.
André
====
With friendly, I usually strive to cover more typical cases that are encountered by beginners, such as one example I gave at this year's PyConUS Education summit where, given the following message:
AttributeError: partially initialized module 'turtle' has no attribute 'forward' (most likely due to a circular import)
friendly adds the following "hint":
Did you give your program the same name as a Python module?
And, upon being prompted, friendly adds the following:
I suspect that you used the name turtle.py for your program and that you also wanted to import a
module with the same name from Python's standard library. If so, you should use a different name for your program.
(This particular turtle is not hard-coded in friendly; any circular import is similarly analyzed and some further explanation is provided.)
[1]
Currently, I have at least 150 different cases yielding SyntaxErrors for which friendly can provide help (see
https://aroberge.github.io/friendly-traceback-docs/docs/html/syntax_tracebacks_en_3.8.html for cases covered by unit tests) and probably a hundred or so of various types of other errors. Furthermore, friendly is designed so that the explanations can be translated into other languages; currently, every case friendly covers has explanations available in both English and French.
--
--Guido (mobile)