55import base64
66import io
77import json
8+ import pickle
89import zlib
910from typing import IO , TYPE_CHECKING , Any , Mapping , Optional
1011
1112import msgpack
1213from requests .structures import CaseInsensitiveDict
13-
14- from .compat import HTTPResponse , pickle , text_type
14+ from urllib3 import HTTPResponse
1515
1616if TYPE_CHECKING :
1717 from requests import PreparedRequest , Request
@@ -44,18 +44,16 @@ def dumps(
4444 # also update the response with a new file handler to be
4545 # sure it acts as though it was never read.
4646 body = response .read (decode_content = False )
47- response ._fp = io .BytesIO (body )
47+ response ._fp = io .BytesIO (body ) # type: ignore[attr-defined]
4848 response .length_remaining = len (body )
4949
5050 data = {
5151 "response" : {
5252 "body" : body , # Empty bytestring if body is stored separately
53- "headers" : dict (
54- (text_type (k ), text_type (v )) for k , v in response .headers .items ()
55- ),
53+ "headers" : dict ((str (k ), str (v )) for k , v in response .headers .items ()), # type: ignore[no-untyped-call]
5654 "status" : response .status ,
5755 "version" : response .version ,
58- "reason" : text_type (response .reason ),
56+ "reason" : str (response .reason ),
5957 "decode_content" : response .decode_content ,
6058 }
6159 }
@@ -65,10 +63,10 @@ def dumps(
6563 if "vary" in response_headers :
6664 varied_headers = response_headers ["vary" ].split ("," )
6765 for header in varied_headers :
68- header = text_type (header ).strip ()
66+ header = str (header ).strip ()
6967 header_value = request .headers .get (header , None )
7068 if header_value is not None :
71- header_value = text_type (header_value )
69+ header_value = str (header_value )
7270 data ["vary" ][header ] = header_value
7371
7472 return b"," .join ([b"cc=4" , msgpack .dumps (data , use_bin_type = True )])
@@ -78,10 +76,10 @@ def loads(
7876 request : "PreparedRequest" ,
7977 data : bytes ,
8078 body_file : Optional ["IO[bytes]" ] = None ,
81- ) -> HTTPResponse :
79+ ) -> Optional [ HTTPResponse ] :
8280 # Short circuit if we've been given an empty set of data
8381 if not data :
84- return
82+ return None
8583
8684 # Determine what version of the serializer the data was serialized
8785 # with
@@ -101,12 +99,12 @@ def loads(
10199
102100 # Dispatch to the actual load method for the given version
103101 try :
104- return getattr (self , "_loads_v{}" .format (verstr ))(request , data , body_file )
102+ return getattr (self , "_loads_v{}" .format (verstr ))(request , data , body_file ) # type: ignore[no-any-return]
105103
106104 except AttributeError :
107105 # This is a version we don't have a loads function for, so we'll
108106 # just treat it as a miss and return None
109- return
107+ return None
110108
111109 def prepare_response (
112110 self ,
0 commit comments