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