[ovs-dev] [PATCH v2] Add setuptools for Python lib for PyPI

Terry Wilson twilson at redhat.com
Fri Apr 10 19:57:00 UTC 2015


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.
---
 Reposting this patch with the correct date. Apparently my dev VM
 had a date of Mar 28, causing the patch to show up in the past.
 My apologies for the multiple posts.

 python/.gitignore  |  2 ++
 python/README.rst  |  1 +
 python/automake.mk |  6 ++++++
 python/setup.py    | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 55 insertions(+)
 create mode 100644 python/.gitignore
 create mode 100644 python/README.rst
 create mode 100644 python/setup.py

diff --git a/python/.gitignore b/python/.gitignore
new file mode 100644
index 0000000..60ace6f
--- /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 0000000..4f4742c
--- /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 f6ab606..7053eff 100644
--- a/python/automake.mk
+++ b/python/automake.mk
@@ -62,6 +62,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 0000000..889d215
--- /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 at 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'
+    ]
+)
-- 
1.9.3




More information about the dev mailing list