Compare commits

...
Sign in to create a new pull request.

38 commits

Author SHA1 Message Date
Python Maint
bb4d7e8077 Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:01:43 +02:00
Python Maint
47d1dfb924 Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 14:25:42 +02:00
Fedora Release Engineering
11086bec8a Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 09:27:00 +00:00
Python Maint
b9cfe2cc78 Rebuilt for Python 3.14 2025-06-02 20:34:02 +02:00
Fedora Release Engineering
0574505f81 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-18 17:25:08 +00:00
Carl George
70c30f0ba5 Convert to pyproject macros
This updates the spec file to follow the modern Python Packaging
guidelines where possible.
2024-09-25 12:47:46 -05:00
Pavel Raiskup
9dde5d8b5f README.md: note about Copr builds 2024-09-25 07:28:41 +02:00
Pavel Raiskup
ffb3785f1f Make the changelog chronologically ordered 2024-09-25 07:28:41 +02:00
Pavel Raiskup
853f4fd193 Update the synchronizing script 2024-09-25 07:28:38 +02:00
Fedora Release Engineering
10a4af73ce Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-19 14:12:37 +00:00
Python Maint
aaaf5c1358 Rebuilt for Python 3.13 2024-06-07 08:57:25 +02:00
Fedora Release Engineering
8c1145608b Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-26 08:13:14 +00:00
Fedora Release Engineering
8dcbe52ac3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-22 05:12:05 +00:00
Fedora Release Engineering
b0de2732cb Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-21 12:26:00 +00:00
Python Maint
30987611b1 Rebuilt for Python 3.12 2023-06-13 20:47:57 +02:00
Fedora Release Engineering
ad2c27039e Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-20 15:49:29 +00:00
Pavel Raiskup
505ca6ee15 spec: clean comments after macros
This caused a non-fatal syntax errors on newer systems.
2022-07-25 13:30:06 +02:00
Pavel Raiskup
390ed8303d Sync with https://github.com/python-progress/python-progress
- use time.monotonic(), as the original fork does
- return infinity time per item for zero speed

Version: 1.6-6
2022-07-25 13:30:02 +02:00
Fedora Release Engineering
0750cb964f Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-22 20:59:56 +00:00
Pavel Raiskup
c7e9fc54d9 Add a release helper script 2022-07-05 10:02:29 +02:00
Pavel Raiskup
bbc325efdb Make sure the SMA window has really at least 2 seconds
This could cause problems on very unstable connections.  When next()
wasn't called for a long time, and then it was called very frequently
(so time() returned 4x the same value) we were clean()ing the
window.dequeue so much so we got "last" equal to "deque[0][0]",
therefore counter/(last - deque[0][0]) could cause a division by zero.

In theory, this would also solve some temporary situations when
subsequent calls to time() did not return consecutive values:

    >>> a = time() ; b = time() ; a > b
    True

Resolves: rhbz#2103093
Version: 1.6-4
2022-07-02 11:07:04 +02:00
Python Maint
1d8a18691b Rebuilt for Python 3.11 2022-06-13 15:14:03 +02:00
Fedora Release Engineering
40e61ae260 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-21 14:18:42 +00:00
Pavel Raiskup
22463f2e42 New upstream release
Resolves: rhbz#1987117
Version: 1.6-1
2021-12-04 19:50:18 +01:00
Fedora Release Engineering
b6118e8650 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 08:21:46 +00:00
Python Maint
4aad60a738 Rebuilt for Python 3.10 2021-06-04 20:51:43 +02:00
Fedora Release Engineering
f802995f36 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-27 12:24:24 +00:00
Fedora Release Engineering
582f828b59 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-29 02:54:20 +00:00
Miro Hrončok
40b9d50d82 Replace Python version glob with macro (needed for Python 3.10+)
See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/PQIGCQCRNBYNXBX2ICWEM3PLDLNOG2ZT/

