Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-python-barcode for
openSUSE:Factory checked in at 2023-09-21 22:22:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-python-barcode (Old)
and /work/SRC/openSUSE:Factory/.python-python-barcode.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-python-barcode"
Thu Sep 21 22:22:53 2023 rev:8 rq:1112732 version:0.15.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-python-barcode/python-python-barcode.changes
2022-07-15 13:52:58.987573213 +0200
+++
/work/SRC/openSUSE:Factory/.python-python-barcode.new.1770/python-python-barcode.changes
2023-09-21 22:23:03.832899167 +0200
@@ -1,0 +2,8 @@
+Wed Sep 20 15:26:50 UTC 2023 - OndÅej Súkup <[email protected]>
+
+- update to 0.15.1
+ * Improved type hints.
+ * Updated ISBN to support newer allocated ranges.
+ * Fixed compatibility with Pillow 10.0.
+
+-------------------------------------------------------------------
Old:
----
python-barcode-0.14.0.tar.gz
New:
----
python-barcode-0.15.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-python-barcode.spec ++++++
--- /var/tmp/diff_new_pack.6acDGX/_old 2023-09-21 22:23:05.020942277 +0200
+++ /var/tmp/diff_new_pack.6acDGX/_new 2023-09-21 22:23:05.020942277 +0200
@@ -1,7 +1,7 @@
#
# spec file
#
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2019 Dr. Axel Braun
#
# All modifications and additions to the file contributed by third parties
@@ -17,11 +17,9 @@
#
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%define skip_python2 1
%define base_name python-barcode
Name: python-%{base_name}
-Version: 0.14.0
+Version: 0.15.1
Release: 0
Summary: Library to create Barcodes with Python
License: MIT
++++++ python-barcode-0.14.0.tar.gz -> python-barcode-0.15.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/.github/workflows/publish.yml
new/python-barcode-0.15.1/.github/workflows/publish.yml
--- old/python-barcode-0.14.0/.github/workflows/publish.yml 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/.github/workflows/publish.yml 2023-07-06
00:56:49.000000000 +0200
@@ -6,39 +6,16 @@
- v*
jobs:
- github-release:
- runs-on: ubuntu-18.04
- name: Publish GitHub Release
- steps:
- - uses: actions/checkout@master
- - uses: actions/setup-python@v1
- with:
- python-version: 3.7
- architecture: x64
- - name: Install build dependencies
- run: pip install wheel
- - name: Build packages
- run: python setup.py sdist bdist_wheel
- - name: Release
- uses: softprops/action-gh-release@v1
- with:
- files: dist/*
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
pypi:
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-22.04
name: Publish package on PyPI
steps:
- - uses: actions/checkout@master
- - uses: actions/setup-python@v1
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v3
with:
python-version: 3.7
- architecture: x64
- - name: Install build dependencies
- run: pip install wheel
- - name: Build packages
- run: python setup.py sdist bdist_wheel
- - name: Publish a Python distribution to PyPI
- uses: pypa/gh-action-pypi-publish@master
+ - run: pip install build setuptools wheel build setuptools_scm
+ - run: python -m build --sdist --wheel --no-isolation
+ - uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/.github/workflows/tests.yml
new/python-barcode-0.15.1/.github/workflows/tests.yml
--- old/python-barcode-0.14.0/.github/workflows/tests.yml 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/.github/workflows/tests.yml 2023-07-06
00:56:49.000000000 +0200
@@ -7,9 +7,17 @@
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-20.04, macOS-10.15, windows-2019 ]
- python: [ '3.6', '3.7', '3.8', '3.9', '3.10' ]
+ os: [ ubuntu-20.04 ]
+ python: [ '3.7', '3.8', '3.9', '3.10', '3.11' ]
variant: [ "py", "py-images" ]
+ include:
+ - os: macOS-11
+ python: "3.10"
+ variant: py-images
+ - os: windows-2019
+ python: "3.10"
+ variant: py-images
+ - os: windows-2019
name: python${{ matrix.python }} on ${{ matrix.os }} ${{ matrix.variant }}
steps:
- uses: actions/checkout@v2
@@ -17,12 +25,8 @@
with:
python-version: ${{ matrix.python }}
- name: Install test dependency
- run: pip install tox codecov
+ run: pip install tox
- name: Run tests
run: tox
env:
TOXENV: ${{ matrix.variant }}
- - name: Report coverage
- run: codecov
- env:
- CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/.pre-commit-config.yaml
new/python-barcode-0.15.1/.pre-commit-config.yaml
--- old/python-barcode-0.14.0/.pre-commit-config.yaml 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/.pre-commit-config.yaml 2023-07-06
00:56:49.000000000 +0200
@@ -1,32 +1,21 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: v4.2.0
+ rev: v4.4.0
hooks:
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- id: end-of-file-fixer
- id: debug-statements
- - repo: https://github.com/pycqa/isort
- rev: 5.10.1
- hooks:
- - id: isort
- repo: https://github.com/psf/black
- rev: "22.3.0"
+ rev: "23.3.0"
hooks:
- id: black
- - repo: https://github.com/PyCQA/flake8
- rev: "4.0.1"
- hooks:
- - id: flake8
- additional_dependencies:
- - flake8-comprehensions
- - flake8-bugbear
- - repo: https://github.com/asottile/pyupgrade
- rev: v2.32.1
- hooks:
- - id: pyupgrade
- args: [--py36-plus]
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: 'v0.950'
+ rev: 'v1.4.1'
hooks:
- id: mypy
+ - repo: https://github.com/charliermarsh/ruff-pre-commit
+ rev: 'v0.0.275'
+ hooks:
+ - id: ruff
+ args: [--fix, --exit-non-zero-on-fix]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/PKG-INFO
new/python-barcode-0.15.1/PKG-INFO
--- old/python-barcode-0.14.0/PKG-INFO 2022-05-17 12:06:06.000000000 +0200
+++ new/python-barcode-0.15.1/PKG-INFO 2023-07-06 00:56:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-barcode
-Version: 0.14.0
+Version: 0.15.1
Summary: Create standard barcodes with Python. No external modules needed.
(optional Pillow support included).
Home-page: https://github.com/WhyNotHugo/python-barcode
Author: Hugo Osvaldo Barrera et al
@@ -13,10 +13,6 @@
:target: https://github.com/WhyNotHugo/python-barcode/actions
:alt: CI status
- .. image::
https://codecov.io/gh/WhyNotHugo/python-barcode/branch/main/graph/badge.svg
- :target: https://codecov.io/gh/WhyNotHugo/python-barcode
- :alt: Build coverage
-
.. image:: https://readthedocs.org/projects/python-barcode/badge/
:target: https://python-barcode.rtfd.org/
:alt: documentation
@@ -38,7 +34,7 @@
There are no external dependencies when generating SVG files.
Pillow is required for generating images (e.g.: PNGs).
- Support Python 3.6 to 3.10.
+ Support Python 3.7 to 3.11.
.. image:: example-ean13.png
:target: https://github.com/WhyNotHugo/python-barcode
@@ -62,11 +58,11 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: images
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/README.rst
new/python-barcode-0.15.1/README.rst
--- old/python-barcode-0.14.0/README.rst 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/README.rst 2023-07-06 00:56:49.000000000
+0200
@@ -5,10 +5,6 @@
:target: https://github.com/WhyNotHugo/python-barcode/actions
:alt: CI status
-.. image::
https://codecov.io/gh/WhyNotHugo/python-barcode/branch/main/graph/badge.svg
- :target: https://codecov.io/gh/WhyNotHugo/python-barcode
- :alt: Build coverage
-
.. image:: https://readthedocs.org/projects/python-barcode/badge/
:target: https://python-barcode.rtfd.org/
:alt: documentation
@@ -30,7 +26,7 @@
There are no external dependencies when generating SVG files.
Pillow is required for generating images (e.g.: PNGs).
-Support Python 3.6 to 3.10.
+Support Python 3.7 to 3.11.
.. image:: example-ean13.png
:target: https://github.com/WhyNotHugo/python-barcode
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/__init__.py
new/python-barcode-0.15.1/barcode/__init__.py
--- old/python-barcode-0.14.0/barcode/__init__.py 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/barcode/__init__.py 2023-07-06
00:56:49.000000000 +0200
@@ -6,6 +6,7 @@
import os
from typing import BinaryIO
from typing import Dict
+from typing import Optional
from typing import Union
from barcode.codabar import CODABAR
@@ -56,27 +57,32 @@
PROVIDED_BARCODES.sort()
-def get(name, code=None, writer=None, options=None):
+def get(
+ name: str,
+ code: Optional[str] = None,
+ writer=None,
+ options: Optional[dict] = None,
+):
"""Helper method for getting a generator or even a generated code.
- :param str name: The name of the type of barcode desired.
- :param str code: The actual information to encode. If this parameter is
+ :param name: The name of the type of barcode desired.
+ :param code: The actual information to encode. If this parameter is
provided, a generated barcode is returned. Otherwise, the barcode class
is returned.
:param Writer writer: An alternative writer to use when generating the
barcode.
- :param dict options: Additional options to be passed on to the barcode when
+ :param options: Additional options to be passed on to the barcode when
generating.
"""
options = options or {}
try:
barcode = __BARCODE_MAP[name.lower()]
- except KeyError:
- raise BarcodeNotFoundError(f"The barcode {name!r} you requested is not
known.")
+ except KeyError as e:
+ raise BarcodeNotFoundError(f"The barcode {name!r} is not known.") from
e
if code is not None:
return barcode(code, writer, **options)
- else:
- return barcode
+
+ return barcode
def get_class(name):
@@ -87,9 +93,9 @@
name: str,
code: str,
writer=None,
- output: Union[str, os.PathLike, BinaryIO] = None,
- writer_options: Dict = None,
- text: str = None,
+ output: Union[str, os.PathLike, BinaryIO, None] = None,
+ writer_options: Union[Dict, None] = None,
+ text: Union[str, None] = None,
):
"""Shortcut to generate a barcode in one line.
@@ -109,12 +115,12 @@
barcode = get(name, code, writer)
if isinstance(output, str):
- fullname = barcode.save(output, writer_options, text)
- return fullname
- elif output:
+ return barcode.save(output, writer_options, text)
+ if output:
barcode.write(output, writer_options, text)
- else:
- raise TypeError("'output' cannot be None")
+ return None
+
+ raise TypeError("'output' cannot be None")
get_barcode = get
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/base.py
new/python-barcode-0.15.1/barcode/base.py
--- old/python-barcode-0.14.0/barcode/base.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/base.py 2023-07-06 00:56:49.000000000
+0200
@@ -1,18 +1,22 @@
"""barcode.base
"""
+from typing import ClassVar
+from typing import List
+from typing import Optional
+
+from barcode.writer import BaseWriter
from barcode.writer import SVGWriter
class Barcode:
-
name = ""
digits = 0
default_writer = SVGWriter
- default_writer_options = {
+ default_writer_options: ClassVar[dict] = {
"module_width": 0.2,
"module_height": 15.0,
"quiet_zone": 6.5,
@@ -24,16 +28,18 @@
"text": "",
}
- def to_ascii(self):
+ writer: BaseWriter
+
+ def to_ascii(self) -> str:
code = self.build()
for i, line in enumerate(code):
code[i] = line.replace("1", "X").replace("0", " ")
return "\n".join(code)
- def __repr__(self):
+ def __repr__(self) -> str:
return f"<{self.__class__.__name__}({self.get_fullcode()!r})>"
- def build(self):
+ def build(self) -> List[str]:
raise NotImplementedError
def get_fullcode(self):
@@ -44,28 +50,20 @@
"""
raise NotImplementedError
- def save(self, filename, options=None, text=None):
+ def save(
+ self, filename: str, options: Optional[dict] = None, text:
Optional[str] = None
+ ) -> str:
"""Renders the barcode and saves it in `filename`.
- :parameters:
- filename : String
- Filename to save the barcode in (without filename
- extension).
- options : Dict
- The same as in `self.render`.
- text : str
- Text to render under the barcode.
+ :param filename: Filename to save the barcode in (without filename
extension).
+ :param options: The same as in `self.render`.
+ :param text: Text to render under the barcode.
:returns: The full filename with extension.
- :rtype: String
"""
- if text:
- output = self.render(options, text)
- else:
- output = self.render(options)
+ output = self.render(options, text) if text else self.render(options)
- _filename = self.writer.save(filename, output)
- return _filename
+ return self.writer.save(filename, output)
def write(self, fp, options=None, text=None):
"""Renders the barcode and writes it to the file like object
@@ -82,14 +80,11 @@
output = self.render(options, text)
self.writer.write(output, fp)
- def render(self, writer_options=None, text=None):
+ def render(self, writer_options: Optional[dict] = None, text:
Optional[str] = None):
"""Renders the barcode using `self.writer`.
- :parameters:
- writer_options : Dict
- Options for `self.writer`, see writer docs for details.
- text : str
- Text to render under the barcode.
+ :param writer_options: Options for `self.writer`, see writer docs for
details.
+ :param text: Text to render under the barcode.
:returns: Output of the writers render method.
"""
@@ -102,5 +97,4 @@
options["text"] = self.get_fullcode()
self.writer.set_options(options)
code = self.build()
- raw = self.writer.render(code)
- return raw
+ return self.writer.render(code)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/charsets/code128.py
new/python-barcode-0.15.1/barcode/charsets/code128.py
--- old/python-barcode-0.14.0/barcode/charsets/code128.py 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/barcode/charsets/code128.py 2023-07-06
00:56:49.000000000 +0200
@@ -3,45 +3,40 @@
# Charsets for code 128
_common = (
- (
- " ",
- "!",
- '"',
- "#",
- "$",
- "%",
- "&",
- "'",
- "(",
- ")",
- "*",
- "+",
- ",",
- "-",
- ".",
- "/",
- )
- + tuple(string.digits)
- + (
- ":",
- ";",
- "<",
- "=",
- ">",
- "?",
- "@",
- )
- + tuple(string.ascii_uppercase)
- + (
- "[",
- "\\",
- "]",
- "^",
- "_",
- )
+ " ",
+ "!",
+ '"',
+ "#",
+ "$",
+ "%",
+ "&",
+ "'",
+ "(",
+ ")",
+ "*",
+ "+",
+ ",",
+ "-",
+ ".",
+ "/",
+ *tuple(string.digits),
+ ":",
+ ";",
+ "<",
+ "=",
+ ">",
+ "?",
+ "@",
+ *tuple(string.ascii_uppercase),
+ "[",
+ "\\",
+ "]",
+ "^",
+ "_",
)
-_charset_a = _common + (
+_charset_a = (
+ *_common,
"\x00",
"\x01",
"\x02",
@@ -51,11 +46,11 @@
"\x06",
"\x07",
"\x08",
- "\x09",
- "\x0a",
+ "\t",
+ "\n",
"\x0b",
"\x0c",
- "\x0d",
+ "\r",
"\x0e",
"\x0f",
"\x10",
@@ -74,33 +69,31 @@
"\x1d",
"\x1e",
"\x1f",
- "\xf3",
- "\xf2",
+ "ó",
+ "ò",
"SHIFT",
"TO_C",
"TO_B",
- "\xf4",
- "\xf1",
+ "ô",
+ "ñ",
)
_charset_b = (
- _common
- + ("`",)
- + tuple(string.ascii_lowercase)
- + (
- "{",
- "|",
- "}",
- "~",
- "\x7f",
- "\xf3",
- "\xf2",
- "SHIFT",
- "TO_C",
- "\xf4",
- "TO_A",
- "\xf1",
- )
+ *_common,
+ "`",
+ *tuple(string.ascii_lowercase),
+ "{",
+ "|",
+ "}",
+ "~",
+ "\x7f",
+ "ó",
+ "ò",
+ "SHIFT",
+ "TO_C",
+ "ô",
+ "TO_A",
+ "ñ",
)
ALL = set(_common + _charset_a + _charset_b)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/codabar.py
new/python-barcode-0.15.1/barcode/codabar.py
--- old/python-barcode-0.14.0/barcode/codabar.py 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/barcode/codabar.py 2023-07-06
00:56:49.000000000 +0200
@@ -27,13 +27,13 @@
name = "Codabar (NW-7)"
- def __init__(self, code, writer=None, narrow=2, wide=5):
+ def __init__(self, code, writer=None, narrow=2, wide=5) -> None:
self.code = code
self.writer = writer or self.default_writer()
self.narrow = narrow
self.wide = wide
- def __str__(self):
+ def __str__(self) -> str:
return self.code
def get_fullcode(self):
@@ -46,19 +46,21 @@
) # Start with [A-D], followed by a narrow space
except KeyError:
- raise BarcodeError("Codabar should start with either A,B,C or D")
+ raise BarcodeError("Codabar should start with either A,B,C or D")
from None
try:
data += "n".join(
[codabar.CODES[c] for c in self.code[1:-1]]
) # separated by a narrow space
except KeyError:
- raise IllegalCharacterError("Codabar can only contain numerics or
$:/.+-")
+ raise IllegalCharacterError(
+ "Codabar can only contain numerics or $:/.+-"
+ ) from None
try:
data += "n" + codabar.STARTSTOP[self.code[-1]] # End with [A-D]
except KeyError:
- raise BarcodeError("Codabar should end with either A,B,C or D")
+ raise BarcodeError("Codabar should end with either A,B,C or D")
from None
raw = ""
for e in data:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/codex.py
new/python-barcode-0.15.1/barcode/codex.py
--- old/python-barcode-0.14.0/barcode/codex.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/codex.py 2023-07-06 00:56:49.000000000
+0200
@@ -2,6 +2,9 @@
:Provided barcodes: Code 39, Code 128, PZN
"""
+
+from typing import Collection
+
from barcode.base import Barcode
from barcode.charsets import code39
from barcode.charsets import code128
@@ -16,7 +19,7 @@
MIN_QUIET_ZONE = 2.54
-def check_code(code, name, allowed):
+def check_code(code: str, name: str, allowed: Collection[str]) -> None:
wrong = []
for char in code:
if char not in allowed:
@@ -34,7 +37,7 @@
name = "Code 39"
- def __init__(self, code: str, writer=None, add_checksum: bool = True):
+ def __init__(self, code: str, writer=None, add_checksum: bool = True) ->
None:
r"""
:param code: Code 39 string without \* and without checksum.
:param writer: A ``barcode.writer`` instance used to render the barcode
@@ -48,7 +51,7 @@
self.writer = writer or self.default_writer()
check_code(self.code, self.name, code39.REF)
- def __str__(self):
+ def __str__(self) -> str:
return self.code
def get_fullcode(self) -> str:
@@ -60,6 +63,7 @@
for k, v in code39.MAP.items():
if check == v[0]:
return k
+ return None
def build(self):
chars = [code39.EDGE]
@@ -88,7 +92,7 @@
digits = 6
- def __init__(self, pzn, writer=None):
+ def __init__(self, pzn, writer=None) -> None:
pzn = pzn[: self.digits]
if not pzn.isdigit():
raise IllegalCharacterError("PZN can only contain numbers.")
@@ -108,8 +112,8 @@
checksum = sum_ % 11
if checksum == 10:
raise BarcodeError("Checksum can not be 10 for PZN.")
- else:
- return checksum
+
+ return checksum
class PZN8(PZN7):
@@ -131,14 +135,14 @@
name = "Code 128"
- def __init__(self, code, writer=None):
+ def __init__(self, code, writer=None) -> None:
self.code = code
self.writer = writer or self.default_writer()
self._charset = "B"
self._buffer = ""
check_code(self.code, self.name, code128.ALL)
- def __str__(self):
+ def __str__(self) -> str:
return self.code
@property
@@ -183,31 +187,32 @@
elif self._charset == "B":
if look_next():
codes = self._new_charset("C")
- elif char not in code128.B:
- if char in code128.A:
- codes = self._new_charset("A")
+ elif char not in code128.B and char in code128.A:
+ codes = self._new_charset("A")
elif self._charset == "A":
if look_next():
codes = self._new_charset("C")
- elif char not in code128.A:
- if char in code128.B:
- codes = self._new_charset("B")
+ elif char not in code128.A and char in code128.B:
+ codes = self._new_charset("B")
return codes
def _convert(self, char):
if self._charset == "A":
return code128.A[char]
- elif self._charset == "B":
+ if self._charset == "B":
return code128.B[char]
- elif self._charset == "C":
+ if self._charset == "C":
if char in code128.C:
return code128.C[char]
- elif char.isdigit():
+ if char.isdigit():
self._buffer += char
if len(self._buffer) == 2:
value = int(self._buffer)
self._buffer = ""
return value
+ return None
+ return None
+ return None
def _try_to_optimize(self, encoded):
if encoded[1] in code128.TO:
@@ -232,8 +237,7 @@
encoded.extend(self._new_charset("B"))
encoded.append(self._convert(self._buffer[0]))
self._buffer = ""
- encoded = self._try_to_optimize(encoded)
- return encoded
+ return self._try_to_optimize(encoded)
def build(self):
encoded = self._build()
@@ -251,7 +255,7 @@
return super().render(options, text)
-class Gs1_128(Code128):
+class Gs1_128(Code128): # noqa: N801
"""
following the norm, a gs1-128 barcode is a subset of code 128 barcode,
it can be generated by prepending the code with the FNC1 character
@@ -263,7 +267,7 @@
FNC1_CHAR = "\xf1"
- def __init__(self, code, writer=None):
+ def __init__(self, code, writer=None) -> None:
code = self.FNC1_CHAR + code
super().__init__(code, writer)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/ean.py
new/python-barcode-0.15.1/barcode/ean.py
--- old/python-barcode-0.14.0/barcode/ean.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/ean.py 2023-07-06 00:56:49.000000000
+0200
@@ -41,7 +41,7 @@
digits = 12
- def __init__(self, ean, writer=None, no_checksum=False, guardbar=False):
+ def __init__(self, ean, writer=None, no_checksum=False, guardbar=False) ->
None:
ean = ean[: self.digits]
if not ean.isdigit():
raise IllegalCharacterError("EAN code can only contain numbers.")
@@ -72,7 +72,7 @@
self.MIDDLE = _ean.MIDDLE
self.writer = writer or self.default_writer()
- def __str__(self):
+ def __str__(self) -> str:
return self.ean
def get_fullcode(self):
@@ -127,11 +127,10 @@
class EuropeanArticleNumber13WithGuard(EuropeanArticleNumber13):
-
name = "EAN-13 with guards"
- def __init__(self, *args, guardbar=True, **kwargs):
- return super().__init__(*args, guardbar=guardbar, **kwargs)
+ def __init__(self, ean, writer=None, no_checksum=False, guardbar=True) ->
None:
+ super().__init__(ean, writer, no_checksum, guardbar)
class JapanArticleNumber(EuropeanArticleNumber13):
@@ -148,7 +147,7 @@
valid_country_codes = list(range(450, 460)) + list(range(490, 500))
- def __init__(self, jan, *args, **kwargs):
+ def __init__(self, jan, *args, **kwargs) -> None:
if int(jan[:3]) not in self.valid_country_codes:
raise WrongCountryCodeError(
"Country code isn't between 450-460 or 490-500."
@@ -192,11 +191,10 @@
class EuropeanArticleNumber8WithGuard(EuropeanArticleNumber8):
-
name = "EAN-8 with guards"
- def __init__(self, *args, guardbar=True, **kwargs):
- return super().__init__(*args, guardbar=guardbar, **kwargs)
+ def __init__(self, ean, writer=None, no_checksum=False, guardbar=True) ->
None:
+ super().__init__(ean, writer, no_checksum, guardbar)
class EuropeanArticleNumber14(EuropeanArticleNumber13):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/errors.py
new/python-barcode-0.15.1/barcode/errors.py
--- old/python-barcode-0.14.0/barcode/errors.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/errors.py 2023-07-06 00:56:49.000000000
+0200
@@ -3,10 +3,10 @@
class BarcodeError(Exception):
- def __init__(self, msg):
+ def __init__(self, msg) -> None:
self.msg = msg
- def __str__(self):
+ def __str__(self) -> str:
return self.msg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/isxn.py
new/python-barcode-0.15.1/barcode/isxn.py
--- old/python-barcode-0.14.0/barcode/isxn.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/isxn.py 2023-07-06 00:56:49.000000000
+0200
@@ -40,14 +40,13 @@
name = "ISBN-13"
- def __init__(self, isbn, writer=None):
+ def __init__(self, isbn, writer=None) -> None:
isbn = isbn.replace("-", "")
self.isbn13 = isbn
if isbn[:3] not in ("978", "979"):
raise WrongCountryCodeError("ISBN must start with 978 or 979.")
- if isbn[:3] == "979":
- if isbn[3:5] not in ("10", "11"):
- raise BarcodeError("ISBN must start with 97910 or 97911.")
+ if isbn[:3] == "979" and isbn[3:4] not in ("1", "8"):
+ raise BarcodeError("ISBN must start with 97910 or 97911.")
super().__init__(isbn, writer)
@@ -66,21 +65,21 @@
digits = 9
- def __init__(self, isbn, writer=None):
+ def __init__(self, isbn, writer=None) -> None:
isbn = isbn.replace("-", "")
isbn = isbn[: self.digits]
+ super().__init__("978" + isbn, writer)
self.isbn10 = isbn
self.isbn10 = f"{isbn}{self._calculate_checksum()}"
- super().__init__("978" + isbn, writer)
def _calculate_checksum(self):
tmp = sum(x * int(y) for x, y in enumerate(self.isbn10[:9], start=1))
% 11
if tmp == 10:
return "X"
- else:
- return tmp
- def __str__(self):
+ return tmp
+
+ def __str__(self) -> str:
return self.isbn10
@@ -99,7 +98,7 @@
digits = 7
- def __init__(self, issn, writer=None):
+ def __init__(self, issn, writer=None) -> None:
issn = issn.replace("-", "")
issn = issn[: self.digits]
self.issn = issn
@@ -114,13 +113,13 @@
)
if tmp == 10:
return "X"
- else:
- return tmp
+
+ return tmp
def make_ean(self):
return f"977{self.issn[:7]}00{self._calculate_checksum()}"
- def __str__(self):
+ def __str__(self) -> str:
return self.issn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/itf.py
new/python-barcode-0.15.1/barcode/itf.py
--- old/python-barcode-0.14.0/barcode/itf.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/itf.py 2023-07-06 00:56:49.000000000
+0200
@@ -29,7 +29,7 @@
name = "ITF"
- def __init__(self, code, writer=None, narrow=2, wide=5):
+ def __init__(self, code, writer=None, narrow=2, wide=5) -> None:
if not code.isdigit():
raise IllegalCharacterError("ITF code can only contain numbers.")
# Length must be even, prepend 0 if necessary
@@ -40,7 +40,7 @@
self.narrow = narrow
self.wide = wide
- def __str__(self):
+ def __str__(self) -> str:
return self.code
def get_fullcode(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/upc.py
new/python-barcode-0.15.1/barcode/upc.py
--- old/python-barcode-0.14.0/barcode/upc.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/upc.py 2023-07-06 00:56:49.000000000
+0200
@@ -22,7 +22,7 @@
digits = 11
- def __init__(self, upc, writer=None, make_ean=False):
+ def __init__(self, upc, writer=None, make_ean=False) -> None:
"""Initializes new UPC-A barcode.
:param str upc: The upc number as string.
@@ -44,17 +44,17 @@
self.upc = f"{upc}{self.calculate_checksum()}"
self.writer = writer or self.default_writer()
- def __str__(self):
+ def __str__(self) -> str:
if self.ean:
return "0" + self.upc
- else:
- return self.upc
+
+ return self.upc
def get_fullcode(self):
if self.ean:
return "0" + self.upc
- else:
- return self.upc
+
+ return self.upc
def calculate_checksum(self):
"""Calculates the checksum for UPCA/UPC codes
@@ -72,8 +72,8 @@
check = (evensum + oddsum * 3) % 10
if check == 0:
return 0
- else:
- return 10 - check
+
+ return 10 - check
def build(self):
"""Builds the barcode pattern from 'self.upc'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/version.py
new/python-barcode-0.15.1/barcode/version.py
--- old/python-barcode-0.14.0/barcode/version.py 2022-05-17
12:06:06.000000000 +0200
+++ new/python-barcode-0.15.1/barcode/version.py 2023-07-06
00:56:54.000000000 +0200
@@ -1,5 +1,4 @@
-# coding: utf-8
# file generated by setuptools_scm
# don't change, don't track in version control
-version = '0.14.0'
-version_tuple = (0, 14, 0)
+__version__ = version = '0.15.1'
+__version_tuple__ = version_tuple = (0, 15, 1)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/barcode/writer.py
new/python-barcode-0.15.1/barcode/writer.py
--- old/python-barcode-0.14.0/barcode/writer.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/barcode/writer.py 2023-07-06 00:56:49.000000000
+0200
@@ -80,8 +80,12 @@
"""
def __init__(
- self, initialize=None, paint_module=None, paint_text=None, finish=None
- ):
+ self,
+ initialize=None,
+ paint_module=None,
+ paint_text=None,
+ finish=None,
+ ) -> None:
self._callbacks = {
"initialize": initialize,
"paint_module": paint_module,
@@ -101,6 +105,8 @@
self.text_line_distance = 1
self.center_text = True
self.guard_height_factor = 1.1
+ self.margin_top = 1
+ self.margin_bottom = 1
def calculate_size(self, modules_per_line, number_of_lines):
"""Calculates the size of the barcode in pixel.
@@ -115,7 +121,9 @@
:rtype: Tuple
"""
width = 2 * self.quiet_zone + modules_per_line * self.module_width
- height = 2.0 + self.module_height * number_of_lines
+ height = (
+ self.margin_bottom + self.margin_top + self.module_height *
number_of_lines
+ )
number_of_text_lines = len(self.text.splitlines())
if self.font_size and self.text:
height += (
@@ -204,7 +212,7 @@
"""
if self._callbacks["initialize"] is not None:
self._callbacks["initialize"](code)
- ypos = 1.0
+ ypos = self.margin_top
base_height = self.module_height
for cc, line in enumerate(code):
# Left quiet zone is x startposition
@@ -257,11 +265,7 @@
if not text["start"]:
# If we don't have any start value, print the entire ean
ypos += self.text_distance
- if self.center_text:
- # better center position for text
- xpos = bxs + ((bxe - bxs) / 2.0)
- else:
- xpos = bxs
+ xpos = bxs + (bxe - bxs) / 2.0 if self.center_text else bxs
self._callbacks["paint_text"](xpos, ypos)
else:
# Else, divide the ean into blocks and print each block
@@ -271,7 +275,7 @@
# Calculates the position of the text by getting the difference
# between a guard end and the next start
text["start"].pop(0)
- for (s, e) in zip(text["start"], text["end"]):
+ for s, e in zip(text["start"], text["end"]):
text["xpos"].append(e + (s - e) / 2)
# The last text block is always put after the last guard end
@@ -283,7 +287,7 @@
ypos += pt2mm(self.font_size)
blocks = self.text
- for (text_, xpos) in zip(blocks, text["xpos"]):
+ for text_, xpos in zip(blocks, text["xpos"]):
self.text = text_
self._callbacks["paint_text"](xpos, ypos)
@@ -291,7 +295,7 @@
class SVGWriter(BaseWriter):
- def __init__(self):
+ def __init__(self) -> None:
BaseWriter.__init__(
self, self._init, self._create_module, self._create_text,
self._finish
)
@@ -344,10 +348,7 @@
def _create_text(self, xpos, ypos):
# check option to override self.text with self.human (barcode as
# human readable data, can be used to print own formats)
- if self.human != "":
- barcodetext = self.human
- else:
- barcodetext = self.text
+ barcodetext = self.human if self.human != "" else self.text
for subtext in barcodetext.split("\n"):
element = self._document.createElement("text")
attributes = {
@@ -367,10 +368,10 @@
def _finish(self):
if self.compress:
return self._document.toxml(encoding="UTF-8")
- else:
- return self._document.toprettyxml(
- indent=4 * " ", newl=os.linesep, encoding="UTF-8"
- )
+
+ return self._document.toprettyxml(
+ indent=4 * " ", newl=os.linesep, encoding="UTF-8"
+ )
def save(self, filename, output):
if self.compress:
@@ -396,12 +397,12 @@
ImageWriter = None
else:
- class ImageWriter(BaseWriter): # type: ignore
+ class ImageWriter(BaseWriter): # type: ignore[no-redef]
format: str
mode: str
dpi: int
- def __init__(self, format="PNG", mode="RGB"):
+ def __init__(self, format="PNG", mode="RGB") -> None:
"""Initialise a new write instance.
:params format: The file format for the generated image. This
parameter can
@@ -428,7 +429,7 @@
size = [
(mm2px(xpos, self.dpi), mm2px(ypos, self.dpi)),
(
- mm2px(xpos + width, self.dpi),
+ mm2px(xpos + width, self.dpi) - 1,
mm2px(ypos + self.module_height, self.dpi),
),
]
@@ -438,13 +439,13 @@
font_size = int(mm2px(pt2mm(self.font_size), self.dpi))
font = ImageFont.truetype(self.font_path, font_size)
for subtext in self.text.split("\n"):
- width, height = font.getsize(subtext)
- # determine the maximum width of each line
pos = (
- mm2px(xpos, self.dpi) - width // 2,
- mm2px(ypos, self.dpi) - height,
+ mm2px(xpos, self.dpi),
+ mm2px(ypos, self.dpi),
+ )
+ self._draw.text(
+ pos, subtext, font=font, fill=self.foreground, anchor="md"
)
- self._draw.text(pos, subtext, font=font, fill=self.foreground)
ypos += pt2mm(self.font_size) / 2 + self.text_line_distance
def _finish(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/docs/changelog.rst
new/python-barcode-0.15.1/docs/changelog.rst
--- old/python-barcode-0.14.0/docs/changelog.rst 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/docs/changelog.rst 2023-07-06
00:56:49.000000000 +0200
@@ -1,9 +1,23 @@
Changelog
---------
-v0.14.0
+v0.15.1
+~~~~~~~~~~
+
+* Add missing dependency to release script.
+
+v0.15.0
~~~~~~~~~~
+* **Breaking** Dropped support for Python 3.6.
+* Added support for Python 3.11.
+* Fixed compatibility with Pillow 10.0.
+* Updated ISBN to support newer allocated ranges.
+* Improved type hints.
+
+v0.14.0
+~~~~~~~
+
* **Breaking**: The default dimensions have changed slightly. This is so that
the results of generating a PNG and an SVG look more alike.
* Previous versions included an empty text element for SVGs with no comment.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/docs/conf.py
new/python-barcode-0.15.1/docs/conf.py
--- old/python-barcode-0.14.0/docs/conf.py 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/docs/conf.py 2023-07-06 00:56:49.000000000
+0200
@@ -1,3 +1,4 @@
+# noqa: INP001
# Configuration file for the Sphinx documentation builder.
#
# This file only contains a selection of the most common options. For a full
@@ -8,9 +9,6 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
-# import os
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
import barcode
# -- Project information -----------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/docs/getting-started.rst
new/python-barcode-0.15.1/docs/getting-started.rst
--- old/python-barcode-0.14.0/docs/getting-started.rst 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/docs/getting-started.rst 2023-07-06
00:56:49.000000000 +0200
@@ -43,7 +43,7 @@
# Write to a file-like object:
rv = BytesIO()
- EAN13(str("100000902922"), writer=SVGWriter()).write(rv)
+ EAN13("100000902922", writer=SVGWriter()).write(rv)
# Or to an actual file:
with open("somefile.svg", "wb") as f:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/docs/writers.rst
new/python-barcode-0.15.1/docs/writers.rst
--- old/python-barcode-0.14.0/docs/writers.rst 2022-05-17 12:05:57.000000000
+0200
+++ new/python-barcode-0.15.1/docs/writers.rst 2023-07-06 00:56:49.000000000
+0200
@@ -32,6 +32,7 @@
:font_size:
Font size of the text under the barcode in pt as *integer*.
+ Font size zero suppresses text.
Defaults to **10**.
:text_distance:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/pyproject.toml
new/python-barcode-0.15.1/pyproject.toml
--- old/python-barcode-0.14.0/pyproject.toml 1970-01-01 01:00:00.000000000
+0100
+++ new/python-barcode-0.15.1/pyproject.toml 2023-07-06 00:56:49.000000000
+0200
@@ -0,0 +1,45 @@
+[build-system]
+requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
+
+[tool.setuptools_scm]
+write_to = "barcode/version.py"
+version_scheme = "post-release"
+
+[tool.black]
+target-version = ['py37']
+
+[tool.ruff]
+select = [
+ "F",
+ "E",
+ "W",
+ "I",
+ "N",
+ "UP",
+ "YTT",
+ "BLE",
+ "B",
+ "C4",
+ "ISC",
+ "ICN",
+ "G",
+ "INP",
+ "PIE",
+ "PYI",
+ "PT",
+ "Q",
+ "RSE",
+ "RET",
+ "SIM",
+ "TID",
+ "TCH",
+ "INT",
+ "ERA",
+ "PGH",
+ "PLE",
+ "RUF",
+]
+target-version = "py37"
+
+[tool.ruff.isort]
+force-single-line = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-barcode-0.14.0/python_barcode.egg-info/PKG-INFO
new/python-barcode-0.15.1/python_barcode.egg-info/PKG-INFO
--- old/python-barcode-0.14.0/python_barcode.egg-info/PKG-INFO 2022-05-17
12:06:06.000000000 +0200
+++ new/python-barcode-0.15.1/python_barcode.egg-info/PKG-INFO 2023-07-06
00:56:54.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: python-barcode
-Version: 0.14.0
+Version: 0.15.1
Summary: Create standard barcodes with Python. No external modules needed.
(optional Pillow support included).
Home-page: https://github.com/WhyNotHugo/python-barcode
Author: Hugo Osvaldo Barrera et al
@@ -13,10 +13,6 @@
:target: https://github.com/WhyNotHugo/python-barcode/actions
:alt: CI status
- .. image::
https://codecov.io/gh/WhyNotHugo/python-barcode/branch/main/graph/badge.svg
- :target: https://codecov.io/gh/WhyNotHugo/python-barcode
- :alt: Build coverage
-
.. image:: https://readthedocs.org/projects/python-barcode/badge/
:target: https://python-barcode.rtfd.org/
:alt: documentation
@@ -38,7 +34,7 @@
There are no external dependencies when generating SVG files.
Pillow is required for generating images (e.g.: PNGs).
- Support Python 3.6 to 3.10.
+ Support Python 3.7 to 3.11.
.. image:: example-ean13.png
:target: https://github.com/WhyNotHugo/python-barcode
@@ -62,11 +58,11 @@
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: images
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/python-barcode-0.14.0/python_barcode.egg-info/SOURCES.txt
new/python-barcode-0.15.1/python_barcode.egg-info/SOURCES.txt
--- old/python-barcode-0.14.0/python_barcode.egg-info/SOURCES.txt
2022-05-17 12:06:06.000000000 +0200
+++ new/python-barcode-0.15.1/python_barcode.egg-info/SOURCES.txt
2023-07-06 00:56:54.000000000 +0200
@@ -3,6 +3,7 @@
LICENCE
README.rst
example-ean13.png
+pyproject.toml
setup.cfg
setup.py
tox.ini
@@ -46,6 +47,7 @@
python_barcode.egg-info/entry_points.txt
python_barcode.egg-info/requires.txt
python_barcode.egg-info/top_level.txt
+tests/__init__.py
tests/test_builds.py
tests/test_checksums.py
tests/test_init.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/setup.cfg
new/python-barcode-0.15.1/setup.cfg
--- old/python-barcode-0.14.0/setup.cfg 2022-05-17 12:06:06.000000000 +0200
+++ new/python-barcode-0.15.1/setup.cfg 2023-07-06 00:56:54.000000000 +0200
@@ -1,13 +1,3 @@
-[flake8]
-exclude = docs/conf.py
-extend-ignore =
- E203, # Black-incompatible colon spacing.
- W503, # Line jump before binary operator.
-max-line-length = 88
-
-[isort]
-force_single_line = true
-
[tool:pytest]
addopts =
-vv
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/setup.py
new/python-barcode-0.15.1/setup.py
--- old/python-barcode-0.14.0/setup.py 2022-05-17 12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/setup.py 2023-07-06 00:56:49.000000000 +0200
@@ -23,19 +23,15 @@
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
+ "Programming Language :: Python :: 3.11",
"Topic :: Multimedia :: Graphics",
"Topic :: Software Development :: Libraries :: Python Modules",
],
entry_points={"console_scripts": ["python-barcode =
barcode.pybarcode:main"]},
- use_scm_version={
- "version_scheme": "post-release",
- "write_to": "barcode/version.py",
- },
setup_requires=["setuptools_scm"],
extras_require={"images": ["pillow"]},
include_package_data=True,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/tests/test_checksums.py
new/python-barcode-0.15.1/tests/test_checksums.py
--- old/python-barcode-0.14.0/tests/test_checksums.py 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/tests/test_checksums.py 2023-07-06
00:56:49.000000000 +0200
@@ -3,44 +3,44 @@
def test_code39_checksum():
code39 = get_barcode("code39", "Code39")
- assert "CODE39W" == code39.get_fullcode()
+ assert code39.get_fullcode() == "CODE39W"
def test_pzn_checksum():
pzn = get_barcode("pzn", "103940")
- assert "PZN-1039406" == pzn.get_fullcode()
+ assert pzn.get_fullcode() == "PZN-1039406"
def test_ean13_checksum():
ean = get_barcode("ean13", "400614457735")
- assert "4006144577350" == ean.get_fullcode()
+ assert ean.get_fullcode() == "4006144577350"
def test_ean8_checksum():
ean = get_barcode("ean8", "6032299")
- assert "60322999" == ean.get_fullcode()
+ assert ean.get_fullcode() == "60322999"
def test_jan_checksum():
jan = get_barcode("jan", "491400614457")
- assert "4914006144575" == jan.get_fullcode()
+ assert jan.get_fullcode() == "4914006144575"
def test_ean14_checksum():
ean = get_barcode("ean14", "1234567891258")
- assert "12345678912589" == ean.get_fullcode()
+ assert ean.get_fullcode() == "12345678912589"
def test_isbn10_checksum():
isbn = get_barcode("isbn10", "376926085")
- assert "3769260856" == isbn.isbn10
+ assert isbn.isbn10 == "3769260856"
def test_isbn13_checksum():
isbn = get_barcode("isbn13", "978376926085")
- assert "9783769260854" == isbn.get_fullcode()
+ assert isbn.get_fullcode() == "9783769260854"
def test_gs1_128_checksum():
gs1_128 = get_barcode("gs1_128", "00376401856400470087")
- assert "00376401856400470087" == gs1_128.get_fullcode()
+ assert gs1_128.get_fullcode() == "00376401856400470087"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/tests/test_init.py
new/python-barcode-0.15.1/tests/test_init.py
--- old/python-barcode-0.14.0/tests/test_init.py 2022-05-17
12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/tests/test_init.py 2023-07-06
00:56:49.000000000 +0200
@@ -39,4 +39,4 @@
bio = BytesIO()
barcode.generate("ean13", "123455559121112", output=bio)
# XXX: File is not 100% deterministic; needs to be addressed at some point.
- # assert len(bio.getvalue()) == 6127
+ # assert len(bio.getvalue()) == 6127 # noqa: ERA001
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/python-barcode-0.14.0/tox.ini
new/python-barcode-0.15.1/tox.ini
--- old/python-barcode-0.14.0/tox.ini 2022-05-17 12:05:57.000000000 +0200
+++ new/python-barcode-0.15.1/tox.ini 2023-07-06 00:56:49.000000000 +0200
@@ -1,5 +1,5 @@
[tox]
-envlist = {py36,py37,py38,py39,py310}{,-images}
+envlist = {py37,py38,py39,py310,py311}{,-images}
skip_missing_interpreters = True
[testenv]
@@ -9,8 +9,3 @@
images: Pillow
commands = pytest --cov barcode
usedevelop = True
-
-[flake8]
-exclude=.tox,build,.eggs
-application-import-names=barcode,tests
-import-order-style=smarkets