Releases: litestar-org/litestar
v2.21.1
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @ddahan, @roboflow, @cbscsm, @scalar, @benjamin-kirkbride
- OpenCollective: Christian Y, Shaun Wah, Jordan Russel
What's changed
https://docs.litestar.dev/2/release-notes/changelog.html#2.21.1
Full Changelog
v2.21.0...v2.21.1
v2.21.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @ddahan, @roboflow, @cbscsm, @scalar, @benjamin-kirkbride
- OpenCollective: Christian Y, Shaun Wah, Jordan Russel
Changelog
https://docs.litestar.dev/2/release-notes/changelog.html#2.21.0
Compare Changes
v2.20.0...v2.21.0
v2.20.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @ddahan, @roboflow, @cbscsm, @scalar, @benjamin-kirkbride
- OpenCollective: Christian Y, Shaun Wah, Jordan Russel
New contributors 🎉
- @casabre made their first contribution in #4241
- @disrupted made their first contribution in #4552
- @ApostolFet made their first contribution in #4446
- @GavinAstk made their first contribution in #4456
- @Umpire2018 made their first contribution in #4416
- @Jannchie made their first contribution in #4131
- @hwhsu1231 made their first contribution in #4547
- @enrico-stauss made their first contribution in #4459
Changelog
https://docs.litestar.dev/2/release-notes/changelog.html#2.20.0
Compare Changes
v2.19.0...v2.20.0
v2.19.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
- OpenCollective: Christian Y, Shaun Wah, Jordan Russel
Bugfixes 🐛
- fix: add sniffio as depndency by @JCHacking in #4522
- fix(pydantic): add support for 'AwareDatetime' serialization by @MetaHG in #4503
- fix: Improve
Accept.best_matchtyping by @sobolevn in #4487 - fix:
KeyErrorswallowing indefault_serializerby @sobolevn in #4420 - fix(typing):
_dec_pydantic_uuidreturn type annotation by @sobolevn in #4419 - fix: do not check for
Pathindefault_deserializerby @sobolevn in #4421 - fix: Use
inspect.iscoroutinefunctioninstead ofasyncio.iscoroutinefunctionto address deprecation warning in Python 3.14+ by @edgarrmondragon in #4405 - fix(websockets): Correctly pass
guardsto underlying handler by @7576457 in #4414 - fix: Fix
TypedDictrequired field on 3.8 by @provinzkraut in #4525
New features 🚀
- feat(typing): support
typing.ReadOnlyforTypedDictschemas by @sobolevn in #4424 - feat: make route reverse take handlers by @marcuslimdw in #4506
- feat: Support Python 3.14 by @provinzkraut in #4524
New contributors 🎉
- @vladpi made their first contribution in #4515
- @Adithya1331 made their first contribution in #4500
- @7576457 made their first contribution in #4414
- @JCHacking made their first contribution in #4522
- @winstxnhdw made their first contribution in #4427
- @thecyberbutler made their first contribution in #4474
- @MetaHG made their first contribution in #4503
Other changes
- refactor: type annotate
contentproperly by @winstxnhdw in #4427
Full Changelog
v2.18.0...v2.19.0
v2.18.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
- OpenCollective: Christian Y, Shaun Wah, Jordan Russel
What's changed
Bugfixes 🐛
- fix: CLI - Fix command registration by @cofin in #4298
- fix: remove deprecation warning from polyfactory by @adhtruong in #4292
- fix(routing): Ensure a
MethodNotAllowedExceptionexception during routing properly setsAllowheader by @provinzkraut in #4289 - fix: Preserve empty strings in
multipart/form-datarequests (#4204) by @doubledare704 in #4271 - fix(OpenAPI): constraint check logic by @floxay in #4282
- fix:
KeyErrorwhen using 'data' kwarg in dependency functions by @doubledare704 in #4270 - fix(OpenAPI): reenable using Parameter() to set an Enum's schema fields by @250MHz in #4251
- fix(cli): set
--appand--app-diras eager parameters by @IDrokin117 in #4341 - fix(channels/plugin): fix typo with pub_task cancelling in
_on_shutdownmethod ChannelsPlugin by @Peopl3s in #4374 - fix(channels/backend/memory): add KeyError-safe delete channel from history by @Peopl3s in #4389
- fix(cli): pass the
--app-diroption to the uvicorn subprocess when the reload option is enabled. by @IDrokin117 in #4352 - fix: change Optional to NotRequired in OpenAPI pydantic plugin by @raidzin in #4347
- fix(OpenAPI): Fix
Streamresponse being treated asFileresponse in OpenAPI schema by @provinzkraut in #4371
New features 🚀
- feat: deprecate litestar.plugins.sqlalchemy module for v3 removal by @cofin in #4343
- feat(pydantic): add
round_tripparameter toPydanticPluginby @sobolevn in #4350
Other changes
- docs: add reference for advanced alchemy sessions by @Harshal6927 in #4275
- docs: Fix
Provideimport in FastAPI migration guide by @edgarrmondragon in #4281 - docs: fix literal include lines in 03-repository-controller by @HairlessVillager in #4269
- docs: fix lifespan migration from fastapi by @cclinet in #4268
- docs: Fix incorrect link to sponsors on README.md by @snqb in #4325
- docs: fix(README/PYPI_README): remove duplicate of mgspec and attrs link by @Peopl3s in #4380
- docs: fix(getting-started): replace structlog to polyfactory for Polyfactory section by @Peopl3s in #4385
- docs: fix(docs/realse-notes): fix broken links to realse notes by @Peopl3s in #4368
New contributors 🎉
- @Shekhrozx made their first contribution in #4290
- @raidzin made their first contribution in #4347
- @doubledare704 made their first contribution in #4270
- @snqb made their first contribution in #4325
- @cclinet made their first contribution in #4268
- @HairlessVillager made their first contribution in #4269
Full Changelog
v2.17.0...v2.18.0
v2.17.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
- OpenCollective: Christian Y
What's changed
New contributors 🎉
- @guoci made their first contribution in #4165
- @nectarindev made their first contribution in #4246
- @tjhoff made their first contribution in #4239
Bugfixes 🐛
- fix(OpenAPI): Fix empty response body when using DTO and
Response[T]annotation by @mmev in #4158 - fix(OpenAPI): Ensure deterministic order of schema types by @tjhoff in #4239
- fix: Ensure
yielddependency cleanup always happens in reverse order by @nectarindev in #4246
New features 🚀
- feat(OpenAPI): Add option to exclude parameter from schema by @mmev in #4177
- feat(OpenAPI): Extend support for Pydantic's custom date(time) types by @Kumzy in #4218
- feat: Make
ReceiveRoutePluginpublic by @mohammedbabelly20 in #4220
Other changes
- docs: Correct typo in static-files.rst by @guoci in #4165
- docs: add
uvexamples to the docs by @sobolevn in #4189 - docs: always use
'for dependencies with groups by @sobolevn in #4190 - docs: fix
redisinventory by @sobolevn in #4208 - docs: Fix non-existing function in "Accessing the OpenAPI schema in code" section by @ctrl-Felix in #4209
- docs: fix incorrect parameter name in docstring by @iyad-f in #4245
Full Changelog
v2.16.0...v2.17.0
v2.16.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
- OpenCollective: Christian Y
What's changed
Bugfixes 🐛
- fix: update Makefile to include install in output by @adhtruong in #4079
- fix(typing): Remove usage of private
_AnnotatedAliasby @provinzkraut in #4126 - fix(DI): Ensure dependencies are cleaned up when exception occurrs during cleanup by @provinzkraut in #4148
- fix: misleading error message upon ImportError with --app argument to CLI by @cstarkers in #4152
- fix(testing): subprocess client raises exc when fails to start by @mmev in #4153
- fix(openapi): support prefixItems for tuple schema by @Jannchie in #4132
- fix(cli): pre parse launch arguments when cli command executed by @mmev in #4161
New features 🚀
- feat(log): disable stack trace by @Harshal6927 in #4086
- feat(openapi): add custom example ids support by @Jannchie in #4133
- feat: add self to validate_handler_fn error message by @thewisenerd in #4157
- feat(DTO): Populate
linecachefor generated transfer functions by @provinzkraut in #4159 - feat(DTO): Add custom attribute accessor callable by @provinzkraut in #4160
- feat: add scalar configuration by @skv0zsneg in #4162
Other changes
- refactor: use typos by @adhtruong in #4080
- docs: add example for cache_response_filter by @euri10 in #4096
- docs: add usage of server_lifespan hook and motivations by @euri10 in #4097
- docs: add mention in guard docs from where connection.user comes from by @euri10 in #4101
- docs: rework custom authentication middleware by @euri10 in #4095
- docs: Replace contrib with plugins in example code by @eandersons in #4094
- docs: 📚 Fix return value for UploadFile by @Sube-py in #4120
- docs: clarify WebSocket
send_websocket_streamcapabilities by @provinzkraut in #4124 - docs: add test to stream_and_receive_listener and mention on json default by @euri10 in #4108
- docs(CLI): Make CLI docs about app discovery more coherent by @provinzkraut in #4139
- docs: show exceptions raised aren't always JSON by @euri10 in #4128
- docs: test most requests.rst literalinclude by @euri10 in #4099
- docs: Some readme updates by @provinzkraut in #4138
- docs: fixed variable name in ASGIMiddleware code example by @mmev in #4151
New contributors 🎉
- @mmev made their first contribution in #4151
- @Jannchie made their first contribution in #4132
- @thewisenerd made their first contribution in #4157
- @skv0zsneg made their first contribution in #4162
- @cstarkers made their first contribution in #4152
- @Sube-py made their first contribution in #4120
Full Changelog
v2.15.2...v2.16.0
v2.15.2
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
- Polar.sh: @Nozavi, @cemrehancavdar, @thomastu
- GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
- OpenCollective: Christian Y
What's changed
New contributors 🎉
- @farmio made their first contribution in #4067
- @nisemenov made their first contribution in #4049
- @saska made their first contribution in #4015
Bugfixes 🐛
- fix: check for default headers before appending to cors header failures by @saska in #4015
- fix(events): ensure callable metadata is replicated by @Harshal6927 in #4045
- fix: explicit specification of arguments in FileSystemAdapter open func. by @nisemenov in #4049
- fix(typing): Correctly handle
typing_extensions.TypeAliasTypeontyping-extensions>4.13.0(fix #4088) by @provinzkraut in #4089
Full Changelog
v2.15.1...v2.15.2
v2.15.1
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
-
GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
-
OpenCollective: Christian Y
-
A huge 'Thank you!' to all sponsors across Polar.sh, OpenCollective and GitHub Sponsors!
New contributors 🎉
- @eandersons made their first contribution in #4032
Bugfixes 🐛
- fix: Warn about using streaming responses with a
bodyby @provinzkraut in #4033 - fix: Fix #4035 - incorrect deprecation warning issued when subclassing middlewares by @provinzkraut in #4036
Other changes
- docs: Use "click to toggle" instead of "click to expand" by @eandersons in #4032
Full Changelog
v2.15.0...v2.15.1
v2.15.0
Sponsors 🌟
Thanks to these incredible business sponsors:
- Scalar (@scalar), Telemetry Sports (via @chris-telemetry)
Thanks to these incredible personal sponsors:
-
GitHub Sponsors: @roboflow, @benjamin-kirkbride, @ddahan, @cbscsm
-
OpenCollective: Christian Y
-
A huge 'Thank you!' to all sponsors across Polar.sh, OpenCollective and GitHub Sponsors!
What's changed
New contributors 🎉
- @iyad-f made their first contribution in #3935
- @pech2 made their first contribution in #3994
- @Ada-lave made their first contribution in #3988
- @YorkSu made their first contribution in #3970
- @sloria made their first contribution in #3953
- @tofran made their first contribution in #4017
- @oek1ng made their first contribution in #3960
Bugfixes 🐛
- fix(ASGI mounts): Prevent accidental scope overrides by mounted ASGI apps by @provinzkraut in #3945
- fix: corrected import of attrs by @euri10 in #3947
New features 🚀
- feat(jwt): Added revoked token handler support by @oek1ng in #3960
- feat: allow
route_reverseparams of typeuuidto be passed asstrby @aedify-swi in #3972 - feat(CLI): Make better error message for invalid
--appstring by @RenameMe1 in #3977 - feat(DTOs): Support
@propertyfields for msgspec and dataclass by @provinzkraut in #3981 - feat(core): new base middleware by @provinzkraut in #3996
- feat: Add
SerializationPluginandInitPluginto replace their respective protocols by @provinzkraut in #4025 - feat(debugger): passing debugger to app by @oek1ng in #3967
Full Changelog
v2.14.0...v2.15.0