Breaking change
pychromecast has seen some major changes in this release, which unfortunately causes multiple breaking changes.
The most important breaking changes are:
- Most user facing functions accepting an optional callback function have been changed such that the optional arguments are now kwarg only (779)
- The signature of callbacks called when requests are completed has been changed (783)
- Some named tuples have been replaced with dataclasses (787)
- The ServiceInfo class has been split in two classes (790)
- Parameter names of `MediaStatusListener.load_media_failed` has been changed (826)
- Many user facing functions now have a default timeout, and will raise when that timeout expires (836)
- It's no longer supported to use pychromecast with event custom loops (837)
What's Changed
* Fix errors in README.rst (853) emontnemery
* Pin Python 3.11 in pythonpublish workflow (852) emontnemery
* Bump version to 14.0.0 (843) emontnemery
* Update README.rst (851) strunker
* Add example setting playback rate (849) emontnemery
* Minor improvement of example scripts (847) emontnemery
* Call callback_function on error (850) emontnemery
* Add set_playback_rate method (660) n18abdel
* Update README.rst (581) strunker
* Align flake settings with black 24 codestyle (848) emontnemery
* Fix debug logging in examples (845) emontnemery
* Fix typo in youtube controller (844) emontnemery
* Improve dashcast example (846) emontnemery
* Raise on timeout in Chromecast methods disconnect, join and wait (842) emontnemery
* Deduplicate log setup in examples (841) emontnemery
* Improve logging in example scripts (839) emontnemery
* Fix deprecated call to ssl.SSLContext without specifying protocol (840) emontnemery
* Remove deprecated properties from MediaController (838) emontnemery
* Remove support for custom loop (837) emontnemery
* Raise when requests time out or can't be sent (836) emontnemery
* Add type annotations to examples/plex_multi_example.py (834) emontnemery
* Remove unused exceptions (835) emontnemery
* Add type annotations to controllers/plex.py (832) emontnemery
* Add timeout to media controller (831) emontnemery
* Add timeout to quickplay (833) emontnemery
* Add timeout to quickplay interface (827) emontnemery
* Remove unneeded pylint ignore directives (824) emontnemery
* Adjust MediaStatusListener.load_media_failed (826) emontnemery
* Include beautifulsoup in test requirements (825) emontnemery
* Add type annotations to examples (823) emontnemery
* Update requirements for development and testing (822) emontnemery
* Drop setup.py (821) emontnemery
* Add overloads for get_chromecasts (820) emontnemery
* Fix yleareena example (819) emontnemery
* Fix dashcast example (818) emontnemery
* Add type annotations to quick_play.py (817) emontnemery
* Add type annotations to controllers/youtube.py (816) emontnemery
* Add type annotations to controllers/yleareena.py (815) emontnemery
* Add type annotations to controllers/supla.py (813) emontnemery
* Add type annotations to controllers/homeassistant.py (811) emontnemery
* Use exclude pattern in mypy.ini (812) emontnemery
* Add type annotations to controllers/dashcast.py (810) emontnemery
* Add type annotations to controllers inheriting BaseMediaPlayer (809) emontnemery
* Add type annotations to __init__.py (808) emontnemery
* Add type annotations to socket_client.py (805) emontnemery
* Correct generating cast messages (806) emontnemery
* Add type annotations to controllers/multizone.py (800) emontnemery
* Retry launching app (803) emontnemery
* Remove Python 2.x compatibility from socket client (801) emontnemery
* Remove Python 3.1 compatibility from socket client (802) emontnemery
* Add type annotations to controllers/media.py (799) emontnemery
* Unregister HomeAssistantController on instance conflict (798) emontnemery
* Fix iteration over message handlers (797) emontnemery
* Add type annotations to controllers/receiver.py (796) emontnemery
* Add type annotations to controllers/__init__.py (795) emontnemery
* Fix call to request callback on SocketClient (794) emontnemery
* Add type annotations to discovery.py (793) emontnemery
* Add type annotations to dial.py (792) emontnemery
* Add type annotations to config.py (791) emontnemery
* Split ServiceInfo class in two classes (790) emontnemery
* Run mypy in CI (789) emontnemery
* Regenerate protobuf files (788) emontnemery
* Replace named tuples with frozen dataclasses (787) emontnemery
* Make optional callback functions kwarg only in dashcast (785) emontnemery
* Make optional callback functions kwarg only in plex (786) emontnemery
* Remove impossible exception handling in youtube controller (782) emontnemery
* Change callbacks to be passed status and result (783) emontnemery
* Require Python 3.11+ (784) emontnemery
* Update streams used in media enqueue example (781) emontnemery
* Allow specifying media type in BubbleUPNP example (780) emontnemery
* Make optional callback functions kwarg only (779) emontnemery
⬆️ Dependencies
<details>
<summary>5 changes</summary>
* Bump plexapi from 4.15.7 to 4.15.9 (830) dependabot
* Bump yle-dl from 20231214 to 20240130 (828) dependabot
* Bump black from 23.12.1 to 24.1.1 (807) dependabot
* Bump types-requests from 2.31.0.20240106 to 2.31.0.20240125 (829) dependabot
* Bump release-drafter/release-drafter from 5.25.0 to 6.0.0 (814) dependabot
</details>