aboutsummaryrefslogtreecommitdiffhomepage
path: root/python/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/setup.py')
-rwxr-xr-xpython/setup.py88
1 files changed, 49 insertions, 39 deletions
diff --git a/python/setup.py b/python/setup.py
index f53ad5ff..ba0dac2c 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -79,38 +79,50 @@ def generate_proto(source, require = True):
if protoc is None:
sys.stderr.write(
- "protoc is not installed nor found in ../src. "
- "Please compile it or install the binary package.\n"
- )
+ "protoc is not installed nor found in ../src. Please compile it "
+ "or install the binary package.\n")
sys.exit(-1)
- protoc_command = [protoc, "-I../src", "-I.", "--python_out=.", source]
+ protoc_command = [ protoc, "-I../src", "-I.", "--python_out=.", source ]
if subprocess.call(protoc_command) != 0:
sys.exit(-1)
-
def GenerateUnittestProtos():
- generate_proto("../src/google/protobuf/map_unittest.proto", False)
- generate_proto("../src/google/protobuf/unittest.proto", False)
- generate_proto("../src/google/protobuf/unittest_custom_options.proto", False)
- generate_proto("../src/google/protobuf/unittest_import.proto", False)
- generate_proto("../src/google/protobuf/unittest_import_public.proto", False)
- generate_proto("../src/google/protobuf/unittest_mset.proto", False)
- generate_proto("../src/google/protobuf/unittest_no_generic_services.proto", False)
- generate_proto("../src/google/protobuf/unittest_proto3_arena.proto", False)
- generate_proto("google/protobuf/internal/descriptor_pool_test1.proto", False)
- generate_proto("google/protobuf/internal/descriptor_pool_test2.proto", False)
- generate_proto("google/protobuf/internal/factory_test1.proto", False)
- generate_proto("google/protobuf/internal/factory_test2.proto", False)
- generate_proto("google/protobuf/internal/import_test_package/inner.proto", False)
- generate_proto("google/protobuf/internal/import_test_package/outer.proto", False)
- generate_proto("google/protobuf/internal/missing_enum_values.proto", False)
- generate_proto("google/protobuf/internal/more_extensions.proto", False)
- generate_proto("google/protobuf/internal/more_extensions_dynamic.proto", False)
- generate_proto("google/protobuf/internal/more_messages.proto", False)
- generate_proto("google/protobuf/internal/test_bad_identifiers.proto", False)
- generate_proto("google/protobuf/pyext/python.proto", False)
-
+ generate_proto("../src/google/protobuf/unittest.proto")
+ generate_proto("../src/google/protobuf/unittest_custom_options.proto")
+ generate_proto("../src/google/protobuf/unittest_import.proto")
+ generate_proto("../src/google/protobuf/unittest_import_public.proto")
+ generate_proto("../src/google/protobuf/unittest_mset.proto")
+ generate_proto("../src/google/protobuf/unittest_no_generic_services.proto")
+ generate_proto("google/protobuf/internal/descriptor_pool_test1.proto")
+ generate_proto("google/protobuf/internal/descriptor_pool_test2.proto")
+ generate_proto("google/protobuf/internal/test_bad_identifiers.proto")
+ generate_proto("google/protobuf/internal/missing_enum_values.proto")
+ generate_proto("google/protobuf/internal/more_extensions.proto")
+ generate_proto("google/protobuf/internal/more_extensions_dynamic.proto")
+ generate_proto("google/protobuf/internal/more_messages.proto")
+ generate_proto("google/protobuf/internal/factory_test1.proto")
+ generate_proto("google/protobuf/internal/factory_test2.proto")
+ generate_proto("google/protobuf/internal/import_test_package/inner.proto")
+ generate_proto("google/protobuf/internal/import_test_package/outer.proto")
+ generate_proto("google/protobuf/pyext/python.proto")
+
+def MakeTestSuite():
+ # Test C++ implementation
+ import unittest
+ import google.protobuf.pyext.descriptor_cpp2_test as descriptor_cpp2_test
+ import google.protobuf.pyext.message_factory_cpp2_test \
+ as message_factory_cpp2_test
+ import google.protobuf.pyext.reflection_cpp2_generated_test \
+ as reflection_cpp2_generated_test
+
+ loader = unittest.defaultTestLoader
+ suite = unittest.TestSuite()
+ for test in [ descriptor_cpp2_test,
+ message_factory_cpp2_test,
+ reflection_cpp2_generated_test]:
+ suite.addTest(loader.loadTestsFromModule(test))
+ return suite
class clean(_clean):
def run(self):
@@ -119,13 +131,12 @@ class clean(_clean):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
if filepath.endswith("_pb2.py") or filepath.endswith(".pyc") or \
- filepath.endswith(".so") or filepath.endswith(".o") or \
- filepath.endswith('google/protobuf/compiler/__init__.py'):
+ filepath.endswith(".so") or filepath.endswith(".o") or \
+ filepath.endswith('google/protobuf/compiler/__init__.py'):
os.remove(filepath)
# _clean is an old-style class, so super() doesn't work.
_clean.run(self)
-
class build_py(_build_py):
def run(self):
# Generate necessary .proto file if it doesn't exist.
@@ -141,13 +152,6 @@ class build_py(_build_py):
pass
# _build_py is an old-style class, so super() doesn't work.
_build_py.run(self)
- # TODO(mrovner): Subclass to run 2to3 on some files only.
- # Tracing what https://wiki.python.org/moin/PortingPythonToPy3k's
- # "Approach 2" section on how to get 2to3 to run on source files during
- # install under Python 3. This class seems like a good place to put logic
- # that calls python3's distutils.util.run_2to3 on the subset of the files we
- # have in our release that are subject to conversion.
- # See code reference in previous code review.
if __name__ == '__main__':
ext_module_list = []
@@ -177,8 +181,14 @@ if __name__ == '__main__':
maintainer_email='protobuf@googlegroups.com',
license='New BSD License',
classifiers=[
- 'Programming Language :: Python :: 2.7',
- ],
+ "Programming Language :: Python",
+ "Programming Language :: Python :: 2",
+ "Programming Language :: Python :: 2.6",
+ "Programming Language :: Python :: 2.7",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.3",
+ "Programming Language :: Python :: 3.4",
+ ],
namespace_packages=['google'],
packages=find_packages(
exclude=[
@@ -190,6 +200,6 @@ if __name__ == '__main__':
'clean': clean,
'build_py': build_py,
},
- install_requires=['setuptools'],
+ install_requires=['setuptools', 'six'],
ext_modules=ext_module_list,
)