From b0f73806deef1745621c36e7ad5cecf3ceee8333 Mon Sep 17 00:00:00 2001 From: Luke Faraone Date: Thu, 31 Oct 2013 15:50:23 -0400 Subject: [PATCH] Optionally use setuptools if it is installed. Thanks to to github.com/roryk for the suggestion. (imported from commit 9e4365dc56f1bc2f1a1a49be4a7b662d94bf42a9) --- setup.py | 73 +++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 51 insertions(+), 22 deletions(-) diff --git a/setup.py b/setup.py index 381f7b3..fb3a7c7 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,6 @@ import zulip import os -from distutils.core import setup import sys import itertools @@ -23,24 +22,54 @@ def recur_expand(target_root, dir): if len(paths): yield os.path.join(target_root, root), paths -setup(name='zulip', - version=version(), - description='Bindings for the Zulip message API', - author='Zulip, Inc.', - author_email='zulip@zulip.com', - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Environment :: Web Environment', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: MIT License', - 'Topic :: Communications :: Chat', - ], - url='https://www.zulip.com/dist/api/', - packages=['zulip'], - data_files=[('share/zulip/examples', ["examples/zuliprc", "examples/send-message", "examples/subscribe", - "examples/get-public-streams", "examples/unsubscribe", - "examples/list-members", "examples/list-subscriptions", - "examples/print-messages"])] + \ - list(recur_expand('share/zulip', 'integrations/')), - scripts=["bin/zulip-send"], - ) +# We should be installable with either setuptools or distutils. +package_info = dict( + name='zulip', + version=version(), + description='Bindings for the Zulip message API', + author='Zulip, Inc.', + author_email='humbug@humbughq.com', + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Environment :: Web Environment', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: MIT License', + 'Topic :: Communications :: Chat', + ], + url='https://www.zulip.com/dist/api/', + packages=['zulip'], + data_files=[('share/zulip/examples', ["examples/zuliprc", "examples/send-message", "examples/subscribe", + "examples/get-public-streams", "examples/unsubscribe", + "examples/list-members", "examples/list-subscriptions", + "examples/print-messages"])] + \ + list(recur_expand('share/zulip', 'integrations/')), + scripts=["bin/zulip-send"], +) + +setuptools_info = dict( + install_requires=['requests>=0.12.1', + 'simplejson', + ], +) + +try: + from setuptools import setup + package_info.update(setuptools_info) +except ImportError: + from distutils.core import setup + from distutils.version import LooseVersion + # Manual dependency check + try: + import simplejson + except ImportError: + print >>sys.stderr, "simplejson is not installed" + sys.exit(1) + try: + import requests + assert(LooseVersion(requests.__version__) >= LooseVersion('0.12.1')) + except (ImportError, AssertionError): + print >>sys.stderr, "requests >=0.12.1 is not installed" + sys.exit(1) + + +setup(**package_info)