Compare commits

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

20 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
4 changed files with 137 additions and 96 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 (by default), it calculates the average speed only for the last
~0.005s. We could enlarge the size of window (sma_window param), ~0.005s. We could enlarge the size of window (sma_window param),
but the algorithm is so naive that it would decrease the 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 This has been discussed very extensively with upstream (PR 24 and
friends) but I neither was not able to explain the problem, nor I friends) but I neither was not able to explain the problem, nor I
@ -22,36 +22,14 @@ compatibility - changes the algorithm so the average speed is
calculation is fast enough, and much more stable (by default it calculation is fast enough, and much more stable (by default it
calculates speed for window of 2 seconds). calculates speed for window of 2 seconds).
We also don't seem to have the monotonic() mess, since we don't seem
to suffer from the same issues.
Fork with this patch backported is maintained in Fork with this patch backported is maintained in
https://github.com/python-progress/python-progress https://github.com/python-progress/python-progress
diff --git a/MANIFEST.in b/MANIFEST.in
index ef7c4cb..0c73842 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1 @@
include README.rst LICENSE
-include test_*.py
diff --git a/progress/__init__.py b/progress/__init__.py diff --git a/progress/__init__.py b/progress/__init__.py
index b434b30..71b2039 100644 index b434b30..f26056d 100644
--- a/progress/__init__.py --- a/progress/__init__.py
+++ b/progress/__init__.py +++ b/progress/__init__.py
@@ -18,10 +18,7 @@ from collections import deque @@ -30,19 +30,55 @@ HIDE_CURSOR = '\x1b[?25l'
from datetime import timedelta
from math import ceil
from sys import stderr
-try:
- from time import monotonic
-except ImportError:
- from time import time as monotonic
+from time import time
__version__ = '1.6'
@@ -30,19 +27,55 @@ HIDE_CURSOR = '\x1b[?25l'
SHOW_CURSOR = '\x1b[?25h' SHOW_CURSOR = '\x1b[?25h'
@ -63,7 +41,7 @@ index b434b30..71b2039 100644
+ self.max_seconds = max_seconds + self.max_seconds = max_seconds
+ self.max_items = max_items + self.max_items = max_items
+ +
+ stamp = time() + stamp = monotonic()
+ self.last = stamp - 0.001 + self.last = stamp - 0.001
+ self.counter = 0 + self.counter = 0
+ self.deque = deque() + self.deque = deque()
@ -103,30 +81,26 @@ index b434b30..71b2039 100644
def __init__(self, message='', **kwargs): def __init__(self, message='', **kwargs):
self.index = 0 self.index = 0
- self.start_ts = monotonic() self.start_ts = monotonic()
- self.avg = 0 - self.avg = 0
- self._avg_update_ts = self.start_ts - self._avg_update_ts = self.start_ts
- self._ts = self.start_ts - self._ts = self.start_ts
- self._xput = deque(maxlen=self.sma_window) - self._xput = deque(maxlen=self.sma_window)
+ self.start_ts = time()
+ self.window = _Window(self.sma_window_seconds, self.sma_window) + self.window = _Window(self.sma_window_seconds, self.sma_window)
for key, val in kwargs.items(): for key, val in kwargs.items():
setattr(self, key, val) setattr(self, key, val)
@@ -67,23 +100,19 @@ class Infinite(object): @@ -69,21 +105,17 @@ class Infinite(object):
@property
def elapsed(self): def elapsed(self):
- return int(monotonic() - self.start_ts) return int(monotonic() - self.start_ts)
+ return int(time() - self.start_ts)
+
+ @property + @property
+ def avg(self): + def avg(self):
+ speed = self.window.avg + speed = self.window.avg
+ if speed: + if speed:
+ return 1/speed + return 1/speed
+ return 3600 # better constant? + return float("inf")
+
@property @property
def elapsed_td(self): def elapsed_td(self):
return timedelta(seconds=self.elapsed) return timedelta(seconds=self.elapsed)
@ -145,15 +119,20 @@ index b434b30..71b2039 100644
def update(self): def update(self):
pass pass
@@ -116,10 +145,7 @@ class Infinite(object): @@ -112,14 +144,10 @@ class Infinite(object):
raise AttributeError(msg) 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): def next(self, n=1):
- now = monotonic() - now = monotonic()
- dt = now - self._ts - dt = now - self._ts
- self.update_avg(n, dt) - self.update_avg(n, dt)
- self._ts = now - self._ts = now
+ self.window.next(n, time()) + self.window.next(n, monotonic())
self.index = self.index + n self.index = self.index + n
self.update() 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,125 @@
%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 %global pypi_name progress
Name: python-%{pypi_name} Name: python-%{pypi_name}
Version: 1.6 Version: 1.6
Release: 4%{?dist} Release: 19%{?dist}
Summary: Easy to use progress bars Summary: Easy to use progress bars
License: ISC License: ISC
URL: http://github.com/verigak/progress/ URL: http://github.com/verigak/progress/
Source0: %pypi_source Source0: %{pypi_source %{pypi_name}}
BuildArch: noarch BuildArch: noarch
%if %{with python2}
BuildRequires: python2-devel
BuildRequires: python2-setuptools
%endif
%if %{with python3}
BuildRequires: python3-devel BuildRequires: python3-devel
%if %{defined el8}
BuildRequires: python3-setuptools BuildRequires: python3-setuptools
%endif %endif
Patch1: 0001-fixup-moving-average-window.patch Patch1: 0001-fixup-moving-average-window.patch
%global _description\ %global _description %{expand:
Collection of easy to use progress bars and spinners.\ Collection of easy to use progress bars and spinners.}
%description %_description %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} %package -n python3-%{pypi_name}
Summary: Easy to use progress bars Summary: Easy to use progress bars
%description -n python3-%{pypi_name} %description -n python3-%{pypi_name} %_description
Collection of easy to use progress bars and spinners.
%endif # python3
%prep %prep
%autosetup -p1 -n %{pypi_name}-%{version} %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 %build
%{?with_python2: %py2_build} %if %{defined el8}
%{?with_python3: %py3_build} %py3_build
%else
%pyproject_wheel
%endif
%install %install
%{?with_python2: %py2_install} %if %{defined el8}
%{?with_python3: %py3_install} %py3_install
%else
%pyproject_install
%if 0%{with python2} %pyproject_save_files -l %{pypi_name}
%files -n python2-%{pypi_name}
%doc README.rst LICENSE
%{python2_sitelib}/%{pypi_name}
%{python2_sitelib}/%{pypi_name}-%{version}-py?.?.egg-info
%endif %endif
%if 0%{with python3}
%files -n python3-%{pypi_name} %check
%doc README.rst LICENSE %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}
%{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info %{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info
%endif %endif
%changelog %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 * Sat Jul 02 2022 Pavel Raiskup <praiskup@redhat.com> - 1.6-4
- fix for very frequent next() call, rhbz#2103093 - fix for very frequent next() call, rhbz#2103093