Browse Source

python: ability to set ConfigurationGroup values in all primitive types.

Not custom types like Magnum vectors yet, but at least the basics now.
next
Vladimír Vondruš 3 years ago
parent
commit
d508fd9c04
  1. 5
      src/python/corrade/test/test_utility.py
  2. 9
      src/python/corrade/utility.cpp

5
src/python/corrade/test/test_utility.py

@ -70,6 +70,9 @@ class Configuration(unittest.TestCase):
a = utility.Configuration(filename)
a['value'] = 'hello'
a['int'] = -168454764726
a['float'] = 3.14
a['bool'] = True
a_refcount = sys.getrefcount(a)
b = a.add_group('someGroup')
@ -84,7 +87,7 @@ class Configuration(unittest.TestCase):
a.save()
with open(filename, 'r') as f:
self.assertEqual(f.read(), "value=hello\n[someGroup]\nsomeKey=42\n")
self.assertEqual(f.read(), "value=hello\nint=-168454764726\nfloat=3.14\nbool=1\n[someGroup]\nsomeKey=42\n")
def test_save_different_filename(self):
a = utility.Configuration()

9
src/python/corrade/utility.cpp

@ -57,6 +57,15 @@ void utility(py::module_& m) {
}, "Value", py::arg("key"))
.def("__setitem__", [](Utility::ConfigurationGroup& self, const std::string& key, const std::string& value) {
self.setValue(key, value);
}, "Set a value", py::arg("key"), py::arg("value"))
.def("__setitem__", [](Utility::ConfigurationGroup& self, const std::string& key, double value) {
self.setValue(key, value);
}, "Set a value", py::arg("key"), py::arg("value"))
.def("__setitem__", [](Utility::ConfigurationGroup& self, const std::string& key, std::int64_t value) {
self.setValue(key, value);
}, "Set a value", py::arg("key"), py::arg("value"))
.def("__setitem__", [](Utility::ConfigurationGroup& self, const std::string& key, bool value) {
self.setValue(key, value);
}, "Set a value", py::arg("key"), py::arg("value"));
py::class_<Utility::Configuration, Utility::ConfigurationGroup>{m, "Configuration", "Parser and writer for configuration files"}

Loading…
Cancel
Save