f4aa17b28a
This updates README.md to use an example with pip instead of setup.py. The README.md is then used as the long_description argument to setup(), so that the doc shows up on pypi.
142 lines
5.8 KiB
Python
142 lines
5.8 KiB
Python
# Protocol Buffers - Google's data interchange format
|
|
# Copyright 2008 Google Inc. All rights reserved.
|
|
# https://developers.google.com/protocol-buffers/
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are
|
|
# met:
|
|
#
|
|
# * Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# * Redistributions in binary form must reproduce the above
|
|
# copyright notice, this list of conditions and the following disclaimer
|
|
# in the documentation and/or other materials provided with the
|
|
# distribution.
|
|
# * Neither the name of Google Inc. nor the names of its
|
|
# contributors may be used to endorse or promote products derived from
|
|
# this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
"""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)'
|
|
|
|
from os import path
|
|
from setuptools import setup, find_packages
|
|
|
|
# Use README.md as the source for long_description.
|
|
this_directory = path.abspath(path.dirname(__file__))
|
|
with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:
|
|
_readme = f.read()
|
|
|
|
setup(
|
|
name='protobuf_distutils',
|
|
version='1.0',
|
|
packages=find_packages(),
|
|
maintainer='protobuf@googlegroups.com',
|
|
maintainer_email='protobuf@googlegroups.com',
|
|
license='3-Clause BSD License',
|
|
classifiers=[
|
|
"Framework :: Setuptools Plugin",
|
|
"Operating System :: OS Independent",
|
|
# These Python versions should match the protobuf package:
|
|
"Programming Language :: Python",
|
|
"Programming Language :: Python :: 2",
|
|
"Programming Language :: Python :: 2.7",
|
|
"Programming Language :: Python :: 3",
|
|
"Programming Language :: Python :: 3.3",
|
|
"Programming Language :: Python :: 3.4",
|
|
"Programming Language :: Python :: 3.5",
|
|
"Programming Language :: Python :: 3.6",
|
|
"Programming Language :: Python :: 3.7",
|
|
"Programming Language :: Python :: 3.8",
|
|
"Topic :: Software Development :: Code Generators",
|
|
],
|
|
description=('This is a distutils extension to generate Python code for '
|
|
'.proto files using an installed protoc binary.'),
|
|
long_description=_readme,
|
|
long_description_content_type='text/markdown',
|
|
url='https://github.com/protocolbuffers/protobuf/',
|
|
entry_points={
|
|
'distutils.commands': [
|
|
('generate_py_protobufs = '
|
|
'protobuf_distutils.generate_py_protobufs:generate_py_protobufs'),
|
|
],
|
|
},
|
|
)
|