[global] Passage à tout unicode et quelques corrections mineures.

* Typos
 * Docstrings unicode
 * Erreurs unicode
 * Ajout de _post_delete et _post_create
 * ?
This commit is contained in:
Pierre-Elliott Bécue 2013-05-27 23:18:24 +02:00
parent b2abbef3b4
commit 60ded9f830
7 changed files with 244 additions and 237 deletions

View file

@ -59,7 +59,7 @@ def ip4_of_rid(rid):
try:
return netaddr.IPAddress(config.rid_machines_speciales[rid])
except KeyError:
return ValueError(u"Machine speciale inconnue: %d" % rid)
return ValueError("Machine speciale inconnue: %d" % rid)
return netaddr.IPAddress(netaddr.IPNetwork(config.NETs[net][0]).first + rid - plage[0])
@ -97,10 +97,10 @@ def ip6_of_mac(mac, rid):
# En théorie, format_mac est inutile, car on ne devrait avoir
# que des mac formatées.
mac = format_mac(mac).replace(':', '')
mac = format_mac(mac).replace(u':', u'')
# hex retourne un str, donc on concatène, suivant la RFC
euid64v6 = hex(int(mac[:2], 16)^0b00000010) + mac[2:6] + 'fffe' + mac[6:12]
euid64v6 = hex(int(mac[:2], 16)^0b00000010) + mac[2:6] + u'fffe' + mac[6:12]
# fil-v6 ou wifi-v6, we don't care
if net != "special":
@ -133,7 +133,7 @@ def mailexist(mail):
return r
def format_ldap_time(tm):
u"""Formatage des dates provenant de la base LDAP
"""Formatage des dates provenant de la base LDAP
Transforme la date YYYYMMDDHHMMSS.XXXXXXZ (UTC)
en date DD/MM/YY HH:MM (local)"""
tm_st = time.strptime(tm.split('.')[0], "%Y%m%d%H%M%S") # struct_time UTC
@ -142,17 +142,17 @@ def format_ldap_time(tm):
return time.strftime("%d/%m/%Y %H:%M", tm_st)
def format_mac(mac):
u""" Formatage des adresses mac
""" Formatage des adresses mac
Transforme une adresse pour obtenir la forme xx:xx:xx:xx:xx:xx
Retourne la mac formatée.
"""
mac = netaddr.EUI(mac)
if not mac:
raise ValueError(u"MAC nulle interdite\nIl doit être possible de modifier l'adresse de la carte.")
return str(mac).replace('-', ':')
return unicode(str(mac).replace('-', ':'))
def format_tel(tel):
u"""Formatage des numéros de téléphone
"""Formatage des numéros de téléphone
Transforme un numéro de téléphone pour ne contenir que des chiffres
(00ii... pour les numéros internationaux)
Retourne le numéro formaté.
@ -162,17 +162,18 @@ def format_tel(tel):
tel_f = u"00" + tel_f[1:]
if u"(0)" in tel_f:
tel_f = tel_f.replace(u"(0)", u"")
# \D = non-digit
tel_f = re.sub(r'\D', '', tel_f)
return tel_f
return unicode(tel_f)
def validate_name(value, more_chars=""):
"""Valide un nom: ie un unicode qui contient lettres, espaces et
apostrophes, et éventuellement des caractères additionnels"""
if re.match("^[A-Za-z0-9]([-' %s]?[A-Za-z0-9])*$" % more_chars,
if re.match("^[A-Za-z0-9]([-' %s]?[A-Za-z0-9])*$" % more_chars,
normalize('NFKD', value).encode('ASCII', 'ignore')):
return unicode(value)
else:
raise ValueError("Nom invalide ('%s')" % value)
raise ValueError("Nom invalide (%r)" % value)
def process_status(pid):
"""