NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4835 most downloaded on PyPI
A lightweight Python library for creating wrapper functions with enhanced argument handling using sentinel values to mark parameters as required or optional.
Last release 5 months ago
28 Apr 2026
Ships fairly regularly
a new release about every 1.6 years
Nearly every release is documented
notes for 3 of 3 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
4 releases · first in 2023
Modernize type hints for Python 3.10+: use dict[str, Any], tuple[...], and X | None instead of typing.Dict, typing.Tuple, typing.Optional.
Minor Improvements
Modernize type hints for Python 3.10+: use dict[str, Any], tuple[...], and X | None instead of typing.Dict, typing.Tuple, typing.Optional.
Add return type annotations to check_required, _validate, and __post_init__.
Improve to_kwargs() and _split_req_opt() efficiency by using inline dict comprehension instead of routing through remove_optional(**...).
Use idiomatic value is not OPT instead of (value is OPT) is False in remove_optional().
Bugfixes
Fix incorrect sentinel name NA in module docstring (should be OPT).
Fix docstring examples showing prepare_kwargs(dict) instead of correct prepare_kwargs(**dict) syntax.
Fix doctest showing ValueError instead of ParamError in prepare_kwargs docstring.
Remove incorrect # pragma: no cover annotations on code paths that are actually covered by tests.
Miscellaneous
Migrate project tooling from Poetry/Makefile to uv/mise.
Update README with comprehensive usage examples and API reference table.
One column per quarter.
Add the old NOTHING API in >=0.1.1,<1.0.0 back as an alias of OPT.
Bugfixes
Add the old NOTHING API in >=0.1.1,<1.0.0 back as an alias of OPT.
Add the old resolve_kwargs API in >=0.1.1,<1.0.0 back as an alias of remove_optional.
YANK 1.0.0.
Public API are moved away from func_args to func_args.api name space.
💥Breaking Changes
Public API are moved away from func_args to func_args.api name space.
All public API in func_args<1.0.0 is removed.
NOTHING is replaced by func_args.api.OPT.
resolve_kwargs is replaced by func_args.api.remove_optional.
Features and Improvements
func_args.api.T_KWARGS
func_args.api.T_OPT_KWARGS
func_args.api.ParamError
func_args.api.REQ
func_args.api.OPT
func_args.api.check_required
func_args.api.remove_optional
func_args.api.prepare_kwargs
func_args.api.BaseModel
func_args.api.BaseFrozenModel
Upgrade the underlying sentinel package to 1.0.0.
Features and Improvements - First release - add sentinel NOTHING. - add resolve_kwargs.
Features and Improvements
First release
add sentinel NOTHING.
add resolve_kwargs.
Your coding agent can read these notes before it upgrades. Set up the MCP server →