in http/get_compressed/python/client/client.py [0:0]
def make_request(uri, compression):
coding = "identity" if compression.startswith("identity") else compression
# urllib.request.urlopen() always sends an HTTP/1.1 request
# with Accept-Encoding: identity, so we need to setup a request
# object with custom headers to request a specific compression
headers = {
"Accept-Encoding": f"{coding}, *;q=0",
}
if compression.startswith("identity+"):
# request IPC buffer compression instead of HTTP compression
ipc_codec = compression.split("+")[1]
headers["Accept"] = f'{ARROW_STREAM_FORMAT};codecs="{ipc_codec}"'
request = urllib.request.Request(uri, headers=headers)
response = urllib.request.urlopen(request)
content_type = response.headers["Content-Type"]
if not content_type.startswith(ARROW_STREAM_FORMAT):
raise ValueError(f"Expected {ARROW_STREAM_FORMAT}, got {content_type}")
if compression.startswith("identity"):
return response
# IANA nomenclature for Brotli is "br" and not "brotli"
compression = "brotli" if compression == "br" else compression
return pa.CompressedInputStream(response, compression)