LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
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 
29 from lsst.daf.persistence import Butler
30 
31 
33  """ButlerFactory creates data Butlers containing data mappers. Use of it
34  is deprecated in favor of the direct Butler constructor.
35 
36  The ButlerFactory class takes a mapper for a data collection.
37  It can then create Butlers with these mappers.
38 
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.
43 
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.
52 
53  Public methods:
54 
55  __init__(self, mapper)
56 
57  create(self)
58  """
59 
60  def __init__(self, mapper):
61  """Construct a ButlerFactory.
62 
63  @param mapper mapper object.
64  """
65 
66  self.mappermapper = mapper
67 
68  def create(self):
69  """Create a Butler.
70 
71  @returns a new Butler.
72  """
73 
74  if hasattr(self.mappermapper, 'root'):
75  root = self.mappermapper.root
76  else:
77  root = None
78  return Butler(root=root, mapper=self.mappermapper)