head	1.21;
access;
symbols
	pkgsrc-2026Q3:1.19.0.2
	pkgsrc-2026Q3-base:1.19
	pkgsrc-2026Q2:1.18.0.4
	pkgsrc-2026Q2-base:1.18
	pkgsrc-2026Q1:1.18.0.2
	pkgsrc-2026Q1-base:1.18
	pkgsrc-2025Q4:1.17.0.2
	pkgsrc-2025Q4-base:1.17
	pkgsrc-2025Q3:1.16.0.4
	pkgsrc-2025Q3-base:1.16
	pkgsrc-2025Q2:1.16.0.2
	pkgsrc-2025Q2-base:1.16
	pkgsrc-2025Q1:1.15.0.2
	pkgsrc-2025Q1-base:1.15
	pkgsrc-2024Q4:1.14.0.2
	pkgsrc-2024Q4-base:1.14
	pkgsrc-2024Q3:1.13.0.2
	pkgsrc-2024Q3-base:1.13
	pkgsrc-2024Q2:1.12.0.4
	pkgsrc-2024Q2-base:1.12
	pkgsrc-2024Q1:1.12.0.2
	pkgsrc-2024Q1-base:1.12
	pkgsrc-2023Q4:1.10.0.2
	pkgsrc-2023Q4-base:1.10
	pkgsrc-2023Q3:1.7.0.8
	pkgsrc-2023Q3-base:1.7
	pkgsrc-2023Q2:1.7.0.6
	pkgsrc-2023Q2-base:1.7
	pkgsrc-2023Q1:1.7.0.4
	pkgsrc-2023Q1-base:1.7
	pkgsrc-2022Q4:1.7.0.2
	pkgsrc-2022Q4-base:1.7
	pkgsrc-2022Q3:1.5.0.6
	pkgsrc-2022Q3-base:1.5
	pkgsrc-2022Q2:1.5.0.4
	pkgsrc-2022Q2-base:1.5
	pkgsrc-2022Q1:1.5.0.2
	pkgsrc-2022Q1-base:1.5
	pkgsrc-2021Q4:1.3.0.2
	pkgsrc-2021Q4-base:1.3
	pkgsrc-2021Q3:1.1.0.10
	pkgsrc-2021Q3-base:1.1
	pkgsrc-2021Q2:1.1.0.8
	pkgsrc-2021Q2-base:1.1
	pkgsrc-2021Q1:1.1.0.6
	pkgsrc-2021Q1-base:1.1
	pkgsrc-2020Q4:1.1.0.4
	pkgsrc-2020Q4-base:1.1
	pkgsrc-2020Q3:1.1.0.2
	pkgsrc-2020Q3-base:1.1;
locks; strict;
comment	@# @;


1.21
date	2026.11.10.09.28.07;	author adam;	state Exp;
branches;
next	1.20;
commitid	1W9PAykJ5mp8CT2H;

1.20
date	2026.10.16.19.43.51;	author adam;	state Exp;
branches;
next	1.19;
commitid	z8jatkdHAjoiPJZG;

1.19
date	2026.08.14.08.29.09;	author adam;	state Exp;
branches;
next	1.18;
commitid	SRu3yRy0kBqm7ARG;

1.18
date	2026.01.06.11.18.43;	author wiz;	state Exp;
branches;
next	1.17;
commitid	KwiZcHB9zKU08kpG;

1.17
date	2025.10.09.07.57.34;	author wiz;	state Exp;
branches;
next	1.16;
commitid	t4nMY0Dt3rBjSRdG;

1.16
date	2025.04.12.19.43.14;	author adam;	state Exp;
branches;
next	1.15;
commitid	eNUIhFYfJvTgzNQF;

1.15
date	2025.02.23.16.59.18;	author wiz;	state Exp;
branches;
next	1.14;
commitid	kbo5dPTmHbFBcCKF;

1.14
date	2024.11.11.07.28.19;	author wiz;	state Exp;
branches;
next	1.13;
commitid	1fBDq3LwS98NncxF;

1.13
date	2024.09.13.19.21.43;	author adam;	state Exp;
branches;
next	1.12;
commitid	3FxkReHz3JcjeGpF;

