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