All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add Grasshopper components for publishing and subscribing to topics, for creating messages and connecting to MQTT transports.
- Fix/add json serialization support to
Message
class. - Fix get/set attr/item recursion bug.
- Simplify API:
- Default to
Message
class if no message type is specified. - Allow to use a string with the topic name in place of an instance of
Topic
. - Added an
EchoSubscriber
to showcase basic usage.
- Default to
- Added the option to pass arguments into the long running task of a background worker.
- Added the option to manually control when the background worker task is set to Done.
- Added dispose function to control resource deallocation in a background worker.
- Set background threads in the background worker as daemon threads to prevent blocking the main thread.
- Changed base class of
Message
fromUserDict
toobject
because in IronPython 2.7UserDict
is an old-style class. The behavior of dictionary-like is still preserved.
- Ensure calling
off()
orunsubscribe()
does not fail if the callback is not present in the registered event callbacks.
- Fixed compatibility issues with COMPAS 2.0 on the background worker.
- Updated to COMPAS 2.0 theme
- Limit dependency on
mqtt-paho
to be>=1, <2
since version2.0
introduces breaking changes.
- Added examples and more detailed documentation for installation and usage.
- Added
BackgroundWorker
class andBackgroundTask
Grasshopper component to execute long-running tasks without blocking GH.
- Fixed bug failing to get a
str
representation ofMessage
onipy
- Pinned Sphinx version for docs generation
- Added support for callbacks directly on the base
Subscriber
class
- Correctly implemented unsubscribe for all transports
- Fixed subscription with multiple subscribers on the same transport instance
- Switched to COMPAS data framework for encoding/decoding of messages