1.12
date	2024.03.24.17.51.05;	author adam;	state Exp;
branches;
next	1.11;
commitid	pVCBpcW6eFYThr3F;

1.11
date	2024.01.04.22.42.52;	author adam;	state Exp;
branches;
next	1.10;
commitid	sLEh2umlMHrqtbTE;

1.10
date	2023.12.20.18.52.12;	author nros;	state Exp;
branches;
next	1.9;
commitid	9T34sEUWJTDmGeRE;

1.9
date	2023.12.19.21.10.47;	author nros;	state Exp;
branches;
next	1.8;
commitid	mnyq5zsOfpaUt7RE;

1.8
date	2023.12.18.05.48.47;	author adam;	state Exp;
branches;
next	1.7;
commitid	AiLS1sj0JGatpUQE;

1.7
date	2022.10.31.15.27.28;	author adam;	state Exp;
branches;
next	1.6;
commitid	3STkv2QzV896TSZD;

1.6
date	2022.10.20.08.59.16;	author adam;	state Exp;
branches;
next	1.5;
commitid	i1VzYzWoG7sN5rYD;

1.5
date	2022.01.05.22.26.42;	author wiz;	state Exp;
branches;
next	1.4;
commitid	d9L56kJbrMZOOunD;

1.4
date	2022.01.04.20.53.22;	author wiz;	state Exp;
branches;
next	1.3;
commitid	CYyhdK9qtoffkmnD;

1.3
date	2021.12.19.13.42.58;	author wiz;	state Exp;
branches;
next	1.2;
commitid	Osand19tKpbZsglD;

1.2
date	2021.11.16.19.42.31;	author adam;	state Exp;
branches;
next	1.1;
commitid	jZG2Z80kK4d8w3hD;

1.1
date	2020.08.18.20.19.20;	author riastradh;	state Exp;
branches;
next	;
commitid	F9vEFgB4fxPAlAkC;


desc
@@


1.21
log
@py-progressbar2: updated to 4.7.0

4.7.0 - 2026-11-05

Widgets are coloured by default: a bar on a colour terminal shows the
default palette without ``enable_colors=True``, spinners cycle through
colours, and the ``Bar`` fill colours are constructor arguments (``fg``,
``bg``) instead of the ``Bar.fg`` and ``Bar.bg`` class attributes. A
widget called directly returns the escape codes, and
``progressbar.utils.no_color`` strips them. Output to a file or pipe is
unchanged.

A parallel execution API: ``progressbar.map``, ``imap``,
``imap_unordered``, ``starmap``, ``thread_map``, ``process_map``,
``as_completed``, the asyncio variants ``amap``, ``aimap``,
``aimap_unordered`` and ``gather``, ``run`` for shell commands, and the
``progressbar.parallel`` decorator, with ``bar='multi'`` for an overall
bar plus a bar per task.

A forced redraw of the default widgets is 20 percent faster than in
4.6.0 and the fast path, the iterator overhead and the import time are
at or below their 4.6.0 cost, with colours on. Rendered colour escapes
are remembered per gradient and per colour, new-style templates are
validated once per template text, and captured writes take a cheaper
lock.

New-style format templates such as ``FormatLabel('{value.__class__}')``
or ``prefix='{value.__doc__} '`` now raise ``ValueError``: a template
walking dunder or frame attributes could reach interpreter internals.
Index access and ordinary attributes keep working, and a positional
field still raises ``IndexError`` as it did.

``desc`` is still the ``prefix`` alias and renders as a template, as it
did in 4.6.0. A literal brace in a description has to be doubled.

The fast bar reserves the width of ``prefix``, ``desc`` and ``suffix``
before sizing the filler, so a labelled bar no longer overflows the
terminal. Labels that are not
strings and an uncallable ``custom_len`` render as before.

The ``progressbar`` and ``bar`` commands exit with status 2 and a usage
line on an invalid option value, such as ``--size abc``, where they
printed a traceback before, and validate every argument before the
output file is opened. A pipeline whose reader goes away ends the copy
quietly with status 0.

``PROGRESSBAR_MINIMUM_UPDATE_INTERVAL`` set to a value that is not a
non-negative finite number is logged once and ignored instead of raising
at the first ``ProgressBar()``.

