NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1111 most downloaded on PyPI
Typing stubs for aiofiles
Last release 4 months ago
18 May 2026
Release timing varies
gaps range from 1 weeks to 6 months
Most releases are documented
notes for 52 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
63 releases · first in 2021
One column per quarter.
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
[aiofiles] Add aiofiles.threadpool.wrap
[aiofiles] Add aiofiles.threadpool.wrap (#15626)
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
[aiofiles] Update to 25.1.*
[aiofiles] Update to 25.1.* (#14860)
Add __slots__ to third-party packages using stubdefaulter
Mark stub-only private symbols as @type_check_only in third-party stubs
Mark stub-only private symbols as @type_check_only in third-party stubs (#14545)
Split tool.stubtest.platforms metadata key
Split tool.stubtest.platforms metadata key (#13746)
Co-authored-by: Avasam samuel.06@hotmail.com Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
[aiofiles] Remove from pyrightconfig
aiofiles: add type for executor parameter
aiofiles: add type for executor parameter (#14226)
Fix partially unknown executor
Replace Incomplete | None = None in third party stubs
Replace Incomplete | None = None in third party stubs (#14063)
[aiofiles] Fix the file argument type in AsyncBase
Update to mypy 1.14
Update to mypy 1.14 (#13272)
[aiofiles] Update to 24.1
[aiofiles] Update to 24.1 (#12207)
Add missing delete on close arg for aiofiles.NamedTemporaryFile
Add missing delete on close arg for aiofiles.NamedTemporaryFile (#12110)
[aiofiles] Annotate AiofilesContextManagerTempDir
[aiofiles] Annotate AiofilesContextManagerTempDir (#11705)
Remove bare Incomplete annotations in third-party stubs
Remove bare Incomplete annotations in third-party stubs (#11671)
Use PEP 570 syntax in third party stubs
Use PEP 570 syntax in third party stubs (#11554)
Bump mypy to 1.9, add to json.encoder, small fixups
Bump mypy to 1.9, add to json.encoder, small fixups (#11549)
Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
Bump aiofiles to 23.2.*
Bump aiofiles to 23.2.* (#10584)
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
[aiofiles] Use file mode alias from _typeshed
[aiofiles] Use file mode alias from _typeshed (#10233)
add typing support to more aiofiles wrapped functions
add typing support to more aiofiles wrapped functions (#10175)
add stubs for missing functions:
aiofiles: use ReadableBuffer (#10105) Part of #9006
aiofiles: use ReadableBuffer (#10105)
Part of #9006
Add defaults for third-party stubs A-D
Add defaults for third-party stubs A-D (#9952)
Co-authored-by: Mehdi Drissi Co-authored-by: Alex Waygood
Update aiofiles for v23.1.* (#9711)
Co-authored-by: Mehdi Drissi mdrissi@snapchat.com Co-authored-by: Alex Waygood Alex.Waygood@Gmail.com
Stubtest settings: change ignore_missing_stub default to false
Stubtest settings: change ignore_missing_stub default to false (#9779)
If you're reading about this commit from an autogenerated changelog entry, this should have no user-visible impact on how the stubs are interpreted by a type checker; it's just an internal change to how typeshed's tests work.
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
Use _typeshed.FileDescriptorOrPath in stubs
Use _typeshed.FileDescriptorOrPath in stubs (#9695)
Add a few more hooks. These are all very fast, and I've found them useful in other projects:
Improve pre-commit config (#9563)
trailing-whitespace: fixes trailing whitespacerequirements-txt-fixer: alphabetises items in requirements.txt filesend-of-file-fixer: makes sure every file ends with a single newline charactermixed-line-ending: Makes sure Windows users don't accidentally introduce CRLF line endings into a file that uses LF line endingscheck-yaml: loads YAML files to validate syntaxcheck-toml: loads TOML files to validate syntaxcheck-merge-conflict: detects merge-conflict strings in files and blocks them from accidentally being committedcheck-case-conflict: checks for files with names that would conflict on a case-insensitive filesystem like MacOS HFS+ or Windows FAT; blocks them from being committed.black language target-version to Python 3.10, synching the setting here with the changes that were made to our pyproject.toml file in #7538Replace Any with Incomplete in many places
Replace Any with Incomplete in many places (#9558)
Add aiofiles.os.scandir
Add aiofiles.os.scandir (#9280)
Complete stubtest for aiofiles + fix on Windows
Complete stubtest for aiofiles + fix on Windows (#9184)
Fix and allow classes with missing metaclasses
Fix and allow classes with missing metaclasses (#9136)
Remove aiofiles/tempfile/temptypes.pyi from pyright exclude
Remove aiofiles/tempfile/temptypes.pyi from pyright exclude (#9104)
[stubsabot] Bump aiofiles to 22.1.*
[stubsabot] Bump aiofiles to 22.1.* (#8714)
Co-authored-by: stubsabot <>
Delete some unused # noqa comments
Delete some unused # noqa comments (#8639)
Run pycln as a pre-commit hook in CI
Run pycln as a pre-commit hook in CI (#8304)
Add missing aiofiles.tempfile classes
Add missing aiofiles.tempfile classes (#7523)
Fixes: #6524
Co-authored-by: Andrej Shadura andrew.shadura@collabora.co.uk Co-authored-by: AlexWaygood alex.waygood@gmail.com
Third-party stubs: import from collections.abc where possible
Third-party stubs: import from collections.abc where possible (#7637)
Use TypeAlias where possible for type aliases
Use TypeAlias where possible for type aliases (#7630)
Remove unneeded # noqa comments, fix broken # noqa comments
Remove unneeded # noqa comments, fix broken # noqa comments (#7561)
Use PEP 604 syntax wherever possible
Use PEP 604 syntax wherever possible (#7493)
Improve open overloads when mode is a literal union
Improve open overloads when mode is a literal union (#7428)
As pointed out by @gvanrossum in https://github.com/python/typing/issues/1096
Improves type inference in cases when we know that mode is OpenBinaryMode, but don't know anything more specific:
def my_open(name: str, write: bool):
mode: Literal['rb', 'wb'] = 'wb' if write else 'rb'
with open(name, mode) as f:
reveal_type(f) # previously typing.IO[Any], now typing.BinaryIO
You may be tempted into thinking this is some limitation of type checkers. mypy does in fact have logic for detecting if we match multiple overloads and union-ing up the return types of matched overloads. The problem is the last overload interferes with this logic. That is, if you remove the fallback overload (prior to this PR), you'd get "Union[io.BufferedReader, io.BufferedWriter]" in the above example.
Co-authored-by: hauntsaninja <>
Add stubs for aiofiles.os.path
Add stubs for aiofiles.os.path (#6787)
Use lowercase type everywhere
Use lowercase type everywhere (#6853)
Nothing published for this version
Add missing functions and keyword arguments to aiofiles.os
Add missing functions and keyword arguments to aiofiles.os (#6785)
Co-authored-by: Akuli akuviljanen17@gmail.com
Use PEP 585 syntax wherever possible
Use PEP 585 syntax wherever possible (#6717)
Enable stubtest for aiofiles
Enable stubtest for aiofiles (#6698)
Add a 'stubtest' flag to METADATA.toml
Add a 'stubtest' flag to METADATA.toml (#6687)
Co-authored-by: Akuli akuviljanen17@gmail.com
Update remaining versions for third-party stubs
Update remaining versions for third-party stubs (#6094)
Also remove the python2 markers of packages that don't list Python 2 as supported in the latest version.
Don't special case version '0.1'
Co-authored-by: Akuli akuviljanen17@gmail.com
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →