stringprep — Подготовка строк для Интернета
Исходный код: Lib/stringprep.py
При идентификации объектов (таких как имена хостов) в интернете часто необходимо сравнивать такие идентификаторы на «равенство». Точный способ выполнения этого сравнения может зависеть от предметной области, например, от того, должно ли оно быть регистронезависимым или нет. Также может потребоваться ограничить возможные идентификаторы, разрешая только идентификаторы, состоящие из «печатьных» символов.
RFC 3454 определяет процедуру «подготовки» строк Юникода в интернет-протоколах. Перед передачей строк по сети они обрабатываются процедурой подготовки, после которой они имеют определённую нормализованную форму. RFC определяет набор таблиц, которые могут быть объединены в профили. Каждый профиль должен определить, какие таблицы он использует, и какие другие необязательные части stringprep процедуры являются частью профиля. Примером stringprep профиля является nameprep, который используется для интернационализованных доменных имён.
Модуль stringprep экспонирует только таблицы из RFC 3454. Поскольку эти таблицы очень большие для представления в виде словарей или списков, модуль использует базу данных символов Юникода внутри. Исходный код модуля был сгенерирован с помощью mkstringprep.py утилиты.
В результате эти таблицы экспонируются как функции, а не как структуры данных. В RFC существуют два типа таблиц: множества и отображения. Для множества stringprep предоставляет «характеристическую функцию», т. е. функцию, которая возвращает True если параметр является частью множества. Для отображений он предоставляет функцию отображения: задавая ключ, она возвращает связанное значение. Ниже приведен список всех функций, доступных в модуле.
-
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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/stringprep.html