carpentries-incubator / carpentries-incubator/python-intermediate-development

section on type annotation

Aperta
#467 1 commento 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
TeX
Stelle
63
Fork
77
Merge medio
20h 8m
PR unite (30g)
3

Descrizione

Hi, I'd like to contribute a section on type annotation in Python. The most logical place would be as a section 2.5 (shifting the optional exercises to 2.6). The section would take about one hour to teach, and teachers would have to choose to teach this over some other section. Overview:

1. Introduction to type annotation as a means of hardening code, early error detection, documentation and improving auto-completion.
2. Show type checker ecosystem: `mypy` (Guido), `pyright` (microsoft), `pyrefly` (meta), `ty` (astral).
3. Typing containers, type parameters.
4. Sum-types using the `|` operator, and product-types using dataclasses.
5. Abstract types: `Iterable`, `Callable`, `collections.abc`
6. Optional: generic types, protocols

Let me know what you think!

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Non sono indicati file di destinazione o test; individua prima il codice sorgente della lezione per la sezione 2.5 e verifica come sono organizzate le sezioni e gli esercizi facoltativi. Il lavoro è completo quando viene aggiunta una sezione sulle annotazioni di tipo che copra gli argomenti elencati, gli esercizi facoltativi vengono spostati nella sezione 2.6 e viene risolto il compromesso didattico.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
content, documentation
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.