| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 | #!/usr/bin/env python# -*- coding: utf-8 -*-import osimport sysimport codecsimport platformtry:    from setuptools import setup, find_packages, Command    from setuptools.command.test import test    from setuptools.command.install import installexcept ImportError:    from ez_setup import use_setuptools    use_setuptools()    from setuptools import setup, find_packages, Command    from setuptools.command.test import test    from setuptools.command.install import installimport celery as distmetadef with_dist_not_in_path(fun):    def _inner(*args, **kwargs):        cwd = os.getcwd()        removed = []        for path in (cwd, cwd + "/", "."):            try:                i = sys.path.index(path)            except ValueError:                pass            else:                removed.append((i, path))                sys.path.remove(path)        try:            dist_module = sys.modules.pop("celery", None)            try:                import celery as existing_module            except ImportError, exc:                pass            else:                kwargs["celery"] = existing_module                return fun(*args, **kwargs)        finally:            for i, path in removed:                sys.path.insert(i, path)            if dist_module:                sys.modules["celery"] = dist_module    return _innerclass Upgrade(object):    old_modules = ("platform", )    def run(self, dist=False):        detect_ = self.detect_existing_installation        if not dist:            detect = with_dist_not_in_path(detect_)        else:            detect = lambda: detect_(distmeta)        path = detect()        if path:            self.remove_modules(path)    def detect_existing_installation(self, celery=None):        path = os.path.dirname(celery.__file__)        sys.stderr.write("* Upgrading old Celery from: \n\t%r\n" % path)        return path    def try_remove(self, file):        try:            os.remove(file)        except OSError:            pass    def remove_modules(self, path):        for module_name in self.old_modules:            sys.stderr.write("* Removing old %s.py...\n" % module_name)            self.try_remove(os.path.join(path, "%s.py" % module_name))            self.try_remove(os.path.join(path, "%s.pyc" % module_name))class mytest(test):    def run(self, *args, **kwargs):        Upgrade().run(dist=True)        test.run(self, *args, **kwargs)class quicktest(mytest):    extra_env = dict(SKIP_RLIMITS=1, QUICKTEST=1)    def run(self, *args, **kwargs):        for env_name, env_value in self.extra_env.items():            os.environ[env_name] = str(env_value)        mytest.run(self, *args, **kwargs)class upgrade(Command):    user_options = []    def run(self, *args, **kwargs):        Upgrade().run()    def initialize_options(self):        pass    def finalize_options(self):        passclass upgrade_and_install(install):    def run(self, *args, **kwargs):        Upgrade().run()        install.run(self, *args, **kwargs)install_requires = []try:    import importlibexcept ImportError:    install_requires.append("importlib")install_requires.extend([    "python-dateutil",    "anyjson",    "carrot>=0.10.7",    "pyparsing",])py_version = sys.version_infoif sys.version_info < (2, 6):    install_requires.append("multiprocessing")if sys.version_info < (2, 5):    install_requires.append("uuid")if os.path.exists("README.rst"):    long_description = codecs.open("README.rst", "r", "utf-8").read()else:    long_description = "See http://pypi.python.org/pypi/celery"console_scripts = [        'celerybeat = celery.bin.celerybeat:main',        'camqadm = celery.bin.camqadm:main',        'celeryev = celery.bin.celeryev:main',        'celeryctl = celery.bin.celeryctl:main',        'celeryd-multi = celery.bin.celeryd_multi:main',]import platformif platform.system() == "Windows":    console_scripts.append('celeryd = celery.bin.celeryd:windows_main')else:    console_scripts.append('celeryd = celery.bin.celeryd:main')setup(    name="celery",    version=distmeta.__version__,    description=distmeta.__doc__,    author=distmeta.__author__,    author_email=distmeta.__contact__,    url=distmeta.__homepage__,    platforms=["any"],    license="BSD",    packages=find_packages(exclude=['ez_setup', 'tests', 'tests.*']),    scripts=["bin/celeryd", "bin/celerybeat",             "bin/camqadm", "bin/celeryd-multi",             "bin/celeryev"],    zip_safe=False,    install_requires=install_requires,    tests_require=['nose', 'nose-cover3', 'unittest2', 'simplejson'],    cmdclass={"install": upgrade_and_install,              "upgrade": upgrade,              "test": mytest,              "quicktest": quicktest},    test_suite="nose.collector",    classifiers=[        "Development Status :: 5 - Production/Stable",        "Operating System :: OS Independent",        "Environment :: No Input/Output (Daemon)",        "Intended Audience :: Developers",        "License :: OSI Approved :: BSD License",        "Operating System :: POSIX",        "Topic :: Communications",        "Topic :: System :: Distributed Computing",        "Topic :: Software Development :: Libraries :: Python Modules",        "Programming Language :: Python",        "Programming Language :: Python :: 2",        "Programming Language :: Python :: 2.4",        "Programming Language :: Python :: 2.5",        "Programming Language :: Python :: 2.6",        "Programming Language :: Python :: 2.7",    ],    entry_points={        'console_scripts': console_scripts,    },    long_description=long_description,)
 |