From 49869a50c81b9fb5cab0304acc6849d1881cdc0b Mon Sep 17 00:00:00 2001 From: Luke Bakken Date: Wed, 26 Jul 2017 10:16:08 -0700 Subject: [PATCH] Simplify code by removing exec() Supercedes #788 --- pika/adapters/select_connection.py | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/pika/adapters/select_connection.py b/pika/adapters/select_connection.py index 210121006..d6c996b4d 100644 --- a/pika/adapters/select_connection.py +++ b/pika/adapters/select_connection.py @@ -245,18 +245,7 @@ def poll(self): self._poller.poll() -# Define a base class for deriving abstract base classes for compatibility -# between python 2 and 3 (metaclass syntax changed in Python 3). Ideally, would -# use `@six.add_metaclass` or `six.with_metaclass`, but pika traditionally has -# resisted external dependencies in its core code. -if pika.compat.PY2: - class _AbstractBase(object): # pylint: disable=R0903 - """PY2 Abstract base for _PollerBase class""" - __metaclass__ = abc.ABCMeta -else: - # NOTE: Wrapping in exec, because - # `class _AbstractBase(metaclass=abc.ABCMeta)` fails to load on python 2. - exec('class _AbstractBase(metaclass=abc.ABCMeta): pass') # pylint: disable=W0122 +_AbstractBase = abc.ABCMeta('_AbstractBase', (object,), {}) class _PollerBase(_AbstractBase): # pylint: disable=R0902