LSSTApplications  19.0.0-14-gb0260a2+2d714fc2ef,20.0.0+34a42eae2c,20.0.0+76f397ef0c,20.0.0+8558dd3f48,20.0.0+a6b6977b51,20.0.0+b2ea66fa67,20.0.0+cc669a8b45,20.0.0+d561663fb5,20.0.0+d778e99126,20.0.0+efe67588cf,20.0.0+f45b7d88f4,20.0.0+f7c597f720,20.0.0+fb43bee9b9,20.0.0+fb4d547e0d,20.0.0-1-g10df615+d8b88ec1b5,20.0.0-1-g253301a+a6b6977b51,20.0.0-1-g498fb60+ff88705a28,20.0.0-1-g4d801e7+ce0d01dabd,20.0.0-1-g5b95a8c+24eaf908b3,20.0.0-1-g8a53f90+2817c06967,20.0.0-1-gc96f8cb+fb4d547e0d,20.0.0-1-gd1c87d7+2817c06967,20.0.0-1-gdb27ee5+abab67204f,20.0.0-13-ge998c5c+9f8c516ffa,20.0.0-18-g08fba245+88079d2923,20.0.0-2-gec03fae+fb98bf9d97,20.0.0-3-gdd5c15c+a61313b210,20.0.0-34-gdb4d86a+b43b2c05ff,20.0.0-4-g4a2362f+f45b7d88f4,20.0.0-4-gfea843c+f45b7d88f4,20.0.0-5-gac0d578b1+a8c4e2ada3,20.0.0-5-gfcebe35+cfceff6a24,20.0.0-6-g01203fff+e332440eaf,20.0.0-8-gea2affd+48c001ce3c,20.0.0-9-gabd0d4c+abab67204f,20.0.0-9-gf3ab18e+fb4d547e0d,w.2020.33
LSSTDataManagementBasePackage
convert.py
Go to the documentation of this file.
1 # This file is part of pex_config.
2 #
3 # Developed for the LSST Data Management System.
4 # This product includes software developed by the LSST Project
5 # (http://www.lsst.org).
6 # See the COPYRIGHT file at the top-level directory of this distribution
7 # for details of code ownership.
8 #
9 # This software is dual licensed under the GNU General Public License and also
10 # under a 3-clause BSD license. Recipients may choose which of these licenses
11 # to use; please see the files gpl-3.0.txt and/or bsd_license.txt,
12 # respectively. If you choose the GPL option then the following text applies
13 # (but note that there is still no warranty even if you opt for BSD instead):
14 #
15 # This program is free software: you can redistribute it and/or modify
16 # it under the terms of the GNU General Public License as published by
17 # the Free Software Foundation, either version 3 of the License, or
18 # (at your option) any later version.
19 #
20 # This program is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
24 #
25 # You should have received a copy of the GNU General Public License
26 # along with this program. If not, see <http://www.gnu.org/licenses/>.
27 
28 __all__ = ('makePropertySet',)
29 
30 try:
31  import lsst.daf.base as dafBase
32 except ImportError:
33  dafBase = None
34 
35 
36 def makePropertySet(config):
37  """Convert a configuration into a `lsst.daf.base.PropertySet`.
38 
39  Parameters
40  ----------
41  config : `lsst.pex.config.Config`
42  Configuration instance.
43 
44  Returns
45  -------
46  propertySet : `lsst.daf.base.PropertySet`
47  A `~lsst.daf.base.PropertySet` that is equivalent to the ``config``
48  instance. If ``config`` is `None` then this return value is also
49  `None`.
50 
51  See also
52  --------
53  lsst.daf.base.PropertySet
54  """
55  if dafBase is None:
56  raise RuntimeError("lsst.daf.base is not available")
57 
58  def _helper(ps, prefix, dict_):
59  for k, v in dict_.items():
60  name = prefix + "." + k if prefix is not None else k
61  if isinstance(v, dict):
62  _helper(ps, name, v)
63  elif v is not None:
64  ps.set(name, v)
65 
66  if config is not None:
67  ps = dafBase.PropertySet()
68  _helper(ps, None, config.toDict())
69  return ps
70  else:
71  return None
pex.config.convert.makePropertySet
def makePropertySet(config)
Definition: convert.py:36
lsst::daf::base
Definition: Utils.h:47
_helper
PersistenceHelper _helper
Definition: Exposure.cc:219
lsst::daf::base::PropertySet
Class for storing generic metadata.
Definition: PropertySet.h:67