python-mpd2 Changes List
========================

Changes in v3.1.1
-----------------

* Propagate exception to all pending commands by @2franix in https://github.com/Mic92/python-mpd2/pull/221
* Fix test for python 3.12 by @Mic92 in https://github.com/Mic92/python-mpd2/pull/222


Changes in v3.1.0
-----------------

* fixed multiple use of "group" in list command by @SoongNoonien in https://github.com/Mic92/python-mpd2/pull/187
* fix unmount command not working by @burrocargado in https://github.com/Mic92/python-mpd2/pull/188
* added binarylimit command by @SoongNoonien in https://github.com/Mic92/python-mpd2/pull/191
* Implement abstract socket support by @aurieh in https://github.com/Mic92/python-mpd2/pull/193
* missing import / wrong variable by @mk-81 in https://github.com/Mic92/python-mpd2/pull/196
* also test python3.12 by @Mic92 in https://github.com/Mic92/python-mpd2/pull/200
* asyncio: fix race condition in command queue by @yakshaver2000 in https://github.com/Mic92/python-mpd2/pull/199

Changes in v3.0.5
-----------------

* python 3.10 compatibility
* fixes for using idle in async
* use python's internal mock library instead of external mock
* expose connection status in async (connected property)

Changes in v3.0.4
-----------------

* exposes failure responses in CommandError exceptions

Changes in v3.0.3
-----------------

* asyncio: tolerate early disconnects

Changes in v3.0.2
-----------------

* asyncio: fix disconnect happen before connect
* asyncio: better protection against request cancellation
* asyncio: idle iterator raises error when connection closed


Changes in v3.0.1
-----------------

* 3.0.0 accidentially introduced typing annotation that were not meant to be published yet.


Changes in v3.0.0
-----------------

* Breaking changes: albumart now returns dictionary :code:`{"size": "...",
"binary": b"..."}` instead of just a string
* add readpicture command
* add partition, newpartition and delpartition commands
* add moveoutput command
* removed deprecated `send_` and `fetch_` commands. Use the asyncio or twisted API instead for asynchronous mpd commands.

Changes in v2.0.0
-----------------

* Minimum python version was increased to python3.6, python2.7 support was dropped
* asyncio: fix parsing delimiters
* add support for albumart command

Changes in v1.1.0
-----------------

* Fix list command to work with grouping. Always returns list of dictionaries now.
  Make sure to adopt your code since this is an API change.
* fix compatibility with python3.9
* fix connecting to unix socket in asyncio version
* close asyncio transports on disconnect
* create TCP socket with TCP_NODELAY for better responsiveness


Changes in v1.0.0
-----------------

* Add support for twisted
* Add support for asyncio
* Use @property and @property.setter for MPDClient.timeout
* Deprecate send_* and fetch_* variants of MPD commands: Consider using asyncio/twisted instead
* Port argument is optional when connecting via unix sockets.
* python-mpd will now raise mpd.ConnectionError instead of socket.error, when connection is lost
* Add command outputvolume for forked-daapd


Changes in v0.5.5
-----------------

* fix sended newlines on windows systems
* include tests in source distribution


Changes in v0.5.4
-----------------

* support for listfiles, rangeid, addtagid, cleartagid, mount, umount,
  listmounts, listneighbors


Changes in v0.5.3
-----------------

* noidle command does returns pending changes now


Changes in v0.5.2
-----------------

* add support for readcomments and toggleoutput


Changes in v0.5.1
-----------------

* add support for ranges


Changes in 0.5.0
----------------

* improved support for sticker


Changes in 0.4.6
----------------

* enforce utf8 for encoding/decoding in python3


Changes in 0.4.5
----------------

* support for logging


Changes in 0.4.4
----------------

* fix cleanup after broken connection
* deprecate timeout parameter added in v0.4.2
* add timeout and idletimeout property


Changes in 0.4.3
----------------

* add searchadd and searchaddpl command
* fix commands without a callback function
* transform MPDClient to new style class


Changes in 0.4.2
----------------

* backward compatible unicode handling
* added optional socket timeout parameter


Changes in 0.4.1
----------------

* prio and prioid was spelled wrong
* added config command
* remove deprecated volume command


Changes in 0.4.0
----------------

* python3 support (python2.6 is minimum python version required)
* support for the upcoming client-to-client protocol
* added new commands of mpd (seekcur, prior, priorid)
* methods are explicit declared now, so they are shown in ipython
* added unit tests
* documented API to add new commands (see Future Compatible)


Changes in 0.3.0
----------------

* added replay_gain_mode and replay_gain_status commands
* added mixrampdb and mixrampdelay commands
* added findadd and rescan commands
* added decoders command
* changed license to LGPL
* added sticker commands
* correctly handle errors in command lists (fixes a longstanding bug)
* raise IteratingError instead of breaking horribly when called wrong
* added fileno() to export socket FD (for polling with select et al.)
* asynchronous API (use send_<cmd> to queue, fetch_<cmd> to retrieve)
* support for connecting to unix domain sockets
* added consume and single commands
* added idle and noidle commands
* added listplaylists command


Changes in 0.2.1
----------------

* connect() no longer broken on Windows


Changes in 0.2.0
----------------

* support for IPv6 and multi-homed hostnames
* connect() will fail if already connected
* commands may now raise ConnectionError
* addid and update may now return None
