From b0121c2515a1c1d59fc6ec40066e49fc26af295d Mon Sep 17 00:00:00 2001 From: Ger van Diepen <diepen@astron.nl> Date: Wed, 26 Jan 2011 08:15:35 +0000 Subject: [PATCH] bug 1627: Added function keys --- LCS/pyparameterset/src/__init__.py | 4 ++++ LCS/pyparameterset/src/pyparameterset.cc | 13 +++++++++++++ LCS/pyparameterset/test/tpyparameterset.py | 1 + LCS/pyparameterset/test/tpyparameterset.stdout | 1 + 4 files changed, 19 insertions(+) diff --git a/LCS/pyparameterset/src/__init__.py b/LCS/pyparameterset/src/__init__.py index 35dbeb9d100..51bac88f1db 100755 --- a/LCS/pyparameterset/src/__init__.py +++ b/LCS/pyparameterset/src/__init__.py @@ -76,6 +76,10 @@ class parameterset(PyParameterSet): """Get the parametervalue object of a parameter.""" return self._get (key) + def keys(self): + """Get a sorted list of all parameter names.""" + return self.keywords() + def get(self, key): """Get the parametervalue object of a parameter.""" return self._get (key) diff --git a/LCS/pyparameterset/src/pyparameterset.cc b/LCS/pyparameterset/src/pyparameterset.cc index 130f59b2e70..998dc9d8476 100644 --- a/LCS/pyparameterset/src/pyparameterset.cc +++ b/LCS/pyparameterset/src/pyparameterset.cc @@ -54,6 +54,18 @@ namespace LOFAR { PyParameterSet makeSubset (const string& baseKey, const string& prefix) { return ParameterSet::makeSubset (baseKey, prefix); } + + // Return a sorted list of keywords. + vector<string> keywords() const + { + vector<string> result; + result.reserve (size()); + for (ParameterSet::const_iterator iter=begin(); iter!=end(); ++iter) { + result.push_back (iter->first); + } + std::sort (result.begin(), result.end()); + return result; + } }; // Define function pointers for overloaded functions to be able to tell @@ -161,6 +173,7 @@ namespace LOFAR { "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")=""), diff --git a/LCS/pyparameterset/test/tpyparameterset.py b/LCS/pyparameterset/test/tpyparameterset.py index 3bc87771180..0ed5eace3a2 100644 --- a/LCS/pyparameterset/test/tpyparameterset.py +++ b/LCS/pyparameterset/test/tpyparameterset.py @@ -77,4 +77,5 @@ ps.add ("vecbool", "[true,false,true]") ps.add ("vec", "[1,2,3]") ps.add ("vecexp", "[1..3,5..10]") ps.add ("vecnest", "[[1..3,5*10],[5..10]]") +print ps.keys() checkps (ps) diff --git a/LCS/pyparameterset/test/tpyparameterset.stdout b/LCS/pyparameterset/test/tpyparameterset.stdout index 9ae10260061..9cab053c842 100644 --- a/LCS/pyparameterset/test/tpyparameterset.stdout +++ b/LCS/pyparameterset/test/tpyparameterset.stdout @@ -38,6 +38,7 @@ True [1, 2, 3, 10, 10, 10, 10, 10] [5, 6, 7, 8, 9, 10] +['a.b', 'a.b.bool', 'a.b.c', 'a.b.double', 'a.b.lange_naam', 'e.g', 'egg', 'vec', 'vecbool', 'vecexp', 'vecnest'] False True 7 -- GitLab