v7.17.0
- All built-in themes now apply the man-pages(7) font convention: literal tokens (command and subcommand names, aliases, option flags, choice values) render bold, and replaceable tokens (metavars, argument names) render italic, layered on top of each palette's colors. The split is declared by the new
LITERAL_STYLES/REPLACEABLE_STYLESfrozensets inclick_extra.theme, and a test enforces that every built-in theme keeps it. To avoid piling bold onto slots that already stand out,heading(now color + underline),deprecated, andsearchdrop their bold;criticalkeeps it, as it is the only cue distinguishing it fromerror. Inlightandsolarized_dark,headingis recolored (to magenta and violet respectively) so it stays distinct from the now-bold options and subcommands it previously shared a color with. - Add a
manpagebuilt-in theme: a colorless palette rendering the same bold-literal / italic-replaceable convention with no color, shadowing howman-pages(7)typesets a command. Selectable via--theme manpage. HelpCommandnow raisesclick.NoSuchCommandinstead ofclick.UsageErrorwhen an unknown subcommand is requested. The user sees did-you-mean suggestions:Error: No such command 'instal'. (Did you mean one of: 'install', 'uninstall'?).- Bump the Click floor to
8.4.1. Click8.4.0(PR pallets/click#3423) injects a space between an option's help text and its(DEPRECATED)label. The8.4.1floor (not8.4.0) is required because Click8.4.0(PR pallets/click#3404) delayedset_parameter_sourceuntil afterprocess_value, so eager callbacks that introspectctx.get_parameter_source(self.name)readNoneand missed whether the option was set from the command line, environment, or default. This brokeColorOption'sNO_COLOR/FORCE_COLORprecedence detection,ConfigOption's explicit-vs-autodiscover branching, andShowParamsOption'sSourcecolumn. Click8.4.1(PR pallets/click#3484) restores the pre-8.4.0contract. - Remove the
HelpExtraFormatter.write_usageoverride. Click8.4.0(PR pallets/click#3420) madeTextWrappermeasure visible width instead of raw bytes, so the 24-bit-RGB-theme wrap workaround is no longer needed. - Drop the explicit
type=UNPROCESSEDfromNoConfigOption.__init__. Click8.4.0(PR pallets/click#3363) auto-detectsUNPROCESSEDforflag_valuewith non-basic types, so theflag_value=NO_CONFIGsentinel reachesOptionunchanged on its own. - Bump the
requestsfloor to2.34. Requests2.34.0ships inline type annotations, so thetypes-requestsstub package is no longer needed and has been removed from thetypingdependency group. - Bump the
myst-parserfloor in thedocsdependency group to5.1. Doc builds now usemyst-parser's native"alert"syntax extension (added in5.1.0) instead of the in-tree regex converter inclick_extra.sphinx.alerts;"alert"is added tomyst_enable_extensionsindocs/conf.py. The in-tree converter remains in place for the base test dependency group, wheremyst-parser>=4still resolves to4.xon Python 3.10. - Drop the
coloramatest-matrix variation. Click PR pallets/click#3505 merged the Colorama-removal branch intostable, making a dedicated CI axis unnecessary.
Full changelog: v7.16.1...v7.17.0
🛡️ VirusTotal scans
| Binary | Detections | Analysis |
|---|---|---|
click-extra-7.17.0-linux-arm64.bin |
0 / 52 | View scan |
click-extra-7.17.0-linux-x64.bin |
0 / 59 | View scan |
click-extra-7.17.0-macos-arm64.bin |
1 / 60 | View scan |
click-extra-7.17.0-macos-x64.bin |
pending | View scan |
click-extra-7.17.0-windows-arm64.exe |
1 / 68 | View scan |
click-extra-7.17.0-windows-x64.exe |
5 / 71 | View scan |