1 import pickle,os.path
2
4 """ Simple persistent counter. """
5
7 """Initialize the counter file in dir directory"""
8 self.dir = dir
9 self.cntfn = os.path.join(self.dir,'cnt')
10
11
12 try:
13 self.cnt = pickle.load(file(self.cntfn))
14 except IOError,x:
15 import errno
16 if x.errno == errno.ENOENT:
17 self.cnt = 0
18 else:
19 raise
20
22 """Generate n new job ids"""
23 ids = range(self.cnt,self.cnt+n)
24 self.cnt += n
25 pickle.dump(self.cnt,file(self.cntfn,'w'))
26 return ids
27
29 self.cnt -= 1
30 pickle.dump(self.cnt,file(self.cntfn,'w'))
31