Changelog

v2.7.1 (2026-07-01)

Performance improvements

  • Use defaultdict to help with performance (e10f335)

Refactoring

  • Simplify _interleave_addrinfos family grouping (fdf6548)

  • Collapse collect-then-remove pattern in utils helpers (0dd3fd1)

  • Merge identical except blocks in _connect_sock cleanup (b7c186e)

v2.7.0 (2026-05-20)

Features

  • Add python 3.14 support (10e7d43)

v2.6.2 (2026-05-20)

Bug fixes

  • Clear error on empty addr_infos in start_connection (55dd76a)

Testing

  • Stop verify_no_lingering_tasks from leaking an event loop (ce43beb)

Refactoring

  • Optimize obtaining event-loop down to 1 line (02a7029)

v2.6.1 (2025-03-12)

Bug fixes

  • Resolve typeerror on import for python < 3.9.2 (2042c82)

v2.6.0 (2025-03-11)

Features

v2.5.0 (2025-03-06)

Features

  • Add callback for users to customize socket creation (8e1bc6a)

v2.4.8 (2025-03-04)

Bug fixes

  • Close runner up sockets in the event there are multiple winners (476a05b)

v2.4.7 (2025-03-04)

Bug fixes

  • Resolve warnings when running tests (e96264a)

v2.4.6 (2025-02-07)

Bug fixes

  • Ensure all timers are cancelled when after staggered race finishes (f75891d)

v2.4.5 (2025-02-07)

Bug fixes

  • Keep classifiers in project to avoid automatic enrichment (99edb20)

  • Move classifiers to prevent recalculation by poetry (66e1c90)

v2.4.4 (2024-11-30)

Bug fixes

  • Handle oserror on failure to close socket instead of raising indexerror (c542f68)

v2.4.3 (2024-09-30)

Bug fixes

  • Rewrite staggered_race to be race safe (9db617a)

  • Re-raise runtimeerror when uvloop raises runtimeerror during connect (c8f1fa9)

v2.4.2 (2024-09-27)

Bug fixes

  • Copy staggered from standard lib for python 3.12+ (c5a4023)

v2.4.1 (2024-09-26)

Bug fixes

  • Avoid passing loop to staggered.staggered_race (5f80b79)

v2.4.0 (2024-08-19)

Features

  • Add support for python 3.13 (4f2152f)

Documentation

  • Fix a trivial typo in readme.md (f5ae7d4)

v2.3.7 (2024-08-17)

Bug fixes

  • Correct classifier for license python-2.0.1 (186be05)

v2.3.6 (2024-08-16)

Bug fixes

  • Adjust license to python-2.0.1 (30a2dc5)

v2.3.5 (2024-08-07)

Bug fixes

  • Remove upper bound on python requirement (0de1e53)

  • Preserve errno if all exceptions have the same errno (7bbb2bf)

  • Adjust license classifier to better reflect license terms (56e7ba6)

Documentation

  • Add link to happy eyeballs explanation (077710c)

v2.3.4 (2024-07-31)

Bug fixes

  • Add missing asyncio to fix truncated package description (2644df1)

v2.3.3 (2024-07-31)

Bug fixes

  • Add missing python version classifiers (489016f)

  • Update classifiers to include license (a746c29)

  • Workaround broken asyncio.staggered on python < 3.8.2 (b16f107)

  • Include tests in the source distribution package (53053b6)

v2.3.2 (2024-01-06)

Bug fixes

  • Update urls for the new home for this library (c6d4358)

v2.3.1 (2023-12-14)

Bug fixes

  • Remove test import from tests (c529b15)

v2.3.0 (2023-12-12)

Features

  • Avoid _interleave_addrinfos when there is only a single addr_info (305f6f1)

v2.2.0 (2023-12-11)

Features

  • Make interleave with pop_addr_infos_interleave optional to match cpython (adbc8ad)

v2.1.0 (2023-12-11)

Features

  • Add addr_to_addr_info util for converting addr to addr_infos (2e25a98)

v2.0.0 (2023-12-10)

Features

  • Require the full address tuple for the remove_addr_infos util (d7e5df1)

v1.8.1 (2023-12-10)

Bug fixes

  • Move types into a single file (8d4cfee)

v1.8.0 (2023-12-10)

Features

v1.7.0 (2023-12-09)

Bug fixes

  • License should be psf-2.0 (ca9c1fc)

Features

  • Add some more examples to the docs (6cd0b5d)

v1.6.0 (2023-12-09)

Features

  • Add coverage for multiple and same exceptions (2781b87)

v1.5.0 (2023-12-09)

Features

  • Add coverage for setblocking failing (f759a08)

  • Add cover for passing the loop (2d26911)

v1.4.1 (2023-12-09)

Bug fixes

  • Ensure exception error is stringified (747cf1d)

v1.4.0 (2023-12-09)

Features

  • Add coverage for unexpected exception (bad4874)

v1.3.0 (2023-12-09)

Features

  • Add coverage for bind failure with local addresses (f71ec23)

v1.2.0 (2023-12-09)

Features

  • Add coverage for passing local addresses (72a92e3)

v1.1.0 (2023-12-09)

Features

v1.0.0 (2023-12-09)

Features

  • Rename create_connection to start_connection (f8b6038)

v0.9.0 (2023-12-09)

Features

  • Add coverage for interleave (62817f1)

v0.8.0 (2023-12-09)

Features

  • Add coverage for multi ipv6 (6dc8f89)

v0.7.0 (2023-12-09)

Features

  • Add coverage for ipv6 failure (7aee8f6)

v0.6.0 (2023-12-09)

Features

v0.5.0 (2023-12-09)

Features

v0.4.0 (2023-12-09)

Features

v0.3.0 (2023-12-09)

Features

  • Optimize for single case (c7d72f3)

v0.2.0 (2023-12-09)

Features

  • Optimize for single case (d371c46)

v0.1.0 (2023-12-09)

Features

v0.0.1 (2023-12-09)

Bug fixes