3 ACCOUNT_FILE = 'bank.pck'
10 f = open(ACCOUNT_FILE)
14 self.bank = pickle.load(f)
15 self.sanity_check(self.bank)
19 def sanity_check_user(self, user):
20 wanted_fields = ['balance']
22 if f in wanted_fields:
24 if not isinstance(user['balance'], tuple):
26 if len(user['balance']) != 2:
28 if not isinstance(user[0], int) or \
29 not isinstance(user[1], int):
34 if len(wanted_fields) != 0:
38 def sanity_check(self, bank):
40 if not self.sanity_check_user(u):
45 f = open(ACCOUNT_FILE, 'w')
46 pickle.dump(self.bank, f)
49 def ensure_user_exists(self, username):
50 if self.bank.has_key(username):
52 self.bank[username] = {}
53 self.bank[username]['balance'] = (0,0)
55 def get_balance(self, username):
56 if self.bank.has_key(username):
57 return self.bank[username]['balance']
60 def add_amount(self, username, amount):
61 self.ensure_user_exists(username)
62 (cur_cents, cur_bytes) = self.bank[username]['balance']
63 (add_cents, add_bytes) = amount
64 self.bank[username]['balance'] = (cur_cents+add_cents,