Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
3.1.0 - 2026-02-09
Added
Support for 3.14.
Changed
Migrated from Github to SourceHut for lirc source code hosting.
3.0.0 - 2024-10-20
Added
Support for Python 3.12 and 3.13.
Removed
Support for Python 3.6, 3.7, and 3.8. These versions are no longer supported by Python.
Fixed
The
Client’ssimulatemethod was sending the command twice by default. Therepeat_countkeyword argument was set to 1 instead of 0. This now defaults to 0.On older versions, this can be worked around by explicitly setting the
repeat_countkeyword argument to 0 when calling thesimulatemethod.
2.0.2 - 2022-11-25
Added
Official support for Python 3.11. There is no user-facing change here. However, the tests are now also being run against Python 3.11 on CI and being advertised as supported via a pypi classifier.
2.0.1 - 2021-11-28
Changed
All double underscore (
__) internal attributes have been changed to instead be prefixed by a single underscore (_). This removes the name mangling that Python does on those attributes.
Fixed
lirc.Clientwill throw aTypeErroronly if the passedconnectionis not an instance ofAbstractConnection. Previously, it would throw aTypeErrorifconnectionwas not anLircdConnection.
2.0.0 - 2021-04-18
Fixed - Potential Breaking Changes
The
Client’ssend_oncemethod was sending an IR code twice by default. This is because therepeat_countkeyword argument was set to 1 instead of 0, causing it to send the initial IR code and repeat it once. This now defaults to 0.On v1, this can be worked around by explicitly specifying the
repeat_countto only send 1 IR signal by setting it to 0:import lirc client = lirc.Client() client.send_once('remote', 'key', repeat_count=0)
The
Darwinconnection to lircd was set to default to/opt/run/var/run/lirc/lircdwhen it should have been/opt/local/var/run/lirc/lircd. This is unlikely to have an impact since the previous default directory was incorrect.With v1 and on macOS, this can also be worked around by explicitly specifying the connection path rather than relying on the default.
import lirc client = lirc.Client( connection=lirc.LircdConnection( address="/opt/local/var/run/lirc/lircd", ) )
1.0.1 - 2020-12-26
Fixed
PyPI is complaining that v1.0.0 is already taken, since it was a release that was deleted from a previous mistake.
1.0.0 - 2020-12-26
Added
DefaultConnection.addressandDefaultConnection.socketmay raises anUnsupportedOperatingSystemErrorif the operating system you’re on is not MacOS, Linux, or Windows.
Changed
lirc.Clientraises aTypeErrorinstead of aValueErrornow if aconnectionis passed in that is not an instance ofLircdConnection.sendonlirc.Clientis now calledsend_once.start_repeatonlirc.Clientis now calledsend_start.stop_repeatonlirc.Clientis now calledsend_stop.
Removed
socketproperty fromLircdConnection.
Fixed
The
remoteandkeyoptional arguments to thelirc.Client’sstop_repeatmethod were not overriding the last sent remote and key.
0.2.0 - 2020-12-13
Added
LircdConnectionto handle configuring the connection onClient.
Changed
Lircis now namedClient.Clientnow takes in aconnectionas the optional argument to configure it’s connection. Thatconnectionmust be aLircdConnectionclass if you would like to customize the connection. TheLircdConnectiontakes in anaddress,socket, andtimeoutwith optional keyword arguments. Anything not specified with use the defaults for that operating system.
Removed
DEFAULT_SOCKET_PATHconstant onClient. It no longer makes sense with cross-platform support.ENCODINGconstant onClient.socket_pathandsocket_timeouton theLircconstructor.
0.1.0 - 2020-07-13
Initial Release