Browse Source

unicode literals

Ask Solem 11 years ago
parent
commit
43ef032105

+ 1 - 1
celery/__main__.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import sys
 

+ 1 - 1
celery/_state.py

@@ -9,7 +9,7 @@
     This module shouldn't be used directly.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import os
 import sys

+ 1 - 1
celery/app/__init__.py

@@ -6,7 +6,7 @@
     Celery Application.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import os
 

+ 1 - 2
celery/backends/base.py

@@ -33,7 +33,6 @@ from celery.five import items
 from celery.result import (
     GroupResult, ResultBase, allow_join_result, result_from_tuple,
 )
-from celery.utils import timeutils
 from celery.utils.functional import LRUCache
 from celery.utils.log import get_logger
 from celery.utils.serialization import (
@@ -226,7 +225,7 @@ class BaseBackend(object):
         if value is None:
             value = self.app.conf.CELERY_TASK_RESULT_EXPIRES
         if isinstance(value, timedelta):
-            value = timeutils.timedelta_seconds(value)
+            value = value.total_seconds()
         if value is not None and type:
             return type(value)
         return value

+ 4 - 5
celery/backends/cassandra.py

@@ -22,7 +22,7 @@ from celery import states
 from celery.exceptions import ImproperlyConfigured
 from celery.five import monotonic
 from celery.utils.log import get_logger
-from celery.utils.timeutils import maybe_timedelta, timedelta_seconds
+from celery.utils.timeutils import maybe_timedelta
 
 from .base import BaseBackend
 
@@ -148,14 +148,13 @@ class CassandraBackend(BaseBackend):
                     'children': self.encode(
                         self.current_task_children(request),
                     )}
+            ttl = self.expires and max(self.expires.total_seconds(), 0)
             if self.detailed_mode:
                 meta['result'] = result
-                cf.insert(task_id, {date_done: self.encode(meta)},
-                          ttl=self.expires and timedelta_seconds(self.expires))
+                cf.insert(task_id, {date_done: self.encode(meta)}, ttl=ttl)
             else:
                 meta['result'] = self.encode(result)
-                cf.insert(task_id, meta,
-                          ttl=self.expires and timedelta_seconds(self.expires))
+                cf.insert(task_id, meta, ttl=ttl)
 
         return self._retry_on_error(_do_store)
 

+ 1 - 1
celery/contrib/rdb.py

@@ -34,7 +34,7 @@ Inspired by http://snippets.dzone.com/posts/show/7248
     base port.  The selected port will be logged by the worker.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import errno
 import os

+ 1 - 1
celery/events/dumper.py

@@ -7,7 +7,7 @@
     as they happen. Think of it like a `tcpdump` for Celery events.
 
 """
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import sys
 

+ 6 - 6
celery/schedules.py

@@ -21,8 +21,8 @@ from . import current_app
 from .five import range, string_t
 from .utils import is_iterable
 from .utils.timeutils import (
-    timedelta_seconds, weekday, maybe_timedelta, remaining,
-    humanize_seconds, timezone, maybe_make_aware, ffwd
+    weekday, maybe_timedelta, remaining, humanize_seconds,
+    timezone, maybe_make_aware, ffwd
 )
 from .datastructures import AttributeDict
 
@@ -116,7 +116,7 @@ class schedule(object):
         """
         last_run_at = self.maybe_make_aware(last_run_at)
         rem_delta = self.remaining_estimate(last_run_at)
-        remaining_s = timedelta_seconds(rem_delta)
+        remaining_s = max(rem_delta.total_seconds(), 0)
         if remaining_s == 0:
             return schedstate(is_due=True, next=self.seconds)
         return schedstate(is_due=False, next=remaining_s)
@@ -142,7 +142,7 @@ class schedule(object):
 
     @property
     def seconds(self):
-        return timedelta_seconds(self.run_every)
+        return max(self.run_every.total_seconds(), 0)
 
     @property
     def human_seconds(self):
