Spec-Zone.ru › Python 3.6

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

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

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

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

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

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

stringprep.in_table_a1(code)

Определяет, находится ли code в таблице A.1 (неприсвоенные кодовые точки в Юникоде 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–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/stringprep.html

Spec-Zone.ru

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