NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1489 most downloaded on PyPI
A fancy and practical functional tools
Last release 24 days ago
10 Sep 2026
Release timing varies
gaps range from 2 months to 3.5 years
Nearly every release is documented
notes for 50 of 52 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
52 releases · first in 2012
support Python 3.12, 3.13, 3.14 officially
improved call._whatever_ arg introspection: pos-only, kw-only, kwargs and varargs are supported Backwards incompatible changes:
One column per quarter.
use more precise timer timeit.default_timer for log*durations (Saugat Pachhai)
timeit.default_timer for log*durations (Saugat Pachhai)made throttle() and limit_error_rate() work on methods
unify @memoize() and @cache(): both have .skip/.memory/.invalidate/.invalidate_all now
made rpartial accept keyworded arguments (Ruan Comelli)
@cache.invalidate() idempotent (Dmitry Vasilyanov)stated Python 3.7 and 3.8 support
- added @wrap_with() - added nullcontext
more introspection in @decorator decorators
switched docs and internals to Python 3
added repr_len param to various debug utils
support extended function semantics in iffy (Eric Prykhodko)
fix @cache with mixed positional and keywords args (thx to adrian-dankiv)
added unit and threshold params to *_durations() utils
make where() skip nonexistent keys (Aleksei Voronov)
filled in docstrings and some names
added LazyObject (simplistic, experimental and not documented)
fixed defaults in double @decorated function
better error message on call.missed_arg access
fix deprecation warnings in Python 3.5 and 3.6
fixed (print|log)_* on non-function callables
fixed 3+ argument map() in Python 3
fixed i?partition_by() for non-boolean extended mapper
added (log|print)_iter_durations() to debug utils
added pluck_attr() (Marcus McCurdy)
support arguments in print_(calls|exits)
added timeout argument to @retry() (rocco66)
added @contextmanager, ContextDecorator
lzip() is now exported by default from/for py3 Backward incompatible fixes:
fixed @retry in python 3 Backward incompatible changes:
a_dict.get instead of just a_dict for old behaviour.- optimized @decorator
optimized zipdict() Backward incompatible changes:
added experimental python 3 support
added group_by_keys() Backward incompatible changes:
fixed i?partition() and i?chunks() with xrange() Backward incompatible changes:
added izip_values() and izip_dicts()
- fixed installation issue
added @post_processing() flow utility
fixed decorators produced with @decorator over non-functions
more and better docs Backward incompatible changes:
added ints and slices to extended fn semantics
better support for arg introspection in @decorator Backward incompatible changes:
docs for debugging utilities Backward incompatible changes:
extended predicate/mapping semantics for seq and coll utils
support iterators in walk*(), select*(), empty() and project()
better docs Backward incompatible changes:
added some object helpers: namespace base class and @cached_property
more and better docs Backward incompatible changes:
walk() and select() work with strings now Backward incompatible changes:
- one argument keep() - fallback() flow
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →