Reorganised the code – particularly for the coroutine based event processing: sources, sinks and the react transduce now exist in their own modules.
Clarified the semantics of the sources, which now no longer call close() on the targets.
Single-sourced the version from the transducer/__init__.py file.
Adds a new reducer for producing sets.
A new reducer for completing regular Python reducing functions into objects supporting the full reducer protocol.
Numerous fixes throughout the code as a result of vastly improved test coverage.
Rework to make the code closer to the code in the blog series.
Much clearer reduction to single values for transducers such as first() and last() in conjunction with the expecting_single() reducer.
Simplified and clarified much of the implementation.
Dropped support for Python 3.2.
Correctness fixes by moving function locals in the transducer factories to be class attributes of the transducers. This allows transducers returned by the transducer factories to be safely used more than once.
Renamed transducer.transducer to transducer.transducers.
Relocate reducing functions to reducers.py
Move transducer infrastructure to infrastructure.py