From 6244a740c29dd277d66562e9faa8f3c87f2c4113 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pierre=20St=C3=A5hl?=
Date: Sun, 11 Aug 2024 18:00:15 +0000
Subject: [PATCH] Release 0.15.0
---
CHANGES.md | 138 ++++++++++++++++++++++++++++++
docs/api/pyatv.const.html | 59 ++++++++++++-
docs/api/pyatv.interface.html | 153 ++++++++++++++++++++++++++--------
pyatv/const.py | 4 +-
4 files changed, 314 insertions(+), 40 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index 9ef0c65bc..876b50546 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,143 @@
# CHANGES
+## 0.15.0 Ralph (2024-08-10)
+
+It has been a long time since the last release (christmas!), so a it's really
+due for a new one. I have mostly been busy with other (personal) stuff, so I
+have not done much more than maintenance. There are a few changes from the
+community though.
+
+Some hightlights:
+
+* Uplift of various dependencies, e.g, fix breaking change in cryptography
+* It is possible to skip forward/backwards (Companion) with custom intervals,
+ thanks @thiccaxe!
+* @bdraco fixed a bug related to changes in chacha20poly1305-reuseable
+* Python 3.12 is now (finally) offically supported
+
+This is a minor update indeed. I hope to see some updates in the near future,
+especially related to tvOS 18 compatibility as well as new features. I am very
+grateful for any help from the community. So if you want to help out
+implementing anything, please send a PR and I'll try my best to find time to
+review it!
+
+**Changes:**
+
+*Other:*
+
+```
+7716858a fix styling for 2462
+41b039f9 precise skip in companion, mrp, dmap
+618e93a4 companion skip implementation
+8331c783 deps: Bump protobuf base version to 4.25.3
+2a8afa68 deps: Sync some versions with base versions
+9f2f7cd3 Added touch gesture to companion protocol (#2402)
+55f3455e deps: Bump some lowest deps versions
+31b57b27 cq: Fix pylint issues
+42ff35ab docs: Fix codespell issues
+ea9d3339 Fix Chacha20Cipher with companion
+a84774c1 test: Improve MRP volume tests
+8080aaae test: Improve dispatch test
+aad6bcd7 test: Improve aiothttp session closing
+ed20bf72 Bump setup-python to v5
+1b780d46 gha: Bump setup-python tp v4
+541ba00d Update tests.yml
+ec402a68 gha: Run tests with python 3.12
+1037d5ef dep: Bump chacha20poly1305-reuseable and cryptography
+1fc1cb0f cq: Run black to fix errors
+5c721409 gha: Remove automerge workflow
+90b23cc4 Update index.md
+7fdfa28a still need to pad for hap
+29ad6fc0 still need to pad for hap
+e817af09 still need to pad for hap
+0c1f6674 lint
+d5a29d7e Simplify ChaCha20 Poly1305 implementation
+8d78f516 Fix typo in README.
+```
+
+**All changes:**
+
+```
+e7487a8b build(deps): Bump python from 3.11.0-alpine to 3.12.5-alpine
+81cd5819 build(deps): Bump aiohttp from 3.10.1 to 3.10.2 in /requirements
+7716858a fix styling for 2462
+41b039f9 precise skip in companion, mrp, dmap
+618e93a4 companion skip implementation
+0d2d3fc9 build(deps): Bump flake8 from 7.1.0 to 7.1.1 in /requirements
+1e0d7991 build(deps): Bump black from 24.4.2 to 24.8.0 in /requirements
+5f801d4c build(deps): Bump aiohttp from 3.10.0 to 3.10.1 in /requirements
+95c43b1c build(deps): Bump mypy-protobuf from 3.5.0 to 3.6.0 in /requirements
+8331c783 deps: Bump protobuf base version to 4.25.3
+80fd95e6 build(deps): Bump pylint from 3.2.5 to 3.2.6 in /requirements
+0abc130b build(deps): Bump protobuf from 5.27.2 to 5.27.3 in /requirements
+1bda482d build(deps): Bump mypy from 1.10.1 to 1.11.1 in /requirements
+2a8afa68 deps: Sync some versions with base versions
+1b38c96f build(deps): Bump pytest-httpserver in /requirements
+961340f8 build(deps): Bump pytest from 8.2.2 to 8.3.2 in /requirements
+64cc5847 build(deps): Bump aiohttp from 3.9.5 to 3.10.0 in /requirements (#2463)
+18ceacd4 build(deps): Bump miniaudio from 1.60 to 1.61 in /requirements (#2459)
+9f2f7cd3 Added touch gesture to companion protocol (#2402)
+55f3455e deps: Bump some lowest deps versions
+c263ff54 build(deps): Bump pydantic from 2.7.4 to 2.8.2 in /requirements
+cba3eb9a build(deps): Bump chacha20poly1305-reuseable in /requirements
+6e9cc70d build(deps): Bump miniaudio from 1.59 to 1.60 in /requirements
+21becc1e build(deps): Bump pytest-asyncio from 0.23.6 to 0.23.8 in /requirements
+98dd3f2d build(deps): Bump protobuf from 5.27.1 to 5.27.2 in /requirements
+0e024712 build(deps): Bump requests from 2.32.2 to 2.32.3 in /requirements
+31b57b27 cq: Fix pylint issues
+8d942aa2 build(deps): Bump pylint from 3.0.3 to 3.2.5 in /requirements
+42ff35ab docs: Fix codespell issues
+1e256440 build(deps): Bump codespell from 2.2.6 to 2.3.0 in /requirements
+bbfb6ec2 build(deps): Bump pytest-httpserver in /requirements
+d70a9a47 build(deps): Bump zeroconf from 0.131.0 to 0.132.2 in /requirements
+9dbdcae1 build(deps): Bump mypy from 1.8.0 to 1.10.1 in /requirements
+e84219bb build(deps): Bump pytest-cov from 4.1.0 to 5.0.0 in /requirements
+0eec178c build(deps): Bump types-protobuf in /requirements
+b1bd82b5 build(deps): Bump pyfakefs from 5.4.1 to 5.6.0 in /requirements
+d789cd08 build(deps): Bump pytest-timeout from 2.2.0 to 2.3.1 in /requirements
+80b9c91d build(deps): Bump pydantic from 2.5.3 to 2.7.4 in /requirements
+ee725bd7 build(deps): Bump pytest-xdist from 3.5.0 to 3.6.1 in /requirements
+1c7f3719 build(deps): Bump black from 24.4.0 to 24.4.2 in /requirements
+f2152da3 build(deps): Bump protobuf from 4.25.2 to 5.27.1 in /requirements
+30bcb66e build(deps): Bump cryptography from 42.0.5 to 42.0.8 in /requirements
+ea9d3339 Fix Chacha20Cipher with companion
+fb78faf6 build(deps): Bump flake8 from 7.0.0 to 7.1.0 in /requirements
+5e6f1b17 build(deps): Bump deepdiff from 6.7.1 to 7.0.1 in /requirements
+c5f182af build(deps): Bump pdoc3 from 0.10.0 to 0.11.0 in /requirements
+a84774c1 test: Improve MRP volume tests
+8080aaae test: Improve dispatch test
+aad6bcd7 test: Improve aiothttp session closing
+ed20bf72 Bump setup-python to v5
+1b780d46 gha: Bump setup-python tp v4
+541ba00d Update tests.yml
+ec402a68 gha: Run tests with python 3.12
+39a868f9 build(deps): Bump pytest from 7.4.3 to 8.2.2 in /requirements
+a0aa0d6e build(deps): Bump flake8 from 6.1.0 to 7.0.0 in /requirements
+1037d5ef dep: Bump chacha20poly1305-reuseable and cryptography
+1fc1cb0f cq: Run black to fix errors
+2b0cc6a0 build(deps): Bump black from 23.12.1 to 24.4.0 in /requirements
+62020c36 build(deps): Bump types-protobuf in /requirements
+5c721409 gha: Remove automerge workflow
+90b23cc4 Update index.md
+7589ec8b build(deps): Bump types-tabulate in /requirements
+7fdfa28a still need to pad for hap
+29ad6fc0 still need to pad for hap
+e817af09 still need to pad for hap
+0c1f6674 lint
+d5a29d7e Simplify ChaCha20 Poly1305 implementation
+601e553a build(deps): Bump requests from 2.31.0 to 2.32.2 in /requirements
+7bff8b32 build(deps): Bump pytest-asyncio from 0.23.2 to 0.23.6 in /requirements
+a2da7611 build(deps): Bump pyfakefs from 5.3.2 to 5.4.1 in /requirements
+eaf73bf9 build(deps): Bump aiohttp from 3.9.1 to 3.9.5 in /requirements
+8d78f516 Fix typo in README.
+4b00261b build(deps): Bump protobuf from 4.25.1 to 4.25.2 in /requirements
+2f7e2fd1 build(deps): Bump pytest-asyncio from 0.21.1 to 0.23.2 in /requirements
+4cd32600 build(deps): Bump isort from 5.12.0 to 5.13.2 in /requirements
+51458f95 build(deps): Bump pyfakefs from 5.3.0 to 5.3.2 in /requirements
+9d0e7f4c build(deps): Bump pydantic from 2.4.2 to 2.5.3 in /requirements
+6d2762df build(deps): Bump pytest-xdist from 3.3.1 to 3.5.0 in /requirements
+```
+
## 0.14.5 Quimby (2023-12-24)
Merry christmas everyone, here comes a small present! In this
diff --git a/docs/api/pyatv.const.html b/docs/api/pyatv.const.html
index 6a7604f95..326d97abf 100644
--- a/docs/api/pyatv.const.html
+++ b/docs/api/pyatv.const.html
@@ -50,6 +50,7 @@
Initialize a new BaseConfig instance.
-
+
Ancestors
- abc.ABC
@@ -810,7 +823,7 @@ Methods
-
Base class for protocol services.
Initialize a new BaseService.
-
+
Ancestors
- abc.ABC
@@ -890,7 +903,7 @@ Methods
-
General information about device.
Initialize a new DeviceInfo instance.
-
+
Class variables
var OUTPUT_DEVICE_ID
@@ -943,7 +956,7 @@ Instance variables
-
Listener interface for generic device updates.
-
+
Ancestors
- abc.ABC
@@ -979,7 +992,7 @@ Methods
-
Feature state and options.
-
+
Ancestors
- builtins.tuple
@@ -1001,7 +1014,7 @@ Instance variables
-
Base class for supported feature functionality.
-
+
Subclasses
- pyatv.core.facade.FacadeFeatures
@@ -1051,7 +1064,7 @@ Methods
Listener
interface: pyatv.interfaces.KeyboardListener
Initialize a new StateProducer instance.
-
+
Ancestors
- abc.ABC
@@ -1127,7 +1140,7 @@ Methods
-
Listener interface for keyboard updates.
-
+
Ancestors
- abc.ABC
@@ -1154,7 +1167,7 @@ Methods
-
Container for media (e.g. audio or video) metadata.
-
+
Class variables
var album -> Optional[str]
@@ -1184,7 +1197,7 @@ Class variables
-
Base class for retrieving metadata from an Apple TV.
-
+
Subclasses
- pyatv.core.facade.FacadeMetadata
@@ -1246,7 +1259,7 @@ Methods
-
Information about an output device.
Initialize a new OutputDevice instance.
-
+
Instance variables
var identifier -> str
@@ -1266,7 +1279,7 @@ Instance variables
-
Base class for API used to pair with an Apple TV.
Initialize a new instance of PairingHandler.
-
+
Ancestors
- abc.ABC
@@ -1337,7 +1350,7 @@ Methods
-
Base class for retrieving what is currently playing.
Initialize a new Playing instance.
-
+
Ancestors
- abc.ABC
@@ -1416,7 +1429,7 @@ Instance variables
Base class for retrieving power state from an Apple TV.
Listener interface: pyatv.interfaces.PowerListener
Initialize a new StateProducer instance.
-
+
Ancestors
- abc.ABC
@@ -1469,7 +1482,7 @@ Methods
-
Listener interface for power updates.
-
+
Ancestors
- abc.ABC
@@ -1497,7 +1510,7 @@ Methods
-
Listener interface for push updates.
-
+
Ancestors
- abc.ABC
@@ -1538,7 +1551,7 @@ Methods
actually changes.
Listener interface: PushListener
.
Initialize a new StateProducer instance.
-
+
Ancestors
- abc.ABC
@@ -1587,7 +1600,7 @@ Methods
-
Base class for API used to control an Apple TV.
-
+
Subclasses
- pyatv.core.facade.FacadeRemoteControl
@@ -1817,29 +1830,31 @@ Methods
-
-async def skip_backward(self) -> None
+async def skip_backward(self, time_interval: float = 0.0) -> None
-
-
Skip backwards a time interval.
-Skip interval is typically 15-30s, but is decided by the app.
+Skip backward a time interval.
+If time_interval is not positive or not present, a default or app-chosen
+time interval is used, which is typically 10, 15, 30, etc. seconds.
-
-async def skip_forward(self) -> None
+async def skip_forward(self, time_interval: float = 0.0) -> None
-
Skip forward a time interval.
-Skip interval is typically 15-30s, but is decided by the app.
+If time_interval is not positive or not present, a default or app-chosen
+time interval is used, which is typically 10, 15, 30, etc. seconds.
-
@@ -1936,7 +1951,7 @@ Methods
-
Base class for storage modules.
-
+
Ancestors
- abc.ABC
@@ -2009,7 +2024,7 @@ Methods
-
Base class for stream functionality.
-
+
Subclasses
- pyatv.core.facade.FacadeStream
@@ -2054,6 +2069,72 @@ Methods
+
+class TouchGestures
+
+-
+
Base class for touch gestures.
+
+Ancestors
+
+Subclasses
+
+- pyatv.core.facade.FacadeTouchGestures
+- pyatv.protocols.companion.CompanionTouchGestures
+
+Methods
+
+-
+
+async def action(self, x: int, y: int, mode: TouchAction) -> None
+
+
+-
+
+
Generate a touch event to x,y coordinates (in range [0,1000]).
+:param x: x coordinate
+:param y: y coordinate
+:param mode: touch mode (1: press, 3: hold, 4: release)
+
+-
+
+async def click(self, action: InputAction)
+
+
+-
+
+
Send a touch click.
+:param action: action mode single tap (0), double tap (1), or hold (2)
+
+-
+
+async def swipe(self, start_x: int, start_y: int, end_x: int, end_y: int, duration_ms: int) -> None
+
+
+-
+
+
Generate a swipe gesture.
+From start to end x,y coordinates (in range [0,1000])
+in a given time (in milliseconds).
+:param start_x: Start x coordinate
+:param start_y: Start y coordinate
+:param end_x: End x coordinate
+:param end_y: Endi x coordinate
+:param duration_ms: Time in milliseconds to reach the end coordinates
+
+
+
class UserAccount
(name: str, identifier: str)
@@ -2061,7 +2142,7 @@ Methods
-
Information about a user account.
Initialize a new UserAccount instance.
-
+
Instance variables
var identifier -> str
@@ -2079,7 +2160,7 @@ Instance variables
-
Base class for account handling.
-
+
Subclasses
- pyatv.core.facade.FacadeUserAccounts
diff --git a/pyatv/const.py b/pyatv/const.py
index 6e2b5d5c6..448da6154 100644
--- a/pyatv/const.py
+++ b/pyatv/const.py
@@ -5,8 +5,8 @@
from enum import Enum
MAJOR_VERSION = "0"
-MINOR_VERSION = "14"
-PATCH_VERSION = "5"
+MINOR_VERSION = "15"
+PATCH_VERSION = "0"
__short_version__ = f"{MAJOR_VERSION}.{MINOR_VERSION}"
__version__ = f"{__short_version__}.{PATCH_VERSION}"