Enable PyPI package management

pull/1154/head
Masood Malekghassemi 10 years ago
parent 675de61e4b
commit 451887ba2c
  1. 22
      src/python/README.md
  2. 16
      src/python/interop/setup.py
  3. 3
      src/python/src/.gitignore
  4. 1
      src/python/src/MANIFEST.in
  5. 27
      src/python/src/README.rst
  6. 17
      src/python/src/setup.py
  7. 54
      tools/distrib/python/submit.py

@ -42,7 +42,14 @@ $ tools/run_tests/run_python.sh
Installing Installing
----------------------- -----------------------
- [Install the gRPC core](https://github.com/grpc/grpc/blob/master/INSTALL) - Install the gRPC core
- [Debian package](https://github.com/grpc/grpc/releases)
```
$ wget https://github.com/grpc/grpc/releases/download/release-0_5_0/libgrpc_0.5.0_amd64.deb
$ wget https://github.com/grpc/grpc/releases/download/release-0_5_0/libgrpc-dev_0.5.0_amd64.deb
$ sudo dpkg -i libgrpc_0.5.0_amd64.deb libgrpc-dev_0.5.0_amd64.deb
```
- [From source](https://github.com/grpc/grpc/blob/master/INSTALL)
- Install gRPC Python's dependencies - Install gRPC Python's dependencies
``` ```
@ -53,3 +60,16 @@ $ pip install -r src/python/requirements.txt
``` ```
$ pip install src/python/src $ pip install src/python/src
``` ```
Packaging to PyPI
-----------------------
- Install packaging dependencies
```
$ pip install setuptools twine
```
- Push to PyPI
```
$ ../../tools/distrib/python/submit.py
```

@ -29,7 +29,7 @@
"""A setup module for the GRPC Python interop testing package.""" """A setup module for the GRPC Python interop testing package."""
from distutils import core as _core import setuptools
_PACKAGES = ( _PACKAGES = (
'interop', 'interop',
@ -45,9 +45,13 @@ _PACKAGE_DATA = {
'credentials/server1.pem',] 'credentials/server1.pem',]
} }
_INSTALL_REQUIRES = ['grpc-2015>=0.0.1'] _INSTALL_REQUIRES = ['grpcio>=0.4.0a4']
_core.setup( setuptools.setup(
name='interop', version='0.0.1', packages=_PACKAGES, name='interop',
package_dir=_PACKAGE_DIRECTORIES, package_data=_PACKAGE_DATA, version='0.0.1',
install_requires=_INSTALL_REQUIRES) packages=_PACKAGES,
package_dir=_PACKAGE_DIRECTORIES,
package_data=_PACKAGE_DATA,
install_requires=_INSTALL_REQUIRES
)

@ -0,0 +1,3 @@
MANIFEST
grpcio.egg-info/
dist/

@ -0,0 +1,27 @@
gRPC Python
===========
Package for GRPC Python.
Dependencies
------------
Ensure that you have installed GRPC core.
On debian linux systems, install from our released deb package:
::
$ wget https://github.com/grpc/grpc/releases/download/release-0_5_0/libgrpc_0.5.0_amd64.deb
$ wget https://github.com/grpc/grpc/releases/download/release-0_5_0/libgrpc-dev_0.5.0_amd64.deb
$ sudo dpkg -i libgrpc_0.5.0_amd64.deb libgrpc-dev_0.5.0_amd64.deb
Otherwise, install from source:
::
git clone https://github.com/grpc/grpc.git
cd grpc
./configure
make && make install

@ -30,6 +30,7 @@
"""A setup module for the GRPC Python package.""" """A setup module for the GRPC Python package."""
from distutils import core as _core from distutils import core as _core
import setuptools
_EXTENSION_SOURCES = ( _EXTENSION_SOURCES = (
'grpc/_adapter/_c.c', 'grpc/_adapter/_c.c',
@ -80,7 +81,15 @@ _PACKAGE_DIRECTORIES = {
'grpc.framework': 'grpc/framework', 'grpc.framework': 'grpc/framework',
} }
_core.setup( setuptools.setup(
name='grpc-2015', version='0.4.0', name='grpcio',
ext_modules=[_EXTENSION_MODULE], packages=list(_PACKAGES), version='0.4.0a8',
package_dir=_PACKAGE_DIRECTORIES) ext_modules=[_EXTENSION_MODULE],
packages=list(_PACKAGES),
package_dir=_PACKAGE_DIRECTORIES,
install_requires=[
'enum34==1.0.4',
'futures==2.2.0',
'protobuf==3.0.0-alpha-1'
]
)

@ -0,0 +1,54 @@
#!/usr/bin/env python
import argparse
import os
import shutil
import subprocess
parser = argparse.ArgumentParser(
description='Submit the package to a PyPI repository.')
parser.add_argument(
'--repository', '-r', metavar='r', type=str, default='pypi',
help='The repository to push the package to. '
'Ensure the value appears in your .pypirc file. '
'Defaults to "pypi".'
)
parser.add_argument(
'--identity', '-i', metavar='i', type=str,
help='GPG identity to sign the files with.'
)
parser.add_argument(
'--username', '-u', metavar='u', type=str,
help='Username to authenticate with the repository. Not needed if you have '
'configured your .pypirc to include your username.'
)
parser.add_argument(
'--password', '-p', metavar='p', type=str,
help='Password to authenticate with the repository. Not needed if you have '
'configured your .pypirc to include your password.'
)
args = parser.parse_args()
# Move to the root directory of Python GRPC.
pkgdir = os.path.join(os.path.dirname(os.path.abspath(__file__)),
'../../../src/python/src')
# Remove previous distributions; they somehow confuse twine.
try:
shutil.rmtree(os.path.join(pkgdir, 'dist/'))
except:
pass
# Make the push.
cmd = ['python', 'setup.py', 'sdist']
subprocess.call(cmd)
cmd = ['twine', 'upload', '-r', args.repository]
if args.identity is not None:
cmd.extend(['-i', args.identity])
if args.username is not None:
cmd.extend(['-u', args.username])
if args.password is not None:
cmd.extend(['-p', args.password])
cmd.append('dist/*')
subprocess.call(cmd, cwd=pkgdir)
Loading…
Cancel
Save