Skip to content

0.11

Choose a tag to compare

@mmulqueen mmulqueen released this 07 May 07:30
· 35 commits to main since this release
  • Documentation: full Sphinx-built docs are now published at https://www.method-b.uk/pyStrich/docs/, covering each symbology, recipes and printing guidance, exception hierarchy and a reference index.
  • DataMatrix: add explicit "iso-8859-1" and "utf-8" encodings for non-ASCII payloads, selectable via DataMatrixData.
  • DataMatrix: saner handling of non-ASCII input under the legacy "compat" encoding, with deprecation in favour of explicit encodings.
  • DataMatrix: proper FNC1 support via the FNC1 marker constant. The long-accepted chr(231) workaround for GS1 still works behind a Fnc1WorkaroundCompatWarning (see issue #13).
  • QR Code: fix issue #8; certain valid strings could not generate a QR code.
  • EAN-13 quiet zone is now 11 modules left, 7 modules right (per the GS1 General Specifications); previously 9 modules each side, which was below spec on the left.
  • EAN-13: the leading digit’s vertical position is now configurable via an options dict (first_digit_y_offset); pass 0 for a level baseline across all three digit groups (issue #18). The default preserves the classic look where the first digit is slightly higher.
  • Errors: unified exception hierarchy. All pyStrich-raised errors now inherit from PyStrichError.
  • Public get_pilimage method on every encoder, returning a PIL.Image.Image directly.
  • Typing: encoders and renderers now have type hints and are checked with mypy.
  • Tests: refactored test suite to make better use of pytest, and extended encode/decode round-trip test coverage to Code 39, Code 128, EAN-13 and QR Code (previously DataMatrix only).
  • Confirmed compatibility with newer Pillow versions and Python 3.13.
  • Drop support for Python 3.8 and 3.9. Supported versions are now Python 3.10 to 3.14.