diff -r 79b6e132e3d7 -r 10e7a0c7c64f script/lib/tweetstream/setup.py --- a/script/lib/tweetstream/setup.py Fri Jul 01 10:15:32 2011 +0200 +++ b/script/lib/tweetstream/setup.py Mon Feb 20 00:12:16 2012 +0100 @@ -1,27 +1,81 @@ -from setuptools import setup, find_packages -import sys, os +import sys +import os + +extra = {} +if sys.version_info >= (3, 0): + extra.update(use_2to3=True) + + +try: + from setuptools import setup, find_packages +except ImportError: + from distutils.core import setup, find_packages + + +# -*- Distribution Meta -*- +import re +re_meta = re.compile(r'__(\w+?)__\s*=\s*(.*)') +re_vers = re.compile(r'VERSION\s*=\s*\((.*?)\)') +re_doc = re.compile(r'^"""(.+?)"""', re.M|re.S) +rq = lambda s: s.strip("\"'") + + +def add_default(m): + attr_name, attr_value = m.groups() + return ((attr_name, rq(attr_value)), ) + -author = "Rune Halvorsen" -email = "runefh@gmail.com" -version = "1.0.0" -homepage = "http://bitbucket.org/runeh/tweetstream/" +def add_version(m): + v = list(map(rq, m.groups()[0].split(", "))) + return (("VERSION", ".".join(v[0:3]) + "".join(v[3:])), ) + + +def add_doc(m): + return (("doc", m.groups()[0].replace("\n", " ")), ) + +pats = {re_meta: add_default, + re_vers: add_version} +here = os.path.abspath(os.path.dirname(__file__)) +meta_fh = open(os.path.join(here, "tweetstream/__init__.py")) +try: + meta = {} + acc = [] + for line in meta_fh: + if line.strip() == '# -eof meta-': + break + acc.append(line) + for pattern, handler in pats.items(): + m = pattern.match(line.strip()) + if m: + meta.update(handler(m)) + m = re_doc.match("".join(acc).strip()) + if m: + meta.update(add_doc(m)) +finally: + meta_fh.close() + setup(name='tweetstream', - version=version, - description="Simple Twitter streaming API access", + version=meta["VERSION"], + description=meta["doc"], long_description=open("README").read(), classifiers=[ 'License :: OSI Approved :: BSD License', 'Intended Audience :: Developers', + 'Programming Language :: Python :: 2.6', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.1', ], keywords='twitter', - author=author, - author_email=email, - url=homepage, + author=meta["author"], + author_email=meta["contact"], + url=meta["homepage"], license='BSD', packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), include_package_data=True, zip_safe=False, platforms=["any"], - install_requires = ['anyjson'], + install_requires=['anyjson'], + **extra )