| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 | 
							- #!/usr/bin/env python
 
- # -*- coding: utf-8 -*-
 
- import os
 
- import sys
 
- import codecs
 
- import platform
 
- try:
 
-     from setuptools import setup, find_packages, Command
 
-     from setuptools.command.test import test
 
-     from setuptools.command.install import install
 
- except 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 install
 
- import celery as distmeta
 
- def 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 _inner
 
- class 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):
 
-         pass
 
- class upgrade_and_install(install):
 
-     def run(self, *args, **kwargs):
 
-         Upgrade().run()
 
-         install.run(self, *args, **kwargs)
 
- install_requires = []
 
- try:
 
-     import importlib
 
- except ImportError:
 
-     install_requires.append("importlib")
 
- install_requires.extend([
 
-     "python-dateutil",
 
-     "anyjson",
 
-     "kombu>=0.9.1",
 
-     "pyparsing",
 
- ])
 
- py_version = sys.version_info
 
- if sys.version_info < (2, 6) and not sys.platform.startswith("java"):
 
-     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 platform
 
- if 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,
 
- )
 
 
  |