1+ import json
12from net import lib
23from sys import argv
34from time import time
4- from json import dumps
5+ from os . path import isfile
56from SocketServer import TCPServer , BaseRequestHandler
67
78
@@ -12,22 +13,38 @@ class Memory(object):
1213 complete = False
1314 start = None
1415
16+ def __init__ (self , ** kwargs ):
17+ self .__dict__ .update (kwargs )
18+
1519 def __repr__ (self ):
1620 return str (self .__dict__ )
1721
1822
23+ STORE = 'data.json'
24+
25+
1926class MyServer (TCPServer ):
2027 data = dict ()
2128 processing = 1
2229
30+ def __init__ (self , * args , ** kwargs ):
31+ TCPServer .__init__ (self , * args , ** kwargs )
32+ if isfile (STORE ):
33+ print 'Found previous run on disk. Loading + Restoring...'
34+ with open (STORE , 'r' ) as data :
35+ memories = json .load (data )
36+ for key , value in memories .iteritems ():
37+ memories [key ] = Memory (** value )
38+ self .data = memories
39+
2340 def save (self ):
24- # TODO: store data to disk
25- print dumps (
26- {
27- key : value . __dict__
28- for key , value in self . data . iteritems ( )
29- }, indent = 4
30- )
41+ data = {
42+ key : value . __dict__
43+ for key , value in self . data . iteritems ()
44+ }
45+ print json . dumps ( data , indent = 4 )
46+ with open ( STORE , 'w' ) as file :
47+ json . dump ( data , file , indent = 4 )
3148
3249
3350class MyTCPHandler (BaseRequestHandler ):
0 commit comments