Vue d'ensemble

attrs 23.1, publié le 16 avril 2023, abandonne Python 3.6 et ajoute le filtrage par chaîne dans asdict/astuple.

Fonctionnalités principales

Filtrage par chaîne

Les fonctions asdict() et astuple() acceptent désormais des filtres par nom d'attribut en chaîne, simplifiant la sérialisation sélective.

python
import attrs

@attrs.define
class User:
    name: str
    email: str
    password: str

user = User('Alice', 'alice@example.com', 'secret')

# Filtrage : exclure le mot de passe
public = attrs.asdict(
    user,
    filter=attrs.filters.exclude(attrs.fields(User).password),
)
print(public)  # {'name': 'Alice', 'email': 'alice@example.com'}

Sources