class FileOptions(Message): (source)
Constructor: FileOptions(initial_message, java_package, java_outer_classname, java_multiple_files, ...)
Each of the definitions above may have "options" attached. These are just annotations which may cause code to be generated slightly differently or may contain hints for code that manipulates protocol messages.
Clients may define custom options as extensions of the *Options messages. These extensions may not yet be known at parsing time, so the parser cannot store the values in them. Instead it stores them in a field in the *Options message called uninterpreted_option. This field must have the same name across all *Options messages. We then use this field to populate the extensions when we build a descriptor, at which point all protos have been parsed and so all extensions are known.
Extension numbers for custom options may be chosen as follows:
For options which will only be used within a single application or organization, or for experimental options, use field numbers 50000 through 99999. It is up to you to ensure that you do not use the same number for multiple options.
For options which will be published and used publicly by multiple independent entities, e-mail protobuf-global-extension-registry@google.com to reserve extension numbers. Simply provide your project name (e.g. Objective-C plugin) and your project website (if available) -- there's no need to explain how you intend to use them. Usually you only need one extension number. You can declare multiple options with only one extension number by putting them in a sub-message. See the Custom Options section of the docs for examples:
https://developers.google.com/protocol-buffers/docs/proto#options If this turns out to be popular, a web service will be set up to automatically assign option numbers.
| Class | |
Generated classes can be optimized for speed or code size. |
| Method | __init__ |
Create a message from a source message and field values. |
| Method | cc |
Set or clear the generated cc_enable_arenas field. |
| Method | cc |
Set or clear the generated cc_generic_services field. |
| Method | csharp |
Set or clear the generated csharp_namespace field. |
| Method | deprecated |
Set or clear the generated deprecated field. |
| Method | features |
Set or clear the generated features field. |
| Method | go |
Set or clear the generated go_package field. |
| Method | java |
Set or clear the generated java_generate_equals_and_hash field. |
| Method | java |
Set or clear the generated java_generic_services field. |
| Method | java |
Set or clear the generated java_multiple_files field. |
| Method | java |
Set or clear the generated java_outer_classname field. |
| Method | java |
Set or clear the generated java_package field. |
| Method | java |
Set or clear the generated java_string_check_utf8 field. |
| Method | objc |
Set or clear the generated objc_class_prefix field. |
| Method | optimize |
Set or clear the generated optimize_for field. |
| Method | php |
Set or clear the generated php_class_prefix field. |
| Method | php |
Set or clear the generated php_metadata_namespace field. |
| Method | php |
Set or clear the generated php_namespace field. |
| Method | py |
Set or clear the generated py_generic_services field. |
| Method | ruby |
Set or clear the generated ruby_package field. |
| Method | swift |
Set or clear the generated swift_prefix field. |
| Method | uninterpreted |
Set or clear the generated uninterpreted_option field. |
| Property | cc |
Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++. |
| Property | cc |
Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins)... |
| Property | csharp |
Namespace for generated classes; defaults to the package. |
| Property | deprecated |
Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. |
| Property | features |
Any features defined in the specific edition. WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language. |
| Property | go |
Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following: |
| Property | java |
This option does nothing. |
| Property | java |
Undocumented |
| Property | java |
If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname... |
| Property | java |
Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file... |
| Property | java |
Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names. |
| Property | java |
A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field. |
| Property | objc |
Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default. |
| Property | optimize |
Undocumented |
| Property | php |
Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty. |
| Property | php |
Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace. |
| Property | php |
Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace. |
| Property | py |
Undocumented |
| Property | ruby |
Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package. |
| Property | swift |
By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined. |
| Property | uninterpreted |
The parser stores options it doesn't recognize here. See the documentation for the "Options" section above. |
Inherited from Message:
| Class Method | from |
Create a message from protobuf JSON mapping. |
| Class Method | |
Create a message by parsing protobuf wire-format bytes. |
| Class Method | get |
Return the message descriptor from the registry. |
| Class Method | is |
Return True if a Python field contains credentials. |
| Class Method | is |
Return True if a Python field has the sensitive annotation. |
| Method | __dir__ |
List generated fields, oneofs, and nested declarations. |
| Method | __repr__ |
Render non-default fields without disclosing annotated secrets. |
| Method | |
Return the serialized protobuf wire size in bytes. |
| Method | check |
Check presence using a generated Python field name. |
| Method | |
Clear all fields, extensions, unknown fields, and the reset mask. |
| Method | clear |
Clear an extension value. |
| Method | |
Clear a protobuf field or oneof and record it in the reset mask. |
| Method | |
Replace this message with an independent copy of another message. |
| Method | |
Return paths of missing required fields. |
| Method | get |
Return an extension value. |
| Method | get |
Create a reset mask from the current protobuf state. |
| Method | get |
Return the reset mask for field changes. |
| Method | has |
Return True if an extension has explicit presence. |
| Method | |
Return True if a protobuf field or oneof has explicit presence. |
| Method | is |
Return True if a generated field has its default value. |
| Method | |
Return True if every required field is initialized. |
| Method | |
Merge fields from another message of the same generated type. |
| Method | |
Merge protobuf wire-format bytes into this message. |
| Method | |
Parse protobuf wire-format bytes and replace this message. |
| Method | |
Serialize the message using protobuf wire format. |
| Method | set |
Set an extension value. |
| Method | set |
Set the reset mask for this message. |
| Method | to |
Serialize this message using protobuf JSON mapping. |
| Method | which |
Return the selected Python field name for a protobuf oneof. |
| Method | |
Return the selected protobuf field name for a oneof. |
| Constant | __DEPRECATION |
Undocumented |
| Constant | __EXTENSION |
Registry that decodes protobuf extensions. |
| Constant | __FIELDS__ |
Runtime field data that the generator creates. |
| Constant | __MAX |
Maximum protobuf nesting depth for serialization, parsing, and initialization checks. |
| Constant | __PB2 |
Alias for code that expects a protobuf descriptor. |
| Constant | __PROTO |
Message descriptor from the registry. |
| Constant | __PY |
Mapping from Python names to protobuf names. |
| Constant | __REGISTRY__ |
Registry for the message and its descriptor. |
| Class Variable | __PROTO |
Fully qualified protobuf message name. |
| Property | |
Provide protobuf-compatible mapping access to extension values. |
| Class Method | _fields |
Undocumented |
| Class Method | _fields |
Undocumented |
| Class Method | _fields |
Undocumented |
| Class Method | _from |
Deserialize internally without invoking generated user warnings. |
| Class Method | _oneof |
Undocumented |
| Class Method | _public |
Undocumented |
| Class Method | _public |
Undocumented |
| Static Method | _format |
Undocumented |
| Static Method | _repr |
Undocumented |
| Method | _bind |
Undocumented |
| Method | _bind |
Undocumented |
| Method | _check |
Undocumented |
| Method | _child |
Undocumented |
| Method | _clear |
Undocumented |
| Method | _closed |
Undocumented |
| Method | _converted |
Undocumented |
| Method | _decode |
Undocumented |
| Method | _detach |
Undocumented |
| Method | _field |
Undocumented |
| Method | _field |
Undocumented |
| Method | _find |
Undocumented |
| Method | _get |
Undocumented |
| Method | _initialize |
Initialize message state, optionally suppressing generated warnings. |
| Method | _map |
Undocumented |
| Method | _merge |
Undocumented |
| Method | _nesting |
Undocumented |
| Method | _notify |
Undocumented |
| Method | _record |
Undocumented |
| Method | _repeated |
Undocumented |
| Method | _select |
Undocumented |
| Method | _serialize |
Undocumented |
| Method | _set |
Undocumented |
| Method | _suspend |
Undocumented |
| Method | _suspend |
Undocumented |
| Method | _try |
Undocumented |
| Method | _write |
Undocumented |
| Instance Variable | _extensions |
Undocumented |
| Instance Variable | _mutation |
Undocumented |
| Instance Variable | _on |
Undocumented |
| Instance Variable | _oneofs |
Undocumented |
| Instance Variable | _present |
Undocumented |
| Instance Variable | _reset |
Undocumented |
| Instance Variable | _reset |
Undocumented |
| Instance Variable | _unknown |
Undocumented |
| Instance Variable | _values |
Undocumented |
| Instance Variable | _views |
Undocumented |
SerializableMessage | None = None, *, java_package: str | None | UnsetType = ..., java_outer_classname: str | None | UnsetType = ..., java_multiple_files: bool | None | UnsetType = ..., java_generate_equals_and_hash: bool | None | UnsetType = ..., java_string_check_utf8: bool | None | UnsetType = ..., optimize_for: OptimizeMode | None | UnsetType = ..., go_package: str | None | UnsetType = ..., cc_generic_services: bool | None | UnsetType = ..., java_generic_services: bool | None | UnsetType = ..., py_generic_services: bool | None | UnsetType = ..., deprecated: bool | None | UnsetType = ..., cc_enable_arenas: bool | None | UnsetType = ..., objc_class_prefix: str | None | UnsetType = ..., csharp_namespace: str | None | UnsetType = ..., swift_prefix: str | None | UnsetType = ..., php_class_prefix: str | None | UnsetType = ..., php_namespace: str | None | UnsetType = ..., php_metadata_namespace: str | None | UnsetType = ..., ruby_package: str | None | UnsetType = ..., features: FeatureSet | None | UnsetType = ..., uninterpreted_option: Iterable[ UninterpretedOption] | None | UnsetType = ...):
(source)
¶
Create a message from a source message and field values.
def java_generate_equals_and_hash(self, value:
bool | None):
(source)
¶
Set or clear the generated java_generate_equals_and_hash field.
def uninterpreted_option(self, value:
Iterable[ UninterpretedOption] | None):
(source)
¶
Set or clear the generated uninterpreted_option field.
Enables the use of arenas for the proto messages in this file. This applies only to generated classes for C++.
Should generic services be generated in each language? "Generic" services are not specific to any particular RPC system. They are generated by the main code generators in each language (without additional plugins). Generic services were the only kind of service generation supported by early versions of google.protobuf.
Generic services are now considered deprecated in favor of using plugins that generate code specific to your particular RPC system. Therefore, these default to false. Old code which depends on generic services should explicitly set them to true.
Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files.
Any features defined in the specific edition. WARNING: This field should only be used by protobuf plugins or special cases like the proto compiler. Other uses are discouraged and developers should rely on the protoreflect APIs for their client language.
Sets the Go package where structs generated from this .proto will be placed. If omitted, the Go package will be derived from the following:
- The basename of the package import path, if provided.
- Otherwise, the package statement in the .proto file, if present.
- Otherwise, the basename of the .proto file, without extension.
If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. Thus, these types will not be nested inside the wrapper class named by java_outer_classname. However, the wrapper class will still be generated to contain the file's getDescriptor() method as well as any top-level extensions defined in the file.
Controls the name of the wrapper Java class generated for the .proto file. That class will always contain the .proto file's getDescriptor() method as well as any top-level extensions defined in the .proto file. If java_multiple_files is disabled, then all the other classes from the .proto file will be nested inside the single wrapper outer class.
Sets the Java package where classes generated from this .proto will be placed. By default, the proto package is used, but this is often inappropriate because proto packages do not normally start with backwards domain names.
A proto2 file can set this to true to opt in to UTF-8 checking for Java, which will throw an exception if invalid UTF-8 is parsed from the wire or assigned to a string field.
applies to, and update these docs accordingly.
Proto3 files already perform these checks. Setting the option explicitly to false has no effect: it cannot be used to opt proto3 files out of UTF-8 checks.
Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. There is no default.
Sets the php class prefix which is prepended to all php generated classes from this .proto. Default is empty.
Use this option to change the namespace of php generated metadata classes. Default is empty. When this option is empty, the proto file name will be used for determining the namespace.
Use this option to change the namespace of php generated classes. Default is empty. When this option is empty, the package name will be used for determining the namespace.
Use this option to change the package of ruby generated classes. Default is empty. When this option is not set, the package name will be used for determining the ruby package.
By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. When this options is provided, they will use this value instead to prefix the types/symbols defined.