python-idna
Port variant v12
Summary Int. Domain Names in Applications (3.12)
BROKEN
Package version 3.10
Homepage No known homepage
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v13
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 15 NOV 2024, 16:08:50 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)
PY312 ON Build using Python 3.12 PY313 OFF Build using Python 3.13
Package Dependencies by Type
Build (only) python312:dev:std
python-pip:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Download groups
main mirror://PYPIWHL/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3
Distribution File Information
946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 70442 python-src/idna-3.10-py3-none-any.whl
Ports that require python-idna:v12
python-anyio:v12 Layer built on asyncio or trio libraries (3.12)
python-hyperlink:v12 Featureful, immutable, and correct URL (3.12)
python-requests:v12 Python HTTP for Humans (3.12)
python-yarl:v12 Yet another URL library (3.12)