43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
# -*- coding: utf-8 mode: python -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
|
|
|
|
__all__ = ('JourF',)
|
|
|
|
from ulib.base.uio import _s
|
|
|
|
from strings import UnicodeF
|
|
|
|
class JourF(UnicodeF):
|
|
LUNDI = u"lundi"
|
|
MARDI = u"mardi"
|
|
MERCREDI = u"mercredi"
|
|
JEUDI = u"jeudi"
|
|
VENDREDI = u"vendredi"
|
|
SAMEDI = u"samedi"
|
|
DIMANCHE = u"dimanche"
|
|
|
|
JOURS = [j.capitalize() for j in (LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE)]
|
|
JOUR_MAP = {u"1": LUNDI, u"l": LUNDI, u"lun": LUNDI,
|
|
u"2": MARDI, u"ma": MARDI, u"mar": MARDI,
|
|
u"3": MERCREDI, u"me": MERCREDI, u"mer": MERCREDI,
|
|
u"4": JEUDI, u"j": JEUDI, u"jeu": JEUDI,
|
|
u"5": VENDREDI, u"v": VENDREDI, u"ven": VENDREDI,
|
|
u"6": SAMEDI, u"s": SAMEDI, u"sam": SAMEDI,
|
|
u"0": DIMANCHE, u"7": DIMANCHE, u"d": DIMANCHE, u"dim": DIMANCHE,
|
|
}
|
|
|
|
def parse(self, s):
|
|
s = UnicodeF.parse(self, s)
|
|
if s is None: return None
|
|
|
|
j = self.RE_SPACES.sub(u'', s)
|
|
j = self.JOUR_MAP.get(j.lower(), j).capitalize()
|
|
if j in self.JOURS: return j
|
|
else: raise ValueError("Invalid day name: %s" % s)
|
|
|
|
def format(self, j):
|
|
if j is None: return u""
|
|
else: return j
|
|
|
|
def get_dow(self, j):
|
|
return self.JOURS.index(j)
|