diff options
author | Thibault Saunier <thibault.saunier@osg.samsung.com> | 2017-07-25 13:00:08 -0400 |
---|---|---|
committer | Thibault Saunier <thibault.saunier@osg.samsung.com> | 2017-07-26 15:27:21 -0400 |
commit | dd943155a135d7460d9532a496649f9bd7098caf (patch) | |
tree | 1ac408be6b86bf6eb1308460795ed9e5cc3bda39 | |
parent | 31dfe42b37dcdb2beb90fad2c8c4f7f7d00a9673 (diff) |
structure: Add a .keys() method and implement __str__
We are making it behave like a dict, so we should provide the
same kind of utilities.
-rw-r--r-- | gi/overrides/Gst.py | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gi/overrides/Gst.py b/gi/overrides/Gst.py index 8d754f1..2952f0b 100644 --- a/gi/overrides/Gst.py +++ b/gi/overrides/Gst.py @@ -29,6 +29,8 @@ import inspect from ..overrides import override from ..importer import modules +from gi.repository import GLib + if sys.version_info >= (3, 0): _basestring = str @@ -245,13 +247,27 @@ class Structure(Gst.Structure): raise TypeError("wrong arguments when creating GstStructure object") + def __init__(self, *args, **kwargs): + pass + def __getitem__(self, key): return self.get_value(key) + def keys(self): + keys = set() + def foreach(fid, value, unused1, udata): + keys.add(GLib.quark_to_string(fid)) + return True + + self.foreach(foreach, None, None) + return keys def __setitem__(self, key, value): return self.set_value(key, value) + def __str__(self): + return self.to_string() + Structure = override(Structure) __all__.append('Structure') |