| """ | |
| 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 | |