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 ) |