Skip to main content

Happy Eyeballs for asyncio

Project description

aiohappyeyeballs

CI Status Documentation Status Test coverage percentage

Poetry Ruff pre-commit

PyPI Version Supported Python versions License


Documentation: https://aiohappyeyeballs.readthedocs.io

Source Code: https://github.com/aio-libs/aiohappyeyeballs


Happy Eyeballs (RFC 8305)

Use case

This library exists to allow connecting with Happy Eyeballs (RFC 8305) when you already have a list of addrinfo and not a DNS name.

The stdlib version of loop.create_connection() will only work when you pass in an unresolved name which is not a good fit when using DNS caching or resolving names via another method such as zeroconf.

Installation

Install this via pip (or your favourite package manager):

pip install aiohappyeyeballs

License

aiohappyeyeballs is licensed under the same terms as cpython itself.

Example usage

addr_infos = await loop.getaddrinfo("example.org", 80)

socket = await start_connection(addr_infos)
socket = await start_connection(addr_infos, local_addr_infos=local_addr_infos, happy_eyeballs_delay=0.2)

transport, protocol = await loop.create_connection(
    MyProtocol, sock=socket, ...)

# Remove the first address for each family from addr_info
pop_addr_infos_interleave(addr_info, 1)

# Remove all matching address from addr_info
remove_addr_infos(addr_info, "dead::beef::")

# Convert a local_addr to local_addr_infos
local_addr_infos = addr_to_addr_infos(("127.0.0.1",0))

Credits

This package contains code from cpython and is licensed under the same terms as cpython itself.

This package was created with Copier and the browniebroke/pypackage-template project template.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiohappyeyeballs-2.7.1.tar.gz (24.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiohappyeyeballs-2.7.1-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file aiohappyeyeballs-2.7.1.tar.gz.

File metadata

  • Download URL: aiohappyeyeballs-2.7.1.tar.gz
  • Upload date:
  • Size: 24.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiohappyeyeballs-2.7.1.tar.gz
Algorithm Hash digest
SHA256 065665c041c42a5938ed220bdcd7230f22527fbec085e1853d2402c8a3615d9d
MD5 0f2e6f584d94d4d21d7d6911f584fb2c
BLAKE2b-256 cef4eec0465c2f67b2664688d0240b3212d5196fd89e741df67ddb81f8d35658

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohappyeyeballs-2.7.1.tar.gz:

Publisher: ci-cd.yml on aio-libs/aiohappyeyeballs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aiohappyeyeballs-2.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohappyeyeballs-2.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9243213661e29250eb41368e5daa826fc017156c3b8a11440826b2e3ed376472
MD5 052c8e4d18a3d1f6f203ee0790e952be
BLAKE2b-256 71431947f06babed6b3f1d7f38b0c767f52df66bfb2bc10b468c4a7de9eceff2

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohappyeyeballs-2.7.1-py3-none-any.whl:

Publisher: ci-cd.yml on aio-libs/aiohappyeyeballs

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page