NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #5146 most downloaded on PyPI
Barcode rendering for Python supporting QRcode, Aztec, PDF417, I25, Code128, Code39 and many more types.
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 8 days to 13 months
Nearly every release is documented
notes for 42 of 42 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
42 releases · first in 2016
Upgrade vendored BWIPP to its 2026-09-28 release. This version includes:
Support Python 3.15.
Drop Python 3.9 support.
Upgrade vendored BWIPP to its 2026-09-28 release. This version includes:
performance improvements to several encoders, including Aztec Code, PDF417, QR Code, Data Matrix, MaxiCode, and DotCode
fixes for several Aztec Code encoder bugs involving bit stuffing and compact symbol mode messages
a reworked MaxiCode renderer that draws hexagons at their specified size and validates symbol size under strictspec
uniform round dot rendering for DotCode and other dotty symbologies under gridfit
new gridfit and griddpi renderer options to snap module boundaries to the device pixel grid
hardened input validation across all encoders and renderers
You can read its changelog in the treepoem repo.
Switch package build backend from setuptools to uv_build. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.
One column per quarter.
Upgrade vendored BWIPP to its 2025-06-16 release. This version includes a few small improvements. You can read its changelog in the treepoem repo __.
Support Python 3.14.
Upgrade vendored BWIPP to its 2025-06-16 release. This version includes a few small improvements. You can read its changelog in the treepoem repo.
Prevent GhostScript popup windows on Windows.
Prevent GhostScript popup windows on Windows.
Thanks to shablam in PR #595.
Upgrade vendored BWIPP to its 2025-03-14 release. This version includes a few small improvements. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2025-03-14 release. This version includes a few small improvements. You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2024-11-16 release. This version includes a couple of small improvements. You can read its changelog in the treepoem rep
Upgrade vendored BWIPP to its 2024-11-16 release. This version includes a couple of small improvements. You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2024-08-17 release. This version includes many small improvements. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2024-08-17 release. This version includes many small improvements. You can read its changelog in the treepoem repo.
Drop Python 3.8 support.
Support Python 3.13.
Use |importlib.resources|__ on Python 3.9+, which should allow treepoem to work when installed in different packaging scenarios like with zipimport or
Use importlib.resources on Python 3.9+, which should allow treepoem to work when installed in different packaging scenarios like with zipimport or PyInstaller apps.
Thanks to HemantShrimali1982 for the initial report in Issue #273.
Fixed text positioning to avoid cropping after upgrade to BWIPP 2023-07-23.
Fixed text positioning to avoid cropping after upgrade to BWIPP 2023-07-23.
Thanks to Nico Hein in PR #496.
Update EPS generation to follow the BWIPP recommendation. This change improves image quality including anti-aliased text, but slightly changes image dimensions for some barcode types.
This change also modifies the return type of generate_barcode() from PIL.EpsImagePlugin.EpsImageFile to its superclass PIL.Image.Image. In most cases, this change will be transparent, as most methods on EpsImageFile, such as save(), are inherited from Image.
Done with guidance from BWIPP creator Terry Burton in PR #499.
Added scale parameter to generate_barcode() and -s/--scale option to the command line. Changing the scale changes the pixels in the output image.
Added scale parameter to generate_barcode() and -s/--scale option to the command line. Changing the scale changes the pixels in the output image.
Upgrade vendored BWIPP to its 2023-07-23 release. This version includes several improvements, including removing borders on some barcode types. You ca
Upgrade vendored BWIPP to its 2023-07-23 release. This version includes several improvements, including removing borders on some barcode types. You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2023-07-05 release. This version includes a bunch of improvements, including more validation and changing Aztec Code to
Drop Python 3.7 support.
Upgrade vendored BWIPP to its 2023-07-05 release. This version includes a bunch of improvements, including more validation and changing Aztec Code to generate only full-range symbols by default. You can read its changelog in the treepoem repo.
* Support Python 3.12.
Support Python 3.12.
Upgrade vendored BWIPP to its 2022-10-19 release. This version includes some more validation improvements and small rendering fixes. You can read its
Upgrade vendored BWIPP to its 2022-10-19 release. This version includes some more validation improvements and small rendering fixes. You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2022-07-29 release. This version includes:
Upgrade vendored BWIPP to its 2022-07-29 release. This version includes:
new helper encoders for GS1 Digital Link URIs included in QR Code and Data Matrix symbols
improved validation of GS1 syntax data
a friendly escape mechanism for ASCII control characters
You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2022-06-10 release. This version includes some fixes for the rendering of certain barcode formats. You can read its chan
Upgrade vendored BWIPP to its 2022-06-10 release. This version includes some fixes for the rendering of certain barcode formats. You can read its changelog in the treepoem repo.
* Support Python 3.11.
Support Python 3.11.
* Drop Python 3.6 support.
Drop Python 3.6 support.
Upgrade vendored BWIPP to its 2021-09-28 release. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2021-09-28 release. You can read its changelog in the treepoem repo.
Upgrade vendored BWIPP to its 2021-07-15 release. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2021-07-15 release. You can read its changelog in the treepoem repo.
* Add type hints.
Add type hints.
* Support Python 3.10.
Support Python 3.10.
Upgrade vendored BWIPP to its 2021-02-06 release. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2021-02-06 release. You can read its changelog in the treepoem repo.
Stop distributing tests to reduce package size. Tests are not intended to be run outside of the tox setup in the repository. Repackagers can use GitHub's tarballs per tag.
Upgrade vendored BWIPP to its 2020-12-28 release. You can read its changelog in the treepoem repo __.
Upgrade vendored BWIPP to its 2020-12-28 release. You can read its changelog in the treepoem repo.
* Drop Python 3.5 support. * Support Python 3.9.
Drop Python 3.5 support.
Support Python 3.9.
Upgrade BWIPP from 2020-09-13 to 2020-10-11. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem
Upgrade BWIPP from 2020-09-13 to 2020-10-11. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Upgrade BWIPP from 2020-04-01 to 2020-09-13. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem
Upgrade BWIPP from 2020-04-01 to 2020-09-13. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Upgrade BWIPP from 2019-11-08 to 2020-04-01. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem
Upgrade BWIPP from 2019-11-08 to 2020-04-01. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Update allowed barcode list to add missing types from new versions of BWIPP.
Update allowed barcode list to add missing types from new versions of BWIPP.
Upgrade BWIPP from 2019-08-05 to 2019-11-08. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem
Upgrade BWIPP from 2019-08-05 to 2019-11-08. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Upgrade BWIPP from 2019-04-24 to 2019-08-05. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem
Upgrade BWIPP from 2019-04-24 to 2019-08-05. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Converted setuptools metadata to configuration file. This meant removing the __version__ attribute from the package.
If you want to inspect the installed version, use importlib.metadata.version("treepoem") (docs / backport).
Update Python support to 3.5-3.8.
Update Python support to 3.5-3.7, as 3.4 has reached its end of life.
Update Python support to 3.5-3.7, as 3.4 has reached its end of life.
Upgrade BWIPP from 2017-07-27 to 2019-04-24. This version has a few bug fixes and performance improvements. You can read its changelog in the treepoem repo.
Drop Python 2 support, only Python 3.4+ is supported now.
Drop Python 2 support, only Python 3.4+ is supported now.
Upgrade BWIPP from 2017-05-20 to 2018-07-27. This version has a few bug fixes and performance improvements. You can read its changelog in the vendored copy in the treepoem repo.
This has introduced a dependency on six. This may be backwards incompatible, depending on what type of data you're passing in on Python 2.
Support binary barcode data - if bytes (str on Python 2) is passed as data, it's not encoded. This has introduced a dependency on six. This may be backwards incompatible, depending on what type of data you're passing in on Python 2.
Make treepoem.barcode_types a dict mapping the BWIPP encoder names to a custom type containing a human-readable description. This is backwards incompatible if you're relying on barcode_types which previously was a set of the encoder names.
Upgrade BWIPP from 2017-10-19 to 2018-05-20. This has a few bug fixes and performance improvements. You can read its changelog in the vendored copy in the treepoem repo.
Fix formatting bug in CLI output.
Fix formatting bug in CLI output.
Make the options argument to generate_barcode optional.
Make the options argument to generate_barcode optional.
Add a CLI treepoem.
Upgrade BWIPP from 2017-07-10 to 2017-10-19. This has a few bug fixes and performance improvements. You can read its changelog in the vendored copy in the treepoem repo.
Upgrade BWIPP from 2017-07-10 to 2017-10-19. This has a few bug fixes. You can read its changelog in the vendored copy in the treepoem repo __.
Upgrade BWIPP from 2017-07-10 to 2017-10-19. This has a few bug fixes. You can read its changelog in the vendored copy in the treepoem repo.
Upgrade BWIPP from 2017-06-20 to 2017-07-10. This has a few bug fixes. You can read its changelog in the vendored copy in the treepoem repo __.
Upgrade BWIPP from 2017-06-20 to 2017-07-10. This has a few bug fixes. You can read its changelog in the vendored copy in the treepoem repo.
Upgrade BWIPP from 2015-11-24 to 2017-06-20. This has a number of bug fixes, and supports more barcode types. It has also changed the pixel-for-pixel
Upgrade BWIPP from 2015-11-24 to 2017-06-20. This has a number of bug fixes, and supports more barcode types. It has also changed the pixel-for-pixel output of some formats, although they still encode the same information - notably QR codes, which are tested in treepoem's test suite. You can read its changelog in the vendored copy in the treepoem repo.
Add treepoem.barcode_types, a set of all the names of supported barcode types, and error if asked to generate a barcode of an unknown type.
Add treepoem.barcode_types, a set of all the names of supported barcode types, and error if asked to generate a barcode of an unknown type.
* Support Windows.
Support Windows.
* Add the missing BWIPP files.
Add the missing BWIPP files.
Rename PostscriptError to TreepoemError.
Use $PATH to find gs binary.
Rename PostscriptError to TreepoemError.
Add basic setup.py.
Setup Travis CI build.
Setup Tox
Your coding agent can read these notes before it upgrades. Set up the MCP server →