alexmojaki / alexmojaki/executing

Finer-grained errors, ala PEP 657?

Aperta
#90 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
401
Fork
38
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

[PEP 657](https://peps.python.org/pep-0657/) added "fine-grained errors" which are similar to executing's AST-level `text_range`. But the default python traceback printing goes further, employing _two_ types of error markers, `^` and `~`. The latter is a "secondary" marker used for further detailed refinement for exceptions involving binary and indexing operators. Example:

File fge.py
```python
x={}; x['a']={}; x['a']['b'] = None
x['a']['b']['c']['d'] = 1
```

Produces:

```python
% python3.12 fge.py
Traceback (most recent call last):
File "/Users/jdsmith/code/python/scraps/fge.py", line 2, in
x['a']['b']['c']['d'] = 1
~~~~~~~~~~~^^^^^
TypeError: 'NoneType' object is not subscriptable
```

while executing (here in iPython), shows:

image

One way to support this secondary refinement in a backwards-compatible way would be with an additional method `text_range_secondary` that computes the sub-region within `text_range` (if any) that could be highlighted distinctly.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.