Add project metadata generation to Python

pull/2746/head
Masood Malekghassemi 9 years ago
parent 80aecf609b
commit 5c147631d3
  1. 1
      src/python/grpcio/.gitignore
  2. 26
      src/python/grpcio/commands.py
  3. 2
      src/python/grpcio/setup.py

@ -6,3 +6,4 @@ dist/
*.egg/
*.eggs/
doc/
_grpcio_metadata.py

@ -34,6 +34,7 @@ import os.path
import sys
import setuptools
from setuptools.command import build_py
_CONF_PY_ADDENDUM = """
extensions.append('sphinx.ext.napoleon')
@ -74,3 +75,28 @@ class SphinxDocumentation(setuptools.Command):
conf_file.write(_CONF_PY_ADDENDUM)
sphinx.main(['', os.path.join('doc', 'src'), os.path.join('doc', 'build')])
class BuildProjectMetadata(setuptools.Command):
"""Command to generate project metadata in a module."""
description = ''
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
with open('grpc/_grpcio_metadata.py', 'w') as module_file:
module_file.write('__version__ = """{}"""'.format(
self.distribution.get_version()))
class BuildPy(build_py.build_py):
"""Custom project build command."""
def run(self):
self.run_command('build_project_metadata')
build_py.build_py.run(self)

@ -98,6 +98,8 @@ _SETUP_REQUIRES = (
_COMMAND_CLASS = {
'doc': commands.SphinxDocumentation,
'build_project_metadata': commands.BuildProjectMetadata,
'build_py': commands.BuildPy,
}
setuptools.setup(

Loading…
Cancel
Save