@@ -562,11 +562,11 @@ class crontab(schedule):
 
         """
         rem_delta = self.remaining_estimate(last_run_at)
-        rem = timedelta_seconds(rem_delta)
+        rem = max(rem_delta.total_seconds(), 0)
         due = rem == 0
         if due:
             rem_delta = self.remaining_estimate(self.now())
-            rem = timedelta_seconds(rem_delta)
+            rem = max(rem_delta.total_seconds(), 0)
         return schedstate(due, rem)
 
     def __eq__(self, other):

+ 4 - 3
celery/tests/backends/test_redis.py

@@ -10,7 +10,6 @@ from celery import group
 from celery import uuid
 from celery.datastructures import AttributeDict
 from celery.exceptions import ImproperlyConfigured
-from celery.utils.timeutils import timedelta_seconds
 
 from celery.tests.case import (
     AppCase, Mock, MockCallbacks, SkipTest, depends_on_current_app, patch,
@@ -202,8 +201,10 @@ class test_RedisBackend(AppCase):
 
     def test_expires_is_None(self):
         b = self.Backend(expires=None, app=self.app, new_join=True)
-        self.assertEqual(b.expires, timedelta_seconds(
-            self.app.conf.CELERY_TASK_RESULT_EXPIRES))
+        self.assertEqual(
+            b.expires,
+            self.app.conf.CELERY_TASK_RESULT_EXPIRES.total_seconds(),
+        )
 
     def test_expires_is_timedelta(self):
         b = self.Backend(

+ 3 - 3
celery/tests/compat_modules/test_compat.py

@@ -10,7 +10,6 @@ from celery.task import (
     periodic_task,
     PeriodicTask
 )
-from celery.utils.timeutils import timedelta_seconds
 
 from celery.tests.case import AppCase, depends_on_current_app
 
@@ -51,8 +50,9 @@ class test_periodic_tasks(AppCase):
             self.now() - p.run_every.run_every,
         )
         self.assertTrue(due)
-        self.assertEqual(remaining,
-                         timedelta_seconds(p.run_every.run_every))
+        self.assertEqual(
+            remaining, p.run_every.run_every.total_seconds(),
+        )
 
     def test_schedule_repr(self):
         p = self.my_periodic

+ 0 - 14
celery/tests/utils/test_timeutils.py

@@ -10,7 +10,6 @@ from celery.utils.timeutils import (
     humanize_seconds,
     maybe_iso8601,
     maybe_timedelta,
-    timedelta_seconds,
     timezone,
     rate,
     remaining,
@@ -83,19 +82,6 @@ class test_timeutils(Case):
         for delta, shoulda in deltamap:
             self.assertEqual(D(dt, delta), shoulda)
 
-    def test_timedelta_seconds(self):
-        deltamap = ((timedelta(seconds=1), 1),
-                    (timedelta(seconds=27), 27),
-                    (timedelta(minutes=3), 3 * 60),
-                    (timedelta(hours=4), 4 * 60 * 60),
-                    (timedelta(days=3), 3 * 86400))
-        for delta, seconds in deltamap:
-            self.assertEqual(timedelta_seconds(delta), seconds)
-
-    def test_timedelta_seconds_returns_0_on_negative_time(self):
-        delta = timedelta(days=-2)
-        self.assertEqual(timedelta_seconds(delta), 0)
-
     def test_humanize_seconds(self):
         t = ((4 * 60 * 60 * 24, '4.00 days'),
              (1 * 60 * 60 * 24, '1.00 day'),

+ 2 - 3
celery/utils/timeutils.py

@@ -16,7 +16,6 @@ from calendar import monthrange
 from datetime import date, datetime, timedelta, tzinfo
 
 from kombu.utils import cached_property, reprcall
-from kombu.utils.compat import timedelta_seconds
 
 from pytz import timezone as _timezone, AmbiguousTimeError
 
@@ -26,7 +25,7 @@ from .functional import dictfilter
 from .iso8601 import parse_iso8601
 from .text import pluralize
 
-__all__ = ['LocalTimezone', 'timezone', 'maybe_timedelta', 'timedelta_seconds',
+__all__ = ['LocalTimezone', 'timezone', 'maybe_timedelta',
            'delta_resolution', 'remaining', 'rate', 'weekday',
            'humanize_seconds', 'maybe_iso8601', 'is_naive', 'make_aware',
            'localize', 'to_utc', 'maybe_make_aware', 'ffwd', 'utcoffset',
@@ -149,7 +148,7 @@ def delta_resolution(dt, delta):
     which will just return the original datetime.
 
     """
-    delta = timedelta_seconds(delta)
+    delta = max(delta.total_seconds(), 0)
 
     resolutions = ((3, lambda x: x / 86400),
                    (4, lambda x: x / 3600),

+ 1 - 19
docs/internals/app-overview.rst

@@ -98,29 +98,11 @@ Deprecations
   Inferior to the ping remote control command.
   Will be removed in Celery 2.3.
 
-Removed deprecations
-====================
-
-* `celery.utils.timedelta_seconds`
-    Use: :func:`celery.utils.timeutils.timedelta_seconds`
-
-* `celery.utils.defaultdict`
-    Use: :func:`celery.utils.compat.defaultdict`
-
-* `celery.utils.all`
-    Use: :func:`celery.utils.compat.all`
-
-* `celery.task.apply_async`
-    Use app.send_task
-
-* `celery.task.tasks`
-    Use :data:`celery.registry.tasks`
-
 Aliases (Pending deprecation)
 =============================
 
 * celery.task.base
-    * .Task -> {app.create_task_cls}
+    * .Task -> {app.Task / :class:`celery.app.task.Task`}
 
 * celery.task.sets
     * .TaskSet -> {app.TaskSet}

+ 3 - 2
extra/release/verify_config_reference.py

@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, unicode_literals
 
 from fileinput import input as _input
 from sys import exit, stderr
@@ -27,8 +27,9 @@ def is_ignored(setting, option):
 def find_undocumented_settings(directive='.. setting:: '):
     settings = dict(flatten(NAMESPACES))
     all = set(settings)
+    inp = (l.decode('utf-8') for l in _input())
     documented = set(
-        line.strip()[len(directive):].strip() for line in _input()
+        line.strip()[len(directive):].strip() for line in inp
         if line.strip().startswith(directive)
     )
     return [setting for setting in all ^ documented

+ 1 - 1
funtests/benchmarks/bench_worker.py

@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, unicode_literals
 
 import os
 import sys

+ 1 - 1
funtests/stress/stress/__main__.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 from celery.bin.base import Command, Option
 

+ 1 - 1
funtests/stress/stress/fbi.py

@@ -1,4 +1,4 @@
-from __future__ import absolute_import, print_function
+from __future__ import absolute_import, print_function, unicode_literals
 
 import socket
 import sys

+ 2 - 2
funtests/suite/test_leak.py

@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, unicode_literals
 
 import gc
 import os
@@ -15,7 +15,7 @@ from celery.tests.case import SkipTest, unittest
 
 import suite  # noqa
 
-GET_RSIZE = '/bin/ps -p {pid} -o rss='
+GET_RSIZE = b'/bin/ps -p {pid} -o rss='
 
 
 class Sizes(list):

+ 1 - 1
pavement.py

@@ -1,4 +1,4 @@
-from __future__ import print_function
+from __future__ import print_function, unicode_literals
 
 import sys
 import traceback