Coverage for python/lsst/daf/persistence/butlerFactory.py: 50%
10 statements
« prev ^ index » next coverage.py v6.4.1, created at 2022-06-23 02:39 -0700
« prev ^ index » next coverage.py v6.4.1, created at 2022-06-23 02:39 -0700
1#!/usr/bin/env python
3#
4# LSST Data Management System
5# Copyright 2008, 2009, 2010 LSST Corporation.
6#
7# This product includes software developed by the
8# LSST Project (http://www.lsst.org/).
9#
10# This program is free software: you can redistribute it and/or modify
11# it under the terms of the GNU General Public License as published by
12# the Free Software Foundation, either version 3 of the License, or
13# (at your option) any later version.
14#
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18# GNU General Public License for more details.
19#
20# You should have received a copy of the LSST License Statement and
21# the GNU General Public License along with this program. If not,
22# see <http://www.lsstcorp.org/LegalNotices/>.
23#
25# -*- python -*-
27"""This module defines the ButlerFactory class."""
29from lsst.daf.persistence import Butler
32class ButlerFactory:
33 """ButlerFactory creates data Butlers containing data mappers. Use of it
34 is deprecated in favor of the direct Butler constructor.
36 The ButlerFactory class takes a mapper for a data collection.
37 It can then create Butlers with these mappers.
39 A data identifier is a dictionary. The keys match those understood by a
40 mapper; the values select particular data sets or collections of data
41 sets. For example, one key might be "visit". Specifying a value of
42 "695934" for this key might select a collection of images.
44 The mappers perform four functions:
45 1. Determine what keys are valid for dataset ids.
46 2. Obtain a collection of potential dataset ids matching a
47 partial dataset id.
48 3. Map a dataset id to the location of the dataset, including its
49 C++ and Python types.
50 4. Manipulate a retrieved dataset object so that it conforms to a
51 standard.
53 Public methods:
55 __init__(self, mapper)
57 create(self)
58 """
60 def __init__(self, mapper):
61 """Construct a ButlerFactory.
63 @param mapper mapper object.
64 """
66 self.mapper = mapper
68 def create(self):
69 """Create a Butler.
71 @returns a new Butler.
72 """
74 if hasattr(self.mapper, 'root'):
75 root = self.mapper.root
76 else:
77 root = None
78 return Butler(root=root, mapper=self.mapper)