| """ |
| Common code used in multiple modules. |
| """ |
| |
| |
| class weekday(object): |
| __slots__ = ["weekday", "n"] |
| |
| def __init__(self, weekday, n=None): |
| self.weekday = weekday |
| self.n = n |
| |
| def __call__(self, n): |
| if n == self.n: |
| return self |
| else: |
| return self.__class__(self.weekday, n) |
| |
| def __eq__(self, other): |
| try: |
| if self.weekday != other.weekday or self.n != other.n: |
| return False |
| except AttributeError: |
| return False |
| return True |
| |
| def __hash__(self): |
| return hash(( |
| self.weekday, |
| self.n, |
| )) |
| |
| def __ne__(self, other): |
| return not (self == other) |
| |
| def __repr__(self): |
| s = ("MO", "TU", "WE", "TH", "FR", "SA", "SU")[self.weekday] |
| if not self.n: |
| return s |
| else: |
| return "%s(%+d)" % (s, self.n) |
| |
| # vim:ts=4:sw=4:et |