I don't use or maintain this project anymore
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
- Add a new
- 0.11.0 - 26 March 2021
- Added
server_end_future
to the Server object - Added
announce_start
andmake_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
- Added
- 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 doesawait self.final_future
like it already was doing.
- 0.10.0 - 25 October 2020
- Removed whirlwind.test_helpers
- 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
- Removed whirlwind.test_helpers
- 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.
- The SimpleWebSocketBase and WSHandler handlers now take in a
- 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
- The status of a response when there is an exception will now look at:
- 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.
- Fix a small mistake that meant http handlers weren't logging even if
- 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.
- Made it possible to accept files into a commander command. You can do this
by sending a
- 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 thestore.command
decorator with theparent
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
- Made the
- 0.5 - Oct 22 2018
- Initial Release
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.
For example:
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"
]
)
To run the tests, create and activate a virtualenv somewhere and then:
$ pip install -e ".[peer,tests]" $ pip install -e .
followed by ./test.sh
Alternatively:
$ pip install tox $ tox
See https://whirlwind.readthedocs.io/en/latest/ for usage documentation.