NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3809 most downloaded on PyPI
Typing stubs for pyserial
Last release 2 months ago
12 Jul 2026
Release timing varies
gaps range from 1 weeks to 6 months
Nearly every release is documented
notes for 36 of 36 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
36 releases · first in 2022
One column per quarter.
Avoid class-scope name collisions in stubs
Avoid class-scope name collisions in stubs (#15994)
Class members such as list, type, cursor, Model, and datetime shadow the builtins, classes, or modules referenced by nearby annotations. ty then resolves those annotations to Unknown, which can hide invalid calls in APIs including docker, sqlite3, psycopg2, Markdown, and requests.
Qualify shadowed builtins and use private aliases for colliding imports and classes. This removes 15 stdlib and 120 third-party collision diagnostics under ty 0.0.58, restores the affected public types, and fixes four existing psycopg2 type assertions.
[pyserial] Fix read_all return type to not include None
[pyserial] Fix read_all return type to not include None (#15797)
Upgrade black to 26.5.0
Upgrade black to 26.5.0 (#15801)
The most dubious is the asyncio one. BaseChildWatcher was the same in both branches; I added @deprecated in the branch where its child classes are dep…
Fix stubs that are identical in different version/platform branches (#15743)
I wrote an experimental flake8-pyi check that alerts if multiple version/platform branches contain the same definition, because I noticed a few of my 3.15 PRs ended up with code like that.
I'm not sure this should always be changed; in some complicated cases it's clearer to repeat the definition. But this PR changes some places where it seemed to be a win to do so.
The most dubious is the asyncio one. BaseChildWatcher was the same in
both branches; I added @deprecated in the branch where its child
classes are deprecated. Even though BaseChildWatcher itself did not
emit any deprecation warnings in 3.13, it was slated for removal,
so it makes sense for type checkers to warn on any usage.
Import some items from typing instead of typing_extensions
Import some items from typing instead of typing_extensions (#15711)
Part of #13782
Use dashes instead of underscores for METADATA.toml field names
Use dashes instead of underscores for METADATA.toml field names (#15614)
Update mypy to 1.20.0
Update mypy to 1.20.0 (#15588)
pyserial: Update type yielded by grep from tuple to ListPortInfo
pyserial: Update type yielded by grep from tuple to ListPortInfo (#14807)
[serial] Update stubtest comment
[serial] Update stubtest comment (#14739)
Cf. #14718
Update mypy to 1.18.1
Update mypy to 1.18.1 (#14699)
Add missing defaults to third-party stubs
Add missing defaults to third-party stubs (#14617)
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>
Add __all__
Add __all__ (#13704)
Enable Ruff PLC (Pylint Convention)
Enable Ruff PLC (Pylint Convention) (#13306)
Upgrade Black and Ruff
Upgrade Black and Ruff (#13443)
pyserial: make serial.threaded.ReaderThread generic in the type of Protocol
pyserial: make serial.threaded.ReaderThread generic in the type of Protocol (#13425)
Update to mypy 1.14
Update to mypy 1.14 (#13272)
pyserial: Replace IO classes with protocols
pyserial: Replace IO classes with protocols (#12572)
pyserial: serial: serialutil.pyi: fix excuslive float -> bool
pyserial: serial: serialutil.pyi: fix excuslive float -> bool (#12035)
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
A new shade of Black
A new shade of Black (#11362)
Update typing_extensions imports in third-party stubs
Update typing_extensions imports in third-party stubs (#11245)
third-party stubs: Add several missing __del__ methods
third-party stubs: Add several missing __del__ methods (#11054)
_CField as a generic descriptor protocol
_CField as a generic descriptor protocol (#10595)
Add an upstream_repository field to METADATA.toml
Add an upstream_repository field to METADATA.toml (#10487)
Closes: #10478
Add default values for third-party stubs beginning with 'P'
Add default values for third-party stubs beginning with 'P' (#9957)
pyserial: Fix read and write methods
pyserial: Fix read and write methods (#9825)
Improve many __(a)exit__ annotations
Improve many __(a)exit__ annotations (#9696)
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.
pyserial: fix stubtest errors
pyserial: fix stubtest errors (#9722)
Use typing_extensions.Self instead of _typeshed.Self
Use typing_extensions.Self instead of _typeshed.Self (#9702)
Enable stubtest for pyserial
Enable stubtest for pyserial (#9692)
Fix optional USB attributes in pyserial's ListPortInfo
Fix optional USB attributes in pyserial's ListPortInfo (#9654)
Some USB specific attributes in pyserial's serial.tools.list_port_common.ListPortInfo class are not always available. They depend on the USB device and its driver correctly reporting these attributes. I discovered this recently with a new device that does not report its serial number. Only the Vendor ID vid and Product ID pid are guaranteed (This can be seen here where vid and pid are always cast as int while other attributes are left as str | None for USB devices).
This is a follow up to #9347 and the discussion at https://github.com/python/typeshed/pull/9347#issuecomment-1358245865
Add stubs for the pyserial package
Add stubs for the pyserial package (#9347)
Your coding agent can read these notes before it upgrades. Set up the MCP server →