Overview

attrs 23.1, released on April 16, 2023, drops Python 3.6 and adds string filtering in asdict/astuple.

Main Features

String filtering

The asdict() and astuple() functions now accept string-based attribute name filters, simplifying selective serialization.

python
import attrs

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

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

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

Sources