Coverage for python/lsst/ctrl/execute/seqFile.py: 28%
Shortcuts 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
Shortcuts 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#
24from lsst.ctrl.execute import envString
25import os.path
28class SeqFile:
29 """Class which can read and increment files used to store sequence numbers
30 """
32 def __init__(self, seqFileName):
33 """Constructor
34 @param seqFileName file name to operate on
35 """
36 self.fileName = envString.resolve(seqFileName)
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
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
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()