Spec-Zone.ru › Python 3.8

stringprep — Подготовка строк для Интернета

Исходный код: Lib/stringprep.py

При идентификации объектов (например, имён хостов) в интернете часто требуется сравнивать такие идентификаторы на «равенство». Способ выполнения этого сравнения может зависеть от предметной области, например, от необходимости учитывать регистр символов. Также может потребоваться ограничить допустимые идентификаторы, разрешив только идентификаторы, состоящие из «печатьных» символов.

RFC 3454 определяет процедуру «подготовки» строк Unicode в интернет-протоколах. Перед передачей строк по сети они обрабатываются процедурой подготовки, после которой они принимают определённую нормализованную форму. RFC определяет набор таблиц, которые могут быть объединены в профили. Каждый профиль должен определять, какие таблицы он использует, и какие другие необязательные части процедуры stringprep являются частью профиля. Одним примером stringprep профиля является nameprep, который используется для интернационализированных доменных имён.

Модуль stringprep предоставляет доступ только к таблицам из RFC 3454. Поскольку эти таблицы очень велики для представления их в виде словарей или списков, модуль использует внутренне базу данных символов Unicode. Исходный код модуля был сгенерирован с помощью утилиты mkstringprep.py.

В результате эти таблицы представлены как функции, а не как структуры данных. В RFC есть два вида таблиц: множества и отображения. Для множества stringprep предоставляет «характеристическую функцию», т. е. функцию, которая возвращает True если параметр входит в множество. Для отображений она предоставляет функцию отображения: на вход подаётся ключ, на выходе — соответствующее значение.

Ниже представлен список всех функций, доступных в модуле.

stringprep.in_table_a1(code)

Определяет, принадлежит ли code таблице A.1 (Неназначенные коды в Unicode 3.2).

stringprep.in_table_b1(code)

Определяет, принадлежит ли code таблице B.1 (Часто отображается как пустое значение).

stringprep.map_table_b2(code)

Возвращает сопоставленное значение для code в соответствии с таблицей B.2 (Отображение для преобразования регистра, используемого с NFKC).

stringprep.map_table_b3(code)

Возвращает сопоставленное значение для code в соответствии с таблицей B.3 (Отображение для преобразования регистра, используемого без нормализации).

stringprep.in_table_c11(code)

Определяет, принадлежит ли code таблице C.1.1 (ASCII пробельные символы).

stringprep.in_table_c12(code)

Определяет, принадлежит ли code таблице C.1.2 (Не-ASCII пробельные символы).

stringprep.in_table_c11_c12(code)

Определяет, принадлежит ли code таблице C.1 (Пробельные символы, объединение C.1.1 и C.1.2).

stringprep.in_table_c21(code)

Определяет, принадлежит ли code таблице C.2.1 (ASCII управляющие символы).

stringprep.in_table_c22(code)

Определяет, принадлежит ли code таблице C.2.2 (Не-ASCII управляющие символы).

stringprep.in_table_c21_c22(code)

Определяет, принадлежит ли code таблице C.2 (Управляющие символы, объединение C.2.1 и C.2.2).

stringprep.in_table_c3(code)

Определяет, принадлежит ли code таблице C.3 (Приватное использование).

stringprep.in_table_c4(code)

Определяет, принадлежит ли code таблице C.4 (Коды, не являющиеся символами).

stringprep.in_table_c5(code)

Определяет, принадлежит ли code таблице C.5 (Супплементные коды).

stringprep.in_table_c6(code)

Определяет, принадлежит ли code таблице C.6 (Неподходящие для простого текста).

stringprep.in_table_c7(code)

Определяет, принадлежит ли code таблице C.7 (Неподходящие для канонического представления).

stringprep.in_table_c8(code)

Определяет, принадлежит ли code таблице C.8 (Изменяют свойства отображения или устарели).

stringprep.in_table_c9(code)

Определяет, принадлежит ли code таблице C.9 (Символы тегов).

stringprep.in_table_d1(code)

Определяет, принадлежит ли code таблице D.1 (Символы с би-направленным свойством «R» или «AL»).

stringprep.in_table_d2(code)

Определяет, принадлежит ли code таблице D.2 (Символы с би-направленным свойством «L»).

© 2001–2022 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.8/library/stringprep.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API