Module redvox.api1000.common.mapping
This module provides functions and wrappers for working protobuf Map fields.
Expand source code
"""
This module provides functions and wrappers for working protobuf Map fields.
"""
from typing import Dict, Generic, Type, TypeVar
from redvox.api1000.common.typing import check_type
# pylint: disable=C0103
T = TypeVar("T")
class Mapping(Generic[T]):
"""
This class encapsulates the API M map fields providing high-level methods for manipulating the underlying
mapping.
"""
def __init__(self, metadata_proto, t: Type) -> None:
"""
Instantiates this wrapper.
:param metadata_proto: The protobuf field backing this metadata.
"""
self.__t: Type = t
self._metadata_proto = metadata_proto
def get_proto(self):
"""
Returns the protobuf definition associated with this mapping.
:return: The protobuf definition associated with this mapping.
"""
return self._metadata_proto
def get_metadata_count(self) -> int:
"""
Returns the number of key-pair values stored in this metadata.
:return: The number of key-pair values stored in this metadata.
"""
return len(self._metadata_proto)
def get_metadata(self) -> Dict[str, T]:
"""
Returns the metadata as a dictionary.
:return: The metadata as a dictionary.
"""
metadata_dict: Dict[str, T] = dict()
for key, value in self._metadata_proto.items():
metadata_dict[key] = value
return metadata_dict
def set_metadata(self, metadata: Dict[str, T]) -> "Mapping":
"""
Sets the metadata to passed in dictionary.
:param metadata: Sets the metadata to this.
:return: This instance of Metadata.
"""
for key, value in metadata.items():
check_type(key, [str])
check_type(value, [self.__t])
self._metadata_proto.clear()
for key, value in metadata.items():
self._metadata_proto[key] = value
return self
def append_metadata(self, key: str, value: T) -> "Mapping":
"""
Appends a key-value pair to the metadata mapping.
:param key: Key to append.
:param value: Value to append.
:return: This instance of Metadata.
"""
check_type(key, [str])
check_type(value, [self.__t])
self._metadata_proto[key] = value
return self
def clear_metadata(self) -> "Mapping":
"""
Clears all metadata.
:return: This instance of metadata
"""
self._metadata_proto.clear()
return self
Classes
class Mapping (metadata_proto, t: Type)
-
This class encapsulates the API M map fields providing high-level methods for manipulating the underlying mapping.
Instantiates this wrapper. :param metadata_proto: The protobuf field backing this metadata.
Expand source code
class Mapping(Generic[T]): """ This class encapsulates the API M map fields providing high-level methods for manipulating the underlying mapping. """ def __init__(self, metadata_proto, t: Type) -> None: """ Instantiates this wrapper. :param metadata_proto: The protobuf field backing this metadata. """ self.__t: Type = t self._metadata_proto = metadata_proto def get_proto(self): """ Returns the protobuf definition associated with this mapping. :return: The protobuf definition associated with this mapping. """ return self._metadata_proto def get_metadata_count(self) -> int: """ Returns the number of key-pair values stored in this metadata. :return: The number of key-pair values stored in this metadata. """ return len(self._metadata_proto) def get_metadata(self) -> Dict[str, T]: """ Returns the metadata as a dictionary. :return: The metadata as a dictionary. """ metadata_dict: Dict[str, T] = dict() for key, value in self._metadata_proto.items(): metadata_dict[key] = value return metadata_dict def set_metadata(self, metadata: Dict[str, T]) -> "Mapping": """ Sets the metadata to passed in dictionary. :param metadata: Sets the metadata to this. :return: This instance of Metadata. """ for key, value in metadata.items(): check_type(key, [str]) check_type(value, [self.__t]) self._metadata_proto.clear() for key, value in metadata.items(): self._metadata_proto[key] = value return self def append_metadata(self, key: str, value: T) -> "Mapping": """ Appends a key-value pair to the metadata mapping. :param key: Key to append. :param value: Value to append. :return: This instance of Metadata. """ check_type(key, [str]) check_type(value, [self.__t]) self._metadata_proto[key] = value return self def clear_metadata(self) -> "Mapping": """ Clears all metadata. :return: This instance of metadata """ self._metadata_proto.clear() return self
Ancestors
- typing.Generic
Methods
def append_metadata(self, key: str, value: ~T) ‑> Mapping
-
Appends a key-value pair to the metadata mapping. :param key: Key to append. :param value: Value to append. :return: This instance of Metadata.
Expand source code
def append_metadata(self, key: str, value: T) -> "Mapping": """ Appends a key-value pair to the metadata mapping. :param key: Key to append. :param value: Value to append. :return: This instance of Metadata. """ check_type(key, [str]) check_type(value, [self.__t]) self._metadata_proto[key] = value return self
def clear_metadata(self) ‑> Mapping
-
Clears all metadata. :return: This instance of metadata
Expand source code
def clear_metadata(self) -> "Mapping": """ Clears all metadata. :return: This instance of metadata """ self._metadata_proto.clear() return self
def get_metadata(self) ‑> Dict[str, ~T]
-
Returns the metadata as a dictionary. :return: The metadata as a dictionary.
Expand source code
def get_metadata(self) -> Dict[str, T]: """ Returns the metadata as a dictionary. :return: The metadata as a dictionary. """ metadata_dict: Dict[str, T] = dict() for key, value in self._metadata_proto.items(): metadata_dict[key] = value return metadata_dict
def get_metadata_count(self) ‑> int
-
Returns the number of key-pair values stored in this metadata. :return: The number of key-pair values stored in this metadata.
Expand source code
def get_metadata_count(self) -> int: """ Returns the number of key-pair values stored in this metadata. :return: The number of key-pair values stored in this metadata. """ return len(self._metadata_proto)
def get_proto(self)
-
Returns the protobuf definition associated with this mapping. :return: The protobuf definition associated with this mapping.
Expand source code
def get_proto(self): """ Returns the protobuf definition associated with this mapping. :return: The protobuf definition associated with this mapping. """ return self._metadata_proto
def set_metadata(self, metadata: Dict[str, ~T]) ‑> Mapping
-
Sets the metadata to passed in dictionary. :param metadata: Sets the metadata to this. :return: This instance of Metadata.
Expand source code
def set_metadata(self, metadata: Dict[str, T]) -> "Mapping": """ Sets the metadata to passed in dictionary. :param metadata: Sets the metadata to this. :return: This instance of Metadata. """ for key, value in metadata.items(): check_type(key, [str]) check_type(value, [self.__t]) self._metadata_proto.clear() for key, value in metadata.items(): self._metadata_proto[key] = value return self