123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- """
- kombu.utils.compat
- ==================
- Helps compatibility with older Python versions.
- """
- from __future__ import absolute_import
- # ############# timedelta_seconds() -> delta.total_seconds ###################
- from datetime import timedelta
- HAVE_TIMEDELTA_TOTAL_SECONDS = hasattr(timedelta, 'total_seconds')
- if HAVE_TIMEDELTA_TOTAL_SECONDS: # pragma: no cover
- def timedelta_seconds(delta):
- """Convert :class:`datetime.timedelta` to seconds.
- Doesn't account for negative values.
- """
- return max(delta.total_seconds(), 0)
- else: # pragma: no cover
- def timedelta_seconds(delta): # noqa
- """Convert :class:`datetime.timedelta` to seconds.
- Doesn't account for negative values.
- """
- if delta.days < 0:
- return 0
- return delta.days * 86400 + delta.seconds + (delta.microseconds / 10e5)
- # ############# socket.error.errno ###########################################
- def get_errno(exc):
- """:exc:`socket.error` and :exc:`IOError` first got
- the ``.errno`` attribute in Py2.7"""
- try:
- return exc.errno
- except AttributeError:
- try:
- # e.args = (errno, reason)
- if isinstance(exc.args, tuple) and len(exc.args) == 2:
- return exc.args[0]
- except AttributeError:
- pass
- return 0
- # ############# collections.OrderedDict ######################################
- try:
- from collections import OrderedDict
- except ImportError:
- from ordereddict import OrderedDict # noqa
|