Coverage for python/lsst/daf/persistence/butlerFactory.py: 42%

10 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-10-12 02:38 -0700

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 

29from lsst.daf.persistence import Butler 

30 

31 

32class ButlerFactory: 

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.mapper = mapper 

67 

68 def create(self): 

69 """Create a Butler. 

70 

71 @returns a new Butler. 

72 """ 

73 

74 if hasattr(self.mapper, 'root'): 

75 root = self.mapper.root 

76 else: 

77 root = None 

78 return Butler(root=root, mapper=self.mapper)