mirror of https://github.com/patacrep/patacrep.git
Guillaume Bouchard
14 years ago
committed by
Romain Goffe
3 changed files with 38 additions and 2 deletions
@ -0,0 +1,29 @@ |
|||||
|
#coding:utf8 |
||||
|
|
||||
|
import re |
||||
|
import warnings |
||||
|
import locale |
||||
|
|
||||
|
iecPattern = re.compile(r"\IeC {\\(.*?)}") |
||||
|
replacePattern = { |
||||
|
'`A': 'À', |
||||
|
'oe ': 'œ', |
||||
|
"'e" : 'é', |
||||
|
"'o" : 'ó', |
||||
|
"c C" : 'ç', |
||||
|
} |
||||
|
|
||||
|
def sortkey(value): |
||||
|
''' |
||||
|
From a title, return something usable for sorting. It handles locale (but |
||||
|
don't forget to call locale.setlocale(locale.LC_ALL, '')). It also try to |
||||
|
handle the sort with crappy latex escape sequences. Some chars may not be |
||||
|
handled by this function, so add them to *replacePattern* dictionnary. |
||||
|
''' |
||||
|
def repl(match): |
||||
|
try: |
||||
|
return replacePattern[match.group(1)] |
||||
|
except KeyError: |
||||
|
warnings.warn("Error, no match to replace %s in %s. You should add it in the coresponding table in title_solt.py" % (match.group(0), match.group(1))) |
||||
|
|
||||
|
return locale.strxfrm(iecPattern.sub(repl, value)) |
Loading…
Reference in new issue