bpo-32034: Make IncompleteReadError & LimitOverrunError pickleable #4409

diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py
index 9fda853..30b751e 100644
--- a/Lib/asyncio/streams.py
+++ b/Lib/asyncio/streams.py
@@ -35,6 +35,9 @@
         self.partial = partial
         self.expected = expected
 
+    def __reduce__(self):
+        return type(self), (self.partial, self.expected)
+
 
 class LimitOverrunError(Exception):
     """Reached the buffer limit while looking for a separator.
@@ -46,6 +49,9 @@
         super().__init__(message)
         self.consumed = consumed
 
+    def __reduce__(self):
+        return type(self), (self.args[0], self.consumed)
+
 
 @coroutine
 def open_connection(host=None, port=None, *,