import os.path
import shutil
import logging
-from time import gmtime, strftime
+from time import gmtime, strftime, struct_time
import simplejson as json
import magic
import mimetypes
+import unicodedata
from wcs import publisher
from wcs.formdef import FormDef
def reduce_to_alnum(s, replacement_char='-'):
"""réduction d'une chaîne de caractères à de l'alpha-numérique"""
- avec_accent = u'çÇáàâÁÀÂéèêëÉÈÊËíìîïÍÌÎÏóòôöÓÒÔÖúùûüÚÙÛÜýỳyÿÝỲYŸ'
- sans_accent = u'cCaaaAAAeeeeEEEEiiiiIIIIooooOOOOuuuuUUUUyyyyYYYY'
if type(s) is not unicode:
s = unicode(s, 'utf-8')
- u = False
+ s = unicodedata.normalize('NFKD', s).encode('ASCII', 'ignore')
r = ''
for c in s:
- index = avec_accent.find(c)
- if index >= 0:
- r += sans_accent[index]
- elif ('a' <= c.lower() <= 'z') or ('0' <= c <= '9'):
+ if ('a' <= c.lower() <= 'z') or ('0' <= c <= '9'):
r += c
elif len(r) > 0 and r[-1] != replacement_char:
r += replacement_char
else: # r == '' or r[-1] == replacement_char
pass
- r = r.strip(replacement_char)
- if not u:
- r = r.encode('utf-8')
- return r
+ return r.strip(replacement_char)
def extract_fields(formdef, output_directory):
elif isinstance(field, BoolField):
result[field_name] = (data == 'True')
elif isinstance(field, DateField):
- if isinstance(data, time.struct_time):
+ if isinstance(data, struct_time):
result[field_name] = '%04d-%02d-%02d' % (data.tm_year,
data.tm_mon, data.tm_mday)
else: