* Fix: Multiple subscriptions to the same channel was not handled properly, resulting in log warnings.
* Fix: Use pendulum to parse RFC 3339 timestamps
* Warning! Thorough refactoring resulting in major api changes. `BitMEXWebsocket` is now created using the `open_bitmex_websocket` function, which is a standalone async context manager. It returns a BitMEXWebsocket.
* Deletions are now broadcasted to listeners.
* Fix: Uses aclosing from async_generator library for context management of all async generators to ensure safe garbage collection. Always ensure you context manage async generators. They *will* shoot you in the foot otherwise!
* Fix: Handle response message from dead mans switch.
* Added optional dead mans switch. See: https://www.bitmex.com/app/wsAPIDead-Mans-Switch-Auto-Cancel
* Fixed table storage for insert-only keyless tables, like tradeBin. Uses attributes from partial message instead of the keys list.
* Relaxed python dependency to 3.6
* Checks network argument to BitMEXWebsocket init method is valid.
* storage.insert() method allows storage to be patched externally.
* Big refactoring.
* Handles subscriptions individually per channel.
* Data storage uses sorted containers for search efficiency.
* Documentation fixes.
* Added documentation.
* First release on PyPI.