diff --git a/python/google/protobuf/internal/descriptor_pool_test.py b/python/google/protobuf/internal/descriptor_pool_test.py index e9ddae6d16..1eed7af25b 100644 --- a/python/google/protobuf/internal/descriptor_pool_test.py +++ b/python/google/protobuf/internal/descriptor_pool_test.py @@ -525,7 +525,7 @@ class DescriptorPoolTestBase(object): unittest_import_pb2.DESCRIPTOR.serialized_pb)) pool.Add(descriptor_pb2.FileDescriptorProto.FromString( unittest_pb2.DESCRIPTOR.serialized_pb)) - message_class = message_factory.MessageFactory(pool).GetPrototype( + message_class = message_factory.GetMessageClass( pool.FindMessageTypeByName( unittest_pb2.TestAllTypes.DESCRIPTOR.full_name)) _CheckDefaultValues(message_class()) diff --git a/python/google/protobuf/internal/message_factory_test.py b/python/google/protobuf/internal/message_factory_test.py index e72ecde094..09467cf72d 100644 --- a/python/google/protobuf/internal/message_factory_test.py +++ b/python/google/protobuf/internal/message_factory_test.py @@ -65,7 +65,7 @@ class MessageFactoryTest(unittest.TestCase): result = cls.FromString(reserialized) self.assertEqual(msg, result) - def testGetPrototype(self): + def testGetMessageClass(self): db = descriptor_database.DescriptorDatabase() pool = descriptor_pool.DescriptorPool(db) db.Add(self.factory_test1_fd) diff --git a/python/google/protobuf/internal/python_message.py b/python/google/protobuf/internal/python_message.py index fabc6aa078..28f599f759 100755 --- a/python/google/protobuf/internal/python_message.py +++ b/python/google/protobuf/internal/python_message.py @@ -72,7 +72,7 @@ class GeneratedProtocolMessageType(type): mydescriptor = Descriptor(.....) factory = symbol_database.Default() factory.pool.AddDescriptor(mydescriptor) - MyProtoClass = factory.GetPrototype(mydescriptor) + MyProtoClass = message_factory.GetMessageClass(mydescriptor) myproto_instance = MyProtoClass() myproto.foo_field = 23 ... @@ -120,7 +120,7 @@ class GeneratedProtocolMessageType(type): # to achieve similar results. # # This most commonly happens in `text_format.py` when using descriptors from - # a custom pool; it calls symbol_database.Global().getPrototype() on a + # a custom pool; it calls message_factory.GetMessageClass() on a # descriptor which already has an existing concrete class. new_class = getattr(descriptor, '_concrete_class', None) if new_class: @@ -988,7 +988,10 @@ def _InternalUnpackAny(msg): if descriptor is None: return None - message_class = factory.GetPrototype(descriptor) + # Unable to import message_factory at top becaue of circular import. + # pylint: disable=g-import-not-at-top + from google.protobuf import message_factory + message_class = message_factory.GetMessageClass(descriptor) message = message_class() message.ParseFromString(msg.value) diff --git a/python/google/protobuf/internal/symbol_database_test.py b/python/google/protobuf/internal/symbol_database_test.py index 47675fcf3d..45cc979667 100644 --- a/python/google/protobuf/internal/symbol_database_test.py +++ b/python/google/protobuf/internal/symbol_database_test.py @@ -35,11 +35,6 @@ class SymbolDatabaseTest(unittest.TestCase): db.RegisterServiceDescriptor(unittest_pb2._TESTSERVICE) return db - def testGetPrototype(self): - instance = self._Database().GetPrototype( - unittest_pb2.TestAllTypes.DESCRIPTOR) - self.assertTrue(instance is unittest_pb2.TestAllTypes) - def testGetMessages(self): messages = self._Database().GetMessages( ['google/protobuf/unittest.proto']) diff --git a/python/google/protobuf/pyext/cpp_message.py b/python/google/protobuf/pyext/cpp_message.py index 623b52fbff..54cfe30646 100644 --- a/python/google/protobuf/pyext/cpp_message.py +++ b/python/google/protobuf/pyext/cpp_message.py @@ -34,7 +34,7 @@ class GeneratedProtocolMessageType(_message.MessageMeta): mydescriptor = Descriptor(.....) factory = symbol_database.Default() factory.pool.AddDescriptor(mydescriptor) - MyProtoClass = factory.GetPrototype(mydescriptor) + MyProtoClass = message_factory.GetMessageClass(mydescriptor) myproto_instance = MyProtoClass() myproto.foo_field = 23 ...