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"}')
