-------------------
- Add ``always_dispatch`` keyword argument to
``node.behaviors.events.EventAttribute`` constructor which defines whether
events are always dispatched on ``__set__``, not only if attribute value
changes.
[rnix, 2017-06-20]
- Use ``node.utils.UNSET`` as default ``default`` value in
``node.behaviors.events.EventAttribute.__init__``.
[rnix, 2017-06-19]
- Introduce ``node.behaviors.events.EventAttribute.subscriber`` decorator which
can be used to register attribute subscribers.
[rnix, 2017-06-19]
- Move event dispatching related classes and functions from ``node.events``
to ``node.behaviors.events`` and import it from there in ``node.events``.
[rnix, 2017-06-16]
- Introduce ``node.interfaces.IEvents`` and implement
``node.behaviors.events.Events`` behavior. Contains business logic from
``node.events.EventDispatcher``. Use new behavior on ``EventDispatcher``.
[rnix, 2017-06-16]
- Create ``suppress_events`` context manager which can be used to
suppress event notification in conjunction with ``node.behaviors.Events``
behavior.
[rnix, 2017-06-15]
- Create ``node.behaviors.fallback.fallback_processing`` context manager and
and use it in ``node.behaviors.fallback.Fallback.__getitem__`` to check
whether fallback processing is active.
[rnix, 2017-06-15]