X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=inline;f=bindings%2Fpython%2Fsigrok%2Fcore%2Fclasses.i;h=7cfdc29dd660a90148490701010c9e16b01ec647;hb=444d6a3975787583494fa91cbb20c26d0ac858b5;hp=1da14d87cc45238701949549cc4181be562fc4d4;hpb=9d229ecb9e301921284c6264ffc1d956572873df;p=libsigrok.git diff --git a/bindings/python/sigrok/core/classes.i b/bindings/python/sigrok/core/classes.i index 1da14d87..7cfdc29d 100644 --- a/bindings/python/sigrok/core/classes.i +++ b/bindings/python/sigrok/core/classes.i @@ -359,6 +359,28 @@ std::map dict_to_map_options(PyObject *dict, %include "doc.i" +%define %attributevector(Class, Type, Name, Get) +%rename(_ ## Get) sigrok::Class::Get; +%extend sigrok::Class +{ +%pythoncode +{ + Name = property(_ ## Get) +} +} +%enddef + +%define %attributemap(Class, Type, Name, Get) +%rename(_ ## Get) sigrok::Class::Get; +%extend sigrok::Class +{ +%pythoncode +{ + Name = property(fget = lambda x: x._ ## Get().asdict(), doc=_ ## Get.__doc__) +} +} +%enddef + %include "../../../swig/classes.i" /* Support Driver.scan() with keyword arguments. */ @@ -377,7 +399,7 @@ std::map dict_to_map_options(PyObject *dict, { if (!PyString_Check(py_key)) throw sigrok::Error(SR_ERR_ARG); - auto key = sigrok::ConfigKey::get(PyString_AsString(py_key)); + auto key = sigrok::ConfigKey::get_by_identifier(PyString_AsString(py_key)); auto value = python_to_variant_by_key(py_value, key); options[key] = value; }