0

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

Rodrigo
  • 135
  • 4
  • 45
  • 107

1 Answers1

1

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"})
Abdul Niyas P M
  • 18,035
  • 2
  • 25
  • 46