NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #201 most downloaded on PyPI
Functools like those found in stdlib
Last release 2 months ago
14 Jul 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 48 of 52 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
52 releases · first in 2015
Add signed wrapper to render a value with an explicit sign.
Add signed wrapper to render a value with an explicit sign.
bypass_when and bypass_unless now accept callable checks and evaluate them on each invocation instead of binding only at decoration time.
bypass_when and bypass_unless now accept callable checks and evaluate them on each invocation instead of binding only at decoration time. (#36)
One column per quarter.
Features -------- - Add noop.
Add noop.
Features -------- - Add none_as function.
Add none_as function.
No significant changes.
No significant changes.
Added missing splat in stubs -- by Avasam
Add 'passthrough' function.
Added missing splat in stubs -- by Avasam (#29)
Features -------- - Added chainable decorator.
Added chainable decorator.
No significant changes.
No significant changes.
No significant changes.
No significant changes.
Removed deprecated 'call_aside'.
Added splat function.
Removed deprecated 'call_aside'. (#21)
Enhanced type hints and declare the package as typed. Module is now a package.
Enhanced type hints and declare the package as typed. Module is now a package. (#22)
Restored type checking and repaired broken exclusion.
Restored type checking and repaired broken exclusion. (#50550895)
Features -------- - Require Python 3.8 or later.
Require Python 3.8 or later.
Added bypass_unless and bypass_when and identity.
Added bypass_unless and bypass_when and identity.
#21: Renamed call_aside to invoke, deprecating call_aside.
#21: Renamed call_aside to invoke, deprecating call_aside.
Refreshed packaging.
Refreshed packaging.
Packaging refresh. Enrolled with Tidelift.
Packaging refresh.
Enrolled with Tidelift.
* #19: Add type annotations to method_cache. * Require Python 3.7.
#19: Add type annotations to method_cache.
Require Python 3.7.
apply now uses functools.wraps to ensure docstring passthrough.
apply now uses functools.wraps to ensure docstring passthrough.
#18: In method_cache, support cache_clear before cache is initialized.
#18: In method_cache, support cache_clear before cache is initialized.
Refreshed package metadata.
Refreshed package metadata.
Switched to PEP 420 for jaraco namespace.
Switched to PEP 420 for jaraco namespace.
Added except_ decorator.
Added except_ decorator.
#14: Removed unnecessary compatibility libraries in testing.
#14: Removed unnecessary compatibility libraries in testing.
Require Python 3.6 or later.
Require Python 3.6 or later.
Switch to pkgutil namespace technique _ for the jaraco namespace.
Switch to pkgutil namespace technique for the jaraco namespace.
Added save_method_args, adopted from irc.functools.
Added save_method_args, adopted from irc.functools.
Added .reset support to once.
Added .reset support to once.
Add result_invoke decorator.
Add result_invoke decorator.
Add retry decorator.
Add retry decorator.
#7: retry_call now accepts infinity for the retries parameter.
#7: retry_call now accepts infinity for the retries parameter.
Refresh packaging.
Refresh packaging.
Fix assign_params on Python 2.
Fix assign_params on Python 2.
Add assign_params function.
Add assign_params function.
Add pass_none decorator function.
Add pass_none decorator function.
Add print_yielded func implementing the func of the same name found in autocommand docs.
Add print_yielded func implementing the func of the same name found in autocommand docs.
Issue #6: Added a bit of documentation and xfail tests showing that the method_cache can't be used with other decorators such as property.
Issue #6: Added a bit of documentation and xfail tests showing that the method_cache can't be used with other decorators such as property.
Include dates and links in changelog.
Include dates and links in changelog.
Use Github for continuous deployment to PyPI.
Use Github for continuous deployment to PyPI.
Add retry_call, a general-purpose function retry mechanism. See test_functools for tests and example usage.
Add retry_call, a general-purpose function retry mechanism. See test_functools for tests and example usage.
Nothing published for this version
Nothing published for this version
More generous handling of missing lru_cache when installed on Python 2 and older pip. Now all functools except method_cache will continue to work even
More generous handling of missing lru_cache when installed on Python 2 and older pip. Now all functools except method_cache will continue to work even if backports.functools_lru_cache is not installed. Also allows functools32 as a fallback if available.
Moved hosting to github.
Moved hosting to github.
method_cache now accepts a cache_wrapper parameter, allowing for custom parameters to an lru_cache or an entirely different cache implementation.
method_cache now accepts a cache_wrapper parameter, allowing for custom parameters to an lru_cache or an entirely different cache implementation.
Use backports.functools_lru_cache to provide lru_cache for Python 2.
Implement Throttler as a descriptor so it may be used to decorate methods. Introduces first_invoke function.
Implement Throttler as a descriptor so it may be used to decorate methods. Introduces first_invoke function.
Fixed failure in Throttler on Python 2 due to improper use of integer division.
Nothing published for this version
Added Throttler class from irc _.
Added Throttler class from irc.
Added call_aside decorator.
Added call_aside decorator.
Added apply decorator.
Added apply decorator.
Nothing published for this version
Initial release drawn from jaraco.util.
Initial release drawn from jaraco.util.
Your coding agent can read these notes before it upgrades. Set up the MCP server →