v8.8.0
- Breaking:
OperationTrailnow gates its per-item and finisher elapsed times on a newtimerargument that defaults toNone, following--time/--no-time; its finisher no longer always shows a clock (passtimer=Trueto restore it). - Add
spinnerandprogress_bararguments toOperationTrailto render its concurrent aggregate indicator as a spinner from theSPINNERScatalog or a determinate progress bar. Closes #1860. - Add a
clockargument toOperationTrail("elapsed"by default, or"eta"), choosing whether a running spinner or bar counts elapsed time up or estimated time remaining down. - Add an
OperationTrail.operation()handle whosemark()records an outcome timed from when the operation began. - Render the
OperationTrailsequential finish-line elapsed time in the compact clock format, so a run past a minute reads1:15, not75.3s. - Gate the estimated-time display of
click_extra.progressbaron--timethrough a new tri-stateshow_etaargument (defaultNone; Click's own default isTrue). - Add a
traildemo subcommand to theclick-extraCLI, running a simulated batch behind anOperationTrailto showcase its sequential, spinner and progress-bar renderings in a real terminal. - Move the self-updating block primitives (
update_blocks,marker_res,replace_region) to a new dependency-lightclick_extra.blocksmodule, importable without thesphinxextra; they stay re-exported fromclick_extra.sphinx. - Add a
padoption toreplace_regionto keep the closing marker flush against the body, for regions constrained bymdformat-footnote. - Add a
click_extra.humanizemodule withformat_sizeandformat_duration, rendering byte counts (IEC binaryKiB/MiB, SI decimalkB/MB, or JEDECKB/MB) and elapsed durations (2.3s,1:05,1:02:03) as compact strings. - Add
parse_duration,parse_friendly_durationandparse_iso8601_durationtoclick_extra.types: soft,None-returning counterparts of theDurationparameter type, for parsing durations read from files or other machine sources. - Add a
click_extra.outputmodule withprep_pathandis_stdout(and theSTDOUT_SENTINELconstant): open an--outputpath for writing as UTF-8, treating-as stdout and creating missing parent directories. - Add
config_table_to_flagstoclick_extra.config: translate a[tool.X]-style configuration table into long-form CLI flags for tools that mirror their config keys as options but cannot read the table themselves. - Work around pallets/click#3571 in
click_extra.progressbar: a bar withshow_pos=Trueand anupdate_min_stepsthat does not divide its length now renders its final position instead of freezing below it.
Full changelog: v8.7.0...v8.8.0