mirror of
https://github.com/kevin1024/vcrpy.git
synced 2025-12-09 09:13:23 +00:00
Format with line length 110 to match flake8 make black part of linting check Update travis spec for updated black requirements Add diff output for black on failure update changelog
45 lines
948 B
Python
45 lines
948 B
Python
import six
|
|
from six import BytesIO
|
|
from six.moves.http_client import HTTPMessage
|
|
|
|
try:
|
|
import http.client
|
|
except ImportError:
|
|
pass
|
|
|
|
|
|
"""
|
|
The python3 http.client api moved some stuff around, so this is an abstraction
|
|
layer that tries to cope with this move.
|
|
"""
|
|
|
|
|
|
def get_header(message, name):
|
|
if six.PY3:
|
|
return message.getallmatchingheaders(name)
|
|
else:
|
|
return message.getheader(name)
|
|
|
|
|
|
def get_header_items(message):
|
|
for (key, values) in get_headers(message):
|
|
for value in values:
|
|
yield key, value
|
|
|
|
|
|
def get_headers(message):
|
|
for key in set(message.keys()):
|
|
if six.PY3:
|
|
yield key, message.get_all(key)
|
|
else:
|
|
yield key, message.getheaders(key)
|
|
|
|
|
|
def get_httpmessage(headers):
|
|
if six.PY3:
|
|
return http.client.parse_headers(BytesIO(headers))
|
|
msg = HTTPMessage(BytesIO(headers))
|
|
msg.fp.seek(0)
|
|
msg.readheaders()
|
|
return msg
|