parameters: (self, name, full_name, filename, containing_type, fields,
                 nested_types, enum_types, extensions, options=None,
                 is_extendable=True, extension_ranges=None, oneofs=None,
                 file=None, serialized_start=None, serialized_end=None,
                 syntax=None)
docstring: Arguments to __init__() are as described in the description
      of Descriptor fields above.
  
      Note that filename is an obsolete argument, that is not used anymore.
      Please use file.name to access this as an attribute.
docstring_summary: Arguments to __init__() are as described in the description
      of Descriptor fields above.
docstring_tokens: Arguments to __init__ () are as described in the description of Descriptor fields above .
function: def __init__(self, name, full_name, filename, containing_type, fields,
                 nested_types, enum_types, extensions, options=None,
                 is_extendable=True, extension_ranges=None, oneofs=None,
                 file=None, serialized_start=None, serialized_end=None,
                 syntax=None):  # pylint:disable=redefined-builtin
      """Arguments to __init__() are as described in the description
      of Descriptor fields above.
  
      Note that filename is an obsolete argument, that is not used anymore.
      Please use file.name to access this as an attribute.
      """
      super(Descriptor, self).__init__(
          options, 'MessageOptions', name, full_name, file,
          containing_type, serialized_start=serialized_start,
          serialized_end=serialized_end)
  
      # We have fields in addition to fields_by_name and fields_by_number,
      # so that:
      #   1. Clients can index fields by "order in which they're listed."
      #   2. Clients can easily iterate over all fields with the terse
      #      syntax: for f in descriptor.fields: ...
      self.fields = fields
      for field in self.fields:
        field.containing_type = self
      self.fields_by_number = dict((f.number, f) for f in fields)
      self.fields_by_name = dict((f.name, f) for f in fields)
  
      self.nested_types = nested_types
      for nested_type in nested_types:
        nested_type.containing_type = self
      self.nested_types_by_name = dict((t.name, t) for t in nested_types)
  
      self.enum_types = enum_types
      for enum_type in self.enum_types:
        enum_type.containing_type = self
      self.enum_types_by_name = dict((t.name, t) for t in enum_types)
      self.enum_values_by_name = dict(
          (v.name, v) for t in enum_types for v in t.values)
  
      self.extensions = extensions
      for extension in self.extensions:
        extension.extension_scope = self
      self.extensions_by_name = dict((f.name, f) for f in extensions)
      self.is_extendable = is_extendable
      self.extension_ranges = extension_ranges
      self.oneofs = oneofs if oneofs is not None else []
      self.oneofs_by_name = dict((o.name, o) for o in self.oneofs)
      for oneof in self.oneofs:
        oneof.containing_type = self
      self.syntax = syntax or "proto2"
function_tokens: def __init__ ( self , name , full_name , filename , containing_type , fields , nested_types , enum_types , extensions , options = None , is_extendable = True , extension_ranges = None , oneofs = None , file = None , serialized_start = None , serialized_end = None , syntax = None ) : # pylint:disable=redefined-builtin super ( Descriptor , self ) . __init__ ( options , 'MessageOptions' , name , full_name , file , containing_type , serialized_start = serialized_start , serialized_end = serialized_end ) # We have fields in addition to fields_by_name and fields_by_number, # so that: #   1. Clients can index fields by "order in which they're listed." #   2. Clients can easily iterate over all fields with the terse #      syntax: for f in descriptor.fields: ... self . fields = fields for field in self . fields : field . containing_type = self self . fields_by_number = dict ( ( f . number , f ) for f in fields ) self . fields_by_name = dict ( ( f . name , f ) for f in fields ) self . nested_types = nested_types for nested_type in nested_types : nested_type . containing_type = self self . nested_types_by_name = dict ( ( t . name , t ) for t in nested_types ) self . enum_types = enum_types for enum_type in self . enum_types : enum_type . containing_type = self self . enum_types_by_name = dict ( ( t . name , t ) for t in enum_types ) self . enum_values_by_name = dict ( ( v . name , v ) for t in enum_types for v in t . values ) self . extensions = extensions for extension in self . extensions : extension . extension_scope = self self . extensions_by_name = dict ( ( f . name , f ) for f in extensions ) self . is_extendable = is_extendable self . extension_ranges = extension_ranges self . oneofs = oneofs if oneofs is not None else [ ] self . oneofs_by_name = dict ( ( o . name , o ) for o in self . oneofs ) for oneof in self . oneofs : oneof . containing_type = self self . syntax = syntax or "proto2"