Skip to main content

setuptools plugin to generate python file from protobuf

Project description

setuptools-proto

setuptools plugin to compile .proto files using python-betterproto.

Prerequisite

  • Protobuf compiler protoc
  • Python 3.6+

Enable setuptools-proto

In either of the following scenarios, setuptools-proto will take effects.

  • Option 1, install setuptools-proto using pip or other tools:
$ pip install setuptools-proto
  • Option 2, require setuptools-proto in setup_requires keyword of setuptools.

So, add it either

setuptools.setup(
    setup_requires=['setuptools-proto'],
)

in setup.py in a imperative fashion or

[options]
setup_requires =
    setuptools-proto

in seutp.cfg in a declarative manner.

Configuration

Protobuf modules

To let setuptools-proto know what to compile, define prot_modules as a ProtoModule list.

from setuptools import setup
from setuptools_proto import ProtoModule

module1 = ProtoModule(
    ['proto/sample/**/*.proto'],
    cwd='proto/sample',
)
module2 = ProtoModule(
    ['demo/grpc/echo.proto', 'demo/grpc/hello.proto'],
    cwd='demo/grpc',
    out_dir='proto',
    include_dirs=['demo/schema'],
)


setup(
    proto_modules=[module1, module2],
)

protoc compiler

By default, setuptools-proto will use the system protoc compiler. If there's a custom install of protoc, which is not in the PATH, You can point environment variable PROTOC to it, or command line argument --protoc to it.

For example,

$ python setup.py --protoc /path/to/protoc build_proto

Execute

An extra command build_proto is added, to compile .proto to python code. This command will be automatically run before command build_py.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

setuptools-proto-1.0.0.tar.gz (14.8 kB view hashes)

Uploaded Source

Built Distribution

setuptools_proto-1.0.0-py3-none-any.whl (7.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page