|
@@ -18,30 +18,37 @@ import codecs
|
|
|
if sys.version_info < (2, 6):
|
|
|
raise Exception('Celery 3.1 requires Python 2.6 or higher.')
|
|
|
|
|
|
+downgrade_packages = [
|
|
|
+ 'celery.app.task',
|
|
|
+ 'celery.concurrency.processes',
|
|
|
+]
|
|
|
+orig_path = sys.path[:]
|
|
|
+for path in (os.path.curdir, os.getcwd()):
|
|
|
+ if path in sys.path:
|
|
|
+ sys.path.remove(path)
|
|
|
try:
|
|
|
- orig_path = sys.path[:]
|
|
|
- for path in (os.path.curdir, os.getcwd()):
|
|
|
- if path in sys.path:
|
|
|
- sys.path.remove(path)
|
|
|
- try:
|
|
|
- import celery.app
|
|
|
- import imp
|
|
|
- import shutil
|
|
|
- _, task_path, _ = imp.find_module('task', celery.app.__path__)
|
|
|
- if task_path.endswith('/task'):
|
|
|
- print('- force upgrading previous installation')
|
|
|
- print(' - removing {0!r} package...'.format(task_path))
|
|
|
- try:
|
|
|
- shutil.rmtree(os.path.abspath(task_path))
|
|
|
- except Exception:
|
|
|
- sys.stderr.write('Could not remove {0!r}: {1!r}\n'.format(
|
|
|
- task_path, sys.exc_info[1]))
|
|
|
- except ImportError:
|
|
|
- print('Upgrade: no old version found.')
|
|
|
- finally:
|
|
|
- sys.path[:] = orig_path
|
|
|
+ import imp
|
|
|
+ import shutil
|
|
|
+ for pkg in downgrade_packages:
|
|
|
+ try:
|
|
|
+ parent, module = pkg.rsplit('.', 1)
|
|
|
+ print('- Trying to upgrade %r in %r' % (module, parent))
|
|
|
+ parent_mod = __import__(parent, None, None, [parent])
|
|
|
+ _, mod_path, _ = imp.find_module(module, parent_mod.__path__)
|
|
|
+ if mod_path.endswith('/' + module):
|
|
|
+ print('- force upgrading previous installation')
|
|
|
+ print(' - removing {0!r} package...'.format(mod_path))
|
|
|
+ try:
|
|
|
+ shutil.rmtree(os.path.abspath(mod_path))
|
|
|
+ except Exception:
|
|
|
+ sys.stderr.write('Could not remove {0!r}: {1!r}\n'.format(
|
|
|
+ mod_path, sys.exc_info[1]))
|
|
|
+ except ImportError:
|
|
|
+ print('- upgrade %s: no old version found.' % module)
|
|
|
except:
|
|
|
pass
|
|
|
+finally:
|
|
|
+ sys.path[:] = orig_path
|
|
|
|
|
|
|
|
|
NAME = 'celery'
|