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 | List of all members
lsst.daf.persistence.repository.Repository Class Reference

Public Member Functions

def __init__ (self, repoData)
 
def write (self, butlerLocation, obj)
 
def read (self, butlerLocation)
 
def mappers (self)
 Mapper Access #. More...
 
def getRegistry (self)
 
def getKeys (self, *args, **kwargs)
 
def map (self, *args, **kwargs)
 
def queryMetadata (self, *args, **kwargs)
 
def backup (self, *args, **kwargs)
 
def getMapperDefaultLevel (self)
 
def exists (self, location)
 

Detailed Description

Represents a repository of persisted data and has methods to access that data.

Definition at line 124 of file repository.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.daf.persistence.repository.Repository.__init__ (   self,
  repoData 
)
Initialize a Repository with parameters input via RepoData.

Parameters
----------
repoData : RepoData
    Object that contains the parameters with which to init the Repository.

Definition at line 128 of file repository.py.

128  def __init__(self, repoData):
129  """Initialize a Repository with parameters input via RepoData.
130 
131  Parameters
132  ----------
133  repoData : RepoData
134  Object that contains the parameters with which to init the Repository.
135  """
136  self._storage = Storage.makeFromURI(repoData.cfg.root)
137  if repoData.cfg.dirty and not repoData.isV1Repository and repoData.cfgOrigin != 'nested':
138  self._storage.putRepositoryCfg(repoData.cfg, repoData.cfgRoot)
139  self._mapperArgs = repoData.cfg.mapperArgs # keep for reference in matchesArgs
140  self._initMapper(repoData)
141 

Member Function Documentation

◆ backup()

def lsst.daf.persistence.repository.Repository.backup (   self,
args,
**  kwargs 
)
Perform mapper.backup.

See mapper.backup for more information about args and kwargs.

:param args: arguments to be passed on to mapper.backup
:param kwargs: keyword arguments to be passed on to mapper.backup
:return: None

Definition at line 260 of file repository.py.

260  def backup(self, *args, **kwargs):
261  """Perform mapper.backup.
262 
263  See mapper.backup for more information about args and kwargs.
264 
265  :param args: arguments to be passed on to mapper.backup
266  :param kwargs: keyword arguments to be passed on to mapper.backup
267  :return: None
268  """
269  if self._mapper is None:
270  return None
271  self._mapper.backup(*args, **kwargs)
272 

◆ exists()

def lsst.daf.persistence.repository.Repository.exists (   self,
  location 
)
Check if location exists in storage.

Parameters
----------
location : ButlerLocation
    Desrcibes a location in storage to look for.

Returns
-------
bool
    True if location exists, False if not.

Definition at line 288 of file repository.py.

288  def exists(self, location):
289  """Check if location exists in storage.
290 
291  Parameters
292  ----------
293  location : ButlerLocation
294  Desrcibes a location in storage to look for.
295 
296  Returns
297  -------
298  bool
299  True if location exists, False if not.
300  """
301  butlerLocationStorage = location.getStorage()
302  if butlerLocationStorage:
303  return butlerLocationStorage.exists(location)
304  else:
305  return self._storage.exists(location)

◆ getKeys()

def lsst.daf.persistence.repository.Repository.getKeys (   self,
args,
**  kwargs 
)
Get the keys available in the repository/repositories.
:param args:
:param kwargs:
:return: A dict of {key:valueType}

Definition at line 216 of file repository.py.

216  def getKeys(self, *args, **kwargs):
217  """
218  Get the keys available in the repository/repositories.
219  :param args:
220  :param kwargs:
221  :return: A dict of {key:valueType}
222  """
223  # todo: getKeys is not in the mapper API
224  if self._mapper is None:
225  return None
226  keys = self._mapper.getKeys(*args, **kwargs)
227  return keys
228 

◆ getMapperDefaultLevel()

def lsst.daf.persistence.repository.Repository.getMapperDefaultLevel (   self)
Get the default level of the mapper.

This is typically used if no level is passed into butler methods that call repository.getKeys and/or
repository.queryMetadata. There is a bug in that code because it gets the default level from this
repository but then uses that value when searching all repositories. If this and other repositories
have dissimilar data, the default level value will be nonsensical. A good example of this issue is in
Butler.subset; it needs refactoring.

:return:

Definition at line 273 of file repository.py.

273  def getMapperDefaultLevel(self):
274  """Get the default level of the mapper.
275 
276  This is typically used if no level is passed into butler methods that call repository.getKeys and/or
277  repository.queryMetadata. There is a bug in that code because it gets the default level from this
278  repository but then uses that value when searching all repositories. If this and other repositories
279  have dissimilar data, the default level value will be nonsensical. A good example of this issue is in
280  Butler.subset; it needs refactoring.
281 
282  :return:
283  """
284  if self._mapper is None:
285  return None
286  return self._mapper.getDefaultLevel()
287 