Deprecation warnings for ``maxval``, ``poll`` and ``currval`` name the
caller's file and line. A warnings filter by module ``progressbar`` no
longer matches them, a filter by category or message does.

``StreamWrapper.lock`` and ``listeners_lock`` are read-only properties
shared with the wrapped streams and reset after ``fork``. A subclass
that assigned its own lock raises ``AttributeError`` at construction.
``update_capturing()`` calls ``flush()`` once the last capture stops, as
in 4.6.0. ``wrapped_excepthook`` is a ``bool``.


The ``progressbar`` and ``bar`` commands, and ``python -m progressbar``,
now exit with status 130 after Ctrl-C interrupts a transfer. Previously
they exited with status 0. Scripts that check the exit status can now
distinguish an interrupted transfer from a completed copy.

The ``python-utils`` dependency now requires 4.1.4 or newer, up from
3.8.1. Older releases render a negative ``scale_1024`` power as
``0.1 YiB`` instead of the byte count. An environment that pins
``python-utils<4`` has to lift that pin before upgrading.

Captured output now survives a drain failure on the other stream, and
unwrapping restores the original stream even when its capture buffer is
closed. Built-in ``StringIO`` capture writes and drains remain atomic.
Caller-replaced buffers keep their method overrides, which run without
stream locks. As in 4.6.0, callers synchronise concurrent writes and drains
on those custom buffers. A capture-hook failure now retains the other
stream's exception in the primary failure's context chain.

Specialised format templates retain their escaping and result types.
Their field paths, including nested format specifications, are checked
before calling the application's formatter.

MultiBar expiry keeps a replacement registered under the same exact
``str`` label. Assignment, update, in-place union and ordinary removal
methods share its membership guard. Lifecycle tracking uses bar identity
without calling application hash or equality methods, and the guard resets
after fork.
Custom label objects retain their hash and equality hooks and their
identity as dictionary keys. Using one for mutation or indexing switches
that MultiBar instance permanently to the 4.6.0 concurrency contract:
callers synchronise concurrent mutation and rendering, including expiry.
These hooks run without the membership guard, even for later exact
``str`` lookups. Clearing the instance does not reset this mode. Direct
calls to ``dict`` base-class mutation methods bypass this protocol.
@
text
@# $NetBSD: Makefile,v 1.20 2026/10/16 19:43:51 adam Exp $

DISTNAME=	progressbar2-4.7.0
PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
CATEGORIES=	devel python
MASTER_SITES=	${MASTER_SITE_PYPI:=p/progressbar2/}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://github.com/WoLpH/python-progressbar
COMMENT=	Text progress bar library for Python
LICENSE=	modified-bsd

TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools_scm>=0:../../devel/py-setuptools_scm
DEPENDS+=	${PYPKGPREFIX}-utils>=4.1.4:../../devel/py-utils
TEST_DEPENDS+=	${PYPKGPREFIX}-dill>=0.3.6:../../textproc/py-dill
TEST_DEPENDS+=	${PYPKGPREFIX}-flake8>=3.7.7:../../devel/py-flake8
TEST_DEPENDS+=	${PYPKGPREFIX}-markupsafe>=2.0:../../textproc/py-markupsafe
TEST_DEPENDS+=	${PYPKGPREFIX}-sphinx>=1.8.5:../../textproc/py-sphinx
TEST_DEPENDS+=	${PYPKGPREFIX}-test-cov>=2.6.1:../../devel/py-test-cov

USE_LANGUAGES=	# none

PY_RENAME_BINARIES=	bar progressbar

TEST_ENV+=	PYTHONPATH=${WRKSRC}/build/lib

PYTHON_VERSIONS_INCOMPATIBLE=	311 # py-sphinx

do-test:
	${LN} -f -s ${WRKSRC}/examples.py ${WRKSRC}/tests/examples.py
	${LN} -f -s ${WRKSRC}/docs ${WRKSRC}/tests/docs
	cd ${WRKSRC} && ${SETENV} ${TEST_ENV} pytest-${PYVERSSUFFIX} tests

.include "../../lang/python/wheel.mk"
.include "../../mk/bsd.pkg.mk"
@


