diff --git a/LCS/pyparameterset/src/__init__.py b/LCS/pyparameterset/src/__init__.py index 7c711b50002c3a0453931c6d7ef42cac0d851b4d..e9f1f9e551e24768ad3aef4f4d268f51a49a6eac 100755 --- a/LCS/pyparameterset/src/__init__.py +++ b/LCS/pyparameterset/src/__init__.py @@ -80,9 +80,25 @@ class parameterset(PyParameterSet): """Get the parametervalue object of a parameter.""" return self._get (key) - def makeSubset (self, prefix): - """Get a subset of all keys starting with the given prefix""" - ps = self._makeSubset (prefix) + def makeSubset (self, baseKey, prefix=''): + """Return a subset as a new parameterset object. + + baseKey + The leading part of the parameter name denoting the subset. + A trailing period needs to be given. + prefix + The baseKey parameter name part is replaced by this new prefix. + The default new prefix is empty. + + For example:: + + newps = ps.makeSubset ('p1.p2.', 'pr.') + + creates a subset of all keys starting with `p1.p2.` and replaces + that prefix by `pr.`. + + """ + ps = self._makeSubset (baseKey, prefix) return parameterset (ps, _copyObj=True) def keys(self): diff --git a/LCS/pyparameterset/src/pyparameterset.cc b/LCS/pyparameterset/src/pyparameterset.cc index bd583c9a3731e2030bb4a132c41547f0bf241964..c3473b240cd55bd6ccd9450013f7724119e3f9d8 100644 --- a/LCS/pyparameterset/src/pyparameterset.cc +++ b/LCS/pyparameterset/src/pyparameterset.cc @@ -172,27 +172,10 @@ namespace LOFAR { "Get the software version.") .def ("size", &ParameterSet::size, "Get the number of parameters.") - .def ("__len__", &ParameterSet::size, - "Get the number of parameters.") .def ("keywords", &PyParameterSet::keywords) .def ("_makeSubset", &PyParameterSet::makeSubset, (boost::python::arg("baseKey"), - boost::python::arg("prefix")=""), - "Return a subset as a new parameterset object.\n" - "\n" - "baseKey\n" - " The leading part of the parameter name denoting the subset.\n" - " A trailing period has to be given.\n" - "prefix\n" - " The baseKey parameter name part is replaced by the prefix.\n" - "\n" - "For example::\n" - "\n" - " newps = ps.makeSubset ('p1,p2,', 'pr.')\n" - "\n" - "creates a subset of all keys starting with `p`1.p2.` and replaces\n" - "that prefix by `pr.`.\n" - ) + boost::python::arg("prefix"))) .def ("subtractSubset", &ParameterSet::subtractSubset, (boost::python::arg("baseKey")), "Remove all parameters starting with the baseKey.") diff --git a/LCS/pyparameterset/test/tpyparameterset.py b/LCS/pyparameterset/test/tpyparameterset.py index 85ad29925b9797ce25bda439071e1c56cadf2597..be0dd2cd79b183950a98d4add4bb4b9c1bea2f22 100644 --- a/LCS/pyparameterset/test/tpyparameterset.py +++ b/LCS/pyparameterset/test/tpyparameterset.py @@ -84,7 +84,7 @@ checkps (ps) pss = ps.makeSubset('a.') print pss.keys() print 'b.c =', pss.getString ('b.c') -print pss.makeSubset('b.').keys() +print pss.makeSubset('b.', 'aa.bb.').keys() print pss.makeSubset('b.').size() print pss.makeSubset('cc').keys() # should be empty print len(pss.makeSubset('cc')) diff --git a/LCS/pyparameterset/test/tpyparameterset.stdout b/LCS/pyparameterset/test/tpyparameterset.stdout index 9f0374a92607ca4f10b93901dba4a2c71b85a4b5..d11dc795152badf639efae6bf85e38e2a36b202b 100644 --- a/LCS/pyparameterset/test/tpyparameterset.stdout +++ b/LCS/pyparameterset/test/tpyparameterset.stdout @@ -80,7 +80,7 @@ True [5, 6, 7, 8, 9, 10] ['b', 'b.bool', 'b.c', 'b.double', 'b.lange_naam'] b.c = 5 -['bool', 'c', 'double', 'lange_naam'] +['aa.bb.bool', 'aa.bb.c', 'aa.bb.double', 'aa.bb.lange_naam'] 4 [] 0