summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorTerry Wilson <twilson@redhat.com>2015-04-10 14:57:00 -0500
committerBen Pfaff <blp@nicira.com>2015-04-14 09:28:57 -0700
commit77e2b03174d5e39eb99bcfba6fbc620402154674 (patch)
tree319f7db30bba9d563fac02d8507a46543406114c /python
parent97a3c43515e86afaff0808e9a9f4cdfaca39792b (diff)
downloadopenvswitch-77e2b03174d5e39eb99bcfba6fbc620402154674.tar.gz
python: Add setuptools for Python lib for PyPI.
This adds very basic support for setuptools so that the OVS Python lib can be added to PyPI. This currently uses the Open vSwitch version number and the generated dirs.py, though there is no real reason to tie the Python libraries releases or version numbers to the main project's. Signed-off-by: Terry Wilson <twilson@redhat.com> Acked-by: Russell Bryant <rbryant@redhat.com> Acked-by: Kyle Mestery <mestery@mestery.com> [blp@nicira.com adjusted automake.mk] Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'python')
-rw-r--r--python/.gitignore2
-rw-r--r--python/README.rst1
-rw-r--r--python/automake.mk11
-rw-r--r--python/setup.py46
4 files changed, 60 insertions, 0 deletions
diff --git a/python/.gitignore b/python/.gitignore
new file mode 100644
index 000000000..60ace6f05
--- /dev/null
+++ b/python/.gitignore
@@ -0,0 +1,2 @@
+dist/
+*.egg-info
diff --git a/python/README.rst b/python/README.rst
new file mode 100644
index 000000000..4f4742c53
--- /dev/null
+++ b/python/README.rst
@@ -0,0 +1 @@
+Python library for working with Open vSwitch
diff --git a/python/automake.mk b/python/automake.mk
index f6ab60666..3a7f04016 100644
--- a/python/automake.mk
+++ b/python/automake.mk
@@ -41,6 +41,11 @@ EXTRA_DIST += \
python/build/__init__.py \
python/build/nroff.py
+# PyPI support.
+EXTRA_DIST += \
+ python/README.rst \
+ python/setup.py
+
PYFILES = $(ovs_pyfiles) python/ovs/dirs.py $(ovstest_pyfiles)
EXTRA_DIST += $(PYFILES)
PYCOV_CLEAN_FILES += $(PYFILES:.py=.py,cover)
@@ -62,6 +67,12 @@ ovs-install-data-local:
$(MKDIR_P) $(DESTDIR)$(pkgdatadir)/python/ovs
$(INSTALL_DATA) python/ovs/dirs.py.tmp $(DESTDIR)$(pkgdatadir)/python/ovs/dirs.py
rm python/ovs/dirs.py.tmp
+
+python-sdist: $(srcdir)/python/ovs/version.py $(ovs_pyfiles) python/ovs/dirs.py
+ (cd python/ && $(PYTHON) setup.py sdist)
+
+pypi-upload: $(srcdir)/python/ovs/version.py $(ovs_pyfiles) python/ovs/dirs.py
+ (cd python/ && $(PYTHON) setup.py sdist upload)
else
ovs-install-data-local:
@:
diff --git a/python/setup.py b/python/setup.py
new file mode 100644
index 000000000..889d21594
--- /dev/null
+++ b/python/setup.py
@@ -0,0 +1,46 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+import sys
+
+import setuptools
+
+VERSION = "unknown"
+
+try:
+ # Try to set the version from the generated ovs/version.py
+ execfile("ovs/version.py")
+except IOError:
+ print("Ensure version.py is created by running make python/ovs/version.py",
+ file=sys.stderr)
+ sys.exit(-1)
+
+
+setuptools.setup(
+ name='ovs',
+ description='Open vSwitch library',
+ version=VERSION,
+ url='http://www.openvswitch.org/',
+ author='Open vSwitch',
+ author_email='dev@openvswitch.org',
+ packages=['ovs', 'ovs.db', 'ovs.unixctl'],
+ keywords=['openvswitch', 'ovs', 'OVSDB'],
+ license='Apache 2.0',
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',
+ 'Topic :: Database :: Front-Ends',
+ 'Topic :: Software Development :: Libraries :: Python Modules',
+ 'Topic :: System :: Networking',
+ 'License :: OSI Approved :: Apache Software License'
+ ]
+)