Coverage for python/lsst/ctrl/execute/seqFile.py: 30%
21 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-10-14 02:01 -0700
« prev ^ index » next coverage.py v7.10.6, created at 2025-10-14 02:01 -0700
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.resources import ResourcePath, ResourcePathExpression
27class SeqFile:
28 """Class which can read and increment files used to store sequence
29 numbers"""
31 filename: ResourcePath
33 def __init__(self, seqFileName: ResourcePathExpression):
34 """Constructor
35 @param seqFileName file name to operate on
36 """
37 self.fileName = ResourcePath(seqFileName)
39 def nextSeq(self):
40 """Produce the next sequence number.
41 @return a sequence number
42 """
43 seq = 0
44 if not self.fileName.exists():
45 self.writeSeq(seq)
46 else:
47 seq = self.readSeq()
48 seq += 1
49 self.writeSeq(seq)
50 return seq
52 def readSeq(self):
53 """Read a sequence number
54 @return a sequence number
55 """
56 with self.fileName.open(mode="r") as seqFile:
57 line = seqFile.readline()
58 seq = int(line)
59 return seq
61 def writeSeq(self, seq):
62 """Write a sequence number"""
63 with self.fileName.open(mode="w") as seqFile:
64 print(seq, file=seqFile)