Snippets

Du code concis, avec une explication claire.

python

typing.Final: documenter des constantes non surchargées

Marquer des attributs/variables comme constants pour les type-checkers.

#typing#const
python

typing.assert_never: exhaustivité des match/case

Forcer l'exhaustivité des branches au typage statique (3.11+).

#typing#match
python

typing.get_origin/get_args: introspection des generics

Récupérer l'origine et les paramètres des types génériques.

#typing#origin#args
python

typing: Literal et Annotated pour clarifier les API

Restreindre les valeurs et attacher des métadonnées de type.

#typing
python

typing.NewType: types distincts à l'analyse statique

Différencier des identifiants (UserId, ProductId) sans coût runtime.

#typing#safety
python

typing.overload: définir des signatures surchargées

Fournir plusieurs signatures type-safe pour une même fonction.

#typing#overload#types
python

typing: ParamSpec pour typer les décorateurs

Préserver la signature des fonctions décorées avec ParamSpec.

#decorator#typing
python

typing: Protocol pour duck typing statique

Définir un contrat d'interface et l'utiliser sans héritage explicite.

#typing#protocol#duck-typing
python

typing: NamedTuple et TypedDict

Structurer des données légères avec types statiques facultatifs.

#typing#namedtuple#typeddict
python

typing.TypeAlias: déclarer un alias de type stable

Documenter explicitement un alias de type public.

#typing#alias
python

typing.TypeVar: bornes et contraintes

Restreindre un type générique à une hiérarchie ou un ensemble donné.

#typing#generics
python

umask: définir temporairement un umask pour créations

Contrôler les permissions par défaut lors de la création de fichiers/dirs.

#umask#permissions#security