lin
2025-08-14 dae8bad597b6607a449b32bf76c523423f7720ed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
"""
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