mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
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.
This commit is contained in:
parent
31dfe42b37
commit
dd943155a1
1 changed files with 16 additions and 0 deletions
|
@ -29,6 +29,8 @@ import inspect
|
||||||
from ..overrides import override
|
from ..overrides import override
|
||||||
from ..importer import modules
|
from ..importer import modules
|
||||||
|
|
||||||
|
from gi.repository import GLib
|
||||||
|
|
||||||
|
|
||||||
if sys.version_info >= (3, 0):
|
if sys.version_info >= (3, 0):
|
||||||
_basestring = str
|
_basestring = str
|
||||||
|
@ -245,13 +247,27 @@ class Structure(Gst.Structure):
|
||||||
|
|
||||||
raise TypeError("wrong arguments when creating GstStructure object")
|
raise TypeError("wrong arguments when creating GstStructure object")
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
pass
|
||||||
|
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
return self.get_value(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):
|
def __setitem__(self, key, value):
|
||||||
return self.set_value(key, value)
|
return self.set_value(key, value)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.to_string()
|
||||||
|
|
||||||
Structure = override(Structure)
|
Structure = override(Structure)
|
||||||
__all__.append('Structure')
|
__all__.append('Structure')
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue