Преглед на файлове

Python 2.6: kwargs cannot be unicode (Issue #1679)

Ask Solem преди 11 години
родител
ревизия
4d230e20d1
променени са 1 файла, в които са добавени 4 реда и са изтрити 1 реда
  1. 4 1
      celery/events/state.py

+ 4 - 1
celery/events/state.py

@@ -18,6 +18,7 @@
 """
 """
 from __future__ import absolute_import
 from __future__ import absolute_import
 
 
+import sys
 import threading
 import threading
 
 
 from datetime import datetime
 from datetime import datetime
@@ -48,6 +49,8 @@ Substantial drift from %s may mean clocks are out of sync.  Current drift is
 %s seconds.  [orig: %s recv: %s]
 %s seconds.  [orig: %s recv: %s]
 """
 """
 
 
+CAN_KWDICT = sys.version_info >= (2, 6, 5)
+
 logger = get_logger(__name__)
 logger = get_logger(__name__)
 warn = logger.warning
 warn = logger.warning
 
 
@@ -352,7 +355,7 @@ class State(object):
             worker, created = self.get_or_create_worker(hostname)
             worker, created = self.get_or_create_worker(hostname)
             handler = getattr(worker, 'on_' + type, None)
             handler = getattr(worker, 'on_' + type, None)
             if handler:
             if handler:
-                handler(**fields)
+                handler(**(fields if CAN_KWDICT else kwdict(fields)))
             return worker, created
             return worker, created
 
 
     def task_event(self, type, fields, timetuple=timetuple):
     def task_event(self, type, fields, timetuple=timetuple):