◆ getRegistry()

def lsst.daf.persistence.repository.Repository.getRegistry (   self)
Get the registry from the mapper

Returns
-------
Registry or None
    The registry from the mapper or None if the mapper does not have one.

Definition at line 204 of file repository.py.

204  def getRegistry(self):
205  """Get the registry from the mapper
206 
207  Returns
208  -------
209  Registry or None
210  The registry from the mapper or None if the mapper does not have one.
211  """
212  if self._mapper is None:
213  return None
214  return self._mapper.getRegistry()
215 

◆ map()

def lsst.daf.persistence.repository.Repository.map (   self,
args,
**  kwargs 
)
Find a butler location for the given arguments.
See mapper.map for more information about args and kwargs.

:param args: arguments to be passed on to mapper.map
:param kwargs: keyword arguments to be passed on to mapper.map
:return: The type of item is dependent on the mapper being used but is typically a ButlerLocation.

Definition at line 229 of file repository.py.

229  def map(self, *args, **kwargs):
230  """Find a butler location for the given arguments.
231  See mapper.map for more information about args and kwargs.
232 
233  :param args: arguments to be passed on to mapper.map
234  :param kwargs: keyword arguments to be passed on to mapper.map
235  :return: The type of item is dependent on the mapper being used but is typically a ButlerLocation.
236  """
237  if self._mapper is None:
238  raise RuntimeError("No mapper assigned to Repository")
239  loc = self._mapper.map(*args, **kwargs)
240  if not loc:
241  return None
242  loc.setRepository(self)
243  return loc
244 

◆ mappers()

def lsst.daf.persistence.repository.Repository.mappers (   self)

Mapper Access #.

Definition at line 201 of file repository.py.

201  def mappers(self):
202  return (self._mapper, )
203 

◆ queryMetadata()

def lsst.daf.persistence.repository.Repository.queryMetadata (   self,
args,
**  kwargs 
)
Gets possible values for keys given a partial data id.

See mapper documentation for more explanation about queryMetadata.

:param args: arguments to be passed on to mapper.queryMetadata
:param kwargs: keyword arguments to be passed on to mapper.queryMetadata
:return:The type of item is dependent on the mapper being used but is typically a set that contains
available values for the keys in the format input argument.

Definition at line 245 of file repository.py.

245  def queryMetadata(self, *args, **kwargs):
246  """Gets possible values for keys given a partial data id.
247 
248  See mapper documentation for more explanation about queryMetadata.
249 
250  :param args: arguments to be passed on to mapper.queryMetadata
251  :param kwargs: keyword arguments to be passed on to mapper.queryMetadata
252  :return:The type of item is dependent on the mapper being used but is typically a set that contains
253  available values for the keys in the format input argument.
254  """
255  if self._mapper is None:
256  return None
257  ret = self._mapper.queryMetadata(*args, **kwargs)
258  return ret
259 

◆ read()

def lsst.daf.persistence.repository.Repository.read (   self,
  butlerLocation 
)
Read a dataset from Storage.

:param butlerLocation: Contains the details needed to find the desired dataset.
:return: An instance of the dataset requested by butlerLocation.

Definition at line 186 of file repository.py.

186  def read(self, butlerLocation):
187  """Read a dataset from Storage.
188 
189  :param butlerLocation: Contains the details needed to find the desired dataset.
190  :return: An instance of the dataset requested by butlerLocation.
191  """
192  butlerLocationStorage = butlerLocation.getStorage()
193  if butlerLocationStorage:
194  return butlerLocationStorage.read(butlerLocation)
195  else:
196  return self._storage.read(butlerLocation)
197 
std::shared_ptr< table::io::Persistable > read(table::io::InputArchive const &archive, table::io::CatalogVector const &catalogs) const override
Definition: warpExposure.cc:0

◆ write()

def lsst.daf.persistence.repository.Repository.write (   self,
  butlerLocation,
  obj 
)
Write a dataset to Storage.

:param butlerLocation: Contains the details needed to find the desired dataset.
:param dataset: The dataset to be written.
:return:

Definition at line 173 of file repository.py.

173  def write(self, butlerLocation, obj):
174  """Write a dataset to Storage.
175 
176  :param butlerLocation: Contains the details needed to find the desired dataset.
177  :param dataset: The dataset to be written.
178  :return:
179  """
180  butlerLocationStorage = butlerLocation.getStorage()
181  if butlerLocationStorage:
182  return butlerLocationStorage.write(butlerLocation, obj)
183  else:
184  return self._storage.write(butlerLocation, obj)
185 
void write(OutputArchiveHandle &handle) const override

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