summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.com>2020-05-11 10:17:47 +0200
committerAndreas Jaeger <aj@suse.com>2020-05-11 10:21:58 +0200
commite44c9883066d9b2d081a594b97aac3d598d491c9 (patch)
tree39bebef513683bc541c6e1206904ac1bcc8a5b8a
parentc1768401f7a47bd88c044687a00f2e139f1985b4 (diff)
downloadoslo-messaging-e44c9883066d9b2d081a594b97aac3d598d491c9.tar.gz
Remove six usage
Remove six, the python 2/3 compatibility library. It's not needed anymore since the repo is python3 only. Remove a now unneeded hacking test. Change-Id: I40522c4accb4aaf8115d11fee8b081e2d991cb4d
-rw-r--r--oslo_messaging/_drivers/amqp.py3
-rw-r--r--oslo_messaging/_drivers/amqp1_driver/controller.py26
-rw-r--r--oslo_messaging/_drivers/amqpdriver.py12
-rw-r--r--oslo_messaging/_drivers/base.py16
-rw-r--r--oslo_messaging/_drivers/common.py21
-rw-r--r--oslo_messaging/_drivers/impl_fake.py10
-rw-r--r--oslo_messaging/_drivers/impl_rabbit.py16
-rw-r--r--oslo_messaging/_drivers/pool.py4
-rw-r--r--oslo_messaging/dispatcher.py5
-rw-r--r--oslo_messaging/exceptions.py4
-rw-r--r--oslo_messaging/hacking/checks.py20
-rw-r--r--oslo_messaging/notify/dispatcher.py4
-rw-r--r--oslo_messaging/notify/filter.py4
-rw-r--r--oslo_messaging/notify/notifier.py10
-rw-r--r--oslo_messaging/rpc/client.py4
-rw-r--r--oslo_messaging/rpc/dispatcher.py5
-rw-r--r--oslo_messaging/serializer.py4
-rw-r--r--oslo_messaging/server.py5
-rw-r--r--oslo_messaging/tests/__init__.py2
-rw-r--r--oslo_messaging/tests/drivers/test_amqp_driver.py8
-rw-r--r--oslo_messaging/tests/drivers/test_impl_kafka.py3
-rw-r--r--oslo_messaging/tests/drivers/test_impl_rabbit.py2
-rw-r--r--oslo_messaging/tests/functional/test_functional.py3
-rw-r--r--oslo_messaging/tests/functional/utils.py8
-rw-r--r--oslo_messaging/tests/notify/test_dispatcher.py2
-rw-r--r--oslo_messaging/tests/notify/test_listener.py2
-rw-r--r--oslo_messaging/tests/notify/test_log_handler.py2
-rw-r--r--oslo_messaging/tests/notify/test_logger.py2
-rw-r--r--oslo_messaging/tests/notify/test_middleware.py2
-rwxr-xr-xoslo_messaging/tests/notify/test_notifier.py2
-rwxr-xr-xoslo_messaging/tests/rpc/test_client.py2
-rwxr-xr-xoslo_messaging/tests/rpc/test_dispatcher.py2
-rw-r--r--oslo_messaging/tests/rpc/test_server.py3
-rw-r--r--oslo_messaging/tests/test_exception_serialization.py9
-rw-r--r--oslo_messaging/tests/test_opts.py4
-rwxr-xr-xoslo_messaging/tests/test_transport.py8
-rw-r--r--oslo_messaging/tests/test_utils.py2
-rw-r--r--oslo_messaging/transport.py5
-rw-r--r--requirements.txt1
-rw-r--r--test-requirements.txt1
-rwxr-xr-xtools/simulator.py13
-rw-r--r--tox.ini2
42 files changed, 102 insertions, 161 deletions
diff --git a/oslo_messaging/_drivers/amqp.py b/oslo_messaging/_drivers/amqp.py
index a8289db..d4db2c6 100644
--- a/oslo_messaging/_drivers/amqp.py
+++ b/oslo_messaging/_drivers/amqp.py
@@ -26,7 +26,6 @@ import collections
import uuid
from oslo_config import cfg
-import six
from oslo_messaging._drivers import common as rpc_common
@@ -62,7 +61,7 @@ def unpack_context(msg):
"""Unpack context from msg."""
context_dict = {}
for key in list(msg.keys()):
- key = six.text_type(key)
+ key = str(key)
if key.startswith('_context_'):
value = msg.pop(key)
context_dict[key[9:]] = value
diff --git a/oslo_messaging/_drivers/amqp1_driver/controller.py b/oslo_messaging/_drivers/amqp1_driver/controller.py
index 3e2f5bb..6297507 100644
--- a/oslo_messaging/_drivers/amqp1_driver/controller.py
+++ b/oslo_messaging/_drivers/amqp1_driver/controller.py
@@ -29,6 +29,7 @@ import collections
import logging
import os
import platform
+import queue
import random
import sys
import threading
@@ -38,9 +39,6 @@ import uuid
from oslo_utils import eventletutils
import proton
import pyngus
-from six import iteritems
-from six import itervalues
-from six import moves
from oslo_messaging._drivers.amqp1_driver.addressing import AddresserFactory
from oslo_messaging._drivers.amqp1_driver.addressing import keyify
@@ -868,7 +866,7 @@ class Controller(pyngus.ConnectionEventHandler):
self._command = os.path.basename(sys.argv[0])
self._pid = os.getpid()
# queue of drivertask objects to execute on the eventloop thread
- self._tasks = moves.queue.Queue(maxsize=500)
+ self._tasks = queue.Queue(maxsize=500)
# limit the number of Task()'s to execute per call to _process_tasks().
# This allows the eventloop main thread to return to servicing socket
# I/O in a timely manner
@@ -961,7 +959,7 @@ class Controller(pyngus.ConnectionEventHandler):
LOG.debug("Waiting for eventloop to exit")
self.processor.join(timeout)
self._hard_reset("Shutting down")
- for sender in itervalues(self._all_senders):
+ for sender in self._all_senders.values():
sender.destroy()
self._all_senders.clear()
self._servers.clear()
@@ -1134,7 +1132,7 @@ class Controller(pyngus.ConnectionEventHandler):
'vhost': ("/" + self.hosts.virtual_host
if self.hosts.virtual_host else "")})
- for sender in itervalues(self._all_senders):
+ for sender in self._all_senders.values():
sender.attach(self._socket_connection.pyngus_conn,
self.reply_link, self.addresser)
@@ -1181,8 +1179,8 @@ class Controller(pyngus.ConnectionEventHandler):
self.addresser = self.addresser_factory(props,
self.hosts.virtual_host
if self.pseudo_vhost else None)
- for servers in itervalues(self._servers):
- for server in itervalues(servers):
+ for servers in self._servers.values():
+ for server in servers.values():
server.attach(self._socket_connection.pyngus_conn,
self.addresser)
self.reply_link = Replies(self._socket_connection.pyngus_conn,
@@ -1279,7 +1277,7 @@ class Controller(pyngus.ConnectionEventHandler):
del self._purged_senders[:]
self._active_senders.clear()
unused = []
- for key, sender in iteritems(self._all_senders):
+ for key, sender in self._all_senders.items():
# clean up any sender links that no longer have messages to send
if sender.pending_messages == 0:
unused.append(key)
@@ -1289,8 +1287,8 @@ class Controller(pyngus.ConnectionEventHandler):
for key in unused:
self._all_senders[key].destroy(reason)
del self._all_senders[key]
- for servers in itervalues(self._servers):
- for server in itervalues(servers):
+ for servers in self._servers.values():
+ for server in servers.values():
server.reset()
if self.reply_link:
self.reply_link.destroy()
@@ -1300,13 +1298,13 @@ class Controller(pyngus.ConnectionEventHandler):
def _detach_senders(self):
"""Close all sender links"""
- for sender in itervalues(self._all_senders):
+ for sender in self._all_senders.values():
sender.detach()
def _detach_servers(self):
"""Close all listener links"""
- for servers in itervalues(self._servers):
- for server in itervalues(servers):
+ for servers in self._servers.values():
+ for server in servers.values():
server.detach()
def _purge_sender_links(self):
diff --git a/oslo_messaging/_drivers/amqpdriver.py b/oslo_messaging/_drivers/amqpdriver.py
index 89e3fd3..011222c 100644
--- a/oslo_messaging/_drivers/amqpdriver.py
+++ b/oslo_messaging/_drivers/amqpdriver.py
@@ -14,6 +14,7 @@
# under the License.
import logging
+import queue
import threading
import time
import uuid
@@ -21,7 +22,6 @@ import uuid
import cachetools
from oslo_utils import eventletutils
from oslo_utils import timeutils
-from six import moves
import oslo_messaging
from oslo_messaging._drivers import amqp as rpc_amqp
@@ -48,7 +48,7 @@ class MessageOperationsHandler(object):
def __init__(self, name):
self.name = "%s (%s)" % (name, hex(id(self)))
- self._tasks = moves.queue.Queue()
+ self._tasks = queue.Queue()
self._shutdown = eventletutils.Event()
self._shutdown_thread = threading.Thread(
@@ -75,7 +75,7 @@ class MessageOperationsHandler(object):
while True:
try:
task = self._tasks.get(block=False)
- except moves.queue.Empty:
+ except queue.Empty:
break
task()
@@ -403,7 +403,7 @@ class ReplyWaiters(object):
def get(self, msg_id, timeout):
try:
return self._queues[msg_id].get(block=True, timeout=timeout)
- except moves.queue.Empty:
+ except queue.Empty:
raise oslo_messaging.MessagingTimeout(
'Timed out waiting for a reply '
'to message ID %s' % msg_id)
@@ -418,7 +418,7 @@ class ReplyWaiters(object):
queue.put(message_data)
def add(self, msg_id):
- self._queues[msg_id] = moves.queue.Queue()
+ self._queues[msg_id] = queue.Queue()
queues_length = len(self._queues)
if queues_length > self._wrn_threshold:
LOG.warning('Number of call queues is %(queues_length)s, '
@@ -529,7 +529,7 @@ class ReplyWaiter(object):
timeout = cm_timeout
try:
message = self.waiters.get(msg_id, timeout=timeout)
- except moves.queue.Empty:
+ except queue.Empty:
self._raise_timeout_exception(msg_id)
reply, ending = self._process_reply(message)
diff --git a/oslo_messaging/_drivers/base.py b/oslo_messaging/_drivers/base.py
index fb44540..2947e6d 100644
--- a/oslo_messaging/_drivers/base.py
+++ b/oslo_messaging/_drivers/base.py
@@ -18,7 +18,6 @@ import threading
from oslo_config import cfg
from oslo_utils import excutils
from oslo_utils import timeutils
-import six
from oslo_messaging import exceptions
@@ -65,8 +64,7 @@ class TransportDriverError(exceptions.MessagingException):
"""Base class for transport driver specific exceptions."""
-@six.add_metaclass(abc.ABCMeta)
-class IncomingMessage(object):
+class IncomingMessage(object, metaclass=abc.ABCMeta):
"""The IncomingMessage class represents a single message received from the
messaging backend. Instances of this class are passed to up a server's
messaging processing logic. The backend driver must provide a concrete
@@ -116,8 +114,7 @@ class IncomingMessage(object):
"""
-@six.add_metaclass(abc.ABCMeta)
-class RpcIncomingMessage(IncomingMessage):
+class RpcIncomingMessage(IncomingMessage, metaclass=abc.ABCMeta):
"""The RpcIncomingMessage represents an RPC request message received from
the backend. This class must be used for RPC calls that return a value to
the caller.
@@ -170,8 +167,7 @@ class RpcIncomingMessage(IncomingMessage):
"""
-@six.add_metaclass(abc.ABCMeta)
-class PollStyleListener(object):
+class PollStyleListener(object, metaclass=abc.ABCMeta):
"""A PollStyleListener is used to transfer received messages to a server
for processing. A polling pattern is used to retrieve messages. A
PollStyleListener uses a separate thread to run the polling loop. A
@@ -227,8 +223,7 @@ class PollStyleListener(object):
pass
-@six.add_metaclass(abc.ABCMeta)
-class Listener(object):
+class Listener(object, metaclass=abc.ABCMeta):
"""A Listener is used to transfer incoming messages from the driver to a
server for processing. A callback is used by the driver to transfer the
messages.
@@ -328,8 +323,7 @@ class PollStyleListenerAdapter(Listener):
self._poll_style_listener.cleanup()
-@six.add_metaclass(abc.ABCMeta)
-class BaseDriver(object):
+class BaseDriver(object, metaclass=abc.ABCMeta):
"""Defines the backend driver interface. Each backend driver implementation
must provide a concrete derivation of this class implementing the backend
specific logic for its public methods.
diff --git a/oslo_messaging/_drivers/common.py b/oslo_messaging/_drivers/common.py
index 64351b2..54c6f7f 100644
--- a/oslo_messaging/_drivers/common.py
+++ b/oslo_messaging/_drivers/common.py
@@ -15,13 +15,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-# TODO(smcginnis) update this once six has support for collections.abc
-# (https://github.com/benjaminp/six/pull/241) or clean up once we drop py2.7.
-try:
- from collections.abc import Mapping
-except ImportError:
- from collections import Mapping
-
+from collections.abc import Mapping
import copy
import logging
import sys
@@ -29,14 +23,13 @@ import traceback
from oslo_serialization import jsonutils
from oslo_utils import timeutils
-import six
import oslo_messaging
from oslo_messaging import _utils as utils
LOG = logging.getLogger(__name__)
-_EXCEPTIONS_MODULE = 'exceptions' if six.PY2 else 'builtins'
+_EXCEPTIONS_MODULE = 'builtins'
_EXCEPTIONS_MODULES = ['exceptions', 'builtins']
@@ -184,8 +177,8 @@ def serialize_remote_exception(failure_info):
# NOTE(matiu): With cells, it's possible to re-raise remote, remote
# exceptions. Lets turn it back into the original exception type.
- cls_name = six.text_type(failure.__class__.__name__)
- mod_name = six.text_type(failure.__class__.__module__)
+ cls_name = str(failure.__class__.__name__)
+ mod_name = str(failure.__class__.__module__)
if (cls_name.endswith(_REMOTE_POSTFIX) and
mod_name.endswith(_REMOTE_POSTFIX)):
cls_name = cls_name[:-len(_REMOTE_POSTFIX)]
@@ -194,7 +187,7 @@ def serialize_remote_exception(failure_info):
data = {
'class': cls_name,
'module': mod_name,
- 'message': six.text_type(failure),
+ 'message': str(failure),
'tb': tb,
'args': failure.args,
'kwargs': kwargs
@@ -206,7 +199,7 @@ def serialize_remote_exception(failure_info):
def deserialize_remote_exception(data, allowed_remote_exmods):
- failure = jsonutils.loads(six.text_type(data))
+ failure = jsonutils.loads(str(data))
trace = failure.get('tb', [])
message = failure.get('message', "") + "\n" + "\n".join(trace)
@@ -235,7 +228,7 @@ def deserialize_remote_exception(data, allowed_remote_exmods):
failure = klass(*failure.get('args', []), **failure.get('kwargs', {}))
except (AttributeError, TypeError, ImportError) as error:
LOG.warning("Failed to rebuild remote exception due to error: %s",
- six.text_type(error))
+ str(error))
return oslo_messaging.RemoteError(name, failure.get('message'), trace)
ex_type = type(failure)
diff --git a/oslo_messaging/_drivers/impl_fake.py b/oslo_messaging/_drivers/impl_fake.py
index 47fa4a3..93e8bc7 100644
--- a/oslo_messaging/_drivers/impl_fake.py
+++ b/oslo_messaging/_drivers/impl_fake.py
@@ -14,12 +14,12 @@
# under the License.
import copy
+import queue
import threading
import time
from oslo_serialization import jsonutils
from oslo_utils import eventletutils
-from six import moves
import oslo_messaging
from oslo_messaging._drivers import base
@@ -133,8 +133,8 @@ class FakeExchange(object):
self.deliver_message(topic, ctxt, message, server=server,
fanout=fanout, reply_q=reply_q)
- for queue in queues:
- queue.append((ctxt, message, reply_q, requeue))
+ for q in queues:
+ q.append((ctxt, message, reply_q, requeue))
def poll(self, target, pool):
with self._queues_lock:
@@ -195,7 +195,7 @@ class FakeDriver(base.BaseDriver):
reply_q = None
if wait_for_reply:
- reply_q = moves.queue.Queue()
+ reply_q = queue.Queue()
exchange.deliver_message(target.topic, ctxt, message,
server=target.server,
@@ -209,7 +209,7 @@ class FakeDriver(base.BaseDriver):
raise failure
else:
return reply
- except moves.queue.Empty:
+ except queue.Empty:
raise oslo_messaging.MessagingTimeout(
'No reply on topic %s' % target.topic)
diff --git a/oslo_messaging/_drivers/impl_rabbit.py b/oslo_messaging/_drivers/impl_rabbit.py
index 2018c5e..c5c3970 100644
--- a/oslo_messaging/_drivers/impl_rabbit.py
+++ b/oslo_messaging/_drivers/impl_rabbit.py
@@ -24,6 +24,7 @@ import ssl
import sys
import threading
import time
+from urllib import parse
import uuid
import kombu
@@ -34,9 +35,6 @@ from oslo_config import cfg
from oslo_log import log as logging
from oslo_utils import eventletutils
from oslo_utils import importutils
-import six
-import six.moves
-from six.moves.urllib import parse
import oslo_messaging
from oslo_messaging._drivers import amqp as rpc_amqp
@@ -320,7 +318,7 @@ class Consumer(object):
self.declare(conn)
try:
self.queue.consume(callback=self._callback,
- consumer_tag=six.text_type(tag),
+ consumer_tag=str(tag),
nowait=self.nowait)
except conn.connection.channel_errors as exc:
# We retries once because of some races that we can
@@ -340,14 +338,14 @@ class Consumer(object):
exc.method_name == 'Basic.ack'):
self.declare(conn)
self.queue.consume(callback=self._callback,
- consumer_tag=six.text_type(tag),
+ consumer_tag=str(tag),
nowait=self.nowait)
else:
raise
def cancel(self, tag):
LOG.trace('ConsumerBase.cancel: canceling %s', tag)
- self.queue.cancel(six.text_type(tag))
+ self.queue.cancel(str(tag))
def _callback(self, message):
"""Call callback with deserialized message.
@@ -753,7 +751,7 @@ class Connection(object):
info = {'err_str': exc, 'sleep_time': interval}
info.update(self._get_connection_info(conn_error=True))
- if 'Socket closed' in six.text_type(exc):
+ if 'Socket closed' in str(exc):
LOG.error('[%(connection_id)s] AMQP server'
' %(hostname)s:%(port)s closed'
' the connection. Check login credentials:'
@@ -867,8 +865,8 @@ class Connection(object):
"""Close/release this connection."""
self._heartbeat_stop()
if self.connection:
- for consumer in six.moves.filter(lambda c: c.type == 'fanout',
- self._consumers):
+ for consumer in filter(lambda c: c.type == 'fanout',
+ self._consumers):
LOG.debug('[connection close] Deleting fanout '
'queue: %s ' % consumer.queue.name)
consumer.queue.delete()
diff --git a/oslo_messaging/_drivers/pool.py b/oslo_messaging/_drivers/pool.py
index 774c3ab..5eea00f 100644
--- a/oslo_messaging/_drivers/pool.py
+++ b/oslo_messaging/_drivers/pool.py
@@ -19,7 +19,6 @@ import threading
from oslo_log import log as logging
from oslo_utils import timeutils
-import six
from oslo_messaging._drivers import common
@@ -36,8 +35,7 @@ else:
cond.wait()
-@six.add_metaclass(abc.ABCMeta)
-class Pool(object):
+class Pool(object, metaclass=abc.ABCMeta):
"""A thread-safe object pool.
Modelled after the eventlet.pools.Pool interface, but designed to be safe
diff --git a/oslo_messaging/dispatcher.py b/oslo_messaging/dispatcher.py
index 82d4595..347a676 100644
--- a/oslo_messaging/dispatcher.py
+++ b/oslo_messaging/dispatcher.py
@@ -13,16 +13,13 @@
import abc
-import six
-
__all__ = [
"DispatcherBase"
]
-@six.add_metaclass(abc.ABCMeta)
-class DispatcherBase(object):
+class DispatcherBase(object, metaclass=abc.ABCMeta):
"Base class for dispatcher"
@abc.abstractmethod
diff --git a/oslo_messaging/exceptions.py b/oslo_messaging/exceptions.py
index f6ba20a..48645b3 100644
--- a/oslo_messaging/exceptions.py
+++ b/oslo_messaging/exceptions.py
@@ -13,8 +13,6 @@
# License for the specific language governing permissions and limitations
# under the License.
-import six
-
__all__ = ['MessagingException', 'MessagingTimeout', 'MessageDeliveryFailure',
'InvalidTarget', 'MessageUndeliverable']
@@ -35,7 +33,7 @@ class InvalidTarget(MessagingException, ValueError):
"""Raised if a target does not meet certain pre-conditions."""
def __init__(self, msg, target):
- msg = msg + ":" + six.text_type(target)
+ msg = msg + ":" + str(target)
super(InvalidTarget, self).__init__(msg)
self.target = target
diff --git a/oslo_messaging/hacking/checks.py b/oslo_messaging/hacking/checks.py
index 3925ab4..1241b24 100644
--- a/oslo_messaging/hacking/checks.py
+++ b/oslo_messaging/hacking/checks.py
@@ -16,7 +16,6 @@ import re
import ast
from hacking import core
-import six
oslo_namespace_imports_dot = re.compile(r"import[\s]+oslo[.][^\s]+")
@@ -45,18 +44,6 @@ def check_oslo_namespace_imports(logical_line):
yield(0, msg)
-@core.flake8ext
-def check_mock_imports(logical_line):
- if re.match(mock_imports_directly, logical_line):
- msg = ("O322: '%s' must be used instead of '%s'.") % (
- logical_line.replace('import mock', 'from six.moves import mock'),
- logical_line)
- yield(0, msg)
- elif re.match(mock_imports_direclty_from, logical_line):
- msg = "O322: Use mock from six.moves."
- yield(0, msg)
-
-
class BaseASTChecker(ast.NodeVisitor):
"""Provides a simple framework for writing AST-based checks.
@@ -152,7 +139,7 @@ class CheckForLoggingIssues(BaseASTChecker):
if obj_name is None:
return None
return obj_name + '.' + method_name
- elif isinstance(node, six.string_types):
+ elif isinstance(node, str):
return node
else: # could be Subscript, Call or many more
return None
@@ -284,10 +271,7 @@ class CheckForLoggingIssues(BaseASTChecker):
peers = find_peers(node)
for peer in peers:
if isinstance(peer, ast.Raise):
- if six.PY3:
- exc = peer.exc
- else:
- exc = peer.type
+ exc = peer.exc
if (isinstance(exc, ast.Call) and
len(exc.args) > 0 and
isinstance(exc.args[0], ast.Name) and
diff --git a/oslo_messaging/notify/dispatcher.py b/oslo_messaging/notify/dispatcher.py
index df4fc42..4d31a68 100644
--- a/oslo_messaging/notify/dispatcher.py
+++ b/oslo_messaging/notify/dispatcher.py
@@ -18,8 +18,6 @@ import itertools
import logging
import operator
-import six
-
from oslo_messaging import dispatcher
from oslo_messaging import serializer as msg_serializer
@@ -124,7 +122,7 @@ class BatchNotificationDispatcher(NotificationDispatcher):
requeues = set()
for priority, messages in messages_grouped:
- __, raw_messages, messages = six.moves.zip(*messages)
+ __, raw_messages, messages = zip(*messages)
if priority not in PRIORITIES:
LOG.warning('Unknown priority "%s"', priority)
continue
diff --git a/oslo_messaging/notify/filter.py b/oslo_messaging/notify/filter.py
index 44eb827..349f82d 100644
--- a/oslo_messaging/notify/filter.py
+++ b/oslo_messaging/notify/filter.py
@@ -15,8 +15,6 @@
import re
-import six
-
class NotificationFilter(object):
@@ -63,7 +61,7 @@ class NotificationFilter(object):
def _check_for_single_mismatch(data, regex):
if regex is None:
return False
- if not isinstance(data, six.string_types):
+ if not isinstance(data, str):
return True
if not regex.match(data):
return True
diff --git a/oslo_messaging/notify/notifier.py b/oslo_messaging/notify/notifier.py
index ebe05dd..02ff643 100644
--- a/oslo_messaging/notify/notifier.py
+++ b/oslo_messaging/notify/notifier.py
@@ -22,7 +22,6 @@ import uuid
from oslo_config import cfg
from oslo_utils import timeutils
-import six
from stevedore import extension
from stevedore import named
@@ -106,8 +105,7 @@ def _send_notification():
notifier._notify({}, args.event_type, args.payload, args.priority)
-@six.add_metaclass(abc.ABCMeta)
-class Driver(object):
+class Driver(object, metaclass=abc.ABCMeta):
"""Base driver for Notifications"""
def __init__(self, conf, topics, transport):
@@ -182,7 +180,7 @@ class Notifier(object):
Notification messages follow the following format::
- {'message_id': six.text_type(uuid.uuid4()),
+ {'message_id': str(uuid.uuid4()),
'publisher_id': 'compute.host1',
'timestamp': timeutils.utcnow(),
'priority': 'WARN',
@@ -300,12 +298,12 @@ class Notifier(object):
payload = self._serializer.serialize_entity(ctxt, payload)
ctxt = self._serializer.serialize_context(ctxt)
- msg = dict(message_id=six.text_type(uuid.uuid4()),
+ msg = dict(message_id=str(uuid.uuid4()),
publisher_id=publisher_id or self.publisher_id,
event_type=event_type,
priority=priority,
payload=payload,
- timestamp=six.text_type(timeutils.utcnow()))
+ timestamp=str(timeutils.utcnow()))
def do_notify(ext):
try:
diff --git a/oslo_messaging/rpc/client.py b/oslo_messaging/rpc/client.py
index ea5f54e..115198b 100644
--- a/oslo_messaging/rpc/client.py
+++ b/oslo_messaging/rpc/client.py
@@ -19,7 +19,6 @@ import abc
import logging
from oslo_config import cfg
-import six
from oslo_messaging._drivers import base as driver_base
from oslo_messaging import _utils as utils
@@ -85,8 +84,7 @@ class ClientSendError(exceptions.MessagingException):
self.ex = ex
-@six.add_metaclass(abc.ABCMeta)
-class _BaseCallContext(object):
+class _BaseCallContext(object, metaclass=abc.ABCMeta):
_marker = object()
diff --git a/oslo_messaging/rpc/dispatcher.py b/oslo_messaging/rpc/dispatcher.py
index c118931..86e2e66 100644
--- a/oslo_messaging/rpc/dispatcher.py
+++ b/oslo_messaging/rpc/dispatcher.py
@@ -22,8 +22,6 @@ import logging
import sys
import threading
-import six
-
from oslo_utils import eventletutils
from oslo_messaging import _utils as utils
@@ -83,8 +81,7 @@ class UnsupportedVersion(RPCDispatcherError):
self.method = method
-@six.add_metaclass(ABCMeta)
-class RPCAccessPolicyBase(object):
+class RPCAccessPolicyBase(object, metaclass=ABCMeta):
"""Determines which endpoint methods may be invoked via RPC"""
@abstractmethod
diff --git a/oslo_messaging/serializer.py b/oslo_messaging/serializer.py
index 56fe9d7..acfecdd 100644
--- a/oslo_messaging/serializer.py
+++ b/oslo_messaging/serializer.py
@@ -17,13 +17,11 @@
import abc
from oslo_serialization import jsonutils
-import six
__all__ = ['Serializer', 'NoOpSerializer', 'JsonPayloadSerializer']
-@six.add_metaclass(abc.ABCMeta)
-class Serializer(object):
+class Serializer(object, metaclass=abc.ABCMeta):
"""Generic (de-)serialization definition base class."""
@abc.abstractmethod
diff --git a/oslo_messaging/server.py b/oslo_messaging/server.py
index 4df1512..3eb33a2 100644
--- a/oslo_messaging/server.py
+++ b/oslo_messaging/server.py
@@ -27,7 +27,6 @@ from oslo_config import cfg
from oslo_service import service
from oslo_utils import eventletutils
from oslo_utils import timeutils
-import six
from stevedore import driver
from oslo_messaging._drivers import base as driver_base
@@ -297,8 +296,8 @@ def ordered(after=None, reset_after=None):
return _ordered
-@six.add_metaclass(abc.ABCMeta)
-class MessageHandlingServer(service.ServiceBase, _OrderedTaskRunner):
+class MessageHandlingServer(service.ServiceBase, _OrderedTaskRunner,
+ metaclass=abc.ABCMeta):
"""Server for handling messages.
Connect a transport to a dispatcher that knows how to process the
diff --git a/oslo_messaging/tests/__init__.py b/oslo_messaging/tests/__init__.py
index 7564f26..ed8a3f8 100644
--- a/oslo_messaging/tests/__init__.py
+++ b/oslo_messaging/tests/__init__.py
@@ -19,5 +19,5 @@ eventlet.monkey_patch()
# oslotest prepares mock for six in oslotest/__init__.py as follow:
# six.add_move(six.MovedModule('mock', 'mock', 'unittest.mock')) and
# oslo.messaging imports oslotest before importing test submodules to
-# setup six.moves for mock, then "from six.moves import mock" works well.
+# setup six.moves for mock, then "from unittest import mock" works well.
import oslotest
diff --git a/oslo_messaging/tests/drivers/test_amqp_driver.py b/oslo_messaging/tests/drivers/test_amqp_driver.py
index cfcc067..7f39da8 100644
--- a/oslo_messaging/tests/drivers/test_amqp_driver.py
+++ b/oslo_messaging/tests/drivers/test_amqp_driver.py
@@ -15,21 +15,21 @@
import copy
import logging
import os
+import queue
import select
import shlex
import shutil
-from six.moves import mock
import socket
import subprocess
import sys
import tempfile
import threading
import time
+from unittest import mock
import uuid
from oslo_utils import eventletutils
from oslo_utils import importutils
-from six import moves
from string import Template
import testtools
@@ -74,7 +74,7 @@ class _ListenerThread(threading.Thread):
self.listener = listener
self.msg_count = msg_count
self._msg_ack = msg_ack
- self.messages = moves.queue.Queue()
+ self.messages = queue.Queue()
self.daemon = True
self.started = eventletutils.Event()
self._done = eventletutils.Event()
@@ -106,7 +106,7 @@ class _ListenerThread(threading.Thread):
while True:
m = self.messages.get(False)
msgs.append(m)
- except moves.queue.Empty:
+ except queue.Empty:
pass
return msgs
diff --git a/oslo_messaging/tests/drivers/test_impl_kafka.py b/oslo_messaging/tests/drivers/test_impl_kafka.py
index 72a8683..77b2ed6 100644
--- a/oslo_messaging/tests/drivers/test_impl_kafka.py
+++ b/oslo_messaging/tests/drivers/test_impl_kafka.py
@@ -11,8 +11,9 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from six.moves import mock
+
import testscenarios
+from unittest import mock
import oslo_messaging
from oslo_messaging._drivers import impl_kafka as kafka_driver
diff --git a/oslo_messaging/tests/drivers/test_impl_rabbit.py b/oslo_messaging/tests/drivers/test_impl_rabbit.py
index 9212196..3da58a4 100644
--- a/oslo_messaging/tests/drivers/test_impl_rabbit.py
+++ b/oslo_messaging/tests/drivers/test_impl_rabbit.py
@@ -32,7 +32,7 @@ from oslo_messaging._drivers import common as driver_common
from oslo_messaging._drivers import impl_rabbit as rabbit_driver
from oslo_messaging.exceptions import MessageDeliveryFailure
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/functional/test_functional.py b/oslo_messaging/tests/functional/test_functional.py
index a1fcdd1..a71f6c2 100644
--- a/oslo_messaging/tests/functional/test_functional.py
+++ b/oslo_messaging/tests/functional/test_functional.py
@@ -17,7 +17,6 @@ import uuid
import concurrent.futures
from oslo_config import cfg
-import six.moves
from testtools import matchers
import oslo_messaging
@@ -535,7 +534,7 @@ class NotifyTestCase(utils.SkipIfNoTransportURL):
batch_timeout=batch_timeout))
notifier = listener.notifier('abc')
- for i in six.moves.range(0, 205):
+ for i in range(0, 205):
notifier.info({}, 'test%s' % i, 'Hello World!')
events = listener.get_events(timeout=get_timeout)
self.assertEqual(3, len(events))
diff --git a/oslo_messaging/tests/functional/utils.py b/oslo_messaging/tests/functional/utils.py
index 5f6f9c7..371c170 100644
--- a/oslo_messaging/tests/functional/utils.py
+++ b/oslo_messaging/tests/functional/utils.py
@@ -12,12 +12,12 @@
# under the License.
import os
+import queue
import time
import uuid
import fixtures
from oslo_config import cfg
-from six import moves
import oslo_messaging
from oslo_messaging._drivers.kafka_driver import kafka_options
@@ -102,7 +102,7 @@ class RpcServerFixture(fixtures.Fixture):
self.target = target
self.endpoint = endpoint or TestServerEndpoint()
self.executor = executor
- self.syncq = moves.queue.Queue()
+ self.syncq = queue.Queue()
self.ctrl_target = ctrl_target or self.target
def setUp(self):
@@ -323,7 +323,7 @@ class NotificationFixture(fixtures.Fixture):
self.conf = conf
self.url = url
self.topics = topics
- self.events = moves.queue.Queue()
+ self.events = queue.Queue()
self.name = str(id(self))
self.batch = batch
@@ -395,7 +395,7 @@ class NotificationFixture(fixtures.Fixture):
try:
while True:
results.append(self.events.get(timeout=timeout))
- except moves.queue.Empty:
+ except queue.Empty:
pass
return results
diff --git a/oslo_messaging/tests/notify/test_dispatcher.py b/oslo_messaging/tests/notify/test_dispatcher.py
index 93a1467..98a1de4 100644
--- a/oslo_messaging/tests/notify/test_dispatcher.py
+++ b/oslo_messaging/tests/notify/test_dispatcher.py
@@ -19,7 +19,7 @@ import testscenarios
import oslo_messaging
from oslo_messaging.notify import dispatcher as notify_dispatcher
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/notify/test_listener.py b/oslo_messaging/tests/notify/test_listener.py
index 1125b17..a94ca0b 100644
--- a/oslo_messaging/tests/notify/test_listener.py
+++ b/oslo_messaging/tests/notify/test_listener.py
@@ -23,7 +23,7 @@ import oslo_messaging
from oslo_messaging.notify import dispatcher
from oslo_messaging.notify import notifier as msg_notifier
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/notify/test_log_handler.py b/oslo_messaging/tests/notify/test_log_handler.py
index 40d1094..1f60af3 100644
--- a/oslo_messaging/tests/notify/test_log_handler.py
+++ b/oslo_messaging/tests/notify/test_log_handler.py
@@ -17,7 +17,7 @@ import fixtures
import oslo_messaging
from oslo_messaging.notify import log_handler
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
class PublishErrorsHandlerTestCase(test_utils.BaseTestCase):
diff --git a/oslo_messaging/tests/notify/test_logger.py b/oslo_messaging/tests/notify/test_logger.py
index b5cad25..2161ff1 100644
--- a/oslo_messaging/tests/notify/test_logger.py
+++ b/oslo_messaging/tests/notify/test_logger.py
@@ -23,7 +23,7 @@ import testscenarios
import oslo_messaging
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/notify/test_middleware.py b/oslo_messaging/tests/notify/test_middleware.py
index 65ee79c..9fe968d 100644
--- a/oslo_messaging/tests/notify/test_middleware.py
+++ b/oslo_messaging/tests/notify/test_middleware.py
@@ -19,7 +19,7 @@ import webob
from oslo_messaging.notify import middleware
from oslo_messaging.tests import utils
-from six.moves import mock
+from unittest import mock
class FakeApp(object):
diff --git a/oslo_messaging/tests/notify/test_notifier.py b/oslo_messaging/tests/notify/test_notifier.py
index 2d6b771..832ee02 100755
--- a/oslo_messaging/tests/notify/test_notifier.py
+++ b/oslo_messaging/tests/notify/test_notifier.py
@@ -34,7 +34,7 @@ from oslo_messaging.notify import messaging
from oslo_messaging.notify import notifier as msg_notifier
from oslo_messaging import serializer as msg_serializer
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/rpc/test_client.py b/oslo_messaging/tests/rpc/test_client.py
index 4063562..af1282a 100755
--- a/oslo_messaging/tests/rpc/test_client.py
+++ b/oslo_messaging/tests/rpc/test_client.py
@@ -14,8 +14,8 @@
# under the License.
from oslo_config import cfg
-from six.moves import mock
import testscenarios
+from unittest import mock
import oslo_messaging
from oslo_messaging import exceptions
diff --git a/oslo_messaging/tests/rpc/test_dispatcher.py b/oslo_messaging/tests/rpc/test_dispatcher.py
index 0bc201f..89b36cd 100755
--- a/oslo_messaging/tests/rpc/test_dispatcher.py
+++ b/oslo_messaging/tests/rpc/test_dispatcher.py
@@ -19,7 +19,7 @@ import oslo_messaging
from oslo_messaging import rpc
from oslo_messaging import serializer as msg_serializer
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
load_tests = testscenarios.load_tests_apply_scenarios
diff --git a/oslo_messaging/tests/rpc/test_server.py b/oslo_messaging/tests/rpc/test_server.py
index c993a87..1fc6be8 100644
--- a/oslo_messaging/tests/rpc/test_server.py
+++ b/oslo_messaging/tests/rpc/test_server.py
@@ -14,12 +14,13 @@
# under the License.
import threading
+from unittest import mock
+
import eventlet
import fixtures
from oslo_config import cfg
from oslo_utils import eventletutils
-from six.moves import mock
import testscenarios
import oslo_messaging
diff --git a/oslo_messaging/tests/test_exception_serialization.py b/oslo_messaging/tests/test_exception_serialization.py
index d2a10c7..93b63c5 100644
--- a/oslo_messaging/tests/test_exception_serialization.py
+++ b/oslo_messaging/tests/test_exception_serialization.py
@@ -16,7 +16,6 @@
import sys
from oslo_serialization import jsonutils
-import six
import testscenarios
import oslo_messaging
@@ -25,8 +24,8 @@ from oslo_messaging.tests import utils as test_utils
load_tests = testscenarios.load_tests_apply_scenarios
-EXCEPTIONS_MODULE = 'exceptions' if six.PY2 else 'builtins'
-OTHER_EXCEPTIONS_MODULE = 'builtins' if six.PY2 else 'exceptions'
+EXCEPTIONS_MODULE = 'builtins'
+OTHER_EXCEPTIONS_MODULE = 'exceptions'
class NovaStyleException(Exception):
@@ -289,9 +288,9 @@ class DeserializeRemoteExceptionTestCase(test_utils.BaseTestCase):
self.assertIsInstance(ex, self.cls)
self.assertEqual(self.remote_name, ex.__class__.__name__)
- self.assertEqual(self.str, six.text_type(ex))
+ self.assertEqual(self.str, str(ex))
if hasattr(self, 'msg'):
- self.assertEqual(self.msg, six.text_type(ex))
+ self.assertEqual(self.msg, str(ex))
self.assertEqual((self.msg,) + self.remote_args, ex.args)
else:
self.assertEqual(self.remote_args, ex.args)
diff --git a/oslo_messaging/tests/test_opts.py b/oslo_messaging/tests/test_opts.py
index b870d2c..8335d86 100644
--- a/oslo_messaging/tests/test_opts.py
+++ b/oslo_messaging/tests/test_opts.py
@@ -12,7 +12,9 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
-from six.moves import mock
+
+from unittest import mock
+
import stevedore
import testtools
diff --git a/oslo_messaging/tests/test_transport.py b/oslo_messaging/tests/test_transport.py
index 02a19f7..31fec16 100755
--- a/oslo_messaging/tests/test_transport.py
+++ b/oslo_messaging/tests/test_transport.py
@@ -14,9 +14,9 @@
# under the License.
import fixtures
+from unittest import mock
+
from oslo_config import cfg
-import six
-from six.moves import mock
from stevedore import driver
import testscenarios
@@ -150,7 +150,7 @@ class GetTransportSadPathTestCase(test_utils.BaseTestCase):
ex_msg_contains = self.ex.pop('msg_contains')
ex = self.assertRaises(
ex_cls, oslo_messaging.get_transport, self.conf, url=self.url)
- self.assertIn(ex_msg_contains, six.text_type(ex))
+ self.assertIn(ex_msg_contains, str(ex))
for k, v in self.ex.items():
self.assertTrue(hasattr(ex, k))
self.assertEqual(v, str(getattr(ex, k)))
@@ -172,7 +172,7 @@ class _SetDefaultsFixture(fixtures.Fixture):
def first(seq, default=None, key=None):
if key is None:
key = bool
- return next(six.moves.filter(key, seq), default)
+ return next(filter(key, seq), default)
def default(opts, name):
return first(opts, key=lambda o: o.name == name).default
diff --git a/oslo_messaging/tests/test_utils.py b/oslo_messaging/tests/test_utils.py
index 05ca1c2..b4c7402 100644
--- a/oslo_messaging/tests/test_utils.py
+++ b/oslo_messaging/tests/test_utils.py
@@ -16,7 +16,7 @@
from oslo_messaging._drivers import common
from oslo_messaging import _utils as utils
from oslo_messaging.tests import utils as test_utils
-from six.moves import mock
+from unittest import mock
class VersionIsCompatibleTestCase(test_utils.BaseTestCase):
diff --git a/oslo_messaging/transport.py b/oslo_messaging/transport.py
index 48979a6..337fb69 100644
--- a/oslo_messaging/transport.py
+++ b/oslo_messaging/transport.py
@@ -21,9 +21,8 @@ import logging
from debtcollector import removals
from oslo_config import cfg
-import six
-from six.moves.urllib import parse
from stevedore import driver
+from urllib import parse
from oslo_messaging import exceptions
@@ -456,7 +455,7 @@ class TransportURL(object):
conf.register_opts(_transport_opts)
url = url or conf.transport_url
- if not isinstance(url, six.string_types):
+ if not isinstance(url, str):
raise InvalidTransportURL(url, 'Wrong URL type')
url = parse.urlparse(url)
diff --git a/requirements.txt b/requirements.txt
index e8261a2..cccb632 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14,7 +14,6 @@ stevedore>=1.20.0 # Apache-2.0
debtcollector>=1.2.0 # Apache-2.0
# for jsonutils
-six>=1.10.0 # MIT
cachetools>=2.0.0 # MIT License
WebOb>=1.7.1 # MIT
diff --git a/test-requirements.txt b/test-requirements.txt
index 7666105..8a7e62c 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -6,7 +6,6 @@
hacking>=3.0,<3.1.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD
-mock>=2.0.0 # BSD
stestr>=2.0.0 # Apache-2.0
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT
diff --git a/tools/simulator.py b/tools/simulator.py
index fd4461d..ab2529b 100755
--- a/tools/simulator.py
+++ b/tools/simulator.py
@@ -23,7 +23,6 @@ import logging
import os
import random
import signal
-import six
import socket
import string
import sys
@@ -139,7 +138,7 @@ class MessageStatsCollector(object):
max_latency = 0
sum_latencies = 0
- for i in six.moves.range(count):
+ for i in range(count):
p = self.buffer[i]
size += len(p.cargo)
@@ -471,10 +470,10 @@ def generate_messages(messages_count):
messages_count = MESSAGES_LIMIT
LOG.info("Generating %d random messages", messages_count)
generator = init_random_generator()
- for i in six.moves.range(messages_count):
+ for i in range(messages_count):
length = generator()
msg = ''.join(random.choice(
- string.ascii_lowercase) for x in six.moves.range(length))
+ string.ascii_lowercase) for x in range(length))
MESSAGES.append(msg)
LOG.info("Messages has been prepared")
@@ -533,7 +532,7 @@ def spawn_rpc_clients(threads, transport, targets, wait_after_msg, timeout,
p = eventlet.GreenPool(size=threads)
targets = itertools.cycle(targets)
- for i in six.moves.range(threads):
+ for i in range(threads):
target = next(targets)
LOG.debug("starting RPC client for target %s", target)
client_builder = functools.partial(RPCClient, i, transport, target,
@@ -548,7 +547,7 @@ def spawn_rpc_clients(threads, transport, targets, wait_after_msg, timeout,
def spawn_notify_clients(threads, topic, transport, message_count,
wait_after_msg, timeout, duration):
p = eventlet.GreenPool(size=threads)
- for i in six.moves.range(threads):
+ for i in range(threads):
client_builder = functools.partial(NotifyClient, i, transport, [topic],
wait_after_msg)
p.spawn_n(send_messages, i, client_builder, message_count, duration)
@@ -574,7 +573,7 @@ def send_messages(client_id, client_builder, messages_count, duration):
else:
LOG.debug("Sending %d messages using client %d",
messages_count, client_id)
- for _ in six.moves.range(messages_count):
+ for _ in range(messages_count):
client.send_msg()
eventlet.sleep()
if not IS_RUNNING:
diff --git a/tox.ini b/tox.ini
index 309ef23..9646cb2 100644
--- a/tox.ini
+++ b/tox.ini
@@ -101,12 +101,10 @@ exclude = .tox,dist,doc,*.egg,build,__init__.py
[hacking]
import_exceptions =
- six.moves
[flake8:local-plugins]
extension =
O321 = checks:check_oslo_namespace_imports
- O322 = checks:check_mock_imports
O324 = checks:CheckForLoggingIssues
paths = ./oslo_messaging/hacking