Note that this update introduces breaking changes.
Implement a Functions
helper class for common procedures such as
invert
is_even
is_odd
miller_rabin
sign
The overload in the Iter
constructor was removed in favor of a static Iter.range
method to enforce separation of concerns more diligently. Additional minor modifications
were made to pretty much all doc strings to reflect the recent changes that are
to be consolidated for more information. In brief,
- the
chunk_by
method now also provideseject
as an optional argument - the
concat
method was renamed tounion
iterable
anditer
keyword arguments were renamed toiter_
- the method signature of the
range
method has changed and added support for decrements - the
empty
method was renamed tois_empty
The following methods are new:
self.cartesian
self.combinations
self.combinations_with_replacement
self.difference
self.duplicates
self.flatten
self.intersects
self.is_disjoint
self.is_subset
self.is_superset
Iter.linspace
Iter.open
self.permutations
self.save
self.symmetric_difference
Iter.randint
self.to_dict
self.to_list
self.transpose
self.__eq__
self.__ne__
self.__iter__
self.__next__
Starting with version 0.0.5
, this library now also pulls in typing_extensions
as an external dependency. Support for Python 3.7 has been dropped which makes
version 3.8 the new baseline in this project.
Refactors code and improves the doc strings here and there. The Iter.__ctor
method
was removed in favor of Iter.range
for implementing the Iter.__init__
overload.
Additionally, the following methods have been removed as well:
self.each
self.fetch
Turns out they are not that useful in Python after all.
See below for a break down of the development status of all methods provided by
the Iter
class. Some methods also provide overloads via typing
. Support for
working with dictionaries is rather scarce. Like Enum
in Elixir, this is an eager
implementation meaning that generators are always converted into lists, thus consumed
all at once. Perhaps there will be a Stream
-like structure in the future that's
compatible with Iter
, though it remains to be seen whether such a thing will be
implemented in the future.
-
self.__init__
-
self.all
-
self.any
-
self.at
-
self.avg
-
self.chunk_by
-
self.chunk_every
-
self.chunk_while
-
self.concat
-
self.count
-
self.count_until
-
self.dedup
-
self.dedup_by
-
self.drop
-
self.drop_every
-
self.drop_while
-
self.each
-
self.empty
-
self.fetch
-
self.filter
-
self.find
-
self.find_index
-
self.find_value
-
self.flat_map
-
self.flat_map_reduce
-
self.frequencies
-
self.frequencies_by
-
self.group_by
-
self.intersperse
-
self.into
-
self.join
-
self.map
-
self.map_every
-
self.map_intersperse
-
self.map_join
-
self.map_reduce
-
self.max
-
self.member
-
self.min
-
self.min_max
-
self.product
-
self.random
-
Iter.range
-
self.reduce
-
self.reduce_while
-
self.reject
-
self.reverse
-
self.reverse_slice
-
self.scan
-
Iter.shorten
-
self.shuffle
-
self.slice
-
self.slide
-
self.sort
-
self.split
-
self.split_while
-
self.split_with
-
self.sum
-
self.take
-
self.take_every
-
self.take_random
-
self.take_while
-
self.uniq
-
self.unzip
-
self.with_index
-
self.zip
-
self.zip_reduce
-
self.zip_with
-
self.__repr__
-
self.__str__
The static non-standard functions Iter.range
and Iter.shorten
have been added
for convenience purposes only. The method signature uniq_by
does not appear in
this list yet; it may be added in future versions of this library.
Finalize package structure for development and setup release pipeline.
Register package name of PyPI.