LSSTApplications  18.1.0
LSSTDataManagementBasePackage
butlerFactory.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
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 #
24 
25 # -*- python -*-
26 
27 """This module defines the ButlerFactory class."""
28 from builtins import object
29 
30 from lsst.daf.persistence import Butler
31 
32 
34  """ButlerFactory creates data Butlers containing data mappers. Use of it
35  is deprecated in favor of the direct Butler constructor.
36 
37  The ButlerFactory class takes a mapper for a data collection.
38  It can then create Butlers with these mappers.
39 
40  A data identifier is a dictionary. The keys match those understood by a
41  mapper; the values select particular data sets or collections of data
42  sets. For example, one key might be "visit". Specifying a value of
43  "695934" for this key might select a collection of images.
44 
45  The mappers perform four functions:
46  1. Determine what keys are valid for dataset ids.
47  2. Obtain a collection of potential dataset ids matching a
48  partial dataset id.
49  3. Map a dataset id to the location of the dataset, including its
50  C++ and Python types.
51  4. Manipulate a retrieved dataset object so that it conforms to a
52  standard.
53 
54  Public methods:
55 
56  __init__(self, mapper)
57 
58  create(self)
59  """
60 
61  def __init__(self, mapper):
62  """Construct a ButlerFactory.
63 
64  @param mapper mapper object.
65  """
66 
67  self.mapper = mapper
68 
69  def create(self):
70  """Create a Butler.
71 
72  @returns a new Butler.
73  """
74 
75  if hasattr(self.mapper, 'root'):
76  root = self.mapper.root
77  else:
78  root = None
79  return Butler(root=root, mapper=self.mapper)