Changelog for “iteration_utilities”¶
Version 0.11.0 (2020-11-19)¶
The functions implemented in C now parse boolean arguments based on their truth value instead of their integer value. This should be unnoticeable in typical usage.
always_iterablewhich wraps non-iterable inputs with an iterable.
emptyas singleton representing an empty iterable.
The type of
Placeholderwhich was previously accessible as
Added Python 3.9 support.
Version 0.10.1 (2019-11-20)¶
Fixed reference counting bugs in
Version 0.10.0 (2019-11-16)¶
Exception message for
oneif the iterable contains more than one element does show the first two elements.
Fixed a bug in
grouperthat lead to a fatal exception.
Version 0.9.0 (2019-11-02)¶
This library does not support Python 2.7 anymore. Attempting to install
iteration_utilities on Python <= 3.4 should not work anymore.
Add the statistics functions introduced in Python 3.6 and 3.8 as methods on the
Iterableclass. This includes:
fmean(Python >= 3.8)
geometric_mean(Python >= 3.8)
harmonic_mean(Python >= 3.6)
multimode(Python >= 3.8)
quantiles(Python >= 3.8)
Add a new recipe from the
Version 0.8.0 (2019-10-27)¶
Support for Python 3.3 and 3.4 was dropped. But it now supports Python 3.7 and 3.8. This will be the last release supporting Python 2.
Iterable.islicewill raise a more appropriate
TypeErrorwhen called without arguments.
partialonly allows plain
stras keyword-names in CPython 3.8.
Some constants have been available in the module namespace that were intended to be private. These have been removed. This includes
GE_PY3and similar constants.
Added support for PyPy (3.5 and 3.6).
Use experimental vectorcall protocol (PEP 590) in a few places.
Solomon Ucko (@sollyucko)
Version 0.7.0 (2018-01-28)¶
partialto return a more accurate size for the instance.
Fixed a problem when creating
mergeinstances depending on the compiler.
Version 0.6.1 (2017-04-15)¶
nextmethod of the processed iterator is not cached in the
iteration_utilitiesiterators anymore. This correctly handles the (rare) case that this method is reassigned or deleted.
Version 0.6.0 (2017-04-08)¶
funcparameter name of
functionparameter name of
AttributeErrorif it is not set and an attempt is made to get or delete it.
Added several attributes to classes.
Fixed a Bug in
isinstancefails for the classes given as
Changed internal package structure (shouldn’t affect end-users that imported everything from
improved performance of
improved performance of
replicatenow throws an exception if the
timesargument is smaller or equal to 1.
corrected handling of exceptions and overflow in
Version 0.5.2 (2017-03-30)¶
fix release (again).
Version 0.5.1 (2017-03-30)¶
fixed major mistake that made 0.5.0 unusable. (
%Rformatter isn’t allowed in
Version 0.5.0 (2017-03-30)¶
minor speedup for
included signature for
fixed potential segfault in
__reduce__methods were changed so they can’t used to cause segmentation faults,
SystemErroror blatantly wrong behaviour. However, serializing or copying such an instance can significantly slower as a result of this change. Unpickling these instances from previous versions could be impossible and
copy.copyis not supported (and probably won’t be ever because
__copy__methods). Affected iterators:
fixed a bug with
partialwhen the function kept the arguments and a call only provided exactly the number of arguments as there are placeholders in the partial.
flipinstance now simply returns the original function.
chainednow unwraps (if possible) other
chainedinstances when creating a new instance. This is only done if this won’t change the current behaviour.
Version 0.4.0 (2017-03-20)¶
ItemIdxKeycan detect recursive objects in their
The representation for
ItemIdxKeynow uses the classname even for subclasses.
partialcallback class, which is essentially
functools.partialbut also allows positional placeholders.
several functions now interpret
Noneas if that argument for the function wasn’t given:
all arguments for
Version 0.3.0 (2017-03-09)¶
clamp. However sensible results (!= 0) are only possible if
highwere not set.
SystemErrorin several functions when accessing the next item of the iterable resulted in an Exception different from
fixed a segfault in
complement.__call__method when the function raised an Exception.
fixed a segfault in
bool(item)raised an Exception.
included a missing
splitwhen two of the
keep*parameters are True. The case where all three were given already raised the correct exception.
high=Noneas if the corresponding value wasn’t given. Before it tried to compare the items with
Version 0.2.1 (2017-03-01)¶
fixed segfault in
Version 0.2.0 (2017-02-27)¶
deepflattenstring-aware. For other recursive-iterable classes a
RuntimeExceptionon python < 3.5) is raised instead of freezing.
Version 0.1.0 (2017-01-25)¶