Compare commits

...

No commits in common. 'i10c-beta' and 'c9' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/qrcode-7.4.2.tar.gz SOURCES/qrcode-6.1.tar.gz

@ -1 +1 @@
b05df83e15fb8a74ce9461658cd654eba2e9319e SOURCES/qrcode-7.4.2.tar.gz 1d21c20127c435c43e6365f4166857546fcac074 SOURCES/qrcode-6.1.tar.gz

@ -1,93 +0,0 @@
Backport of https://github.com/lincolnloop/python-qrcode/pull/338
diff --git a/qrcode/main.py b/qrcode/main.py
index 0ac91bb..53f2ab2 100644
--- a/qrcode/main.py
+++ b/qrcode/main.py
@@ -16,7 +16,6 @@ from typing_extensions import Literal
from qrcode import constants, exceptions, util
from qrcode.image.base import BaseImage
-from qrcode.image.pure import PyPNGImage
ModulesType = List[List[Optional[bool]]]
# Cache modules generated just based on the QR Code version
@@ -360,7 +359,11 @@ class QRCode(Generic[GenericImage]):
from qrcode.image.pil import Image, PilImage
# Use PIL by default if available, otherwise use PyPNG.
- image_factory = PilImage if Image else PyPNGImage
+ if Image is not None:
+ image_factory = PilImage
+ else:
+ from qrcode.image.pure import PyPNGImage
+ image_factory = PyPNGImage
im = image_factory(
self.border,
diff --git a/qrcode/tests/test_qrcode.py b/qrcode/tests/test_qrcode.py
index 5c1ea35..24c36f8 100644
--- a/qrcode/tests/test_qrcode.py
+++ b/qrcode/tests/test_qrcode.py
@@ -5,18 +5,21 @@ import warnings
from tempfile import mkdtemp
from unittest import mock
-import png
-
import qrcode
import qrcode.util
from qrcode.compat.pil import Image as pil_Image
from qrcode.exceptions import DataOverflowError
from qrcode.image.base import BaseImage
-from qrcode.image.pure import PyPNGImage
from qrcode.image.styledpil import StyledPilImage
from qrcode.image.styles import colormasks, moduledrawers
from qrcode.util import MODE_8BIT_BYTE, MODE_ALPHA_NUM, MODE_NUMBER, QRData
+try:
+ import png
+ from qrcode.image.pure import PyPNGImage
+except ImportError:
+ PyPNGImage = None
+
UNICODE_TEXT = "\u03b1\u03b2\u03b3"
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
@@ -175,6 +178,7 @@ class QRCodeTests(unittest.TestCase):
self.assertTrue(MockFactory.new_image.called)
self.assertTrue(MockFactory.drawrect.called)
+ @unittest.skipIf(not PyPNGImage, "Requires pypng")
def test_render_pypng(self):
qr = qrcode.QRCode()
qr.add_data(UNICODE_TEXT)
@@ -184,6 +188,7 @@ class QRCodeTests(unittest.TestCase):
print(img.width, img.box_size, img.border)
img.save(io.BytesIO())
+ @unittest.skipIf(not PyPNGImage, "Requires pypng")
def test_render_pypng_to_str(self):
qr = qrcode.QRCode()
qr.add_data(UNICODE_TEXT)
diff --git a/setup.cfg b/setup.cfg
index 3aff842..c17189b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -30,7 +30,6 @@ packages = find:
install_requires =
colorama;platform_system=="Windows"
typing_extensions
- pypng
python_requires = >= 3.7
[options.extras_require]
@@ -45,6 +44,8 @@ test =
pytest
pil =
pillow>=9.1.0
+png =
+ pypng
all =
zest.releaser[recommended]
tox

@ -1,9 +0,0 @@
diff -rupN --no-dereference qrcode-7.4.2/qrcode/tests/test_release.py qrcode-7.4.2-new/qrcode/tests/test_release.py
--- qrcode-7.4.2/qrcode/tests/test_release.py 2023-02-05 23:11:38.000000000 +0100
+++ qrcode-7.4.2-new/qrcode/tests/test_release.py 2023-05-12 13:59:22.069372313 +0200
@@ -37,4 +37,4 @@ class UpdateManpageTests(unittest.TestCa
.replace("version", "3.11")
.replace("date", datetime.datetime.now().strftime("%-d %b %Y"))
)
- mock_file().write.has_calls([mock.call(line) for line in expected])
+ mock_file().write.assert_has_calls([mock.call(line) for line in expected if line])

@ -1,16 +0,0 @@
diff -rupN --no-dereference qrcode-7.4.2/qrcode/tests/test_script.py qrcode-7.4.2-new/qrcode/tests/test_script.py
--- qrcode-7.4.2/qrcode/tests/test_script.py 2023-02-05 23:11:38.000000000 +0100
+++ qrcode-7.4.2-new/qrcode/tests/test_script.py 2023-05-12 13:59:22.053372149 +0200
@@ -59,9 +59,9 @@ class ScriptTest(unittest.TestCase):
def test_optimize(self, mock_print_ascii):
main("testtext --optimize 0".split())
- @mock.patch("sys.stdout")
- def test_factory(self, mock_stdout):
- main("testtext --factory svg".split())
+ #@mock.patch("sys.stdout")
+ #def test_factory(self, mock_stdout):
+ # main("testtext --factory svg".split())
@mock.patch("sys.stderr")
def test_bad_factory(self, mock_stderr):

@ -1,69 +1,72 @@
## START: Set by rpmautospec
## (rpmautospec version 0.6.1)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 11;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec
%global pkgname qrcode %global pkgname qrcode
%if 0%{?rhel}
# RHEL only ships qrcode-core and does not have pillow
%bcond_without coreonly
%else
%bcond_with coreonly
%endif
Name: python-%{pkgname} Name: python-%{pkgname}
Version: 7.4.2 Version: 6.1
Release: %autorelease Release: 12%{?dist}
Summary: Python QR Code image generator Summary: Python QR Code image generator
License: BSD-3-Clause License: BSD
URL: https://github.com/lincolnloop/python-qrcode URL: https://github.com/lincolnloop/python-qrcode
Source0: %{pypi_source qrcode} Source0: https://pypi.python.org/packages/source/q/qrcode/qrcode-%{version}.tar.gz
BuildArch: noarch BuildArch: noarch
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: python3-pytest BuildRequires: python3-setuptools
BuildRequires: python3-six
%if %{without coreonly}
BuildRequires: python3-imaging
%endif
# Comment out failing test %global _description\
Patch0: qrcode_test.patch
# Fix failure with Python3.12
Patch1: qrcode_assert-has-calls.patch
# Make pypng requirement optional
# https://github.com/lincolnloop/python-qrcode/pull/338
Patch2: qrcode-optional-pypng.patch
%description
This module uses the Python Imaging Library (PIL) to allow for the\ This module uses the Python Imaging Library (PIL) to allow for the\
generation of QR Codes. generation of QR Codes.
%description %_description
%if %{without coreonly}
%package -n python3-%{pkgname} %package -n python3-%{pkgname}
Summary: Python QR Code image generator Summary: Python QR Code image generator
Obsoletes: python3-qrcode-core < 7.4.2-2 Requires: python3-imaging
Provides: python3-qrcode-core = %{version}-%{release} # For entry point:
Requires: python3-setuptools
Requires: python3-%{pkgname}-core = %{version}-%{release}
%description -n python3-%{pkgname} %description -n python3-%{pkgname}
This module uses the Python Imaging Library (PIL) to allow for the This module uses the Python Imaging Library (PIL) to allow for the
generation of QR Codes. Python 3 version. generation of QR Codes. Python 3 version.
%endif
%package -n python3-%{pkgname}-core
Requires: python3-six
Summary: Python 3 QR Code image generator (core library)
%generate_buildrequires %description -n python3-%{pkgname}-core
# RHEL does not include the extra test dependencies (coverage, pillow) Core Python 3 module for QR code generation. Does not contain image rendering.
%pyproject_buildrequires %{?!rhel:-x test -x pil -x png}
%prep %prep
%autosetup -n qrcode-%{version} -p1 %autosetup -n qrcode-%{version}
# The pure plugin requires pymaging which is not packaged in Fedora.
rm qrcode/image/pure.py*
# Remove shebang # Remove shebang
sed -i '1d' qrcode/console_scripts.py sed -i '1d' qrcode/console_scripts.py
%build %build
%pyproject_wheel %py3_build
%install %install
%pyproject_install %py3_install
%pyproject_save_files qrcode
# Do not install tests
rm -r %{buildroot}%{python3_sitelib}/%{pkgname}/tests
# #
# In previous iterations of the package, the qr script had been # In previous iterations of the package, the qr script had been
@ -73,71 +76,60 @@ sed -i '1d' qrcode/console_scripts.py
# #
ln -s qr %{buildroot}%{_bindir}/qrcode ln -s qr %{buildroot}%{_bindir}/qrcode
%if %{with coreonly}
# remove files that were part of python3-qrcode package and not shipped in
# python3-qrcode-core
rm %{buildroot}%{_bindir}/qr
rm %{buildroot}%{_bindir}/qrcode
rm %{buildroot}%{_mandir}/man1/qr.1*
%pycached rm %{buildroot}%{python3_sitelib}/%{pkgname}/image/svg.py
%pycached rm %{buildroot}%{python3_sitelib}/%{pkgname}/image/pil.py
%endif
%check %check
%pytest -v %if %{with coreonly}
# test method requires PIL
sed -i s/test_render_pil/disabled_render_pil/g qrcode/tests/test_qrcode.py
%files -n python3-%{pkgname} -f %{pyproject_files} %endif
%doc README.rst CHANGES.rst PYTHONPATH=%{buildroot}%{python3_sitelib} \
%license LICENSE %{__python3} -m unittest -v qrcode.tests.test_qrcode.QRCodeTests
%if %{without coreonly}
%files -n python3-%{pkgname}
%{_bindir}/qr %{_bindir}/qr
%{_bindir}/qrcode %{_bindir}/qrcode
%{_mandir}/man1/qr.1* %{_mandir}/man1/qr.1*
%pycached %{python3_sitelib}/%{pkgname}/image/svg.py
%pycached %{python3_sitelib}/%{pkgname}/image/pil.py
%endif
%changelog %files -n python3-%{pkgname}-core
* Tue Nov 26 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 7.4.2-11 %doc README.rst CHANGES.rst
- Rebuilt for MSVSphere 10 %license LICENSE
%{python3_sitelib}/%{pkgname}
## START: Generated by rpmautospec %{python3_sitelib}/%{pkgname}*.egg-info
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 7.4.2-11
- Bump release for June 2024 mass rebuild
* Fri Jan 26 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.2-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Aug 23 2023 Florence Blanc-Renaud <frenaud@redhat.com> - 7.4.2-8
- migrated to SPDX license
* Tue Jul 25 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 7.4.2-7
- Make pypng requirement optional
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 7.4.2-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jun 16 2023 Python Maint <python-maint@redhat.com> - 7.4.2-5
- Rebuilt for Python 3.12
* Tue May 23 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 7.4.2-4
- Migrate from tox to pytest, avoid unwanted deps in RHEL builds
* Fri May 12 2023 Sandro Mani <manisandro@gmail.com> - 7.4.2-3 %if %{without coreonly}
- Add patch to fix test failures with py3.12 %pycached %exclude %{python3_sitelib}/%{pkgname}/image/svg.py
%pycached %exclude %{python3_sitelib}/%{pkgname}/image/pil.py
%endif
* Mon May 01 2023 Sandro Mani <manisandro@gmail.com> - 7.4.2-2
- Switch to pyproject macros
* Mon May 01 2023 Sandro Mani <manisandro@gmail.com> - 7.4.2-1 %changelog
- Update to 7.4.2 * Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 6.1-12
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Tue Jan 04 2022 Michel Alexandre Salim <salimma@fedoraproject.org> - 7.3.1-3 * Thu Apr 22 2021 Christian Heimes <cheimes@redhat.com> - 6.1-11
- Opt in to rpmautospec - Build only python3-qrcode-core on RHEL
- Related: #1935839
* Tue Jan 04 2022 Christian Heimes <cheimes@redhat.com> - 7.3.1-2 * Thu Apr 22 2021 Christian Heimes <cheimes@redhat.com> - 6.1-10
- Remove python-imaging build requirements for RHEL (#1935839) - Resolves: #1935839 Remove python-imaging build requirements for RHEL
- Run unit tests during build - Run unit tests during build
* Thu Dec 09 2021 Sandro Mani <manisandro@gmail.com> - 7.3.1-1 * Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 6.1-9
- Update to 7.3.1 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 6.1-9
- Rebuilt for Python 3.10
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-8 * Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 6.1-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
@ -243,5 +235,3 @@ ln -s qr %{buildroot}%{_bindir}/qrcode
* Sat Jun 2 2012 Michel Salim <salimma@fedoraproject.org> - 2.4.1-1 * Sat Jun 2 2012 Michel Salim <salimma@fedoraproject.org> - 2.4.1-1
- Initial package - Initial package
## END: Generated by rpmautospec

Loading…
Cancel
Save