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
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.daf.persistence.butlerSubset.ButlerSubset Class Reference

Public Member Functions

def __init__ (self, butler, datasetType, level, dataId)
 
def __repr__ (self)
 
def __len__ (self)
 
def __iter__ (self)
 

Public Attributes

 butler
 
 datasetType
 
 dataId
 
 cache
 
 level
 

Static Public Attributes

int GENERATION = 2
 

Detailed Description

ButlerSubset is a container for ButlerDataRefs.  It represents a
collection of data ids that can be used to obtain datasets of the type
used when creating the collection or a compatible dataset type.  It can be
thought of as the result of a query for datasets matching a partial data
id.

The ButlerDataRefs are generated at a specified level of the data id
hierarchy.  If that is not the level at which datasets are specified, the
ButlerDataRef.subItems() method may be used to dive further into the
ButlerDataRefs.

ButlerSubsets should generally be created using Butler.subset().

This mechanism replaces the creation of butlers using partial dataIds.

Public methods:

__init__(self, butler, datasetType, level, dataId)

__len__(self)

__iter__(self)

Definition at line 33 of file butlerSubset.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.daf.persistence.butlerSubset.ButlerSubset.__init__ (   self,
  butler,
  datasetType,
  level,
  dataId 
)
Create a ButlerSubset by querying a butler for data ids matching a
given partial data id for a given dataset type at a given hierarchy
level.

@param butler (Butler)    butler that is being queried.
@param datasetType (str)  the type of dataset to query.
@param level (str)        the hierarchy level to descend to. if empty string will look up the default
                          level.
@param dataId (dict)      the (partial or complete) data id.

Definition at line 64 of file butlerSubset.py.

64  def __init__(self, butler, datasetType, level, dataId):
65  """
66  Create a ButlerSubset by querying a butler for data ids matching a
67  given partial data id for a given dataset type at a given hierarchy
68  level.
69 
70  @param butler (Butler) butler that is being queried.
71  @param datasetType (str) the type of dataset to query.
72  @param level (str) the hierarchy level to descend to. if empty string will look up the default
73  level.
74  @param dataId (dict) the (partial or complete) data id.
75  """
76  self.butler = butler
77  self.datasetType = datasetType
78  self.dataId = DataId(dataId)
79  self.cache = []
80  self.level = level
81 
82  keys = self.butler.getKeys(datasetType, level, tag=dataId.tag)
83  if keys is None:
84  return
85  fmt = list(keys.keys())
86 
87  # Don't query if we already have a complete dataId
88  completeId = True
89  for key in fmt:
90  if key not in dataId:
91  completeId = False
92  break
93  if completeId:
94  self.cache.append(dataId)
95  return
96 
97  idTuples = butler.queryMetadata(self.datasetType, fmt, self.dataId)
98  for idTuple in idTuples:
99  tempId = dict(self.dataId)
100  if len(fmt) == 1:
101  tempId[fmt[0]] = idTuple
102  else:
103  for i in range(len(fmt)):
104  tempId[fmt[i]] = idTuple[i]
105  self.cache.append(tempId)
106 
daf::base::PropertyList * list
Definition: fits.cc:913
std::shared_ptr< FrameSet > append(FrameSet const &first, FrameSet const &second)
Construct a FrameSet that performs two transformations in series.
Definition: functional.cc:33

Member Function Documentation

◆ __iter__()

def lsst.daf.persistence.butlerSubset.ButlerSubset.__iter__ (   self)
Iterator over the ButlerDataRefs in the ButlerSubset.

@returns (ButlerIterator)

Definition at line 120 of file butlerSubset.py.

120  def __iter__(self):
121  """
122  Iterator over the ButlerDataRefs in the ButlerSubset.
123 
124  @returns (ButlerIterator)
125  """
126 
127  return ButlerSubsetIterator(self)
128 
129 

◆ __len__()

def lsst.daf.persistence.butlerSubset.ButlerSubset.__len__ (   self)
Number of ButlerDataRefs in the ButlerSubset.

@returns (int)

Definition at line 111 of file butlerSubset.py.

111  def __len__(self):
112  """
113  Number of ButlerDataRefs in the ButlerSubset.
114 
115  @returns (int)
116  """
117 
118  return len(self.cache)
119 

◆ __repr__()

def lsst.daf.persistence.butlerSubset.ButlerSubset.__repr__ (   self)

Definition at line 107 of file butlerSubset.py.

107  def __repr__(self):
108  return "ButlerSubset(butler=%s, datasetType=%s, dataId=%s, cache=%s, level=%s)" % (
109  self.butler, self.datasetType, self.dataId, self.cache, self.level)
110 

Member Data Documentation

◆ butler

lsst.daf.persistence.butlerSubset.ButlerSubset.butler

Definition at line 76 of file butlerSubset.py.

◆ cache

lsst.daf.persistence.butlerSubset.ButlerSubset.cache

Definition at line 79 of file butlerSubset.py.

◆ dataId

lsst.daf.persistence.butlerSubset.ButlerSubset.dataId

Definition at line 78 of file butlerSubset.py.

◆ datasetType

lsst.daf.persistence.butlerSubset.ButlerSubset.datasetType

Definition at line 77 of file butlerSubset.py.

◆ GENERATION

int lsst.daf.persistence.butlerSubset.ButlerSubset.GENERATION = 2
static

Definition at line 60 of file butlerSubset.py.

◆ level

lsst.daf.persistence.butlerSubset.ButlerSubset.level

Definition at line 80 of file butlerSubset.py.


The documentation for this class was generated from the following file: