aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py
diff options
context:
space:
mode:
authorS. Solomon Darnell2025-03-28 21:52:21 -0500
committerS. Solomon Darnell2025-03-28 21:52:21 -0500
commit4a52a71956a8d46fcb7294ac71734504bb09bcc2 (patch)
treeee3dc5af3b6313e921cd920906356f5d4febc4ed /.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py
parentcc961e04ba734dd72309fb548a2f97d67d578813 (diff)
downloadgn-ai-master.tar.gz
two version of R2R are hereHEADmaster
Diffstat (limited to '.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py')
-rw-r--r--.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py b/.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py
new file mode 100644
index 00000000..ea670ab0
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/google/protobuf/proto_json.py
@@ -0,0 +1,83 @@
+# 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 Nextgen Pythonic Protobuf JSON APIs."""
+
+from typing import Optional, Type
+
+from google.protobuf.message import Message
+from google.protobuf.descriptor_pool import DescriptorPool
+from google.protobuf import json_format
+
+def serialize(
+ message: Message,
+ always_print_fields_with_no_presence: bool=False,
+ preserving_proto_field_name: bool=False,
+ use_integers_for_enums: bool=False,
+ descriptor_pool: Optional[DescriptorPool]=None,
+ float_precision: int=None,
+) -> dict:
+ """Converts protobuf message to a dictionary.
+
+ When the dictionary is encoded to JSON, it conforms to proto3 JSON spec.
+
+ Args:
+ message: The protocol buffers message instance to serialize.
+ always_print_fields_with_no_presence: If True, fields without
+ presence (implicit presence scalars, repeated fields, and map fields) will
+ always be serialized. Any field that supports presence is not affected by
+ this option (including singular message fields and oneof fields).
+ preserving_proto_field_name: If True, use the original proto field names as
+ defined in the .proto file. If False, convert the field names to
+ lowerCamelCase.
+ use_integers_for_enums: If true, print integers instead of enum names.
+ descriptor_pool: A Descriptor Pool for resolving types. If None use the
+ default.
+ float_precision: If set, use this to specify float field valid digits.
+
+ Returns:
+ A dict representation of the protocol buffer message.
+ """
+ return json_format.MessageToDict(
+ message,
+ always_print_fields_with_no_presence=always_print_fields_with_no_presence,
+ preserving_proto_field_name=preserving_proto_field_name,
+ use_integers_for_enums=use_integers_for_enums,
+ float_precision=float_precision,
+ )
+
+def parse(
+ message_class: Type[Message],
+ js_dict: dict,
+ ignore_unknown_fields: bool=False,
+ descriptor_pool: Optional[DescriptorPool]=None,
+ max_recursion_depth: int=100
+) -> Message:
+ """Parses a JSON dictionary representation into a message.
+
+ Args:
+ message_class: The message meta class.
+ js_dict: Dict representation of a JSON message.
+ ignore_unknown_fields: If True, do not raise errors for unknown fields.
+ descriptor_pool: A Descriptor Pool for resolving types. If None use the
+ default.
+ max_recursion_depth: max recursion depth of JSON message to be deserialized.
+ JSON messages over this depth will fail to be deserialized. Default value
+ is 100.
+
+ Returns:
+ A new message passed from json_dict.
+ """
+ new_message = message_class()
+ json_format.ParseDict(
+ js_dict=js_dict,
+ message=new_message,
+ ignore_unknown_fields=ignore_unknown_fields,
+ descriptor_pool=descriptor_pool,
+ max_recursion_depth=max_recursion_depth,
+ )
+ return new_message