Coverage for python/lsst/afw/cameraGeom/detectorCollection/detectorCollectionContinued.py : 38%

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#
2# Developed for the LSST Data Management System.
3# This product includes software developed by the LSST Project
4# (https://www.lsst.org).
5# See the COPYRIGHT file at the top-level directory of this distribution
6# for details of code ownership.
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU General Public License as published by
10# the Free Software Foundation, either version 3 of the License, or
11# (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with this program. If not, see <https://www.gnu.org/licenses/>.
20#
22__all__ = []
24from lsst.utils import TemplateMeta
25from ..detector import Detector
26from .detectorCollection import DetectorCollectionDetectorBase, DetectorCollectionBuilderBase
29class DetectorCollectionBase(metaclass=TemplateMeta): # noqa: F811
30 """An immutable collection of Detectors that can be accessed by name or ID.
31 """
33 def __iter__(self):
34 for k, v in sorted(self.getIdMap().items()):
35 yield v
37 def __getitem__(self, key):
38 r = self.get(key)
39 if r is None:
40 raise KeyError("Detector for key {} not found.".format(key))
41 return r
43 def getNameIter(self):
44 """Get an iterator over detector names
45 """
46 for k, v in self.getNameMap().items():
47 yield k
49 def getIdIter(self):
50 """Get an iterator over detector IDs
51 """
52 for k, v in self.getIdMap().items():
53 yield k
56DetectorCollectionBase.register(Detector, DetectorCollectionDetectorBase)
57DetectorCollectionBase.register(Detector.InCameraBuilder, DetectorCollectionBuilderBase)