Co-authored-by: Tomas Hrnciar <thrnciar@redhat.com>
2020-07-13 21:04:36 +02:00
Miro Hrončok
495376923b Rebuilt for Python 3.9 2020-05-26 03:31:28 +02:00
Fedora Release Engineering
e9f0d5214f - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-30 14:12:37 +00:00
Miro Hrončok
9073d294fb Rebuilt for Python 3.8.0rc1 (#1748018) 2019-10-03 14:23:50 +02:00
Pavel Raiskup
10008e4a43 Merge branch 'master' into epel8 2019-09-26 16:22:40 +02:00
Pavel Raiskup
682ce814c1 drop package.cfg
This is to avoid differences in master and epel8 branch.
2019-09-26 16:22:28 +02:00
Gwyn Ciesla
97fe74ee79 "Adding package.cfg file" 2019-09-26 08:42:02 -05:00
Miro Hrončok
c326a74a7b Rebuilt for Python 3.8 2019-08-19 10:50:37 +02:00
Fedora Release Engineering
ac87388fb1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-26 15:19:11 +00:00
Pavel Raiskup
e39309c4c3 new upstream release
Version: 1.5-1
2019-03-18 11:51:35 +01:00
5 changed files with 191 additions and 76 deletions

View file

@ -11,7 +11,7 @@ Since the upstream default window size is only of size 10 items
(by default), it calculates the average speed only for the last
~0.005s. We could enlarge the size of window (sma_window param),
but the algorithm is so naive that it would decrease the
performance.
performance (O(N): sum(queue)/len(queue)).
This has been discussed very extensively with upstream (PR 24 and
friends) but I neither was not able to explain the problem, nor I
@ -26,11 +26,11 @@ Fork with this patch backported is maintained in
https://github.com/python-progress/python-progress
diff --git a/progress/__init__.py b/progress/__init__.py
index a41f65d..1147462 100644
index b434b30..f26056d 100644
--- a/progress/__init__.py
+++ b/progress/__init__.py
@@ -24,16 +24,53 @@ from time import time
__version__ = '1.4'
@@ -30,19 +30,55 @@ HIDE_CURSOR = '\x1b[?25l'
SHOW_CURSOR = '\x1b[?25h'
+class _Window(object):
@ -41,7 +41,7 @@ index a41f65d..1147462 100644
+ self.max_seconds = max_seconds
+ self.max_items = max_items
+
+ stamp = time()
+ stamp = monotonic()
+ self.last = stamp - 0.001
+ self.counter = 0
+ self.deque = deque()
@ -55,7 +55,7 @@ index a41f65d..1147462 100644
+ if self.max_items:
+ while len(self.deque) > self.max_items:
+ self.pop()
+ while len(self.deque) > 2 and self.last - self.deque[0][0] > float(self.max_seconds):
+ while len(self.deque) > 2 and self.last - self.deque[1][0] > float(self.max_seconds):
+ self.pop()
+
+ def next(self, n, t):
@ -76,27 +76,30 @@ index a41f65d..1147462 100644
+ # window structure (in memory), default is unlimited.
+ sma_window_seconds = 2
+ sma_window = None
check_tty = True
hide_cursor = True
def __init__(self, *args, **kwargs):
def __init__(self, message='', **kwargs):
self.index = 0
self.start_ts = time()
self.start_ts = monotonic()
- self.avg = 0
- self._avg_update_ts = self.start_ts
- self._ts = self.start_ts
- self._xput = deque(maxlen=self.sma_window)
+ self.window = _Window(self.sma_window_seconds, self.sma_window)
for key, val in kwargs.items():
setattr(self, key, val)
@@ -46,15 +83,17 @@ class Infinite(object):
@@ -69,21 +105,17 @@ class Infinite(object):
def elapsed(self):
return int(time() - self.start_ts)
return int(monotonic() - self.start_ts)
+ @property
+ def avg(self):
+ speed = self.window.avg
+ if speed:
+ return 1/speed
+ return 3600 # better constant?
+ return float("inf")
+
@property
def elapsed_td(self):
@ -104,21 +107,32 @@ index a41f65d..1147462 100644
- def update_avg(self, n, dt):
- if n > 0:
- xput_len = len(self._xput)
- self._xput.append(dt / n)
- self.avg = sum(self._xput) / len(self._xput)
- now = monotonic()
- # update when we're still filling _xput, then after every second
- if (xput_len < self.sma_window or
- now - self._avg_update_ts > 1):
- self.avg = sum(self._xput) / len(self._xput)
- self._avg_update_ts = now
-
def update(self):
pass
@@ -65,10 +104,7 @@ class Infinite(object):
pass
@@ -112,14 +144,10 @@ class Infinite(object):
try:
return self.file.isatty() if self.check_tty else True
except AttributeError:
- msg = "%s has no attribute 'isatty'. Try setting check_tty=False." % self
- raise AttributeError(msg)
+ raise AttributeError('\'{}\' object has no attribute \'isatty\'. Try setting parameter check_tty=False.'.format(self))
def next(self, n=1):
- now = time()
- now = monotonic()
- dt = now - self._ts
- self.update_avg(n, dt)
- self._ts = now
+ self.window.next(n, time())
+ self.window.next(n, monotonic())
self.index = self.index + n
self.update()

1
README.md Normal file
View file

@ -0,0 +1 @@
See also automatic push/pr [Copr builds](https://copr.fedorainfracloud.org/coprs/praiskup/enterprise-ci-python-progress/).

39
build-and-update-all-branches Executable file
View file

@ -0,0 +1,39 @@
#! /bin/sh
# Prepare main branch, review the list of branches below and then execute this
# script.
branches='main epel8 epel9 epel10 f39 f40 f41'
exit_handler ()
{
git checkout main
}
trap exit_handler EXIT
set -e
set -x
koji hello
tasks=
for branch in $branches; do
if test $branch != main; then
git checkout "$branch"
git merge main
fi
git push
skip_nvr_check=
if test $branch = epel7; then
skip_nvr_check=--skip-nvr-check
fi
tasks="${tasks}`fedpkg build $skip_nvr_check --nowait | grep 'Created task' | cut -d: -f2`"
done
if test -n "$tasks"; then
koji watch-task $tasks
fi
git checkout main
fedpkg update

View file

@ -1,103 +1,164 @@
%if 0%{?fedora}
%bcond_without python3
%if 0%{?fedora} > 29
%bcond_with python2
%else
%bcond_without python2
%endif
%else
%if 0%{?rhel} > 7
%bcond_with python2
%bcond_without python3
%else
%bcond_without python2
%bcond_with python3
%endif
%endif
# Created by pyp2rpm-0.5.2
%global pypi_name progress
Name: python-%{pypi_name}
Version: 1.4
Release: 3%{?dist}
Version: 1.6
Release: 19%{?dist}
Summary: Easy to use progress bars
License: ISC
URL: http://github.com/verigak/progress/
Source0: %pypi_source
Source0: %{pypi_source %{pypi_name}}
BuildArch: noarch
%if %{with python2}
BuildRequires: python2-devel
BuildRequires: python2-setuptools
%endif
%if %{with python3}
BuildRequires: python3-devel
%if %{defined el8}
BuildRequires: python3-setuptools
%endif
Patch1: 0001-fixup-moving-average-window.patch
%global _description\
Collection of easy to use progress bars and spinners.\
%global _description %{expand:
Collection of easy to use progress bars and spinners.}
%description %_description
%if 0%{with python2}
%package -n python2-%{pypi_name}
Summary: %summary
%{?python_provide:%python_provide python2-%{pypi_name}}
%description -n python2-%{pypi_name} %_description
%endif # python2
%if 0%{with python3}
%package -n python3-%{pypi_name}
Summary: Easy to use progress bars
%description -n python3-%{pypi_name}
Collection of easy to use progress bars and spinners.
%endif # python3
%description -n python3-%{pypi_name} %_description
%prep
%autosetup -p1 -n %{pypi_name}-%{version}
# Remove bundled egg-info
rm -rf %{pypi_name}.egg-info
%if %{undefined el8}
%generate_buildrequires
%pyproject_buildrequires
%endif
%build
%{?with_python2: %py2_build}
%{?with_python3: %py3_build}
%if %{defined el8}
%py3_build
%else
%pyproject_wheel
%endif
%install
%{?with_python2: %py2_install}
%{?with_python3: %py3_install}
%if 0%{with python2}
%files -n python2-%{pypi_name}
%doc README.rst LICENSE
%{python2_sitelib}/%{pypi_name}
%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
%if %{defined el8}
%py3_install
%else
%pyproject_install
%pyproject_save_files -l %{pypi_name}
%endif
%if 0%{with python3}
%files -n python3-%{pypi_name}
%doc README.rst LICENSE
%check
%if %{defined el8}
%py3_check_import %{pypi_name}
%else
%pyproject_check_import
%endif
%files -n python3-%{pypi_name} %{!?el8:-f %{pyproject_files}}
%doc README.rst
%if %{defined el8}
%license LICENSE
%{python3_sitelib}/%{pypi_name}
%{python3_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
%endif
%changelog
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 1.6-19
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 1.6-18
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Mon Jun 02 2025 Python Maint <python-maint@redhat.com> - 1.6-16
- Rebuilt for Python 3.14
* Sat Jan 18 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Tue Sep 24 2024 Carl George <carlwgeorge@fedoraproject.org> - 1.6-14
- Convert to pyproject macros
* Fri Jul 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri Jun 07 2024 Python Maint <python-maint@redhat.com> - 1.6-12
- Rebuilt for Python 3.13
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1.6-8
- Rebuilt for Python 3.12
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Jul 22 2022 Pavel Raiskup <praiskup@redhat.com> - 1.6-6
- use time.monotonic(), bar.avg is infinity for zero speed
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Sat Jul 02 2022 Pavel Raiskup <praiskup@redhat.com> - 1.6-4
- fix for very frequent next() call, rhbz#2103093
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1.6-3
- Rebuilt for Python 3.11
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.5-9
- Rebuilt for Python 3.10
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.5-6
- Rebuilt for Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.5-4
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.5-3
- Rebuilt for Python 3.8
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Mar 18 2019 Pavel Raiskup <praiskup@redhat.com> - 1.5-1
- the latest upstream release
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.4-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

View file

@ -1 +1 @@
SHA512 (progress-1.4.tar.gz) = f9973ac4f670632fa4ab27232f53c0c74992329a298f95ea6a39ba7a4cbdccfacd44a49c367bf45d739d4fb652e13c271792eff509c9277e2250c2cdb3e82c48
SHA512 (progress-1.6.tar.gz) = 58a614bba5a7273a42ba5e9607b3a965fec17f26a4f24563d4c13679ea32b23dda7509c5da81a2a34bebeeedd91154d0457ab8dac95cc7a092add2567249cc94