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