root / trunk / setup.py

Revision 117, 4.5 kB (checked in by fs, 4 days ago)

renamed providers to transports which reflects the real purpose better

  • Property svn:keywords set to Revision
Line 
1#!/usr/bin/env python
2# encoding: utf-8
3
4__version__ = "$Revision$"
5
6import os
7import sys
8from fnmatch import fnmatchcase
9from distutils.util import convert_path
10from setuptools import setup, find_packages
11
12if sys.version_info <= (2, 3):
13    raise SystemExit("Python 2.3 or later is required.")
14
15execfile(os.path.join("turbomail", "release.py"))
16
17def find_package_data( package='', where='.', only_in_packages=True):
18    """Finds static resources in package. Adapted from turbogears.finddata.""" 
19    out = {}
20    exclude = ('*.py', '*.pyc', '*.pyo', '*~', '.*', '*.bak', '*.swp*')
21    exclude_directories = ('.*', 'CVS', '_darcs', './build', './dist', 'EGG-INFO', '*.egg-info')
22    stack = [(convert_path(where), '', package, only_in_packages)]
23    while stack:
24        where, prefix, package, only_in_packages = stack.pop(0)
25        for name in os.listdir(where):
26            fn = os.path.join(where, name)
27            if os.path.isdir(fn):
28                bad_name = False
29                for pattern in exclude_directories:
30                    if (fnmatchcase(name, pattern)
31                        or fn.lower() == pattern.lower()):
32                        bad_name = True
33                        print >> sys.stderr, (
34                            "Directory %s ignored by pattern %s"
35                            % (fn, pattern))
36                        break
37                if bad_name:
38                    continue
39                if os.path.isfile(os.path.join(fn, '__init__.py')):
40                    if not package:
41                        new_package = name
42                    else:
43                        new_package = package + '.' + name
44                    stack.append((fn, '', new_package, False))
45                else:
46                    stack.append((fn, prefix + name + '/', package, only_in_packages))
47            elif package or not only_in_packages:
48                # is a file
49                bad_name = False
50                for pattern in exclude:
51                    if (fnmatchcase(name, pattern)
52                        or fn.lower() == pattern.lower()):
53                        bad_name = True
54                        print >> sys.stderr, (
55                            "File %s ignored by pattern %s"
56                            % (fn, pattern))
57                        break
58                if bad_name:
59                    continue
60                out.setdefault(package, []).append(prefix+name)
61    return out
62
63install_requires = []
64
65setup(
66        name="TurboMail",
67        version=version,
68       
69        description=description,
70        long_description=long_description,
71        author=author,
72        author_email=email,
73        url=url,
74        download_url=download_url,
75        license=license,
76       
77        install_requires = install_requires,
78        extras_require = {
79            'turbogears': ["TurboMail-Gears >= 0.1"],
80            'smime': ["TurboMail-SMIME >= 0.1"]
81        },
82       
83        zip_safe=True,
84        packages=find_packages(),
85        package_data = find_package_data(where='turbomail', package='turbomail'),
86        classifiers = [
87            'Development Status :: 5 - Production/Stable',
88            'Framework :: TurboGears',
89            'Intended Audience :: Developers',
90            'License :: OSI Approved :: MIT License',
91            'Operating System :: OS Independent',
92            'Programming Language :: Python',
93            'Topic :: Communications :: Email',
94            'Topic :: Software Development :: Libraries :: Python Modules',
95        ],
96        test_suite = 'nose.collector',
97        entry_points = {
98            'turbomail.managers': [
99                "demand = turbomail.managers.demand",
100#               "polling = turbomail.managers.polling",
101                "immediate = turbomail.managers.immediate"
102            ],
103            'turbomail.transports': [
104                "smtp = turbomail.transports.smtp",
105#               "sendmail = turbomail.transports.sendmail"
106#               "disk = turbomail.transports.disk",
107                "debug = turbomail.transports.debug"
108            ],
109            'turbomail.extensions': [
110                "utf8qp = turbomail.extensions.utf8qp",
111#               "notification = turbomail.extensions.notification",
112#               "smime = turbomail.extensions.smime",
113#               "gpg = turbomail.extensions.gpg",
114            ],
115            'turbogears.extensions': [
116                "turbomail = turbomail.tg_extension",
117            ],
118           
119            'turbogears.extensions': ["turbomail = turbomail.adapters.tg1"]
120        }
121    )
122   
Note: See TracBrowser for help on using the browser.