Wrapper around the tornado web server library
A wrapper around the tornado web server.
- 0.12.0 - 14 April 2021
Add a new make_application hook to the Server for changing the WSGI app
Made it easier to alter what gets logged
- 0.11.0 - 26 March 2021
Added server_end_future to the Server object
Added announce_start and make_http_server hooks to Server
The http server and routes we make is now put onto the server object in serve
The default error catcher will return a “RequestCancelled” error if the request raises asyncio.CancelledError
- 0.10.1 - 8 January 2021
Removed the wait_for_futures helper. It’s not a great implementation.
The server now uses await self.wait_for_end() to wait till we should shut down the server. By default this does await self.final_future like it already was doing.
- 0.10.0 - 25 October 2020
It was random and didn’t work well in an async context
Used asynctest which has warnings past python3.7 and isn’t necessary anymore
- 0.9.0 - 10 May 2020
The SimpleWebSocketBase and WSHandler handlers now take in a final_future which is used to stop the websocket stream when it is cancelled.
Websocket streams that take in child messages will now use the request future on the websocket to know when to stop.
- 0.8.0 - 12 March 2020
The status of a response when there is an exception will now look at:
If the msg is a dictionary, it’ll get “status” from that dictionary if it has that
If the exception has a “status” property, the status will be that value
Otherwise the status will be 500
- 0.7.2 - 6 March 2020
Fix a small mistake that meant http handlers weren’t logging even if log_exceptions=False wasn’t specified.
- 0.7.1 - 6 March 2020
Made it possible to accept files into a commander command. You can do this by sending a multipart/form-data to the endpoint. The body of the command will be extracted from a __body__ file you provide.
HTTP and WebSocket handlers can now be told not to log exceptions by giving them a class level log_exceptions = False attribute.
- 0.7 - 3 February 2020
Made transform_progress responsible for name spacing the progress messages
Store commands can now be interactive. If you define the execute method as taking in messages, then you can process extra messages sent to that command. You then define what messages it accepts by using the store.command decorator with the parent option as the interactive command.
Reusing a command with a different path is now an error
- 0.6 - 18 September 2019
Migrated to delfick_project
- 0.5.3 - Dec 26 2018
WSHandler now has a connection_future that is cancelled if we lose the connection
- 0.5.2 - Oct 25 2018
Added a message_done hook to SimpleWebSocketBase
Fixed the test helpers so that you aren’t left with no set asyncio loop
- 0.5.1 - Oct 24 2018
Made the __server_time__ message for SimpleWebSocketBase optional.
Made sure to actually use the reprer set on request handlers
ProgressMessageMaker doesn’t nest dictionaries it receives
Added a transform_progress hook to SimpleWebSocketBase
- 0.5 - Oct 22 2018
This package is released to pypi under the name whirlwind-web. When you add this package to your setup.py it is recommended you either specify [peer] as well or pin input_algorithms, option_merge and tornado to particular versions. See https://github.com/delfick/whirlwind/blob/main/setup.py#L24-L28 for the recommended versions.
from setuptools import setup, find_packages setup( name = "test" , version = "0.1" , include_package_data = True , install_requires = [ "whirlwind-web[peer]" , "whirlwind-web==0.5.2" ] )
Running the tests
To run the tests, create and activate a virtualenv somewhere and then:
$ pip install -e ".[peer,tests]" $ pip install -e .
followed by ./test.sh
$ pip install tox $ tox
See https://whirlwind.readthedocs.io/en/latest/ for usage documentation.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.