python-idna
Port variant v11
Summary Int. Domain Names in Applications (3.11)
BROKEN
Package version 3.8
Homepage No known homepage
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v12
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 07 SEP 2024, 17:00:23 UTC
Port created 30 MAY 2017, 20:17:50 UTC
Subpackage Descriptions
single Internationalized Domain Names in Applications (IDNA) ===================================================== Support for the Internationalized Domain Names in Applications (IDNA) protocol as specified in [RFC 5891 ]. This is the latest version of the protocol and is sometimes referred to as “IDNA 2008”. This library also provides support for Unicode Technical Standard 46, [Unicode IDNA Compatibility Processing ]. This acts as a suitable replacement for the “encodings.idna” module that comes with the Python standard library, but which only supports the older superseded IDNA specification ([RFC 3490 ]). Basic functions are simply executed: .. code-block:: pycon >>> import idna >>> idna.encode('ドメイン.テスト') b'xn--eckwd4c7c.xn--zckzah' >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) ドメイン.テスト Installation ------------ This package is available for installation from PyPI: .. code-block:: bash $ python3 -m pip install idna Usage ----- For typical usage, the encode and decode functions will take a domain name argument and perform a conversion to A-labels or U-labels respectively. .. code-block:: pycon >>> import idna >>> idna.encode('ドメイン.テスト') b'xn--eckwd4c7c.xn--zckzah' >>> print(idna.decode('xn--eckwd4c7c.xn--zckzah')) ドメイン.テスト You may use the codec encoding and decoding methods using the ``idna.codec`` module: .. code-block:: pycon >>> import idna.codec >>> print('домен.испытание'.encode('idna2008')) b'xn--d1acufc.xn--80akhbyknj4f' >>> print(b'xn--d1acufc.xn--80akhbyknj4f'.decode('idna2008')) домен.испытание Conversions can be applied at a per-label basis using the ulabel or alabel functions if necessary: .. code-block:: pycon >>> idna.alabel('测试') b'xn--0zwm56d' Compatibility Mapping (UTS #46) +++++++++++++++++++++++++++++++ As described in [RFC 5895], the IDNA specification does not normalize input from different potential ways a user may input a domain name. This functionality, known as a “mapping”, is considered by the specification to be a local user-interface issue distinct from IDNA conversion functionality. This library provides one such mapping that was developed by the Unicode Consortium. Known as [Unicode IDNA Compatibility Processing ], it provides for both a regular mapping for typical applications, as well as a transitional mapping to help migrate from older IDNA 2003 applications. Strings are preprocessed according to Section 4.4 “Preprocessing for IDNA2008” prior to the IDNA operations. For example, “Königsgäßchen” is not a permissible label as *LATIN CAPITAL LETTER K* is not allowed (nor are capital letters in general). UTS 46 will convert this into lower case prior to applying the IDNA conversion. .. code-block:: pycon >>> import idna >>> idna.encode('Königsgäßchen') ... idna.core.InvalidCodepoint: Codepoint U+004B at position 1 of 'Königsgäßchen' not allowed >>> idna.encode('Königsgäßchen', uts46=True)
Configuration Switches (platform-specific settings discarded)
PY311 ON Build using Python 3.11 PY312 OFF Build using Python 3.12
Package Dependencies by Type
Build (only) python-pip:single:v11
autoselect-python:single:std
Build and Runtime python311:single:std
Download groups
main mirror://PYPIWHL/22/7e/d71db821f177828df9dea8c42ac46473366f191be53080e552e628aad991
Distribution File Information
050b4e5baadcd44d760cedbd2b8e639f2ff89bbc7a5730fcc662954303377aac 66894 idna-3.8-py3-none-any.whl
Ports that require python-idna:v11
python-anyio:v11 Layer built on asyncio or trio libraries (3.11)
python-hyperlink:v11 Featureful, immutable, and correct URL (3.11)
python-requests:v11 Python HTTP for Humans (3.11)
python-yarl:v11 Yet another URL library (3.11)