Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: wolph/python-progressbar
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: wolph/python-progressbar
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: develop
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 11 commits
  • 144 files changed
  • 1 contributor

Commits on Aug 14, 2026

  1. Configuration menu
    Copy the full SHA
    69cc258 View commit details
    Browse the repository at this point in the history
  2. feat: parallel execution verbs with reliable progress bars (#327)

    * feat(parallel): shared plumbing for the parallel verbs
    
    * feat(parallel): display layer with keep-alive plain display
    
    * feat(parallel): MultiBar-backed per-task display
    
    * feat(parallel): sync engine and ordered map over threads
    
    * feat(parallel): pin error, timeout and interrupt contracts
    
    * test(parallel): process and interpreter pools with auto-chunking
    
    * feat(parallel): lazy ordered imap and completion-order imap_unordered
    
    * feat(parallel): starmap, tqdm-style aliases and as_completed
    
    * feat(parallel): reusable Pool layer
    
    * feat(parallel): asyncio engine and amap
    
    * feat(parallel): aimap, gather drop-in and AsyncPool
    
    * feat(parallel): run() shell helper
    
    * feat(parallel): @parallel decorator
    
    * feat(parallel): public API exports
    
    * docs(parallel): howto, reference and README section
    
    * test(parallel): close coverage gaps to 100% branch
    
    * fix(ci): version-gate coverage, subinterpreter pickling and Windows argv quoting
    
    * test(perf): guard import laziness and parallel coordinator scaling
    
    * fix(lint): parenthesize the laziness probe for ISC004 (ruff 0.16)
    wolph authored Aug 14, 2026
    Configuration menu
    Copy the full SHA
    885dd78 View commit details
    Browse the repository at this point in the history
  3. docs(readme): benchmark-race hero, animated demos, Markdown conversion

    Rewrite the README as Markdown with a measured-data wow layout and wire
    up the assets and gates that keep it honest:
    
    - README.md replaces README.rst: centered badge row, animated benchmark
      race hero, feature sections with animated SVG demos (colors, logs,
      multibar, parallel execution, pv-style CLI), verified stability
      numbers, retained reference content
    - benchmarks: measure plain progressbar2 and progressbar2[fast]
      separately in scenarios A and C, add speedups to requirements,
      refresh results/report/chart against current develop
    - scripts/render_race.py: deterministic race SVG generated from
      results.json, byte-drift gated in tox docs-demos next to
      render_demos --check
    - new registry demos readme/colors, readme/parallel and readme/cli with
      capture tests, README code blocks test-synced to the example sources
    - render_demos: drop rows that MultiBar clears so removed bars no
      longer linger as stale duplicate frames
    - fix(bar): NullBar.finish() now flips _finished, so a NullBar inside a
      MultiBar context cannot hang the exit wait (regression test included)
    - tox: new readme env builds the sdist and runs twine check --strict
      (with readme_renderer[md]) in CI
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    2b85370 View commit details
    Browse the repository at this point in the history
  4. style(readme): two-space trailing comments in the parallel snippet

    Newer ruff releases format Python code blocks inside Markdown and
    reject the column-aligned comments the CI formatter gate runs against.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    2c66e91 View commit details
    Browse the repository at this point in the history
  5. ci: absorb experimental-env timeouts at the job level

    A job that hits timeout-minutes is cancelled rather than failed, which
    the step-level continue-on-error cannot absorb. The experimental
    docs-linkcheck env did exactly that while waiting on slow external
    servers and marked the whole run cancelled.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    7e49444 View commit details
    Browse the repository at this point in the history
  6. docs(linkcheck): bound external requests to 15 seconds

    One hanging external server blocked its linkcheck worker forever and
    ran the CI docs-linkcheck job into its 10-minute kill, ending the job
    as cancelled (which continue-on-error cannot absorb) instead of failed
    (which it can). Seen on three of the last four develop runs, including
    one that predates today's README work.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    f249fb8 View commit details
    Browse the repository at this point in the history
  7. docs(linkcheck): skip self-repo GitHub links and cap 429 backoff

    GitHub rate-limits anonymous CI requests to its own web pages. The
    /commits/develop link in the docs drew 429s with exponential backoff
    sleeps of up to 300 seconds each, which single-handedly blew the
    docs-linkcheck job's 10-minute budget. Links into this repository
    verify nothing worth that cost, so they are skipped, and the remaining
    backoff is capped at 30 seconds.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    76d061f View commit details
    Browse the repository at this point in the history
  8. docs(readme): gradient percentage on the plain race lane, history wor…

    …ding
    
    The full bar's default widgets color the percentage readout with the
    red to green progress gradient, so the plain progressbar2 lane in the
    benchmark race now wears that too instead of rendering colorless. The
    stability section states the support history the way it actually ran:
    non-stop since 2012, and since 2008 before that as the original
    progressbar library.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    c10b76b View commit details
    Browse the repository at this point in the history
  9. fix(widgets): restore the Bar fill's default gradient

    Bar declared fg=colors.gradient and bg=None as plain class attributes
    that nothing reads: the color machinery only consults _gradient_colors,
    which stayed all-None, so the default bar fill rendered colorless on
    every terminal while Percentage and SimpleProgress (via ColoredMixin)
    colored correctly. The fill now sweeps the red to green gradient with
    progress, as the dead attributes always intended.
    
    Fallout handled with it:
    
    - render_demos: classify progress lines against SGR-stripped text.
      PERCENT_RE finds no word boundary in '...39m100%' and BAR_RE cannot
      match a fill with color codes woven through it, so the colored 100%
      finish line misclassified as log output and the log-window demos
      never showed their bars completing.
    - tests: same stripping for the BAR_RE-based assertions, a regression
      test for the gradient default, and a colors-opted-out test keeping
      the no-colors branch covered.
    - 35 demo SVGs re-rendered with the gradient fill, and the benchmark
      race's plain progressbar2 lane now colors its fill the same way the
      real default does.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    6e5c634 View commit details
    Browse the repository at this point in the history
  10. docs: drop obsolete compat boilerplate from the examples

    `from __future__ import annotations` does nothing on the 3.10+ range
    this package supports, so the examples readers copy from should not
    carry it. Also removes the now-pointless FA lint selection and the
    python2-era shebang in examples.py.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    8c0039a View commit details
    Browse the repository at this point in the history
  11. feat(cli): add a bar shorthand for the pv-style command

    pip install progressbar2 now also puts a three-keystroke bar command
    on the path, the same progressbar.__main__:main entry point, so
    pipelines read tar cf - src/ | bar --bytes --rate > backup.tar. The
    README, CLI reference, and the readme/cli example docstring teach it,
    and a packaging test pins both console scripts to the same entry
    point.
    wolph committed Aug 14, 2026
    Configuration menu
    Copy the full SHA
    a2c09de View commit details
    Browse the repository at this point in the history
Loading