Vue d'ensemble

msgspec 0.17, publié le 11 juillet 2023, introduit les modes strict/lax et le support de Decimal.

Fonctionnalités principales

Modes strict/lax et Decimal

Le mode strict refuse les conversions implicites (ex : string vers int), tandis que le mode lax les accepte. Le type Decimal est supporté nativement pour les calculs financiers.

python
import msgspec
from decimal import Decimal

class Price(msgspec.Struct):
    amount: Decimal
    currency: str

# Mode strict (défaut)
dec = msgspec.json.Decoder(Price)
price = dec.decode(b'{"amount": "19.99", "currency": "EUR"}')
print(price.amount)  # Decimal('19.99')

# Mode lax : accepte les conversions
dec_lax = msgspec.json.Decoder(Price, strict=False)
price2 = dec_lax.decode(b'{"amount": 19.99, "currency": "EUR"}')

Sources