| # Protocol Buffers - Google's data interchange format | |
| # Copyright 2008 Google Inc. All rights reserved. | |
| # | |
| # Use of this source code is governed by a BSD-style | |
| # license that can be found in the LICENSE file or at | |
| # https://developers.google.com/open-source/licenses/bsd | |
| """Contains the Any helper APIs.""" | |
| from typing import Optional | |
| from google.protobuf import descriptor | |
| from google.protobuf.message import Message | |
| from google.protobuf.any_pb2 import Any | |
| def pack( | |
| msg: Message, | |
| type_url_prefix: Optional[str] = 'type.googleapis.com/', | |
| deterministic: Optional[bool] = None, | |
| ) -> Any: | |
| any_msg = Any() | |
| any_msg.Pack( | |
| msg=msg, type_url_prefix=type_url_prefix, deterministic=deterministic | |
| ) | |
| return any_msg | |
| def unpack(any_msg: Any, msg: Message) -> bool: | |
| return any_msg.Unpack(msg=msg) | |
| def type_name(any_msg: Any) -> str: | |
| return any_msg.TypeName() | |
| def is_type(any_msg: Any, des: descriptor.Descriptor) -> bool: | |
| return any_msg.Is(des) | |