summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog5
-rw-r--r--docs/reference/index.rst1
-rw-r--r--docs/reference/kombu.syn.rst11
-rw-r--r--kombu/syn.py49
-rw-r--r--kombu/transport/__init__.py2
-rw-r--r--kombu/transport/mongodb.py2
-rw-r--r--kombu/utils/compat.py33
-rw-r--r--kombu/utils/eventio.py3
-rw-r--r--t/unit/test_syn.py65
-rw-r--r--t/unit/utils/test_compat.py57
10 files changed, 98 insertions, 130 deletions
diff --git a/Changelog b/Changelog
index 46a07eb8..18b5c0bb 100644
--- a/Changelog
+++ b/Changelog
@@ -99,6 +99,11 @@
Contributed by Joshua Harlow.
+- Removed module ``kombu.syn``
+
+ ``detect_environment`` has been moved to kombu.utils.compat
+
+
.. _version-3.0.35:
3.0.35
diff --git a/docs/reference/index.rst b/docs/reference/index.rst
index 5e963c9b..249bd050 100644
--- a/docs/reference/index.rst
+++ b/docs/reference/index.rst
@@ -23,7 +23,6 @@
kombu.pools
kombu.abstract
kombu.resource
- kombu.syn
kombu.async
kombu.async.hub
kombu.async.semaphore
diff --git a/docs/reference/kombu.syn.rst b/docs/reference/kombu.syn.rst
deleted file mode 100644
index f5043b68..00000000
--- a/docs/reference/kombu.syn.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-==========================================================
- Eventlet/Gevent Detection - ``kombu.syn``
-==========================================================
-
-.. contents::
- :local:
-.. currentmodule:: kombu.syn
-
-.. automodule:: kombu.syn
-
- .. autofunction:: detect_environment
diff --git a/kombu/syn.py b/kombu/syn.py
deleted file mode 100644
index f1f851b9..00000000
--- a/kombu/syn.py
+++ /dev/null
@@ -1,49 +0,0 @@
-"""Detect gevent/eventlet environment."""
-from __future__ import absolute_import, unicode_literals
-
-import sys
-
-__all__ = ['detect_environment']
-
-_environment = None
-
-
-def blocking(fun, *args, **kwargs):
- return fun(*args, **kwargs)
-
-
-def select_blocking_method(type):
- pass
-
-
-def _detect_environment():
- # ## -eventlet-
- if 'eventlet' in sys.modules:
- try:
- from eventlet.patcher import is_monkey_patched as is_eventlet
- import socket
-
- if is_eventlet(socket):
- return 'eventlet'
- except ImportError:
- pass
-
- # ## -gevent-
- if 'gevent' in sys.modules:
- try:
- from gevent import socket as _gsocket
- import socket
-
- if socket.socket is _gsocket.socket:
- return 'gevent'
- except ImportError:
- pass
-
- return 'default'
-
-
-def detect_environment():
- global _environment
- if _environment is None:
- _environment = _detect_environment()
- return _environment
diff --git a/kombu/transport/__init__.py b/kombu/transport/__init__.py
index 5d247798..2bfc9f5d 100644
--- a/kombu/transport/__init__.py
+++ b/kombu/transport/__init__.py
@@ -2,7 +2,7 @@
from __future__ import absolute_import, unicode_literals
from kombu.five import string_t
-from kombu.syn import _detect_environment
+from kombu.utils.compat import _detect_environment
from kombu.utils.imports import symbol_by_name
diff --git a/kombu/transport/mongodb.py b/kombu/transport/mongodb.py
index 1c1e0280..7620a2e6 100644
--- a/kombu/transport/mongodb.py
+++ b/kombu/transport/mongodb.py
@@ -14,7 +14,7 @@ from pymongo.cursor import CursorType
from kombu.exceptions import VersionMismatch
from kombu.five import Empty
-from kombu.syn import _detect_environment
+from kombu.utils.compat import _detect_environment
from kombu.utils.encoding import bytes_to_str
from kombu.utils.json import loads, dumps
from kombu.utils.objects import cached_property
diff --git a/kombu/utils/compat.py b/kombu/utils/compat.py
index b4ee763e..acd438b8 100644
--- a/kombu/utils/compat.py
+++ b/kombu/utils/compat.py
@@ -24,6 +24,7 @@ except ImportError: # pragma: no cover
except ImportError:
register_after_fork = None # noqa
+_environment = None
def coro(gen):
@@ -35,6 +36,38 @@ def coro(gen):
return wind_up
+def _detect_environment():
+ # ## -eventlet-
+ if 'eventlet' in sys.modules:
+ try:
+ from eventlet.patcher import is_monkey_patched as is_eventlet
+ import socket
+
+ if is_eventlet(socket):
+ return 'eventlet'
+ except ImportError:
+ pass
+
+ # ## -gevent-
+ if 'gevent' in sys.modules:
+ try:
+ from gevent import socket as _gsocket
+ import socket
+
+ if socket.socket is _gsocket.socket:
+ return 'gevent'
+ except ImportError:
+ pass
+
+ return 'default'
+
+
+def detect_environment():
+ global _environment
+ if _environment is None:
+ _environment = _detect_environment()
+ return _environment
+
def entrypoints(namespace):
try:
from pkg_resources import iter_entry_points
diff --git a/kombu/utils/eventio.py b/kombu/utils/eventio.py
index 6ab93678..f5454c5c 100644
--- a/kombu/utils/eventio.py
+++ b/kombu/utils/eventio.py
@@ -15,9 +15,8 @@ import sys
from numbers import Integral
-from kombu.syn import detect_environment
-
from . import fileno
+from .compat import detect_environment
__all__ = ['poll']
diff --git a/t/unit/test_syn.py b/t/unit/test_syn.py
deleted file mode 100644
index eaa80f90..00000000
--- a/t/unit/test_syn.py
+++ /dev/null
@@ -1,65 +0,0 @@
-from __future__ import absolute_import, unicode_literals
-
-import socket
-import sys
-import types
-
-from case import mock, patch
-
-from kombu import syn
-from kombu.five import bytes_if_py2
-
-
-class test_syn:
-
- def test_compat(self):
- assert syn.blocking(lambda: 10) == 10
- syn.select_blocking_method('foo')
-
- def test_detect_environment(self):
- try:
- syn._environment = None
- X = syn.detect_environment()
- assert syn._environment == X
- Y = syn.detect_environment()
- assert Y == X
- finally:
- syn._environment = None
-
- @mock.module_exists('eventlet', 'eventlet.patcher')
- def test_detect_environment_eventlet(self):
- with patch('eventlet.patcher.is_monkey_patched', create=True) as m:
- assert sys.modules['eventlet']
- m.return_value = True
- env = syn._detect_environment()
- m.assert_called_with(socket)
- assert env == 'eventlet'
-
- @mock.module_exists('gevent')
- def test_detect_environment_gevent(self):
- with patch('gevent.socket', create=True) as m:
- prev, socket.socket = socket.socket, m.socket
- try:
- assert sys.modules['gevent']
- env = syn._detect_environment()
- assert env == 'gevent'
- finally:
- socket.socket = prev
-
- def test_detect_environment_no_eventlet_or_gevent(self):
- try:
- sys.modules['eventlet'] = types.ModuleType(
- bytes_if_py2('eventlet'))
- sys.modules['eventlet.patcher'] = types.ModuleType(
- bytes_if_py2('patcher'))
- assert syn._detect_environment() == 'default'
- finally:
- sys.modules.pop('eventlet.patcher', None)
- sys.modules.pop('eventlet', None)
- syn._detect_environment()
- try:
- sys.modules['gevent'] = types.ModuleType(bytes_if_py2('gevent'))
- assert syn._detect_environment() == 'default'
- finally:
- sys.modules.pop('gevent', None)
- syn._detect_environment()
diff --git a/t/unit/utils/test_compat.py b/t/unit/utils/test_compat.py
index 963c50b6..c79b3202 100644
--- a/t/unit/utils/test_compat.py
+++ b/t/unit/utils/test_compat.py
@@ -1,7 +1,13 @@
from __future__ import absolute_import, unicode_literals
+import socket
+import sys
+import types
+
from case import Mock, mock, patch
+from kombu.five import bytes_if_py2
+from kombu.utils import compat
from kombu.utils.compat import entrypoints, maybe_fileno
@@ -28,3 +34,54 @@ def test_maybe_fileno():
assert maybe_fileno(f) is f.fileno()
f.fileno.side_effect = ValueError()
assert maybe_fileno(f) is None
+
+
+class test_detect_environment:
+
+ def test_detect_environment(self):
+ try:
+ compat._environment = None
+ X = compat.detect_environment()
+ assert compat._environment == X
+ Y = compat.detect_environment()
+ assert Y == X
+ finally:
+ compat._environment = None
+
+ @mock.module_exists('eventlet', 'eventlet.patcher')
+ def test_detect_environment_eventlet(self):
+ with patch('eventlet.patcher.is_monkey_patched', create=True) as m:
+ assert sys.modules['eventlet']
+ m.return_value = True
+ env = compat._detect_environment()
+ m.assert_called_with(socket)
+ assert env == 'eventlet'
+
+ @mock.module_exists('gevent')
+ def test_detect_environment_gevent(self):
+ with patch('gevent.socket', create=True) as m:
+ prev, socket.socket = socket.socket, m.socket
+ try:
+ assert sys.modules['gevent']
+ env = compat._detect_environment()
+ assert env == 'gevent'
+ finally:
+ socket.socket = prev
+
+ def test_detect_environment_no_eventlet_or_gevent(self):
+ try:
+ sys.modules['eventlet'] = types.ModuleType(
+ bytes_if_py2('eventlet'))
+ sys.modules['eventlet.patcher'] = types.ModuleType(
+ bytes_if_py2('patcher'))
+ assert compat._detect_environment() == 'default'
+ finally:
+ sys.modules.pop('eventlet.patcher', None)
+ sys.modules.pop('eventlet', None)
+ compat._detect_environment()
+ try:
+ sys.modules['gevent'] = types.ModuleType(bytes_if_py2('gevent'))
+ assert compat._detect_environment() == 'default'
+ finally:
+ sys.modules.pop('gevent', None)
+ compat._detect_environment()