No change is breaking unless explicitly stated.
- Add explicit support for Python 3.12 and 3.13
- Rewrite
flatten
using a stack to support deeply-nested iterables
- Drop support for Python 3.7 and 3.8
- Add
clj.partition_by
- Add
clj.seq_gen
as an equivalent ofseq
that returns a generator rather than a sequence
nth
no longer accepts negative indices (this mimics the Clojure function).
nth
doesn’t try to consume its argument if a negative index is given. The type hint of the parameternot_found
is now correct.- Ensure
clj/py.typed
is included in the package - Eliminate an internal function call in
is_odd
- Improve some type hints
- Remove deprecated
setup.py
- Add
clj/py.typed
to indicate we support type checking (PEP 561) - Fix the version in
pyproject.toml
- Drop support for Python 2.x
- Drop support for Python 3.6 and below
- No longer accept
None
as a valid parameter forfirst
- Add type hints to most functions
- Add
is_even
andis_odd
- Make
shuffle
work on all iterables, not just lists - Document the behavior of
last
on empty iterables - Add
pyproject.toml
to the package
- Add
partition
(partial implementation) - Remove deprecation notices.
- Add
dedupe
(contributed by @jaihindhreddy)
- Add
reverse
- Add lazy implementations of
map
andfilter
in Python 2 - Fix
split_at
andsplit_with
that would try (and fail) to consume twice their input.
- Add
seqs.tree_seq
,seqs.empty
- Import everything in
clj
as well so one can useclj.inc
orclj.first
; no need to import submodules anymore.
- Add
fns.juxt
,fns.inc
,fns.dec
- Fix an infinite loop in
seqs.cycle
when a generator was passed - Fix
setup.py
issues whenLANG
isn’t set (contributed by @tdhopper)
Initial release.