Releases: Kludex/starlette
Releases · Kludex/starlette
Version 0.18.0
Added
- Change default chunk size from 4Kb to 64Kb on
FileResponse#1345. - Add support for
functools.partialinWebSocketRoute#1356. - Add
StaticFilespackages with directory #1350. - Allow environment options in
Jinja2Templates#1401. - Allow HEAD method on
HttpEndpoint#1346. - Accept additional headers on
websocket.acceptmessage #1361 and #1422. - Add
reasontoWebSocketclose ASGI event #1417. - Add headers attribute to
UploadFile#1382. - Don't omit
Content-Lengthheader forContent-Length: 0cases #1395. - Don't set headers for responses with 1xx, 204 and 304 status code #1397.
SessionMiddleware.max_agenow acceptsNone, so cookie can last as long as the browser session #1387.
Fixed
- Tweak
hashlib.md5()function onFileResponses ETag generation. The parameterusedforsecurityflag is set toFalse, if the flag is available on the system. This fixes an error raised on systems with FIPS enabled #1366 and #1410. - Fix
path_paramstype onurl_path_for()method i.e. turnstrintoAny#1341. Hostnow ignoresporton routing #1322.
Version 0.17.1
Fixed
- Fix
IndexErrorin authenticationrequireswhen wrapped function arguments are distributed between*argsand**kwargs#1335.
Version 0.17.0
Added
Response.delete_cookienow accepts the same parameters asResponse.set_cookie#1228.- Update the
Jinja2Templatesconstructor to allowPathLike#1292.
Fixed
- Fix BadSignature exception handling in SessionMiddleware #1264.
- Change
HTTPConnection.__getitem__return type fromstrtotyping.Any#1118. - Change
ImmutableMultiDict.getlistreturn type fromtyping.List[str]totyping.List[typing.Any]#1235. - Handle
OSErrorexceptions onStaticFiles#1220. - Fix
StaticFiles404.html in HTML mode #1314. - Prevent anyio.ExceptionGroup in error views under a BaseHTTPMiddleware #1262.
Removed
- Remove GraphQL support #1198.
Version 0.16.0
Added
Fixed
starlette.websockets.WebSocketinstances are now hashable and compare by identity
#1039- A number of fixes related to running task groups in lifespan
#1213,
#1227
Deprecated/removed
- The method
starlette.templates.Jinja2Templates.get_envwas removed
#1218 - The ClassVar
starlette.testclient.TestClient.async_backendwas removed,
the backend is now configured using constructor kwargs
#1211 - Passing an Async Generator Function or a Generator Function to
starlette.router.Router(lifespan_context=)is deprecated. You should wrap your lifespan in@contextlib.asynccontextmanager.
#1227
#1110
Version 0.15.0
0.15.0
This release includes major changes to the low-level asynchronous parts of Starlette. As a result, Starlette now depends on AnyIO and some minor API changes have occurred. Another significant change with this release is the deprecation of built-in GraphQL support.
Added
- Starlette now supports Trio as an async runtime via AnyIO - #1157.
TestClient.websocket_connect()now must be used as a context manager.- Initial support for Python 3.10 - #1201.
- The compression level used in
GZipMiddlewareis now adjustable - #1128.
Fixed
- Several fixes to
CORSMiddleware. See #1111, #1112, #1113, #1199. - Improved exception messages in the case of duplicated path parameter names - #1177.
RedirectResponsenow usesquoteinstead ofquote_plusencoding for theLocationheader to better match the behaviour in other frameworks such as Django - #1164.- Exception causes are now preserved in more cases - #1158.
- Session cookies now use the ASGI root path in the case of mounted applications - #1147.
- Fixed a cache invalidation bug when static files were deleted in certain circumstances - #1023.
- Improved memory usage of
BaseHTTPMiddlewarewhen handling large responses - #1012 fixed via #1157
Deprecated/removed
- Built-in GraphQL support via the
GraphQLAppclass has been deprecated and will be removed in a future release. Please see #619. GraphQL is not supported on Python 3.10. - The
executorparameter toGraphQLAppwas removed. Useexecutor_classinstead. - The
workersparameter toWSGIMiddlewarewas removed. This hasn't had any effect since Starlette v0.6.3.
Version 0.14.2
Version 0.14.1
Removed
UJSONResponsewas removed (this change was intended to be included in 0.14.0). Please see the documentation for how to implement responses using custom JSON serialization - #1074.
Version 0.14.0
Added
- Starlette now officially supports Python3.9.
- In
StreamingResponse, allow custom async iterator such as objects from classes implementing__aiter__. - Allow usage of
functools.partialasync handlers in Python versions 3.6 and 3.7. - Add 418 I'm A Teapot status code.
Changed
- Create tasks from handler coroutines before sending them to
asyncio.wait. - Use
format_exceptioninstead offormat_tbinServerErrorMiddleware'sdebugresponses. - Be more lenient with handler arguments when using the
requiresdecorator.
Version 0.13.8
-
Revert
Queue(maxsize=1)fix forBaseHTTPMiddlewaremiddleware classes and streaming responses. -
The
StaticFilesconstructor now allowspathlib.Pathin addition to strings for itsdirectoryargument.
Version 0.13.7
- Fix high memory usage when using BaseHTTPMiddleware middleware classes and streaming responses.