You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Remove async-timeout dependency in favor of stdlib asyncio.timeout #2052
Drop the async-timeout dependency (async-timeout>=5.0.1 in pyproject.toml) and replace it with the standard library equivalent.
Why
async-timeout is deprecated and no longer actively maintained. Its functionality has been upstreamed into Python 3.11+ as asyncio.timeout and asyncio.Timeout. The upstream README states:
This library has effectively been upstreamed into Python 3.11+. Therefore this library is considered deprecated and no longer actively supported.
Every dependency we can drop is one fewer thing to keep patched and audited, so removing an abandoned package is worth doing.
Where it's used
The only usage is in src/crawlee/_utils/time.py:
fromasync_timeoutimportTimeout, timeout
used by the SharedTimeout context manager.
Blocker / plan
asyncio.timeout was added in Python 3.11, but Crawlee still supports Python 3.10 (requires-python = ">=3.10"). Options:
Drop Python 3.10 support and switch to asyncio.timeout / asyncio.Timeout directly — fits the 2.0 milestone.
Keep 3.10 support via a version-guarded import (sys.version_info >= (3, 11)) until 3.10 is dropped.
Targeting the 2.0 milestone since dropping Python 3.10 is the clean path.
Opened #2248 — went with a narrowing (3.10 marker + import-time backport selection) rather than a hard removal, since requires-python = ">=3.10" and asyncio.timeout is 3.11+. Happy to switch to full removal if you'd rather drop 3.10.
Activity
enriquealonso01 commentedon Sep 22, 2026
Opened #2248 — went with a narrowing (3.10 marker + import-time backport selection) rather than a hard removal, since
requires-python = ">=3.10"andasyncio.timeoutis 3.11+. Happy to switch to full removal if you'd rather drop 3.10.docs: mark async-timeout backport as TODO linking apify#2052 (review …
chore!: drop Python 3.10 support (#2295)
refactor: replace async-timeout with asyncio.timeout (#2314)
vdusek commentedon Oct 13, 2026
resolved by #2314
chore!: drop Python 3.10 support (#2295)
refactor: replace async-timeout with asyncio.timeout (#2314)