mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-29 12:25:37 +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 ..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')
|
||||
|
||||
|
|
Loading…
Reference in a new issue