LSST Applications g0b6bd0c080+a72a5dd7e6,g1182afd7b4+2a019aa3bb,g17e5ecfddb+2b8207f7de,g1d67935e3f+06cf436103,g38293774b4+ac198e9f13,g396055baef+6a2097e274,g3b44f30a73+6611e0205b,g480783c3b1+98f8679e14,g48ccf36440+89c08d0516,g4b93dc025c+98f8679e14,g5c4744a4d9+a302e8c7f0,g613e996a0d+e1c447f2e0,g6c8d09e9e7+25247a063c,g7271f0639c+98f8679e14,g7a9cd813b8+124095ede6,g9d27549199+a302e8c7f0,ga1cf026fa3+ac198e9f13,ga32aa97882+7403ac30ac,ga786bb30fb+7a139211af,gaa63f70f4e+9994eb9896,gabf319e997+ade567573c,gba47b54d5d+94dc90c3ea,gbec6a3398f+06cf436103,gc6308e37c7+07dd123edb,gc655b1545f+ade567573c,gcc9029db3c+ab229f5caf,gd01420fc67+06cf436103,gd877ba84e5+06cf436103,gdb4cecd868+6f279b5b48,ge2d134c3d5+cc4dbb2e3f,ge448b5faa6+86d1ceac1d,gecc7e12556+98f8679e14,gf3ee170dca+25247a063c,gf4ac96e456+ade567573c,gf9f5ea5b4d+ac198e9f13,gff490e6085+8c2580be5c,w.2022.27
LSST Data Management Base Package
Functions
lsst.daf.persistence.utils Namespace Reference

Functions

def listify (x)
 
def iterify (x)
 
def sequencify (x)
 
def setify (x)
 
def doImport (pythonType)
 

Function Documentation

◆ doImport()

def lsst.daf.persistence.utils.doImport (   pythonType)
Import a python object given an importable string

Definition at line 104 of file utils.py.

104def doImport(pythonType):
105 """Import a python object given an importable string"""
106 try:
107 if not isinstance(pythonType, str):
108 raise TypeError("Unhandled type of pythonType, val:%s" % pythonType)
109 # import this pythonType dynamically
110 pythonTypeTokenList = pythonType.split('.')
111 importClassString = pythonTypeTokenList.pop()
112 importClassString = importClassString.strip()
113 importPackage = ".".join(pythonTypeTokenList)
114 importType = __import__(importPackage, globals(), locals(), [importClassString], 0)
115 pythonType = getattr(importType, importClassString)
116 return pythonType
117 except ImportError:
118 pass
119 # maybe python type is a member function, in the form: path.to.object.Class.funcname
120 pythonTypeTokenList = pythonType.split('.')
121 importClassString = '.'.join(pythonTypeTokenList[0:-1])
122 importedClass = doImport(importClassString)
123 pythonType = getattr(importedClass, pythonTypeTokenList[-1])
124 return pythonType
def doImport(pythonType)
Definition: utils.py:104

◆ iterify()

def lsst.daf.persistence.utils.iterify (   x)
Takes any object. Returns it if it is iterable. If it
is not iterable it puts the object in a list and returns
the list. None will return an empty list. If a new list
is always required use listify(). Strings will be placed
in a list with a single element.

Definition at line 49 of file utils.py.

49def iterify(x):
50 """Takes any object. Returns it if it is iterable. If it
51 is not iterable it puts the object in a list and returns
52 the list. None will return an empty list. If a new list
53 is always required use listify(). Strings will be placed
54 in a list with a single element.
55 """
56 if x is None:
57 x = []
58 elif isinstance(x, str):
59 x = [x]
60 elif hasattr(x, '__iter__'):
61 pass
62 else:
63 x = [x]
64 return x
65
66

◆ listify()

def lsst.daf.persistence.utils.listify (   x)
Takes any object and puts that whole object in a list:
- strings will be made into a single element in the list
- tuples will be converted to list
- lists will remain as lists
- None will be made into an empty list

Definition at line 29 of file utils.py.

29def listify(x):
30 """Takes any object and puts that whole object in a list:
31 - strings will be made into a single element in the list
32 - tuples will be converted to list
33 - lists will remain as lists
34 - None will be made into an empty list
35 """
36 if x is None:
37 x = []
38 elif isinstance(x, str):
39 x = [x]
40 elif isinstance(x, dict):
41 x = [x]
42 elif hasattr(x, '__iter__'):
43 x = list(x)
44 else:
45 x = [x]
46 return x
47
48
daf::base::PropertyList * list
Definition: fits.cc:913

◆ sequencify()

def lsst.daf.persistence.utils.sequencify (   x)
Takes an object, if it is a sequence return it,
else put it in a tuple. Strings are not sequences.
If x is a dict, returns a sorted tuple of keys.

Definition at line 67 of file utils.py.

67def sequencify(x):
68 """Takes an object, if it is a sequence return it,
69 else put it in a tuple. Strings are not sequences.
70 If x is a dict, returns a sorted tuple of keys."""
71 if isinstance(x, (Sequence, Set)) and not isinstance(x, str):
72 pass
73 elif isinstance(x, Mapping):
74 x = tuple(sorted(x.keys()))
75 else:
76 x = (x, )
77 return x
78
79

◆ setify()

def lsst.daf.persistence.utils.setify (   x)
Take an object x and return it in a set.

If x is a container, will create a set from the contents of the container.
If x is an object, will create a set with a single item in it.
If x is a string, will treat the string as a single object (i.e. not as a list of chars)

Definition at line 80 of file utils.py.

80def setify(x):
81 """Take an object x and return it in a set.
82
83 If x is a container, will create a set from the contents of the container.
84 If x is an object, will create a set with a single item in it.
85 If x is a string, will treat the string as a single object (i.e. not as a list of chars)"""
86 if x is None:
87 x = set()
88
89 # Here we have to explicity for strings because the set initializer will use each character in a string as
90 # a separate element. We cannot use the braces initialization because x might be a list, and we do not
91 # want the list to be an item; we want each item in the list to be represented by an item in the set.
92 # Then, we have to fall back to braces init because if the item is NOT a list then the set initializer
93 # won't take it.
94 if isinstance(x, str):
95 x = set([x])
96 else:
97 try:
98 x = set(x)
99 except TypeError:
100 x = set([x])
101 return x
102
103
daf::base::PropertySet * set
Definition: fits.cc:912