Add stubs for stdlib `_colorize` module
Nessuno ha ancora preso questa issue.
- Lingua principale
- Python
- Stelle
- 5.1k
- Fork
- 2.1k
- Merge medio
- 1g 19h
- PR unite (30g)
- 82
Descrizione
Description
_colorize was introduced in 3.13, and has been steadily growing since then.
From (https://github.com/python/cpython/issues/133346), I got the impression that the naming is due to unfortunate timing:
Rename
_colorizetocolorizeThere's frankly very little time for this before Python 3.14 beta 1. I would rather keep the library name underscored for 3.14 and gather feedback from the community on the format and behavior, and introduce a stable API in Python 3.15, keeping
_colorizefor backward compatibility.
Interestingly, _colorize is already fully-typed (https://github.com/python/cpython/blob/main/Lib/_colorize.py).
I'm here because the absence in _typeshed means this example [^1] can produce errors in some type checkers:
[^1]: Adapted from a comment in _colorize
from typing import reveal_type
try:
from _colorize import ANSIColors, Syntax, default_theme, set_theme
except ImportError:
pass
else:
reveal_type(set_theme)
theme_with_dim_operators = default_theme.copy_with(syntax=Syntax(op=ANSIColors.INTENSE_BLACK))
set_theme(theme_with_dim_operators)
del set_theme, default_theme, Syntax, ANSIColors, theme_with_dim_operators
This checks out fine with pyright, but both pyrefly and ty seem to not know about _colorize yet.
Perhaps adding to typeshed would help?
Related
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia leggendo Lib/_colorize.py di CPython e confronta le sue definizioni tipizzate con gli stub della libreria standard in typeshed. Verifica l’esempio reveal_type fornito con pyright, pyrefly e ty; il lavoro è completato quando i nomi e le signature di _colorize vengono riconosciuti in modo coerente e senza errori.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Funzionalità
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 72/100