headers.raw
is typing.List[typing.Tuple[bytes, bytes]]
I want to merge it into another dict, like the one below:
client.build_request(headers=dict(request.headers.raw) | {"foo": "bar"}),
However I got the error
expected "Union[Headers, Dict[str, str], Dict[bytes, bytes], Sequence[Tuple[str, str]], Sequence[Tuple[bytes, bytes]], None]"
Is there some way to do this? I am using Python 3.10, and I was planning to use the new features on merging dicts
This is because your dict(request.headers.raw)
is of type Dict[bytes, bytes]
and {"foo": "bar"}
is of type Dict[str, str]
. So when you do dict(request.headers.raw) | {"foo": "bar"}
it's of type Dict[bytes|str, bytes|str]
which won't match with the expected headers
type hence the error.
So you could do this instead,
client.build_request(headers=dict(request.headers.raw) | {b"foo": b"bar"})