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