Skip to content

Latest commit

 

History

History
52 lines (46 loc) · 4.45 KB

22.3.md

File metadata and controls

52 lines (46 loc) · 4.45 KB

Version 22.3.0

Features

  • #2347 API for multi-application server
    • 🚨 BREAKING CHANGE: The old sanic.worker.GunicornWorker has been removed. To run Sanic with gunicorn, you should use it thru uvicorn as described in their docs.
    • 🧁 SIDE EFFECT: Named background tasks are now supported, even in Python 3.7
  • #2357 Parse Authorization header as Request.credentials
  • #2361 Add config option to skip Touchup step in application startup
  • #2372 Updates to CLI help messaging
  • #2382 Downgrade warnings to backwater debug messages
  • #2396 Allow for multidict v0.6
  • #2401 Upgrade CLI catching for alternative application run types
  • #2402 Conditionally inject CLI arguments into factory
  • #2413 Add new start and stop event listeners to reloader process
  • #2414 Remove loop as required listener arg
  • #2415 Better exception for bad URL parsing
  • sanic-routing#47 Add a new extention parameter type: <file:ext>, <file:ext=jpg>, <file:ext=jpg|png|gif|svg>, <file=int:ext>, <file=int:ext=jpg|png|gif|svg>, <file=float:ext=tar.gz>
    • 👶 BETA FEATURE: This feature will not work with path type matching, and is being released as a beta feature only.
  • sanic-routing#57 Change register_pattern to accept a str or Pattern
  • sanic-routing#58 Default matching on non-empty strings only, and new strorempty pattern type
    • 🚨 BREAKING CHANGE: Previously a route with a dynamic string parameter (/<foo> or /<foo:str>) would match on any string, including empty strings. It will now only match a non-empty string. To retain the old behavior, you should use the new parameter type: /<foo:strorempty>.

Bugfixes

  • #2373 Remove error_logger on websockets
  • #2381 Fix newly assigned None in task registry
  • sanic-routing#52 Add type casting to regex route matching
  • sanic-routing#60 Add requirements check on regex routes (this resolves, for example, multiple static directories with differing host values)

Deprecations and Removals

  • #2362 22.3 Deprecations and changes
    1. debug=True and --debug do NOT automatically run auto_reload
    2. Default error render is with plain text (browsers still get HTML by default because auto looks at headers)
    3. config is required for ErrorHandler.finalize
    4. ErrorHandler.lookup requires two positional args
    5. Unused websocket protocol args removed
  • #2344 Deprecate loading of lowercase environment variables

Developer infrastructure

Improved Documentation

  • #2350 Fix link in README for ASGI
  • #2398 Document middleware on_request and on_response
  • #2409 Add missing documentation for Request.respond

Miscellaneous

  • #2376 Fix typing for ListenerMixin.listener
  • #2383 Clear deprecation warning in asyncio.wait
  • #2387 Cleanup __slots__ implementations
  • #2390 Clear deprecation warning in asyncio.get_event_loop