What's Changed
Bugfixes
- Fix
HTTPException
handling during concurrent dependency resolving by @smithk86 in #2596 - Fix OpenAPI examples format by @guacs in #2660
- Fix CLI plugin commands not showing up in command list by @peterschutt in #2441
- Fix missing
write-only
mark indto_field()
signature by @floxay in #2684 - Fix OpenAPI schemas incorrectly flagged as duplicates by @chris-telemetry in #2475
- Fix Pydantic URL type support in OpenAPI and serialization by @provinzkraut in #2701
- Fix incorrect
ValidationException
message when multiple errors were encountered by @peterschutt in #2716 - Fix DTO renaming renames all fields of the same name in nested DTOs by @provinzkraut in #2764
- Fix handling of DTO objects nested in mappings by @peterschutt in #2775
- Fix inconsistent sequence union parameter errors by @peterschutt in #2776
- Fix
Unexpected ASGI message 'websocket.close', after sending 'websocket.close'
in channels WebSocket handlers by @peterschutt in #2691
Features
- Add
server_lifespan
hook by @cofin in #2658 - Add
template_str
for rendering from strings by @JacobCoffee in #2689 - Deprecate
litestar.contrib.piccolo
by @cofin in #2704 - Improve ASGI extension interface by @provinzkraut in #2756
- Support nested DTO field renaming by @provinzkraut in #2764
Other Changes
- Expose
advanced-alchemy
atlitestar.plugins.sqlalchemy
by @cofin in #2654 - Move
contrib.jwt
tosecurity.jwt
by @cofin in #2646 - Correctly raise
WebSocketDisconnect
inWebSocket.receive()
by @peterschutt in #2690
New Contributors
- @leejayhsu made their first contribution in #2639
- @mbeijen made their first contribution in #2633
- @baoliay2008 made their first contribution in #2670
- @jdglaser made their first contribution in #2676
- @hunterjsb made their first contribution in #2710
- @cesarmg1980 made their first contribution in #2749
- @marcuslimdw made their first contribution in #2757
Full Changelog: v2.3.2...v2.4.0