Package google :: Package protobuf :: Module symbol_database
[hide private]
[frames] | no frames]

Module symbol_database

source code

A database of Python protocol buffer generated symbols.

SymbolDatabase is the MessageFactory for messages generated at compile time,
and makes it easy to create new instances of a registered type, given only the
type's protocol buffer symbol name.

Example usage:

  db = symbol_database.SymbolDatabase()

  # Register symbols of interest, from one or multiple files.
  db.RegisterFileDescriptor(my_proto_pb2.DESCRIPTOR)
  db.RegisterMessage(my_proto_pb2.MyMessage)
  db.RegisterEnumDescriptor(my_proto_pb2.MyEnum.DESCRIPTOR)

  # The database can be used as a MessageFactory, to generate types based on
  # their name:
  types = db.GetMessages(['my_proto.proto'])
  my_message_instance = types['MyMessage']()

  # The database's underlying descriptor pool can be queried, so it's not
  # necessary to know a type's filename to be able to generate it:
  filename = db.pool.FindFileContainingSymbol('MyMessage')
  my_message_instance = db.GetMessages([filename])['MyMessage']()

  # This functionality is also provided directly via a convenience method:
  my_message_instance = db.GetSymbol('MyMessage')()

Classes [hide private]
  SymbolDatabase
A database of Python generated symbols.
Functions [hide private]
 
Default()
Returns the default SymbolDatabase.
source code
Variables [hide private]
  _DEFAULT = <google.protobuf.symbol_database.SymbolDatabase obj...
  __package__ = 'google.protobuf'
Variables Details [hide private]

_DEFAULT

Value:
<google.protobuf.symbol_database.SymbolDatabase object>