8.3.3
📦 clickView on GitHub →
✨ 1 features🐛 6 fixes⚡ 1 deprecations🔧 6 symbols
Summary
Click 8.3.3 is a bug fix release that improves command execution security by removing shell=True, fixes issues with default values in help rendering and flags, and enhances test isolation.
Migration Steps
- If you were relying on make_default_short_help, note that it is now considered private API.
✨ New Features
- Show custom show_default string in prompts, matching the existing help text behavior.
🐛 Bug Fixes
- Fixed TypeError when rendering help for an option whose default value is an object that doesn't support equality comparison with strings, such as semver.Version.
- Fixed pager test pollution under parallel execution by using pytest's tmp_path fixture instead of a shared temporary file path.
- Treated Sentinel.UNSET values in a default_map as absent, so they fall through to the next default source instead of being used as the value.
- Patched pdb.Pdb in CliRunner isolation so pdb.set_trace(), breakpoint(), and debuggers subclassing pdb.Pdb (ipdb, pdbpp) can interact with the real terminal instead of the captured I/O streams.
- CliRunner's redirected streams now expose the original file descriptor via fileno(), so that faulthandler, subprocess, and other C-level consumers no longer crash with io.UnsupportedOperation.
- Fixed default=True with boolean flag_value always returning the flag_value instead of True. The default=True to flag_value substitution now only applies to non-boolean flags, where True acts as a sentinel meaning "activate this flag by default". For boolean flags, default=True is returned as a literal value.
Affected Symbols
⚡ Deprecations
- Marked make_default_short_help as private API.