Up to [cvs.NetBSD.org] / pkgsrc / www / py-sanic
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
py-*: remove unused tool dependency py-setuptools includes the py-wheel functionality nowadays
*: clean-up after python38 removal
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
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
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
*: latest py-sphinx only support Python 3.9+
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
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
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
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
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
py-sanic: updated to 22.3.2 v22.3.2 Resolve warning issue with error handler mismatch warning
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
py-sanic: unrestrict multidict Add some test dependencies while here, more to do
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
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.
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
Forget about Python 3.6
py-sanic: updated to 21.6.2 Version 21.6.2 Bugfixes * Fix handling of exceptions in ASGI app call
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_
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
py-sanic: updated to 20.12.1 Version 20.12.1 Features - Add disable app registry
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
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
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
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
py-sanic: updated to 20.3.0 20.3.0: Unknown changes
py-sanic: fix for newer httpx
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.
Omit mentions of python 34 and 35, after those were removed. - Includes some whitespace changes, to be handled in a separate commit.
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
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
py-sanic: updated to 0.8.3 0.8.3: Bug fixes.
py-sanic: updated to 0.8.1 0.8.1: Unknown changes.
extend PYTHON_VERSIONS_ for Python 3.7
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
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
BUILD_DEPENDS -> DEPENDS
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.