:right-sidebar: True VariantDict =================================================================== .. currentmodule:: gi.repository.GLib .. versionadded:: 2.40 .. class:: VariantDict(**kwargs) :no-contents-entry: :Constructors: :: new(from_asv:GLib.Variant=None) -> GLib.VariantDict Constructors ------------ .. rst-class:: interim-class .. class:: VariantDict :no-index: .. classmethod:: new(from_asv: ~gi.repository.GLib.Variant | None = None) -> ~gi.repository.GLib.VariantDict Allocates and initialises a new :obj:`~gi.repository.GLib.VariantDict`. You should call :func:`~gi.repository.GLib.VariantDict.unref` on the return value when it is no longer needed. The memory will not be automatically freed by any other call. In some cases it may be easier to place a :obj:`~gi.repository.GLib.VariantDict` directly on the stack of the calling function and initialise it with :func:`~gi.repository.GLib.VariantDict.init`. This is particularly useful when you are using :obj:`~gi.repository.GLib.VariantDict` to construct a :obj:`~gi.repository.GLib.Variant`. .. versionadded:: 2.40 :param from_asv: the :obj:`~gi.repository.GLib.Variant` with which to initialise the dictionary Methods ------- .. rst-class:: interim-class .. class:: VariantDict :no-index: .. method:: clear() -> None Releases all memory associated with a :obj:`~gi.repository.GLib.VariantDict` without freeing the :obj:`~gi.repository.GLib.VariantDict` structure itself. It typically only makes sense to do this on a stack-allocated :obj:`~gi.repository.GLib.VariantDict` if you want to abort building the value part-way through. This function need not be called if you call :func:`~gi.repository.GLib.VariantDict.end` and it also doesn't need to be called on dicts allocated with g_variant_dict_new (see :func:`~gi.repository.GLib.VariantDict.unref` for that). It is valid to call this function on either an initialised :obj:`~gi.repository.GLib.VariantDict` or one that was previously cleared by an earlier call to :func:`~gi.repository.GLib.VariantDict.clear` but it is not valid to call this function on uninitialised memory. .. versionadded:: 2.40 .. method:: contains(key: str) -> bool Checks if ``key`` exists in ``dict``. .. versionadded:: 2.40 :param key: the key to look up in the dictionary .. method:: end() -> ~gi.repository.GLib.Variant Returns the current value of ``dict`` as a :obj:`~gi.repository.GLib.Variant` of type ``%G_VARIANT_TYPE_VARDICT``, clearing it in the process. It is not permissible to use ``dict`` in any way after this call except for reference counting operations (in the case of a heap-allocated :obj:`~gi.repository.GLib.VariantDict`) or by reinitialising it with :func:`~gi.repository.GLib.VariantDict.init` (in the case of stack-allocated). .. versionadded:: 2.40 .. method:: insert_value(key: str, value: ~gi.repository.GLib.Variant) -> None Inserts (or replaces) a key in a :obj:`~gi.repository.GLib.VariantDict`. ``value`` is consumed if it is floating. .. versionadded:: 2.40 :param key: the key to insert a value for :param value: the value to insert .. method:: lookup_value(key: str, expected_type: ~gi.repository.GLib.VariantType | None = None) -> ~gi.repository.GLib.Variant | None Looks up a value in a :obj:`~gi.repository.GLib.VariantDict`. If ``key`` is not found in ``dictionary``, :const:`None` is returned. The ``expected_type`` string specifies what type of value is expected. If the value associated with ``key`` has a different type then :const:`None` is returned. If the key is found and the value has the correct type, it is returned. If ``expected_type`` was specified then any non-:const:`None` return value will have this type. .. versionadded:: 2.40 :param key: the key to look up in the dictionary :param expected_type: a :obj:`~gi.repository.GLib.VariantType`, or :const:`None` .. method:: remove(key: str) -> bool Removes a key and its associated value from a :obj:`~gi.repository.GLib.VariantDict`. .. versionadded:: 2.40 :param key: the key to remove :return: 0 if the file was successfully removed, -1 if an error occurred