From 3441d6b8ca010f7153d2b13680409ab571b9d3a1 Mon Sep 17 00:00:00 2001 From: Michal Schmidt Date: Mon, 22 Jun 2020 00:49:58 +0200 Subject: [PATCH] factory: replace ':' with '_' in profile names --- precis_i18n/factory.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/precis_i18n/factory.py b/precis_i18n/factory.py index 0b01568..afa1c67 100644 --- a/precis_i18n/factory.py +++ b/precis_i18n/factory.py @@ -1,5 +1,6 @@ """Implements the `get_profile` factory function used to create profiles.""" +import encodings import precis_i18n.baseclass as _base import precis_i18n.profile as _profile import precis_i18n.unicode as _unicode @@ -21,13 +22,13 @@ _PROFILES = { _factory(_profile.Username, name='UsernameCasePreserved'), 'usernamecasemapped': _factory(_profile.Username, name='UsernameCaseMapped', casemap='lower'), - 'usernamecasemapped:casefold': + 'usernamecasemapped_casefold': _factory(_profile.Username, - name='UsernameCaseMapped:CaseFold', + name='UsernameCaseMapped_CaseFold', casemap='fold'), - 'usernamecasemapped:tolower': + 'usernamecasemapped_tolower': _factory(_profile.Username, - name='UsernameCaseMapped:ToLower', + name='UsernameCaseMapped_ToLower', casemap='lower'), 'opaquestring': _factory(_profile.OpaqueString, name='OpaqueString'), @@ -35,13 +36,13 @@ _PROFILES = { _factory(_profile.Nickname, name='NicknameCasePreserved'), 'nicknamecasemapped': _factory(_profile.Nickname, name='NicknameCaseMapped', casemap='lower'), - 'nicknamecasemapped:casefold': + 'nicknamecasemapped_casefold': _factory(_profile.Nickname, - name='NicknameCaseMapped:CaseFold', + name='NicknameCaseMapped_CaseFold', casemap='fold'), - 'nicknamecasemapped:tolower': + 'nicknamecasemapped_tolower': _factory(_profile.Nickname, - name='NicknameCaseMapped:ToLower', + name='NicknameCaseMapped_ToLower', casemap='lower'), # Alias for backward-compatibility with previous version of codec. @@ -58,13 +59,13 @@ def get_profile(name, *, unicodedata=None): "FreeFormClass" "UsernameCasePreserved" "UsernameCaseMapped" - "UsernameCaseMapped:CaseFold" - "UsernameCaseMapped:ToLower" + "UsernameCaseMapped_CaseFold" + "UsernameCaseMapped_ToLower" "OpaqueString" "NicknameCasePreserved" "NicknameCaseMapped" - "NicknameCaseMapped:CaseFold" - "NicknameCaseMapped:ToLower" + "NicknameCaseMapped_CaseFold" + "NicknameCaseMapped_ToLower" "Nickname" (alias for "NicknameCaseMapped") This function constructs a new profile each time; there is no cache. @@ -83,4 +84,4 @@ def get_profile(name, *, unicodedata=None): Raises: KeyError: Profile not found. """ - return _PROFILES[name.lower()](_unicode.UnicodeData(unicodedata)) + return _PROFILES[encodings.normalize_encoding(name.lower())](_unicode.UnicodeData(unicodedata)) -- 2.26.2