1.20
log
@Forget Python 3.10
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2026/08/14 08:29:09 adam Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.6.0
d14 2
a15 2
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools_scm-[0-9]*:../../devel/py-setuptools_scm
DEPENDS+=	${PYPKGPREFIX}-utils>=3.8.1:../../devel/py-utils
d18 1
a18 1
TEST_DEPENDS+=	${PYPKGPREFIX}-freezegun>=0.3.11:../../devel/py-freezegun
a20 1
TEST_DEPENDS+=	${PYPKGPREFIX}-test-mypy-[0-9]*:../../devel/py-test-mypy
d24 1
a24 1
PY_RENAME_BINARIES=	progressbar
@


1.19
log
@py-progressbar2: updated to 4.6.0

4.6.0

Performance

progressbar.progressbar() now auto-dispatches to a lean fast path for the common wrap-a-loop case, and an integer update gate keeps gated iterations to an increment, a compare and a store
Optional native iterator accelerator: pip install 'progressbar2[fast]'. See benchmarks/report.md for the numbers against tqdm, rich, alive-progress and click.

Features

tqdm-style arguments on progressbar(): desc, total, unit, unit_scale and postfix.
MultiBar(join_timeout=...) bounds the wait for unfinished bars on with-block exit.
TERM-based color detection generalized beyond xterm variants
AttributeDict is generic over its value type.

Fixes

28 bugs found in a full audit of the bar, widgets, MultiBar and the CLI
16-color mapping no longer collapses mid-intensity colors (e.g. maroon) to black.
The wheel no longer ships the repo-level benchmarks/, scripts/ and tools/ directories.

Documentation

Rebuilt as an interactive site: a tutorial, task-focused how-tos, per-widget pages with animated demos, and an in-browser Python console that runs every example live: https://progressbar-2.readthedocs.io/
Full API docstring coverage, enforced in CI.

Compatibility

Requires Python 3.10+ (was 3.8).
Still backwards compatible with the original progressbar package.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2026/01/06 11:18:43 wiz Exp $
d29 1
a29 1
PYTHON_VERSIONS_INCOMPATIBLE=	310 311 # py-sphinx
@


1.18
log
@*: forbid some more Python 3.11 for sphinx users

List from grep
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2025/10/09 07:57:34 wiz Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.5.0
a4 1
PKGREVISION=	1
d25 2
a30 4
post-install:
	cd ${DESTDIR}${PREFIX}/bin && \
	${MV} progressbar progressbar-${PYVERSSUFFIX} || ${TRUE}

d32 2
a33 1
	${LN} -f ${WRKSRC}/examples.py ${WRKSRC}/tests/examples.py
@


1.17
log
@*: remove reference to (removed) Python 3.9
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2025/04/12 19:43:14 adam Exp $
d28 1
a28 1
PYTHON_VERSIONS_INCOMPATIBLE=	310 # py-sphinx
@


1.16
log
@Fix PLIST after py-setuptools update; bump depends and revision
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2025/02/23 16:59:18 wiz Exp $
d28 1
a28 1
PYTHON_VERSIONS_INCOMPATIBLE=	39 310 # py-sphinx
@


1.15
log
@*: py-sphinx 8.2 drops support for Python 3.10
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2024/11/11 07:28:19 wiz Exp $
d5 1
d14 1
a14 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
@


1.14
log
@py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2024/09/13 19:21:43 adam Exp $
d27 2
@


1.13
log
@py-progressbar2: updated to 4.5.0

4.5.0
Improved build system with many more (and improved) type hints.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2024/03/24 17:51:05 adam Exp $
a14 1
TOOL_DEPENDS+=	${PYPKGPREFIX}-wheel-[0-9]*:../../devel/py-wheel
@


1.12
log
@py-progressbar2: updated to 4.4.2

v4.4.2
Fixed visible control characters issue on Windows.

v4.4.1
Included fix for the progressbar command

v4.4.0
Greatly improved Windows (colour) support and fixed several Windows bugs
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2024/01/04 22:42:52 adam Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.4.2
a25 2
PYTHON_VERSIONS_INCOMPATIBLE=	27

@


