MEDIUM SEVERITYCONFIRMED
decimal_encoder(Decimal("sNaN")) raises ValueError
Package
fastapi
Version
0.135.1
Verified
2026-03-28
Description
fastapi's `decimal_encoder` handles `NaN` (lowercase exponent `'n'`) but not signaling `sNaN` (uppercase exponent `'N'`). Calling `float(Decimal("sNaN"))` raises `ValueError: cannot convert signaling NaN to float`.
Reproduction
from decimal import Decimal
from fastapi.encoders import decimal_encoder
decimal_encoder(Decimal("sNaN"))
# ValueError: cannot convert signaling NaN to float