codekingpro/portable-devtools
115k
1"""2Common code used in multiple modules.3"""4 5 6class weekday(object):7 __slots__ = ["weekday", "n"]8 9 def __init__(self, weekday, n=None):10 self.weekday = weekday11 self.n = n12 13 def __call__(self, n):14 if n == self.n:15 return self16 else:17 return self.__class__(self.weekday, n)18 19 def __eq__(self, other):20 try:21 if self.weekday != other.weekday or self.n != other.n:22 return False23 except AttributeError:24 return False25 return True26 27 def __hash__(self):28 return hash((29 self.weekday,30 self.n,31 ))32 33 def __ne__(self, other):34 return not (self == other)35 36 def __repr__(self):37 s = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")[self.weekday]38 if not self.n:39 return s40 else:41 return "%s(%+d)" % (s, self.n)42 43# vim:ts=4:sw=4:et44 