Metadata-Version: 2.1 Name: aiohappyeyeballs Version: 2.4.4 Summary: Happy Eyeballs for asyncio Home-page: https://github.com/aio-libs/aiohappyeyeballs License: PSF-2.0 Author: J. Nick Koston Author-email: nick@koston.org Requires-Python: >=3.8 Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: Python Software Foundation License Classifier: License :: Other/Proprietary License Classifier: Natural Language :: English Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Topic :: Software Development :: Libraries Project-URL: Bug Tracker, https://github.com/aio-libs/aiohappyeyeballs/issues Project-URL: Changelog, https://github.com/aio-libs/aiohappyeyeballs/blob/main/CHANGELOG.md Project-URL: Documentation, https://aiohappyeyeballs.readthedocs.io Project-URL: Repository, https://github.com/aio-libs/aiohappyeyeballs Description-Content-Type: text/markdown # aiohappyeyeballs
--- **Documentation**: https://aiohappyeyeballs.readthedocs.io **Source Code**: https://github.com/aio-libs/aiohappyeyeballs --- [Happy Eyeballs](https://en.wikipedia.org/wiki/Happy_Eyeballs) ([RFC 8305](https://www.rfc-editor.org/rfc/rfc8305.html)) ## Use case This library exists to allow connecting with [Happy Eyeballs](https://en.wikipedia.org/wiki/Happy_Eyeballs) ([RFC 8305](https://www.rfc-editor.org/rfc/rfc8305.html)) 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.](https://github.com/python/cpython/blob/main/LICENSE) ## Example usage ```python 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](https://copier.readthedocs.io/) and the [browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template) project template.