chainlet Changelog¶
unreleased¶
New Features
- Generator iterators can be used directly during linking.
- Using any chainlet in a
with
statement automatically closes it at the end of the context.Minor Changes
- A
chainlet.close
is now propagated by bundles and chains to their elements.
v1.3.1¶
Installer Hotfix Release
v1.3.0¶
New Features
- The
>>
and<<
operators use experimental reflection precedence based on domains.- Added a future based
concurrency
module.- Added a
threading
based chain domain offering concurrent bundles.- Added a
multiprocessing
basedDriver
.Major Changes
- Due to inconsistent semantics, stopping a chain with
StopTraversal
no longer allows for a return value. Alignedchainlet.send
togenerator.send
, returningNone
or an empty iterable instead of blocking indefinitely. See issue #8 for details.- Added
chainlet.dispatch(iterable)
tosend
an entire stream slice at once. This allows for internal lazy and concurrent evaluation.- Deprecated the use of external linkers in favour of operator+constructor.
- Linking to chains ignores elements which are
False
in a boolean sense, e.g. an emptyCompoundLink
.Minor Changes
CompoundLink
objects are now considered booleanFalse
based on elements.- Added a neutral element for internal use.
Bug Fixes
- A
Bundle
will now properlyjoin
the stream if any of its elements does so.- Correctly unwrapping return value for any
Chain
which does notfork
.FunctionLink
andfunclet
support positional arguments
v1.2.0¶
New Features
- Decorator/Wrapper versions of
FunctionLink
andGeneratorLink
are proper subclasses of their class. This allows setting attributes and inspection. Previously, they were factory functions.- Instances of
FunctionLink
can be copied and pickled.- Instances of
GeneratorLink
can be copied and pickled.- Subchains can be extracted from a
Chain
via slicing.Major Changes
Renamed compound chains and simplified inheritance to better reflect their structure:
Chain
has been renamed toCompoundLink
ConcurrentChain
has been removedMetaChain
has been renamed toChain
LinearChain
has been renamed toFlatChain
ParallelChain
has been renamed toBundle
A
Chain
that never forks or definitely joins yields raw data chunks, instead of nesting each in alist
A
Chain
whose first element does afork
inherits this.Minor Changes
- The top-level namespace
chainlet
has been cleared from some specialised aliases.Fixes
- Chains containing any
chainlet_fork
elements but noBundle
are properly built
v1.1.0 2017-06-08¶
New Features
- Protolinks: chainlet versions of builtins and protocols
Minor Changes
- Removed outdated sections from documentation
v1.0.0 2017-06-03¶
Notes
- Initial release
New Features
- Finalized definition of chainlet element interface on
chainlet.ChainLink
- Wrappers for generators, coroutines and functions as
chainlet.genlet
andchainlet.funclet
- Finalized dataflow definition for chains, fork and join
- Drivers for sequential and threaded driving of chains