From a4a3020abc065d40f57069d6c69d02222ddc85d6 Mon Sep 17 00:00:00 2001
From: Serhiy Storchaka <storchaka@gmail.com>
Date: Tue, 28 Nov 2017 22:54:42 +0200
Subject: [PATCH] bpo-32157: Removed explicit quotes around %r and {!r}.
 (#4582)

---
 Lib/imaplib.py                      | 2 +-
 Lib/inspect.py                      | 4 ++--
 Lib/multiprocessing/sharedctypes.py | 4 ++--
 Lib/test/test_queue.py              | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Lib/imaplib.py b/Lib/imaplib.py
index 1c0b03bff8a..e1cece0b283 100644
--- a/Lib/imaplib.py
+++ b/Lib/imaplib.py
@@ -1166,7 +1166,7 @@ class IMAP4:
         self.mo = cre.match(s)
         if __debug__:
             if self.mo is not None and self.debug >= 5:
-                self._mesg("\tmatched r'%r' => %r" % (cre.pattern, self.mo.groups()))
+                self._mesg("\tmatched %r => %r" % (cre.pattern, self.mo.groups()))
         return self.mo is not None
 
 
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 69f2b6209f6..8c121ce96c4 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -1381,7 +1381,7 @@ def getclosurevars(func):
         func = func.__func__
 
     if not isfunction(func):
-        raise TypeError("'{!r}' is not a Python function".format(func))
+        raise TypeError("{!r} is not a Python function".format(func))
 
     code = func.__code__
     # Nonlocal references are named in co_freevars and resolved
@@ -1624,7 +1624,7 @@ def getgeneratorlocals(generator):
     bound values."""
 
     if not isgenerator(generator):
-        raise TypeError("'{!r}' is not a Python generator".format(generator))
+        raise TypeError("{!r} is not a Python generator".format(generator))
 
     frame = getattr(generator, "gi_frame", None)
     if frame is not None:
diff --git a/Lib/multiprocessing/sharedctypes.py b/Lib/multiprocessing/sharedctypes.py
index 066cf8f031d..6071707027b 100644
--- a/Lib/multiprocessing/sharedctypes.py
+++ b/Lib/multiprocessing/sharedctypes.py
@@ -78,7 +78,7 @@ def Value(typecode_or_type, *args, lock=True, ctx=None):
         ctx = ctx or get_context()
         lock = ctx.RLock()
     if not hasattr(lock, 'acquire'):
-        raise AttributeError("'%r' has no method 'acquire'" % lock)
+        raise AttributeError("%r has no method 'acquire'" % lock)
     return synchronized(obj, lock, ctx=ctx)
 
 def Array(typecode_or_type, size_or_initializer, *, lock=True, ctx=None):
@@ -92,7 +92,7 @@ def Array(typecode_or_type, size_or_initializer, *, lock=True, ctx=None):
         ctx = ctx or get_context()
         lock = ctx.RLock()
     if not hasattr(lock, 'acquire'):
-        raise AttributeError("'%r' has no method 'acquire'" % lock)
+        raise AttributeError("%r has no method 'acquire'" % lock)
     return synchronized(obj, lock, ctx=ctx)
 
 def copy(obj):
diff --git a/Lib/test/test_queue.py b/Lib/test/test_queue.py
index 35466c1eae3..6ee906c4d26 100644
--- a/Lib/test/test_queue.py
+++ b/Lib/test/test_queue.py
@@ -54,7 +54,7 @@ class BlockingTestMixin:
             self.result = block_func(*block_args)
             # If block_func returned before our thread made the call, we failed!
             if not thread.startedEvent.is_set():
-                self.fail("blocking function '%r' appeared not to block" %
+                self.fail("blocking function %r appeared not to block" %
                           block_func)
             return self.result
         finally:
-- 
2.30.9