Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1#!/usr/bin/env python 

2# 

3# LSST Data Management System 

4# Copyright 2008-2016 LSST Corporation. 

5# 

6# This product includes software developed by the 

7# LSST Project (http://www.lsst.org/). 

8# 

9# This program is free software: you can redistribute it and/or modify 

10# it under the terms of the GNU General Public License as published by 

11# the Free Software Foundation, either version 3 of the License, or 

12# (at your option) any later version. 

13# 

14# This program is distributed in the hope that it will be useful, 

15# but WITHOUT ANY WARRANTY; without even the implied warranty of 

16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

17# GNU General Public License for more details. 

18# 

19# You should have received a copy of the LSST License Statement and 

20# the GNU General Public License along with this program. If not, 

21# see <http://www.lsstcorp.org/LegalNotices/>. 

22# 

23 

24from lsst.ctrl.execute import envString 

25import os.path 

26 

27 

28class SeqFile: 

29 """Class which can read and increment files used to store sequence numbers 

30 """ 

31 

32 def __init__(self, seqFileName): 

33 """Constructor 

34 @param seqFileName file name to operate on 

35 """ 

36 self.fileName = envString.resolve(seqFileName) 

37 

38 def nextSeq(self): 

39 """Produce the next sequence number. 

40 @return a sequence number 

41 """ 

42 seq = 0 

43 if not os.path.exists(self.fileName): 

44 self.writeSeq(seq) 

45 else: 

46 seq = self.readSeq() 

47 seq += 1 

48 self.writeSeq(seq) 

49 return seq 

50 

51 def readSeq(self): 

52 """Read a sequence number 

53 @return a sequence number 

54 """ 

55 with open(self.fileName) as seqFile: 

56 line = seqFile.read() 

57 seq = int(line) 

58 seqFile.close() 

59 return seq 

60 

61 def writeSeq(self, seq): 

62 """Write a sequence number 

63 """ 

64 with open(self.fileName, 'w') as seqFile: 

65 print(seq, file=seqFile) 

66 seqFile.close()