diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index f89bf372..e4c25bfb 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -30,7 +30,7 @@ jobs: if python --version 2>&1 | grep -q "Python 2"; then pip install mock rsa==4.0; fi if [ -f requirements.txt ]; then pip install -r requirements.txt; fi pip install . - if python --version 2>&1 | grep -q "Python 3.7" || python --version 2>&1 | grep -q "Python 3.8" || python --version 2>&1 | grep -q "Python 3.9" || python --version 2>&1 | grep -q "Python 3.10"; then pip install aiofiles adb-shell[usb]; fi + if python --version 2>&1 | grep -q "Python 3.7" || python --version 2>&1 | grep -q "Python 3.8" || python --version 2>&1 | grep -q "Python 3.9" || python --version 2>&1 | grep -q "Python 3.10"; then pip install aiofiles async_timeout adb-shell[usb]; fi - name: Check formatting with black run: | if python --version 2>&1 | grep -q "Python 3.7" || python --version 2>&1 | grep -q "Python 3.8" || python --version 2>&1 | grep -q "Python 3.9" || python --version 2>&1 | grep -q "Python 3.10"; then pip install black && make lint-black; fi diff --git a/androidtv/adb_manager/adb_manager_async.py b/androidtv/adb_manager/adb_manager_async.py index e3c63d6f..7705a3f6 100644 --- a/androidtv/adb_manager/adb_manager_async.py +++ b/androidtv/adb_manager/adb_manager_async.py @@ -15,6 +15,7 @@ from adb_shell.auth.sign_pythonrsa import PythonRSASigner from adb_shell.constants import DEFAULT_PUSH_MODE, DEFAULT_READ_TIMEOUT_S import aiofiles +import async_timeout from ppadb.client import Client from ..constants import ( @@ -164,7 +165,8 @@ async def _acquire(lock, timeout=DEFAULT_LOCK_TIMEOUT_S): try: acquired = False try: - acquired = await asyncio.wait_for(lock.acquire(), timeout) + async with async_timeout.timeout(timeout): + acquired = await lock.acquire() if not acquired: raise LockNotAcquiredException yield acquired diff --git a/setup.py b/setup.py index 60231405..7900b688 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ author_email="jefflirion@users.noreply.github.com", packages=["androidtv", "androidtv.adb_manager", "androidtv.basetv", "androidtv.androidtv", "androidtv.firetv"], install_requires=["adb-shell>=0.4.0", "pure-python-adb>=0.3.0.dev0"], - extras_require={"async": ["aiofiles>=0.4.0"], "usb": ["adb-shell[usb]>=0.4.0"]}, + extras_require={"async": ["aiofiles>=0.4.0", "async_timeout>=3.0.0"], "usb": ["adb-shell[usb]>=0.4.0"]}, classifiers=[ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent",