forked from mirrors/gecko-dev
The `*.egg-info` directories are needed for the packages to show up as "distributions" to `pip` and other environment-checking logic. We know that `*.egg-info` directories are cross-platform because they exist in the globally-usable `tar.gz` releases of packages. Differential Revision: https://phabricator.services.mozilla.com/D125909 |
||
|---|---|---|
| .. | ||
| idna_ssl.egg-info | ||
| idna_ssl.py | ||
| LICENSE | ||
| MANIFEST.in | ||
| PKG-INFO | ||
| README.rst | ||
| setup.cfg | ||
| setup.py | ||
idna-ssl
========
:info: Patch ssl.match_hostname for Unicode(idna) domains support
.. image:: https://travis-ci.com/aio-libs/idna-ssl.svg?branch=master
:target: https://travis-ci.com/aio-libs/idna-ssl
.. image:: https://img.shields.io/pypi/v/idna_ssl.svg
:target: https://pypi.python.org/pypi/idna_ssl
.. image:: https://codecov.io/gh/aio-libs/idna-ssl/branch/master/graph/badge.svg
:target: https://codecov.io/gh/aio-libs/idna-ssl
Installation
------------
.. code-block:: shell
pip install idna-ssl
Usage
-----
.. code-block:: python
from idna_ssl import patch_match_hostname # noqa isort:skip
patch_match_hostname() # noqa isort:skip
import asyncio
import aiohttp
URL = 'https://цфоут.мвд.рф/news/item/8065038/'
async def main():
async with aiohttp.ClientSession() as session:
async with session.get(URL) as response:
print(response)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Motivation
----------
* Here is 100% backward capability
* Related aiohttp `issue <https://github.com/aio-libs/aiohttp/issues/949>`_
* Related Python `bug <https://bugs.python.org/issue31872>`_
* Related Python `pull request <https://github.com/python/cpython/pull/3462>`_
* It is fixed (by January 27 2018) in upcoming Python 3.7, but `IDNA2008 <https://tools.ietf.org/html/rfc5895>`_ is still broken
Thanks
------
The library was donated by `Ocean S.A. <https://ocean.io/>`_
Thanks to the company for contribution.