1.11
log
@py-progressbar2: updated to 4.3.2

v4.3.2
disabling run-command until it is properly finished

v4.3.1
fixed typeerror on Windows
excluded docs from install
added readthedocs configuration file
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2023/12/20 18:52:12 nros Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.3.2
d14 1
d30 4
@


1.10
log
@py-progressbar2: also needs wheel to build wheel
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2023/12/19 21:10:47 nros Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.3.0
a26 4
post-install:
	cd ${DESTDIR}${PREFIX}/bin && \
	${MV} cli-name cli-name-${PYVERSSUFFIX} || ${TRUE}

@


1.9
log
@py-progressbar2: uses setuptools as build engine for wheel
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2023/12/18 05:48:47 adam Exp $
d14 1
@


1.8
log
@py-progressbar2: updated to 4.3.0

v4.3.0

Added support for multithreading, multiprocessing, colors (16, 256 and full color) and many interactive terminal features such as continuous printing for a live ETA
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2022/10/31 15:27:28 adam Exp $
d13 1
@


1.7
log
@py-progressbar2: updated to 4.2.0

v4.2.0
Added increment() method for easy usage as callback from libraries such as boto
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2022/10/20 08:59:16 adam Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.2.0
d13 2
a14 1
DEPENDS+=	${PYPKGPREFIX}-utils>=3.0.0:../../devel/py-utils
d17 1
a17 1
TEST_DEPENDS+=	${PYPKGPREFIX}-test>=4.6.9:../../devel/py-test
d23 5
a27 1
PYTHON_VERSIONS_INCOMPATIBLE=	27 # py-utils
d35 1
a35 1
.include "../../lang/python/egg.mk"
@


1.6
log
@py-progressbar2: updated to 4.1.1

v4.1.1
Fixed backwards compatibility with original progressbar library

v4.1.0
Delegate unknown attrs to target in WrappingIO
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2022/01/05 22:26:42 wiz Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.1.1
@


1.5
log
@py-progressbar2: update to 4.0.0.

Updated to Python 3.10 including type hinting
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2022/01/04 20:53:22 wiz Exp $
d3 1
a3 1
DISTNAME=	progressbar2-4.0.0
d14 1
a18 1
TEST_DEPENDS+=	${PYPKGPREFIX}-flake8-[0-9]*:../../devel/py-flake8
@


1.4
log
@*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2021/12/19 13:42:58 wiz Exp $
d3 1
a3 1
DISTNAME=	progressbar2-3.55.0
a4 1
PKGREVISION=	1
d13 1
a13 2
DEPENDS+=	${PYPKGPREFIX}-six>=0:../../lang/py-six
DEPENDS+=	${PYPKGPREFIX}-utils>=2.3.0:../../devel/py-utils
d17 2
d24 2
@


1.3
log
@py-utils: mark as not for python 2.7

Also mark its users that way
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2021/11/16 19:42:31 adam Exp $
d5 1
@


1.2
log
@py-progressbar2: updated to 3.55.0

3.55.0:
Unknown changes
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2020/08/18 20:19:20 riastradh Exp $
d21 2
@


1.1
log
@Import progressbar2-3.51.4 from pypi as devel/py-progressbar2.

Text progress bar library for Python.
@
text
@d1 1
a1 1
#	$NetBSD$
d3 1
a3 1
DISTNAME=	progressbar2-3.51.4
d5 1
a5 1
CATEGORIES=	devel
d14 1
a14 3
DEPENDS+=	${PYPKGPREFIX}-utils>=0:../../devel/py-utils

TEST_DEPENDS+=	${PYPKGPREFIX}-flake8>=3.7.7:../../devel/py-flake8
d16 1
a16 1
TEST_DEPENDS+=	${PYPKGPREFIX}-sphinx>=1.8.5:../../textproc/py-sphinx
d18 2
a19 1
TEST_DEPENDS+=	${PYPKGPREFIX}-test>=4.6.9:../../devel/py-test
d22 2
a23 3
	${RUN} cd ${WRKSRC}/tests && \
	${SETENV} ${TEST_ENV} PYTHONPATH=${WRKSRC}/build/lib \
	pytest-${PYVERSSUFFIX}
@

