The NetBSD Project

CVS log for pkgsrc/www/py-sanic/Makefile

[BACK] Up to [cvs.NetBSD.org] / pkgsrc / www / py-sanic

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.39: download - view: text, markup, annotated - select for diffs
Mon Nov 11 07:29:27 2024 UTC (4 weeks ago) by wiz
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +1 -2 lines
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays

Revision 1.38: download - view: text, markup, annotated - select for diffs
Mon Oct 14 06:46:08 2024 UTC (8 weeks ago) by wiz
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +1 -3 lines
*: clean-up after python38 removal

Revision 1.37: download - view: text, markup, annotated - select for diffs
Tue Jul 23 05:33:50 2024 UTC (4 months, 2 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2024Q3-base, pkgsrc-2024Q3
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +3 -5 lines
py-sanic: updated to 24.6.0

24.6.0

Fix Docker publish
Fix Websockets Deprecation Warning
Run ruff with some changes
fix markdown on html5tagger page
Remove erroneous del line
Fix typo in sanic-ext configuration readme.md file
2882 Apply dynamic port fixture for tests of http, ext integration, create task, multiprocessing, pipelineing.
2882 Apply dynamic port fixture for tests of cli, config and server โ€ฆ
Healthcheck docs added extra information to enable the endpoint
Logging improvements
Unix sockets to use pathlib
Handle streaming from ASGI
Update manager.py
Resolve Python 3.12 deprecation notice
Fixed wrong formatting in request.md
Make the .message field on exceptions non-empty
Ensure proper intent for noisy exceptions
Merge Entity Header
Allow for custom name generation
Add missing test
Add logging of extras and a JSONFormatter
Simplify (request.cookies.)getlist function
Better fix for scheduling logic for transport close() and abort()
Catch request middleware exceptions
Fix missing setuptools. Fix ast deprecation warnings.
Fix deleting a cookie that was created with secure=False
Error on bad body length
Bad encoding
Begin Release PR 24.6

Revision 1.36: download - view: text, markup, annotated - select for diffs
Thu Jan 11 13:13:27 2024 UTC (10 months, 4 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2024Q2-base, pkgsrc-2024Q2, pkgsrc-2024Q1-base, pkgsrc-2024Q1
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +2 -2 lines
py-sanic: updated to 23.12.1

Version 23.12.1
Fix broken multiplexer manage
Do not strip entity-headers with HTTP status 304 or 412

Revision 1.35: download - view: text, markup, annotated - select for diffs
Fri Jan 5 18:23:02 2024 UTC (11 months ago) by adam
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +7 -9 lines
py-sanic: updated to 23.12.0

Version 23.12.0

Features

* Start and restart arbitrary processes
* Cleaner process management in shutdown
* Suppress task cancel traceback on open websocket
* Listener and signal prioritization
* Reduce memory consumption
* Accept bare cookies
* Add websocket.handler.<before/after/exception> signals
* Add changed files to reload trigger listeners
* Allow for simple signals
* Improve functionality and consistency of Sanic.event()
* Allow range requests for a single byte
* Better Request.scheme for websocket requests
* Convert Sanic Request to a Websockets Request for handshake
* Add a REPL to the sanic CLI
* Add Python 3.12 support
* Better exception on multiprocessing context conflicts

Bugfixes

* Fix MOTD display for extra data

Revision 1.34: download - view: text, markup, annotated - select for diffs
Tue Nov 7 22:38:09 2023 UTC (13 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2023Q4-base, pkgsrc-2023Q4
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +2 -2 lines
*: latest py-sphinx only support Python 3.9+

Revision 1.33: download - view: text, markup, annotated - select for diffs
Fri Aug 11 12:54:02 2023 UTC (15 months, 4 weeks ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2023Q3-base, pkgsrc-2023Q3
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +7 -5 lines
py-sanic: updated to 23.6.0

Version 23.6.0

Features

* Increase KEEP_ALIVE_TIMEOUT default to 120 seconds
* Adding allow route overwrite option in blueprint
* Add a new exception signal for ALL exceptions raised anywhere in application
* Add name prefixing to BP groups
* Update request type on middleware types
* Better exception message on startup time application induced import error
* Set multiprocessing start method early
* Add custom typing to config and ctx objects
* Add request.client_ip

Bugfixes

* Fix traversals for intended results
* Handle case when headers argument of ResponseStream constructor is None
* Fix type annotation for JSONREsponse default content type
* Use Sanic's serializer for JSON responses in the Inspector
* Support for Request.get_current in ASGI mode
* Alow Blueprint routes to explicitly define error_format
* Resolve headers on different renderers
* Resolve pypy compatibility issues

Deprecations and Removals

* Remove Python 3.7 support

Developer infrastructure

* Unpin setuptools version
* Run keep alive tests in loop to get available port

Improved Documentation

* Better documentation examples about running Sanic

Revision 1.32: download - view: text, markup, annotated - select for diffs
Fri Mar 3 09:01:36 2023 UTC (21 months, 1 week ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2023Q2-base, pkgsrc-2023Q2, pkgsrc-2023Q1-base, pkgsrc-2023Q1
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +9 -9 lines
py-sanic: updated to 22.12.0

Version 22.12.0

Current version

Features

* Add JSONResponse class with some convenient methods when updating a response object
* Change uvloop requirement to >=0.15.0
* Add compatibility with websockets v11.0
* Kill server early on worker error

Raise deadlock timeout to 30s
* Scale number of running server workers
* Send SIGKILL on subsequent ctrl+c to force worker exit
* Add API to restart all workers from the multiplexer
* Default to spawn for all subprocesses unless specifically set:

from sanic import Sanic

Sanic.start_method = "fork"
* Filename normalisation of form-data/multipart file uploads
* Move to HTTP Inspector:

Remote access to inspect running Sanic instances
TLS support for encrypted calls to Inspector
Authentication to Inspector with API key
Ability to extend Inspector with custom commands
* Control order of restart operations
* Move reload interval to class variable
* Add priority to register_middleware method
* Add unquote to add_route method
* ASGI websockets to receive text or bytes

Bugfixes

* Force socket shutdown before close to allow rebinding
* Use actual StrEnum in Python 3.11+
* Ensure middleware executes only once per request timeout
* Crash ASGI application on lifespan failure
* Resolve error with low-level server creation on Windows

Deprecations and Removals

* Signal conditions and triggers saved on signal.extra
* Move to HTTP Inspector
BREAKING CHANGE: Moves the Inspector to a Sanic app from a simple TCP socket with a custom protocol
DEPRECATE: The --inspect* commands have been deprecated in favor of inspect ... commands
* Replace deprecated distutils.strtobool

Developer infrastructure

* Add CI testing for Python 3.11

Revision 1.31: download - view: text, markup, annotated - select for diffs
Thu Nov 3 12:46:20 2022 UTC (2 years, 1 month ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2022Q4-base, pkgsrc-2022Q4
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +2 -2 lines
py-sanic: updated to 22.9.1

22.9.1
docs: sanic now supports windows
Upgrade markdown templates to issue forms
improve error message if no apps found in registry
fix: sideeffects created by changing fork to spawn
22.9 Docs
Add interval sleep in reloader
Resolve edge case in nested BP Groups
Add GenericCreator for loading SSL certs in processes

Revision 1.30: download - view: text, markup, annotated - select for diffs
Fri Oct 14 08:39:48 2022 UTC (2 years, 1 month ago) by adam
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +12 -9 lines
py-sanic: updated to 22.9.0

Version 22.9.0

Features

* Add custom loads function
* Make WebsocketImplProtocol async iterable
* Sanic Server WorkerManager refactor
* Use pathlib for path resolution (for static file serving)
* Use path.parts instead of match (for static file serving)
* Better request cancel handling
* Add request properties for HTTP method info:
request.is_safe
request.is_idempotent
request.is_cacheable
See MDN docs for more information about when these apply
* Always show server location in ASGI
* Cache control support for static files for returning 304 when appropriate
* Refactor _static_request_handler
* Add signals before and after handler execution
http.handler.before
http.handler.after
* Add [redacted] to CLI :)
* Add deprecation warning filter
* Middleware priority and performance enhancements

Bugfixes

* Prevent directory traversion with static files
* Do not apply double slash to paths in certain static dirs in Blueprints

Deprecations and Removals

* Warn on duplicate route names, will be prevented outright in v23.3
* Raise warning and deprecation notice on duplicate exceptions, will be prevented outright in v23.3

Developer infrastructure

* Cleanup test suite
* Replace Unsupported Python Version Number from the Contributing Doc
* Do not include tests folder in installed package resolver

Improved Documentation

* Fix a few typos
* Add some type hints

Revision 1.29: download - view: text, markup, annotated - select for diffs
Tue Aug 23 09:35:22 2022 UTC (2 years, 3 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2022Q3-base, pkgsrc-2022Q3
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +2 -2 lines
py-sanic: updated to 22.6.2

Version 22.6.0

Features

Introduce HTTP/3 and autogeneration of TLS certificates in DEBUG mode
๐Ÿ‘ถ EARLY RELEASE FEATURE: Serving Sanic over HTTP/3 is an early release feature. It does not yet fully cover the HTTP/3 spec, but instead aims for feature parity with Sanicโ€™s existing HTTP/1.1 server. Websockets, WebTransport, push responses are examples of some features not yet implemented.
๐Ÿ“ฆ EXTRA REQUIREMENT: Not all HTTP clients are capable of interfacing with HTTP/3 servers. You may need to install a HTTP/3 capable client.
๐Ÿ“ฆ EXTRA REQUIREMENT: In order to use TLS autogeneration, you must install either mkcert or trustme.
Add message to task.cancel
Add exception aliases for more consistent naming with standard HTTP response types (BadRequest, MethodNotAllowed, RangeNotSatisfiable)
Expose ASGI scope as a property on the Request object
Easier access to websocket class for annotation: from sanic import Websocket
New API for reading form values with options: Request.get_form
Add custom loads function
Improved API to support setting cache control headers
Move verbosity filtering to logger
Expose getter for current request using Request.get_current()

Bugfixes

Fix to allow running with pythonw.exe or places where there is no sys.stdout
Trigger http.lifecycle.request signal in ASGI mode
Resolve typing of stacked route definitions
Properly catch websocket CancelledError in websocket handler in Python 3.7

Deprecations and Removals

v22.6 deprecations and changes
Optional application registry
Execution of custom handlers after some part of response was sent
Configuring fallback handlers on the ErrorHandler
Custom LOGO setting
sanic.response.stream
AsyncioServer.init

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed May 18 13:19:16 2022 UTC (2 years, 6 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2022Q2-base, pkgsrc-2022Q2
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +2 -2 lines
py-sanic: updated to 22.3.2

v22.3.2
Resolve warning issue with error handler mismatch warning

Revision 1.27: download - view: text, markup, annotated - select for diffs
Tue Apr 26 12:36:31 2022 UTC (2 years, 7 months ago) by adam
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +3 -4 lines
py-sanic: updated to 22.3.1

Version 22.3.1

Add fall back for Windows even loop fetching


Version 22.3.0

Features

* 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
* Parse Authorization header as Request.credentials
* Add config option to skip Touchup step in application startup
* Updates to CLI help messaging
* Downgrade warnings to backwater debug messages
* Allow for multidict v0.6
* Upgrade CLI catching for alternative application run types
* Conditionally inject CLI arguments into factory
* Add new start and stop event listeners to reloader process
* Remove loop as required listener arg
* 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

* Remove error_logger on websockets
* 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

* 22.3 Deprecations and changes

debug=True and --debug do NOT automatically run auto_reload
Default error render is with plain text (browsers still get HTML by default because auto looks at headers)
config is required for ErrorHandler.finalize
ErrorHandler.lookup requires two positional args
Unused websocket protocol args removed
* Deprecate loading of lowercase environment variables

Developer infrastructure

* Revert code coverage back to Codecov
* Upgrade tests for sanic-routing changes
sanic-testing#35 Allow for httpx v0.22

Improved Documentation

* Fix link in README for ASGI
* Document middleware on_request and on_response
* Add missing documentation for Request.respond

Miscellaneous

* Fix typing for ListenerMixin.listener
* Clear deprecation warning in asyncio.wait
* Cleanup __slots__ implementations
* Clear deprecation warning in asyncio.get_event_loop

Revision 1.26: download - view: text, markup, annotated - select for diffs
Thu Jan 27 09:57:08 2022 UTC (2 years, 10 months ago) by wiz
Branches: MAIN
CVS tags: pkgsrc-2022Q1-base, pkgsrc-2022Q1
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +23 -2 lines
py-sanic: unrestrict multidict

Add some test dependencies while here, more to do

Revision 1.25: download - view: text, markup, annotated - select for diffs
Thu Jan 13 18:23:57 2022 UTC (2 years, 10 months ago) by adam
Branches: MAIN
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +3 -4 lines
py-sanic: updated to 21.12.1

Version 21.12.1
* Only display MOTD on startup
* Add config.update support for all config values
* Ignore name argument in Python 3.7


Version 21.12.0
Features

* Allow early Blueprint registrations to still apply later added objects
* Noisy exceptions - force logging of all exceptions
* Optional uvloop by configuration
* Vhost support using multiple TLS certificates
* Change signal routing for increased consistency
BREAKING CHANGE: If you were manually routing signals there is a breaking change. The signal router's get is no longer 100% determinative. There is now an additional step to loop thru the returned signals for proper matching on the requirements. If signals are being dispatched using app.dispatch or bp.dispatch, there is no change.
* Add contextual exceptions
* Increase join concat performance
* Restructure of CLI and application state with new displays and more command parity with app.run
* Add route context at definition time
* Named tasks and new API for managing background tasks
* On app auto-reload, provide insight of changed files
* Auto extend application with Sanic Extensions if it is installed, and provide first class support for accessing the extensions
* Builtin signals changed to Enum
* Support additional config implementation use case
* Refactor environment variable hydration logic
* Prevent sending multiple or mixed responses on a single request
* Custom type casting on environment variables
* Make all deprecation notices consistent
* Allow underscore to start instance names

Bugfixes

* Replace assignation by typing for websocket_handshake
* Fix IPv6 display in startup logs
* Dispatch http.lifecyle.response from exception handler

Deprecations and Removals

* Removal of deprecated items
Sanic and Blueprint may no longer have arbitrary properties attached to them
Sanic and Blueprint forced to have compliant names
alphanumeric + _ + -
must start with letter or _
load_env keyword argument of Sanic
sanic.exceptions.abort
sanic.views.CompositionView
sanic.response.StreamingHTTPResponse
NOTE: the stream() response method (where you pass a callable streaming function) has been deprecated and will be removed in v22.6. You should upgrade all streaming responses to the new style: https://sanicframework.org/en/guide/advanced/streaming.html#response-streaming
* Remove app instance from Config for error handler setting

Developer infrastructure

* Change dev install command
* Change codeclimate complexity threshold from 5 to 10
* Update host test function names so they are not overwritten
* Fail CI on error
* Do not run tests for draft PRs
* Remove paths from coverage checks
* Cleanup ports on tests

Improved Documentation

* Cleanup typos and fix language

Miscellaneous

* Add Python 3.10 support
* Add/correct missing type annotations
* Fix examples to use modern implementations


Version 21.9.2
* Make HTTP connections start in IDLE stage, avoiding delays and error messages
* More consistent config setting with post-FALLBACK_ERROR_FORMAT apply


Version 21.9.1
* Allow non-conforming ErrorHandlers


Version 21.9.0

Features

* Complete overhaul of I/O to websockets
* Add new 17 signals into server and request lifecycles
* Smarter auto fallback formatting upon exception
* Introduce implementation for copying a Blueprint
* Accept header parsing
* Log remote address if available
* Add convenience methods to BP groups
* Add default messages to SanicExceptions
* Type annotation convenience for annotated handlers with path parameters
* Allow Falsey (but not-None) responses from route handlers
* Add exception decorator to Blueprint Groups
* Explicit static directive for serving file or dir (ex: static(..., resource_type="file"))
* Close HTTP loop when connection task cancelled

Bugfixes

* Fix the handling of the end of a chunked request
* Resolve unexpected error handling on static requests
* Make blueprint-based exceptions attach and trigger in a more intuitive manner
* Fixed for handling exceptions of asgi app call
* Fix bug where ws exceptions not being logged
* Cleaner closing of tasks by using abort() in strategic places to avoid dangling sockets
* Fix logging of auto-reload status in debug mode
* Account for BP with exception handler but no routes

Developer infrastructure

* HTTP unit tests with raw client
* Switch to codeclimate
* Try Reopening Windows Tests
* Refactor HttpProtocol into a base class
* Refactor server.py into multi-file module

Miscellaneous

* Remove Duplicated Dependencies and PEP 517 Support
* Type annotation changes

Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Jan 5 15:41:31 2022 UTC (2 years, 11 months ago) by wiz
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +4 -2 lines
python: egg.mk: add USE_PKG_RESOURCES flag

This flag should be set for packages that import pkg_resources
and thus need setuptools after the build step.

Set this flag for packages that need it and bump PKGREVISION.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Tue Jan 4 20:55:35 2022 UTC (2 years, 11 months ago) by wiz
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -1 lines
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Dec 30 13:05:42 2021 UTC (2 years, 11 months ago) by adam
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +2 -2 lines
Forget about Python 3.6

Revision 1.21: download - view: text, markup, annotated - select for diffs
Thu Aug 5 18:37:30 2021 UTC (3 years, 4 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2021Q4-base, pkgsrc-2021Q4, pkgsrc-2021Q3-base, pkgsrc-2021Q3
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +2 -2 lines
py-sanic: updated to 21.6.2

Version 21.6.2
Bugfixes
* Fix handling of exceptions in ASGI app call

Revision 1.20: download - view: text, markup, annotated - select for diffs
Wed Jul 28 12:14:16 2021 UTC (3 years, 4 months ago) by adam
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +4 -5 lines
py-sanic: updated to 21.6.1

Version 21.6.1

Bugfixes

Update sanic-routing to allow for better splitting of complex URI templates
Proper handling of chunked request bodies to resolve phantom 503 in logs
Resolve regression in exception logging
Cleanup request info in pipelined requests
Version 21.6.0

Features

Add response.eof() method for closing a stream in a handler

Allow case-insensitive HTTP Upgrade header

Explicit usage of CIMultiDict getters

Consistent use of error loggers

New client_ip access of connection info instance

Alternatate classes on instantiation for Config and Sanic.ctx

Implement new version of AST router

Proper differentiation between alpha and string param types
Adds a slug param type, example: <foo:slug>
Deprecates <foo:string> in favor of <foo:str>
Deprecates <foo:number> in favor of <foo:float>
Adds a route.uri accessor
CLI improvements with new optional params

Add version_prefix to URL builders

Event autoregistration with EVENT_AUTOREGISTER

Require stricter names on Sanic() and Blueprint()

Infinitely reusable and nestable Blueprint and BlueprintGroup

Upgrade websockets dependency to min version

Allow for maximum header sizes to be increased: REQUEST_MAX_HEADER_SIZE

Allow app factory pattern in CLI

Change HTTP methods to enums

Allow auto-reloading on additional directories

Add simple HTTP server to CLI

Additional methods for attaching HTTPMethodView

Bugfixes

Fix UserWarning in ASGI mode for missing __slots__
Fix static request handler logging exception on 404
Fix request.args.pop removes parameters inconsistently
Fix type hinting for load_env
Make sure ASGI ws subprotocols is a list
Fix issue where Blueprint exception handlers do not consistently route to proper handler
Deprecations and Removals

Remove config value REQUEST_BUFFER_QUEUE_SIZE
CompositionView deprecated and marked for removal in 21.12
Deprecate StreamingHTTPResponse
Developer infrastructure

Remove Travis CI in favor of GitHub Actions
Improved Documentation

Fix typo in documentation
Remove documentation for non-existent arguments
Version 21.3.2

Bugfixes

Disable response timeout on websocket connections
Make sure that blueprints with no slash is maintained when applied
Version 21.3.1

Bugfixes

Static files inside subfolders are not accessible (404)
Version 21.3.0

Release Notes

Features

Unified streaming server
New Request.id property
Allow Pathlib Path objects to be passed to app.static() helper
New startup-optimized router
Listeners for main server process
Add raw header info to request object
Introduce Signals API
Add __str__ and __repr__ to Sanic and Blueprint
Enable versioning and strict slash on BlueprintGroup
Make get_app name argument optional
JSON encoder change via app
App and connection level context objects
Bugfixes and issues resolved

Resolve 1420 url_for where strict_slashes are on for a path ending in /
Resolve 1525 Routing is incorrect with some special characters
Resolve 1653 ASGI headers in body
Resolve 1722 Using curl in chunk mode
Resolve 1730 Extra content in ASGI streaming response
Resolve 1749 Restore broken middleware edge cases
Resolve 1785 1804 Synchronous error handlers
Resolve 1790 Protocol errors did not support async error handlers
Resolve 1824 Timeout on specific methods
Resolve 1875 Response timeout error from all routes after returning several timeouts from a specific route
Resolve 1988 Handling of safe methods with body
Raise ValueError when cookie max-age is not an integer
Deprecations and Removals

Config using from_envvar
Config using from_pyfile
Config using from_object
Remove Sanic test client to its own package
Drop Python 3.6 support
Request.endpoint deprecated in favor of Request.name
handler type name prefixes removed (static, websocket, etc)
Developer infrastructure

Create FUNDING.yml
Add codeql to CI pipeline
Codecov configuration updates
Updated setup.py to use find_packages
Improved Documentation

Documentation for sanic.log.* is missing
Add documentation on calver and LTS
Support mounting application elsewhere than at root path
Upgraded type annotations and improved docstrings and API documentation
Fix some examples and docs
Miscellaneous

Request.route property
Better websocket subprotocols support
Resolve bug with middleware in Blueprint Group when passed callable
Moves common logic between Blueprint and Sanic into mixins
Route naming changed to be more consistent
request endpoint is the route name
route names are fully namespaced
Some new convenience decorators:
@app.main_process_start
@app.main_process_stop
@app.before_server_start
@app.after_server_start
@app.before_server_stop
@app.after_server_stop
@app.on_request
@app.on_response
Fixes Allow header that did not include HEAD
Using "name" keyword in url_for for a "static" route where name does not exist
Cannot have multiple app.static() without using the named param
Using "filename" keyword in url_for on a file route
unquote in route def (not automatic)
routes_all is tuples
Handler arguments are kwarg only
request.match_info is now a cached (and not computed) property
Unknown static file mimetype is sent as application/octet-stream
_host keyword in url_for
Add charset default to utf-8 for text and js content types if not specified
Version for a route can be str, float, or int
Route has ctx property
App has routes_static, routes_dynamic, routes_regex
Code cleanup and refactoring
Remove BaseSanic metaclass
Performance adjustments in handle_request_

Revision 1.19: download - view: text, markup, annotated - select for diffs
Tue Feb 16 18:56:05 2021 UTC (3 years, 9 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2021Q2-base, pkgsrc-2021Q2, pkgsrc-2021Q1-base, pkgsrc-2021Q1
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +3 -3 lines
py-sanic: updated to 20.12.2

Version 20.12.2

Dependencies

Fix uvloop to 0.14 because 0.15 drops Python 3.6 support
Remove old chardet requirement, add in hard multidict requirement

Revision 1.18: download - view: text, markup, annotated - select for diffs
Wed Jan 6 12:11:57 2021 UTC (3 years, 11 months ago) by adam
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +4 -4 lines
py-sanic: updated to 20.12.1

Version 20.12.1

Features
- Add disable app registry

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Jan 3 22:41:44 2021 UTC (3 years, 11 months ago) by adam
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -2 lines
py-sanic: updated to 20.12.0

Version 20.12.0

Features

* Static route more verbose if file not found
* Fix static routes registration on a blueprint
* Add Python 3.9 support
* Sanic CLI upgrade
* Update aiofile version requirements
* Update multidict version requirements
* Add py.typed file
* Speed optimization in request handler
* Add app registry and Sanic class level app retrieval

Bugfixes

* Fix Chunked Transport-Encoding in ASGI streaming
response

Deprecations and Removals

* Cleanup and remove deprecated code

Developer infrastructure

* Fix load module test
* Transition Travis from .org to .com
* Update tox requirements

Improved Documentation

* Documentation improvements
* Remove duplicate contents in testing.rst
* Fix typo in routing.rst

Revision 1.16: download - view: text, markup, annotated - select for diffs
Tue Oct 27 23:07:42 2020 UTC (4 years, 1 month ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2020Q4-base, pkgsrc-2020Q4
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +3 -3 lines
py-sanic: updated to 20.9.1

Version 20.9.1

Bugfixes
Fix static route registration on blueprints
Removes duplicate headers in ASGI streaming body

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Oct 1 06:53:12 2020 UTC (4 years, 2 months ago) by adam
Branches: MAIN
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +4 -4 lines
py-sanic: updated to 20.9.0

Version 20.9.0

Features
* Pass subprotocols in websockets (both sanic server and ASGI)
* Automatically set test_mode flag on app instance
* Add new unified method for updating app values
* Adds WEBSOCKET_PING_TIMEOUT and WEBSOCKET_PING_INTERVAL configuration values
* httpx version dependency updated, it is slated for removal as a dependency in v20.12
* Added auto, text, and json fallback error handlers (in v21.3, the default will change form html to auto)

Bugfixes
* Resolves exception from unread bytes in stream

Deprecations and Removals
* config.from_envar, config.from_pyfile, and config.from_object are deprecated and set to be removed in v21.3

Developer infrastructure
* Update isort calls to be compatible with new API
* Remove version section from setup.cfg
* Adding --strict-markers for pytest

Improved Documentation
* Add explicit ASGI compliance to the README

Revision 1.14: download - view: text, markup, annotated - select for diffs
Mon Jun 29 14:29:20 2020 UTC (4 years, 5 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2020Q3-base, pkgsrc-2020Q3
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +6 -2 lines
py-sanic: updated to 20.6.3

Version 20.6.3

Bugfixes
* Revert change to multiprocessing mode


Version 20.6.2

Features
* Socket binding implemented properly for IPv6 and UNIX sockets


Version 20.6.1

Features
* Add version parameter to websocket routes
* Add sanic as an entry point command
* Add handler names for websockets for url_for usage

Bugfixes
* Bug fix for host parameter issue with lists
* Fix static _handler pickling error
* Fix reloader on OSX py38 and Windows
* Reverse named_response_middlware execution order, to match normal response middleware execution order
* Fix pickle error when attempting to pickle an application which contains websocket routes

Deprecations and Removals
* Deprecate body_bytes to merge into body

Developer infrastructure
* Fix naming of CI test env on Python nightlies
* Adjust websockets version to setup.py
* Wrap run()'s "protocol" type annotation in Optional[]

Improved Documentation
* Update docs to clarify response middleware execution order
* Fixing rst format issue that was hiding documentation

Revision 1.13: download - view: text, markup, annotated - select for diffs
Fri May 15 08:32:34 2020 UTC (4 years, 6 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2020Q2-base, pkgsrc-2020Q2
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +2 -3 lines
py-sanic: updated to 20.3.0

20.3.0:
Unknown changes

Revision 1.12: download - view: text, markup, annotated - select for diffs
Mon May 11 05:34:07 2020 UTC (4 years, 7 months ago) by adam
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -1 lines
py-sanic: fix for newer httpx

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Jan 8 21:03:21 2020 UTC (4 years, 11 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2020Q1-base, pkgsrc-2020Q1
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +7 -3 lines
py-sanic: updated to 19.12.2

Version 19.12.0

Bugfixes

Fix blueprint middleware application

Currently, any blueprint middleware registered, irrespective of which blueprint was used to do so, was being applied to all of the routes created by the @app and @blueprint alike.

As part of this change, the blueprint based middleware application is enforced based on where they are registered.

If you register a middleware via @blueprint.middleware then it will apply only to the routes defined by the blueprint.
If you register a middleware via @blueprint_group.middleware then it will apply to all blueprint based routes that are part of the group.
If you define a middleware via @app.middleware then it will be applied on all available routes
Fix url_for behavior with missing SERVER_NAME

If the SERVER_NAME was missing in the app.config entity, the url_for on the request and app were failing due to an AttributeError. This fix makes the availability of SERVER_NAME on our app.config an optional behavior.

Improved Documentation

Move docs from RST to MD

Moved all docs from markdown to restructured text like the rest of the docs to unify the scheme and make it easier in the future to update documentation.

Fix documentation for get and getlist of the request.args

Add additional example for showing the usage of getlist and fix the documentation string for request.args behavior

Version 19.6.3

Enable Towncrier Support
As part of this feature, towncrier is being introduced as a mechanism to partially automate the process of generating and managing change logs as part of each of pull requests.

Improved Documentation
Documentation infrastructure changes
Enable having a single common CHANGELOG file for both GitHub page and documentation
Fix Sphinix deprecation warnings
Fix documentation warnings due to invalid rst indentation
Enable common contribution guidelines file across GitHub and documentation via CONTRIBUTING.rst

Version 19.6.2

Features
* Remove aiohttp dependencey and create new SanicTestClient based upon requests-async
* Added ASGI support (Beta)
* Add Configure support from object string

Bugfixes
* Add missing handle for Expect header.
* Allow to disable Transfer-Encoding: chunked.
* Fix graceful shutdown.
* Strict Slashes behavior fix

Deprecations and Removals
* Drop dependency on distutil
* Drop support for Python 3.5
* Deprecate route removal.

Warning
Sanic will not support Python 3.5 from version 19.6 and forward. However, version 18.12LTS will have its support period extended thru December 2020, and therefore passing Python's official support version 3.5, which is set to expire in September 2020.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Fri Apr 26 13:14:21 2019 UTC (5 years, 7 months ago) by maya
Branches: MAIN
CVS tags: pkgsrc-2019Q4-base, pkgsrc-2019Q4, pkgsrc-2019Q3-base, pkgsrc-2019Q3, pkgsrc-2019Q2-base, pkgsrc-2019Q2
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +2 -2 lines
Omit mentions of python 34 and 35, after those were removed.

- Includes some whitespace changes, to be handled in a separate commit.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Thu Apr 4 12:25:38 2019 UTC (5 years, 8 months ago) by adam
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +2 -2 lines
py-sanic: updated to 19.3.1

19.3.1
Changes:
* Add support for zero-length and RFC 5987 encoded filename for multipart/form-data requests.
* The type of expires attribute of sanic.cookies.Cookie is now enforced to be of type datetime.
* Add support for the stream parameter of sanic.Sanic.add_route() available to sanic.Blueprint.add_route().
* Accept negative values for route parameters with type int or number.
* Deprecated the use of sanic.request.Request.raw_args - it has a fundamental flaw in which is drops repeated query string parameters. Added sanic.request.Request.query_args as a replacement for the original use-case.
* Remove an unwanted None check in Request class repr implementation. This changes the default repr of a Request from <Request> to <Request: None />
* Added 2 new parameters to sanic.app.Sanic.create_server:
return_asyncio_server - whether to return an asyncio.Server.
asyncio_server_kwargs - kwargs to pass to loop.create_server for the event loop that sanic is using.
This is a breaking change.
* Added a set of test cases that test and benchmark route resolution.
* The type of the "max-age" value in a sanic.cookies.Cookie is now enforced to be an integer. Non-integer values are replaced with 0.
* Added the endpoint attribute to an incoming request, containing the name of the handler function.
* Improved request streaming. request.stream is now a bounded-size buffer instead of an unbounded queue. Callers must now call await request.stream.read() instead of await request.stream.get() to read each portion of the body.
This is a breaking change.

Fixes:
* Sanic was prefetching time.time() and updating it once per second to avoid excessive time.time() calls. The implementation was observed to cause memory leaks in some cases. The benefit of the prefetch appeared to negligible, so this has been removed. Fixes
* Fix a bug in the auto-reloader when the process was launched as a module i.e. python -m init0.mod1 where the sanic server is started in init0/mod1.py with debug enabled and imports another module in init0.
* Allow sanic test client to bind to a random port by specifying port=None when constructing a SanicTestClient
* Added the ability to specify middleware on a blueprint group, so that all routes produced from the blueprints in the group have the middleware applied.
* Allow the the use the SANIC_ACCESS_LOG environment variable to enable/disable the access log when not explicitly passed to app.run(). This allows the access log to be disabled for example when running via gunicorn.

Developer infrastructure:
* Update project PyPI credentials
* fix linter issue causing travis build failures
* Fix python version in doc build
* Upgrade setuptools version and use native docutils in doc build
* Upgrade pytest, and fix caplog unit tests

Typos and Documentation:
* Fix typo at the exception documentation
* fix typo in Asyncio example
* Documentation typo
* Fix grammar in README.md
* Added "databases" to the extensions list
* Add sanic-zipkin to extensions list
* Removed link to deleted repo, Sanic-OAuth, from the extensions list
* 18.12 changelog
* Add example of amending request object
* Update README
* Update README
* Update README, including new logo
* fix minor type and pip install instruction mismatch
* Documentation Enhancements

Revision 1.8: download - view: text, markup, annotated - select for diffs
Fri Jan 18 08:15:07 2019 UTC (5 years, 10 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2019Q1-base, pkgsrc-2019Q1
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +4 -4 lines
py-sanic: updated to 18.12.0

Version 18.12

18.12.0

Changes:
Improved codebase test coverage from 81% to 91%.
Added stream_large_files and host examples in static_file document
Added methods to append and finish body content on Request
Integrated with .appveyor.yml for windows ci support
Added documentation for AF_INET6 and AF_UNIX socket usage
Adopt black/isort for codestyle
Cancel task when connection_lost
Simplify request ip and port retrieval logic
Handle config error in load config file.
Integrate with codecov for CI
Add missed documentation for config section.
Deprecate Handler.log
Pinned httptools requirement to version 0.0.10+

Fixes:
Fix remove_entity_headers helper function
Fix TypeError when use Blueprint.group() to group blueprint with default url_prefix, Use os.path.normpath to avoid invalid url_prefix like api//v1 f8a6af1 Rename the http module to helpers to prevent conflicts with the built-in Python http library
Fix unittests on windows
Fix Namespacing of sanic logger
Fix missing quotes in decorator example
Fix redirect with quoted param
Fix doc for latest blueprint code
Fix build of latex documentation relating to markdown lists
Fix loop exception handling in app.py
Fix content length mismatch in windows and other platform
Fix Range header handling for static files
Fix the logger and make it work
Fix type pikcle->pickle in multiprocessing test
Fix pickling blueprints Change the string passed in the "name" section of the namedtuples in Blueprint to match the name of the Blueprint module attribute name. This allows blueprints to be pickled and unpickled, without errors, which is a requirment of running Sanic in multiprocessing mode in Windows. Added a test for pickling and unpickling blueprints Added a test for pickling and unpickling sanic itself Added a test for enabling multiprocessing on an app with a blueprint (only useful to catch this bug if the tests are run on Windows).
Fix document for logging

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Sep 14 07:36:46 2018 UTC (6 years, 2 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2018Q4-base, pkgsrc-2018Q4, pkgsrc-2018Q3-base, pkgsrc-2018Q3
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -2 lines
py-sanic: updated to 0.8.3

0.8.3:
Bug fixes.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Fri Sep 7 11:30:47 2018 UTC (6 years, 3 months ago) by adam
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +5 -4 lines
py-sanic: updated to 0.8.1

0.8.1:
Unknown changes.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Tue Jul 3 05:03:40 2018 UTC (6 years, 5 months ago) by adam
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +2 -4 lines
extend PYTHON_VERSIONS_ for Python 3.7

Revision 1.4: download - view: text, markup, annotated - select for diffs
Wed Dec 6 12:53:56 2017 UTC (7 years ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2018Q2-base, pkgsrc-2018Q2, pkgsrc-2018Q1-base, pkgsrc-2018Q1, pkgsrc-2017Q4-base, pkgsrc-2017Q4
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -2 lines
py-sanic: updated to 0.7.0

0.7.0:
Fixed a bug where trigger_events didn't actually trigger events in async create_server
Changed strict_slashes to be True by default
Changed Unauthorized exception __init__ to be more like the rest of the exceptions
Added an option to define a name for a route
Made the prefixes for the environment variables configurable
Fixed windows support where syslog raises an ImportError
Added support for vhosts in static routes
Split RequestTimeout, ResponseTimeout, and KeepAliveTimeout into different timeouts
Fixed Connection lost before response written
SanicTestClient now gets its own port

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Aug 3 07:48:52 2017 UTC (7 years, 4 months ago) by adam
Branches: MAIN
CVS tags: pkgsrc-2017Q3-base, pkgsrc-2017Q3
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -2 lines
0.6.0:
Fix error where transport.get_extra_info returned None
Remove uvloop requirement for gunicorn worker
Fix error where request.token() would fail if Authorization headers were not provided
Added an abort function to easily exit out of route handlers
Added a file_stream response handler
Add support for streaming large static files
Added streaming requests
Added websocket max_size and max_queue configuration
Fixed test client not working with HTTP2
Added match_info property to request class
Added support for recycling the gunicorn worker
Added an Unauthorized exception
Added a Forbidden exception
Added a graceful timeout when shutdown

Revision 1.2: download - view: text, markup, annotated - select for diffs
Fri Jul 7 08:48:27 2017 UTC (7 years, 5 months ago) by adam
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +6 -6 lines
BUILD_DEPENDS -> DEPENDS

Revision 1.1: download - view: text, markup, annotated - select for diffs
Fri Jul 7 07:27:15 2017 UTC (7 years, 5 months ago) by adam
Branches: MAIN
Sanic is a Flask-like Python 3.5+ web server that's written to go fast. It's
based on the work done by the amazing folks at magicstack.

On top of being Flask-like, Sanic supports async request handlers. This means
you can use the new shiny async/await syntax from Python 3.5, making your code
non-blocking and speedy.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>