Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Side by Side Diff: recipe_engine/third_party/google/protobuf/descriptor_pool.py

Issue 2236673002: Bump vendoring, move to proto3 release. (Closed) Base URL: https://github.com/luci/recipes-py@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Protocol Buffers - Google's data interchange format 1 # Protocol Buffers - Google's data interchange format
2 # Copyright 2008 Google Inc. All rights reserved. 2 # Copyright 2008 Google Inc. All rights reserved.
3 # https://developers.google.com/protocol-buffers/ 3 # https://developers.google.com/protocol-buffers/
4 # 4 #
5 # Redistribution and use in source and binary forms, with or without 5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are 6 # modification, are permitted provided that the following conditions are
7 # met: 7 # met:
8 # 8 #
9 # * Redistributions of source code must retain the above copyright 9 # * Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer. 10 # notice, this list of conditions and the following disclaimer.
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 if file_proto.package: 387 if file_proto.package:
388 desc_proto_prefix = _PrefixWithDot(file_proto.package) 388 desc_proto_prefix = _PrefixWithDot(file_proto.package)
389 else: 389 else:
390 desc_proto_prefix = '' 390 desc_proto_prefix = ''
391 391
392 for desc_proto in file_proto.message_type: 392 for desc_proto in file_proto.message_type:
393 desc = self._GetTypeFromScope( 393 desc = self._GetTypeFromScope(
394 desc_proto_prefix, desc_proto.name, scope) 394 desc_proto_prefix, desc_proto.name, scope)
395 file_descriptor.message_types_by_name[desc_proto.name] = desc 395 file_descriptor.message_types_by_name[desc_proto.name] = desc
396 396
397 for index, service_proto in enumerate(file_proto.service):
398 file_descriptor.services_by_name[service_proto.name] = (
399 self._MakeServiceDescriptor(service_proto, index, scope,
400 file_proto.package, file_descriptor))
401
397 self.Add(file_proto) 402 self.Add(file_proto)
398 self._file_descriptors[file_proto.name] = file_descriptor 403 self._file_descriptors[file_proto.name] = file_descriptor
399 404
400 return self._file_descriptors[file_proto.name] 405 return self._file_descriptors[file_proto.name]
401 406
402 def _ConvertMessageDescriptor(self, desc_proto, package=None, file_desc=None, 407 def _ConvertMessageDescriptor(self, desc_proto, package=None, file_desc=None,
403 scope=None, syntax=None): 408 scope=None, syntax=None):
404 """Adds the proto to the pool in the specified package. 409 """Adds the proto to the pool in the specified package.
405 410
406 Args: 411 Args:
(...skipping 27 matching lines...) Expand all
434 self._ConvertEnumDescriptor(enum, desc_name, file_desc, None, scope) 439 self._ConvertEnumDescriptor(enum, desc_name, file_desc, None, scope)
435 for enum in desc_proto.enum_type] 440 for enum in desc_proto.enum_type]
436 fields = [self._MakeFieldDescriptor(field, desc_name, index) 441 fields = [self._MakeFieldDescriptor(field, desc_name, index)
437 for index, field in enumerate(desc_proto.field)] 442 for index, field in enumerate(desc_proto.field)]
438 extensions = [ 443 extensions = [
439 self._MakeFieldDescriptor(extension, desc_name, index, 444 self._MakeFieldDescriptor(extension, desc_name, index,
440 is_extension=True) 445 is_extension=True)
441 for index, extension in enumerate(desc_proto.extension)] 446 for index, extension in enumerate(desc_proto.extension)]
442 oneofs = [ 447 oneofs = [
443 descriptor.OneofDescriptor(desc.name, '.'.join((desc_name, desc.name)), 448 descriptor.OneofDescriptor(desc.name, '.'.join((desc_name, desc.name)),
444 index, None, []) 449 index, None, [], desc.options)
445 for index, desc in enumerate(desc_proto.oneof_decl)] 450 for index, desc in enumerate(desc_proto.oneof_decl)]
446 extension_ranges = [(r.start, r.end) for r in desc_proto.extension_range] 451 extension_ranges = [(r.start, r.end) for r in desc_proto.extension_range]
447 if extension_ranges: 452 if extension_ranges:
448 is_extendable = True 453 is_extendable = True
449 else: 454 else:
450 is_extendable = False 455 is_extendable = False
451 desc = descriptor.Descriptor( 456 desc = descriptor.Descriptor(
452 name=desc_proto.name, 457 name=desc_proto.name,
453 full_name=desc_name, 458 full_name=desc_name,
454 filename=file_name, 459 filename=file_name,
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 An initialized EnumValueDescriptor object. 677 An initialized EnumValueDescriptor object.
673 """ 678 """
674 679
675 return descriptor.EnumValueDescriptor( 680 return descriptor.EnumValueDescriptor(
676 name=value_proto.name, 681 name=value_proto.name,
677 index=index, 682 index=index,
678 number=value_proto.number, 683 number=value_proto.number,
679 options=value_proto.options, 684 options=value_proto.options,
680 type=None) 685 type=None)
681 686
687 def _MakeServiceDescriptor(self, service_proto, service_index, scope,
688 package, file_desc):
689 """Make a protobuf ServiceDescriptor given a ServiceDescriptorProto.
690
691 Args:
692 service_proto: The descriptor_pb2.ServiceDescriptorProto protobuf message.
693 service_index: The index of the service in the File.
694 scope: Dict mapping short and full symbols to message and enum types.
695 package: Optional package name for the new message EnumDescriptor.
696 file_desc: The file containing the service descriptor.
697
698 Returns:
699 The added descriptor.
700 """
701
702 if package:
703 service_name = '.'.join((package, service_proto.name))
704 else:
705 service_name = service_proto.name
706
707 methods = [self._MakeMethodDescriptor(method_proto, service_name, package,
708 scope, index)
709 for index, method_proto in enumerate(service_proto.method)]
710 desc = descriptor.ServiceDescriptor(name=service_proto.name,
711 full_name=service_name,
712 index=service_index,
713 methods=methods,
714 options=service_proto.options,
715 file=file_desc)
716 return desc
717
718 def _MakeMethodDescriptor(self, method_proto, service_name, package, scope,
719 index):
720 """Creates a method descriptor from a MethodDescriptorProto.
721
722 Args:
723 method_proto: The proto describing the method.
724 service_name: The name of the containing service.
725 package: Optional package name to look up for types.
726 scope: Scope containing available types.
727 index: Index of the method in the service.
728
729 Returns:
730 An initialized MethodDescriptor object.
731 """
732 full_name = '.'.join((service_name, method_proto.name))
733 input_type = self._GetTypeFromScope(
734 package, method_proto.input_type, scope)
735 output_type = self._GetTypeFromScope(
736 package, method_proto.output_type, scope)
737 return descriptor.MethodDescriptor(name=method_proto.name,
738 full_name=full_name,
739 index=index,
740 containing_service=None,
741 input_type=input_type,
742 output_type=output_type,
743 options=method_proto.options)
744
682 def _ExtractSymbols(self, descriptors): 745 def _ExtractSymbols(self, descriptors):
683 """Pulls out all the symbols from descriptor protos. 746 """Pulls out all the symbols from descriptor protos.
684 747
685 Args: 748 Args:
686 descriptors: The messages to extract descriptors from. 749 descriptors: The messages to extract descriptors from.
687 Yields: 750 Yields:
688 A two element tuple of the type name and descriptor object. 751 A two element tuple of the type name and descriptor object.
689 """ 752 """
690 753
691 for desc in descriptors: 754 for desc in descriptors:
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
742 # TODO(amauryfa): This pool could be constructed from Python code, when we 805 # TODO(amauryfa): This pool could be constructed from Python code, when we
743 # support a flag like 'use_cpp_generated_pool=True'. 806 # support a flag like 'use_cpp_generated_pool=True'.
744 # pylint: disable=protected-access 807 # pylint: disable=protected-access
745 _DEFAULT = descriptor._message.default_pool 808 _DEFAULT = descriptor._message.default_pool
746 else: 809 else:
747 _DEFAULT = DescriptorPool() 810 _DEFAULT = DescriptorPool()
748 811
749 812
750 def Default(): 813 def Default():
751 return _DEFAULT 814 return _DEFAULT
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698