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.
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
'ssimulate
method was sending the command twice by default. Therepeat_count
keyword 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_count
keyword argument to 0 when calling thesimulate
method.
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.
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.Client
will throw aTypeError
only if the passedconnection
is not an instance ofAbstractConnection
. Previously, it would throw aTypeError
ifconnection
was not anLircdConnection
.
Fixed - Potential Breaking Changes
The
Client
'ssend_once
method was sending an IR code twice by default. This is because therepeat_count
keyword 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_count
to only send 1 IR signal by setting it to 0:import lirc client = lirc.Client() client.send_once('remote', 'key', repeat_count=0)
The
Darwin
connection to lircd was set to default to/opt/run/var/run/lirc/lircd
when 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", ) )
Fixed
- PyPI is complaining that v1.0.0 is already taken, since it was a release that was deleted from a previous mistake.
Added
DefaultConnection.address
andDefaultConnection.socket
may raises anUnsupportedOperatingSystemError
if the operating system you're on is not MacOS, Linux, or Windows.
Changed
lirc.Client
raises aTypeError
instead of aValueError
now if aconnection
is passed in that is not an instance ofLircdConnection
.send
onlirc.Client
is now calledsend_once
.start_repeat
onlirc.Client
is now calledsend_start
.stop_repeat
onlirc.Client
is now calledsend_stop
.
Removed
socket
property fromLircdConnection
.
Fixed
- The
remote
andkey
optional arguments to thelirc.Client
'sstop_repeat
method were not overriding the last sent remote and key.
Added
LircdConnection
to handle configuring the connection onClient
.
Changed
Lirc
is now namedClient
.Client
now takes in aconnection
as the optional argument to configure it's connection. Thatconnection
must be aLircdConnection
class if you would like to customize the connection. TheLircdConnection
takes in anaddress
,socket
, andtimeout
with optional keyword arguments. Anything not specified with use the defaults for that operating system.
Removed
DEFAULT_SOCKET_PATH
constant onClient
. It no longer makes sense with cross-platform support.ENCODING
constant onClient
.socket_path
andsocket_timeout
on theLirc
constructor.
- Initial Release