## 3.5.0.20251001 (2025-10-01)

pyserial: Update type yielded by grep from tuple to ListPortInfo ([#14807](https://github.com/python/typeshed/pull/14807))

## 3.5.0.20250919 (2025-09-19)

[serial] Update stubtest comment ([#14739](https://github.com/python/typeshed/pull/14739))

Cf. #14718

## 3.5.0.20250914 (2025-09-14)

Update mypy to 1.18.1 ([#14699](https://github.com/python/typeshed/pull/14699))

## 3.5.0.20250822 (2025-08-22)

Add missing defaults to third-party stubs ([#14617](https://github.com/python/typeshed/pull/14617))

## 3.5.0.20250809 (2025-08-09)

Mark stub-only private symbols as `@type_check_only` in third-party stubs ([#14545](https://github.com/python/typeshed/pull/14545))

## 3.5.0.20250801 (2025-08-01)

Split `tool.stubtest.platforms` metadata key ([#13746](https://github.com/python/typeshed/pull/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>

## 3.5.0.20250326 (2025-03-26)

Add `__all__` ([#13704](https://github.com/python/typeshed/pull/13704))

## 3.5.0.20250304 (2025-03-04)

Enable Ruff PLC (Pylint Convention) ([#13306](https://github.com/python/typeshed/pull/13306))

## 3.5.0.20250130 (2025-01-30)

Upgrade Black and Ruff ([#13443](https://github.com/python/typeshed/pull/13443))

## 3.5.0.20250124 (2025-01-24)

pyserial: make serial.threaded.ReaderThread generic in the type of Protocol ([#13425](https://github.com/python/typeshed/pull/13425))

## 3.5.0.20241221 (2024-12-21)

Update to mypy 1.14 ([#13272](https://github.com/python/typeshed/pull/13272))

## 3.5.0.20240826 (2024-08-26)

pyserial: Replace IO classes with protocols ([#12572](https://github.com/python/typeshed/pull/12572))

## 3.5.0.20240527 (2024-05-27)

pyserial: serial: serialutil.pyi: fix excuslive float -> bool ([#12035](https://github.com/python/typeshed/pull/12035))

## 3.5.0.20240311 (2024-03-11)

Use PEP 570 syntax in third party stubs ([#11554](https://github.com/python/typeshed/pull/11554))

## 3.5.0.20240310 (2024-03-10)

Bump mypy to 1.9, add to json.encoder, small fixups ([#11549](https://github.com/python/typeshed/pull/11549))

Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>

## 3.5.0.20240205 (2024-02-05)

A new shade of Black ([#11362](https://github.com/python/typeshed/pull/11362))

## 3.5.0.20240106 (2024-01-06)

Update typing_extensions imports in third-party stubs ([#11245](https://github.com/python/typeshed/pull/11245))

## 3.5.0.11 (2023-11-22)

third-party stubs: Add several missing `__del__` methods ([#11054](https://github.com/python/typeshed/pull/11054))

## 3.5.0.10 (2023-09-01)

`_CField` as a generic descriptor protocol ([#10595](https://github.com/python/typeshed/pull/10595))

## 3.5.0.9 (2023-07-20)

Add an upstream_repository field to METADATA.toml ([#10487](https://github.com/python/typeshed/pull/10487))

Closes: #10478

## 3.5.0.8 (2023-03-27)

Add default values for third-party stubs beginning with 'P' ([#9957](https://github.com/python/typeshed/pull/9957))

## 3.5.0.7 (2023-03-09)

pyserial: Fix read and write methods ([#9825](https://github.com/python/typeshed/pull/9825))

## 3.5.0.6 (2023-02-26)

Improve many `__(a)exit__` annotations ([#9696](https://github.com/python/typeshed/pull/9696))

## 3.5.0.5 (2023-02-21)

Stubtest settings: change `ignore_missing_stub` default to `false` ([#9779](https://github.com/python/typeshed/pull/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.

## 3.5.0.4 (2023-02-19)

`pyserial`: fix stubtest errors ([#9722](https://github.com/python/typeshed/pull/9722))

## 3.5.0.3 (2023-02-15)

Use `typing_extensions.Self` instead of `_typeshed.Self` ([#9702](https://github.com/python/typeshed/pull/9702))

## 3.5.0.2 (2023-02-09)

Enable stubtest for `pyserial` ([#9692](https://github.com/python/typeshed/pull/9692))

## 3.5.0.1 (2023-02-02)

Fix optional USB attributes in pyserial's `ListPortInfo` ([#9654](https://github.com/python/typeshed/pull/9654))

Some USB specific attributes in pyserial's [`serial.tools.list_port_common.ListPortInfo`](https://github.com/python/typeshed/blob/main/stubs/pyserial/serial/tools/list_ports_common.pyi#L11-L24) 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](https://github.com/pyserial/pyserial/blob/master/serial/tools/list_ports_linux.py#L52-L62) 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

## 3.5.0.0 (2022-12-22)

Add stubs for the pyserial package ([#9347](https://github.com/python/typeshed/pull/9347))

