From f062d9f30a86121cf2653a4b9678a1e116c76d68 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 22 Dec 2019 08:37:30 +0100 Subject: [PATCH] dot is not valid in family name --- src/rougail/utils.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/rougail/utils.py b/src/rougail/utils.py index a1b9b84a..8445528d 100644 --- a/src/rougail/utils.py +++ b/src/rougail/utils.py @@ -2,25 +2,21 @@ utilitaires créole """ import unicodedata +from .i18n import _ -# définition des classes d'adresse IP existantes -def normalize_family(family_name, check_name=True): - """ - il ne faut pas d'espace, d'accent, de majuscule, de tiré, ... - dans le nom des familles +def normalize_family(family_name: str, + check_name=True) -> str: + """replace space, accent, uppercase, ... by valid character """ f = family_name f = f.replace('-', '_') - #f = f.replace(u'é', 'e') - #f = f.replace(u'è', 'e') - nfkd_form = unicodedata.normalize('NFKD', f) - f = u"".join([c for c in nfkd_form if not unicodedata.combining(c)]) + f = f.replace('.', '_') f = f.replace(' ', '_') + nfkd_form = unicodedata.normalize('NFKD', f) + f = ''.join([c for c in nfkd_form if not unicodedata.combining(c)]) f = f.lower() - if f[0].isnumeric(): - raise ValueError(u'Le nom de la famille ne doit pas commencer par un chiffre : {0}'.format(f)) if check_name and f == 'containers': - raise ValueError(u'nom de la famille interdit {0}'.format(f)) + raise ValueError(_('"{0}" is a forbidden family name'.format(f))) return f