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.6.2.tar.gz (22.6 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.6.2-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiohappyeyeballs-2.6.2.tar.gz
Algorithm Hash digest
SHA256 e202810ee718bd01fc6ef49e8ea53d023d5cb6b581076d7925aa499fa55dbe64
MD5 36cde693deb30c1becabda9cedd43c52
BLAKE2b-256 33c661a2d7b7572279226bb2e7f61d7a19ca7c90da0329c93fa0d560cbf288d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohappyeyeballs-2.6.2.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.6.2-py3-none-any.whl.

File metadata

File hashes

Hashes for aiohappyeyeballs-2.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4708045e2d7a6c6bdf8aafa8ed39649eaf926a4543b54560659129e3365953c4
MD5 1eb9bac602c3b46e3fc44f630a89f1fb
BLAKE2b-256 5ffca7bf5b6e4e617b45f90f2d9d2a68519c249c81dd4fc2658c7a2a61c4f4b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiohappyeyeballs-2.6.2-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