Spec-Zone.ru › Python 3.12

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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/stringprep.html

Spec-Zone.ru

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