Enhance documentation for generate_py_protobufs. (#7937)

This change updates the README.md to describe the order of resolution
between `options['generate_py_protobufs']`, `--protoc`, and the `PROTOC`
env var.

Since the `setup.py` script is not the main way to find docs, this change
deletes the parts of the docstring that are redundant with `README.md`.
This commit is contained in:
David L. Jones 2020-10-02 13:36:49 -07:00 committed by GitHub
parent 344f28d4a2
commit ad29d402c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 66 deletions

View File

@ -103,4 +103,19 @@ $ python -m pip install .
By default, the protoc binary (the Protobuf compiler) is found by By default, the protoc binary (the Protobuf compiler) is found by
searching the environment path. To use a specific protoc binary, its searching the environment path. To use a specific protoc binary, its
path can be specified. path can be specified. Resolution of the `protoc` value is as follows:
1. If the `--protoc=VALUE` flag is passed to `generate_py_protobufs`,
then `VALUE` will be used.
For example:
```shell
$ python setup.py generate_py_protobufs --protoc=/path/to/protoc
```
2. Otherwise, if a value was set in the `options`, it will be used.
(See "Example setup.py configuration," above.)
3. Otherwise, if the `PROTOC` environment variable is set, it will be
used. For example:
For example:
```shell
$ PROTOC=/path/to/protoc python setup.py generate_py_protobufs
```
4. Otherwise, `$PATH` will be searched.

View File

@ -28,71 +28,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""Setuptools/distutils extension for generating Python protobuf code. """Setuptools/distutils extension for generating Python protobuf code."""
This extension uses a prebuilt 'protoc' binary to generate Python types for
protobuf sources. By default, it will use a system-installed protoc binary, but
a custom protoc can be specified by flag.
This command should usually be run before the 'build' command, so that the
generated sources are treated the same way as the rest of the Python
sources.
Options:
source_dir:
This is the directory holding .proto files to be processed.
The default behavior is to generate sources for all .proto files found
under `source_dir`, recursively. This behavior can be controlled with
options below.
proto_root_path:
This is the root path for resolving imports in source .proto files.
The default is the shortest prefix of `source_dir` among:
[source_dir] + self.extra_proto_paths
extra_proto_paths:
Specifies additional paths that should be used to find imports, in
addition to `source_dir`.
This option can be used to specify the path to other protobuf sources,
which are imported by files under `source_dir`. No Python code will be
generated for .proto files under `extra_proto_paths`.
output_dir:
Specifies where generated code should be placed.
Typically, this should be the root package that generated Python modules
should be below.
The generated files will be named according to the relative source paths
under `proto_root_path`. For example, this source .proto file:
${proto_root_path}/subdir/message.proto
will correspond to this generated Python module:
${output_dir}/subdir/message_pb2.py
proto_files:
Specific .proto files can be specified for generating code, instead of
searching for all .proto files under `source_path`.
These paths are relative to `source_dir`. For example, to generate code
for just ${source_dir}/subdir/message.proto, specify
['subdir/message.proto'].
protoc:
By default, the protoc binary (the Protobuf compiler) is found by
searching the environment path. To use a specific protoc binary, its
path can be specified.
recurse:
If `proto_files` are not specified, then the default behavior is to
search `source_dir` recursively. This option controls the recursive
search; if it is False, only .proto files immediately under `source_dir`
will be used to generate sources.
"""
__author__ = 'dlj@google.com (David L. Jones)' __author__ = 'dlj@google.com (David L. Jones)'