π ChangelogΒΆ
2.1.1-devΒΆ
Release date: 202x-xx-xx
Bug FixesΒΆ
FeaturesΒΆ
Technical ChangesΒΆ
2.1.0ΒΆ
Release date: 2025-03-03
Bug FixesΒΆ
Calendar recipe: prevent whole-day events from day N-1 to also appear at day N.
Calendar recipe: whole-day event date formatting.
Calendar recipe: consistent spacing between the calendar picture and the next item.
Weather recipe: shortened descriptions to fit into the remaining 18 characters wide.
Tests: missing code adaptation in
test_calendar.py::test_get_events_on_multi_days().
FeaturesΒΆ
Calendar recipe: support in-between recurring events.
Technical ChangesΒΆ
Calendar recipe: removed the
icaleventsrequirement.Calendar recipe: added
recurring-ical-events, andrequests, requirements.
2.0.0ΒΆ
Release date: 2025-01-10
Bug FixesΒΆ
Weather recipe: fixed special characters handling (PR #49 ).
Weather recipe: added the missing
byteorder(keyword-)argument toint.from_bytes()calls for Python 3.9, and 3.10.
FeaturesΒΆ
Calendar recipe: improve multi-days event display (issue #43 ).
Calendar recipe: improve printing performances.
Calendar recipe: feed before printing birthdays.
Weather recipe: now using a custom User-Agent HTTP header to fetch OpenWeatherMap data.
Technical ChangesΒΆ
Drop support for Python 3.7, and 3.8.
Calendar recipe: added the
recipes.calendar.format_event_date()function.Calendar recipe: moved the
recipes.calendar.Calendar.forge_header_image()method to its ownrecipes.calendar.forge_header_image()function.Weather recipe: added the
recipes.weather.USER_AGENTconstant.Weather recipe: removed the
recipes.weather.UNKNOWNconstant.
1.0.0ΒΆ
Release date: 2024-12-17
Bug FixesΒΆ
Reworked images printing to, hopefully, fix all issues.
Fixed printed lines counting in
ThermalPrinter.out().
FeaturesΒΆ
Support for QR701 printers is confirmed (issue #15 ).
New extra:
calendar, to print daily stuff from your calendar, and birthdays as a bonus! See recipes.New extra:
persian, to make your life easier when printing Persian text, see recipes.New extra:
weather, to print the weather alongside with the saint of the day! See recipes.New text styles:
ThermalPrinter.font_b(), andThermalPrinter.left_blank().New options to tweak printer behaviors:
byte_time,dot_feed_time,dot_print_time,read_timeout, andwrite_timeout. SeeThermalPrinter.New option to control printer settings at initialization to
ThermalPrinter:run_setup_cmd=bool(issue #15 ).It is now possible to pass barcode styling instructions in
ThermalPrinter.barcode(), in the same way itβs done forThermalPrinter.out().Introduced statistics persisted at exit. This behavior can be disabled by passing
use_stats=FalsetoThermalPrinter.Enhanced the demonstration code.
Rewrote the entire documentation to cover all possible stuff, and it is way prettier now, (thanks to the awesome Shibuya theme ).
Improved the documentation by fixing issues found with Harper .
100% tests coverage!
Added lot of logs.
Technical ChangesΒΆ
Added the
constants.Justifyconstant to use in theThermalPrinter.justify()method (breaking change).Added the
constants.Sizeconstant to use in theThermalPrinter.size()method (breaking change).Added the
constants.Underlineconstant to use in theThermalPrinter.underline()method (breaking change).Added the
constants.Defaultsconstant. And they can be tweaked viaTP_*environment variables.Added the
ThermalPrinter.__exit__()method to properly close the printer when leaving the context manager.Added the
ThermalPrinter.has_paper()property.Added the
ThermalPrinter.close()method.Added the
ThermalPrinter.demo()method.Added the
ThermalPrinter.font_b()method.Added the
ThermalPrinter.image_chunks()method.Added the
ThermalPrinter.image_convert()method.Added the
ThermalPrinter.image_resize()method.Added the
ThermalPrinter.init()method.Added the
ThermalPrinter.left_blank()method.Added the
ThermalPrinter.status_to_dict()method.Added the
tools.stats_file()function.Added the
tools.stats_load()function.Added the
tools.stats_save()function.Moved the
tools.printer_tests()function to theThermalPrinter.demo()method (breaking change).Moved the
tools.print_char()function to theThermalPrinter.print_char()method (breaking change).Moved the
validate.validate_barcode()function to theThermalPrinter.validate_barcode()method.Removed the
validate.pyfile, and mostvalidate_*()functions.Removed the
exceptions.ThermalPrinterConstantErrorclass.
0.3.0ΒΆ
Release date: 2024-11-02
FeaturesΒΆ
Added support for Python 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, and 3.14.
Support for DP-EH400/1 printers is confirmed (PR #17 ).
Added type annotations.
New option to specify commands timeout via
command_timeout=float)inThermalPrinter(PR #17 ).Documentation is now generated from the source code to never miss signature changes.
Moved the CI from Travis-CI to GitHub actions.
Run ruff on the entire source code.
Added more quality checks.
Technical ChangesΒΆ
Drop support for Python 3.5, and 3.6.
Renamed
tools.test_char()βtools.print_char().Renamed
tools.testing()βtools.printer_tests().No longer checks that the provided
imageargument toThermalPrinter.image()is aPIL.Imageobject.
ContributorsΒΆ
0.2.0ΒΆ
Release date: 2019-01-10
Bug FixesΒΆ
Fixed image printing in
tools.printer_tests()when the module is installed. Will now raise an exception ifraise_on_errorargument isTrue(default).
FeaturesΒΆ
Add communication error in the
ThermalPrinter.status()(issue #3 ). Will now raise an exception ifraise_on_errorargument isTrue(default).Use
setup.cfginstead ofsetup.py.
Technical ChangesΒΆ
Removed
exceptions.ThermalPrinterAttributeErrorexception.Attributes
ThermalPrinter.is_online,ThermalPrinter.is_sleeping,ThermalPrinter.lines,ThermalPrinter.feedsandThermalPrinter.max_columnnow raiseAttributeErrorwhen trying to set them (previously raisingThermalPrinterAttributeError).Changed the signature of
tools.printer_tests(port='/dev/ttyAMA0', heat_time=80)()βtools.printer_tests(printer=None, raise_on_error=True)().Changed the signature of
tools.print_char(char)()βtools.print_char(char, printer=None)().
ContributorsΒΆ
Thanks to our beloved contributors: @d21d3q
0.1.0ΒΆ
Release date: 2016-05-24
FeaturesΒΆ
First working version.
ContributorsΒΆ
Thanks to our beloved contributors: @phillipthelen , and @AKokkalas