Developer Tools

Python Update Fixes Hidden Defaults That Could Break Your Apps

Python Update Fixes Hidden Defaults That Could Break Your Apps

⚑If you code in Python, this update could save you from frustrating bugs.

Deep Dive

A recent change means defaults for omitted Query, Header, Cookie, and Form parameters and model fields are no longer treated as user input. Defaults are not validated unless validate_default=True is enabled.

If validators need to run for omitted values, enable default validation with Field(validate_default=True) for model fields or Query(validate_default=True) for individual parameters; Body(validate_default=True) is now honored too. For parameter models, applying a default no longer marks a field as explicitly set, so model_dump(exclude_unset=True) excludes it.

Default factories run once, and validation errors no longer include injected defaults in input. Omitted boolean form fields still become False and count as explicitly set.

Key Points
  • Defaults in Python forms and models are no longer automatically validated unless you enable it.
  • If you rely on defaults being checked, you must update your code to avoid bugs.
  • This update makes data handling more predictable but requires developers to adapt.

Why It Matters

For developers, this means potential code changes to keep apps working correctly.

πŸ“¬ Get the top 10 AI stories daily