script/lib/tweetstream/setup.py
changeset 527 80e5b9543cac
parent 244 d4b7d6e2633f
parent 14 10e7a0c7c64f
equal deleted inserted replaced
526:3c14302784f8 527:80e5b9543cac
     1 #@PydevCodeAnalysisIgnore
     1 #@PydevCodeAnalysisIgnore
     2 from setuptools import setup, find_packages
     2 import sys
     3 import sys, os
     3 import os
     4 
     4 
     5 author = "Rune Halvorsen" 
     5 extra = {}
     6 email = "runefh@gmail.com"
     6 if sys.version_info >= (3, 0):
     7 version = "1.0.0"
     7     extra.update(use_2to3=True)
     8 homepage = "http://bitbucket.org/runeh/tweetstream/"
     8 
       
     9 
       
    10 try:
       
    11     from setuptools import setup, find_packages
       
    12 except ImportError:
       
    13     from distutils.core import setup, find_packages
       
    14 
       
    15 
       
    16 # -*- Distribution Meta -*-
       
    17 import re
       
    18 re_meta = re.compile(r'__(\w+?)__\s*=\s*(.*)')
       
    19 re_vers = re.compile(r'VERSION\s*=\s*\((.*?)\)')
       
    20 re_doc = re.compile(r'^"""(.+?)"""', re.M|re.S)
       
    21 rq = lambda s: s.strip("\"'")
       
    22 
       
    23 
       
    24 def add_default(m):
       
    25     attr_name, attr_value = m.groups()
       
    26     return ((attr_name, rq(attr_value)), )
       
    27 
       
    28 
       
    29 def add_version(m):
       
    30     v = list(map(rq, m.groups()[0].split(", ")))
       
    31     return (("VERSION", ".".join(v[0:3]) + "".join(v[3:])), )
       
    32 
       
    33 
       
    34 def add_doc(m):
       
    35     return (("doc", m.groups()[0].replace("\n", " ")), )
       
    36 
       
    37 pats = {re_meta: add_default,
       
    38         re_vers: add_version}
       
    39 here = os.path.abspath(os.path.dirname(__file__))
       
    40 meta_fh = open(os.path.join(here, "tweetstream/__init__.py"))
       
    41 try:
       
    42     meta = {}
       
    43     acc = []
       
    44     for line in meta_fh:
       
    45         if line.strip() == '# -eof meta-':
       
    46             break
       
    47         acc.append(line)
       
    48         for pattern, handler in pats.items():
       
    49             m = pattern.match(line.strip())
       
    50             if m:
       
    51                 meta.update(handler(m))
       
    52     m = re_doc.match("".join(acc).strip())
       
    53     if m:
       
    54         meta.update(add_doc(m))
       
    55 finally:
       
    56     meta_fh.close()
       
    57 
     9 
    58 
    10 setup(name='tweetstream',
    59 setup(name='tweetstream',
    11     version=version,
    60     version=meta["VERSION"],
    12     description="Simple Twitter streaming API access",
    61     description=meta["doc"],
    13     long_description=open("README").read(),
    62     long_description=open("README").read(),
    14     classifiers=[
    63     classifiers=[
    15         'License :: OSI Approved :: BSD License',
    64         'License :: OSI Approved :: BSD License',
    16         'Intended Audience :: Developers',
    65         'Intended Audience :: Developers',
       
    66         'Programming Language :: Python :: 2.6',
       
    67         'Programming Language :: Python :: 2.7',
       
    68         'Programming Language :: Python :: 3',
       
    69         'Programming Language :: Python :: 3.1',
    17     ],
    70     ],
    18     keywords='twitter',
    71     keywords='twitter',
    19     author=author,
    72     author=meta["author"],
    20     author_email=email,
    73     author_email=meta["contact"],
    21     url=homepage,
    74     url=meta["homepage"],
    22     license='BSD',
    75     license='BSD',
    23     packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
    76     packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
    24     include_package_data=True,
    77     include_package_data=True,
    25     zip_safe=False,
    78     zip_safe=False,
    26     platforms=["any"],
    79     platforms=["any"],
    27     install_requires = ['anyjson'],
    80     install_requires=['anyjson'],
       
    81     **extra
    28 )
    82 )