)]}'
{"neutron/common/metadata.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"c30685f2c027d87109bbe395b40ce4c0c1dcc508","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONTENT_ENCODERS \u003d {"},{"line_number":39,"context_line":"    \u0027gzip\u0027: b\u0027\\x1f\\x8b\\x08\u0027,"},{"line_number":40,"context_line":"    \u0027deflate\u0027: b\u0027\\x1f\\x8b\\x08\u0027"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"e421920d_040c38dc","line":40,"updated":"2025-10-07 07:18:08.000000000","message":"is this intentional that both encoders have the same \"magic file signature\"? And also I don\u0027t see \"deflate\" to be used anywhere, is that needed at all?","commit_id":"67969c147baaca18dc436b674f73c0eb7485cc6c"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"b89e5a80d6d91a249064bda3b5120711cc026a8b","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONTENT_ENCODERS \u003d {"},{"line_number":39,"context_line":"    \u0027gzip\u0027: b\u0027\\x1f\\x8b\\x08\u0027,"},{"line_number":40,"context_line":"    \u0027deflate\u0027: b\u0027\\x1f\\x8b\\x08\u0027"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f1c14135_4bb410fe","line":40,"in_reply_to":"1458fb3a_013affdb","updated":"2025-11-21 17:34:47.000000000","message":"Done","commit_id":"67969c147baaca18dc436b674f73c0eb7485cc6c"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"069f81ac21423a376d46724c43ef1dae18caef38","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONTENT_ENCODERS \u003d {"},{"line_number":39,"context_line":"    \u0027gzip\u0027: b\u0027\\x1f\\x8b\\x08\u0027,"},{"line_number":40,"context_line":"    \u0027deflate\u0027: b\u0027\\x1f\\x8b\\x08\u0027"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1458fb3a_013affdb","line":40,"in_reply_to":"a79385e0_11971fc8","updated":"2025-10-07 08:07:27.000000000","message":"So it\u0027s may be used in check on L183: `if _res.content_encoding in CONTENT_ENCODERS.keys()`","commit_id":"67969c147baaca18dc436b674f73c0eb7485cc6c"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"3e9a120e69d7db4497aba2ae62a30ca89dd6e021","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"CONTENT_ENCODERS \u003d {"},{"line_number":39,"context_line":"    \u0027gzip\u0027: b\u0027\\x1f\\x8b\\x08\u0027,"},{"line_number":40,"context_line":"    \u0027deflate\u0027: b\u0027\\x1f\\x8b\\x08\u0027"},{"line_number":41,"context_line":"}"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"a79385e0_11971fc8","line":40,"in_reply_to":"e421920d_040c38dc","updated":"2025-10-07 08:00:49.000000000","message":"If I am not mistaken, deflate uses still gzip as encoder, but it is a different header.\nNow, when we are passing `headerlist` to webop instead of jsut charset, we assume that at some point Metadata service might reply with `content-encoding` header.\n\nSo while deflate is kinda optional indeed, as Nova Metadata does not add such headers right now, it more of \"future-proof\" thinking.","commit_id":"67969c147baaca18dc436b674f73c0eb7485cc6c"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"494becc1c47521ef36190f82fc459127f6d04dd1","unresolved":true,"context_lines":[{"line_number":182,"context_line":"        # (\"gzip\", \"deflate\"), as is in the ``webob.response.Response`` class."},{"line_number":183,"context_line":"        if _res.content_encoding in CONTENT_ENCODERS.keys():"},{"line_number":184,"context_line":"            _res.decode_content()"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        # NOTE(ralonsoh): there should be a better way to format the HTTP"},{"line_number":187,"context_line":"        # response, adding the HTTP version to the ``webob.Response``"},{"line_number":188,"context_line":"        # output string."}],"source_content_type":"text/x-python","patch_set":2,"id":"33fb1bf2_b908bf9c","line":185,"updated":"2025-10-04 08:17:29.000000000","message":"Unfortunatelly, we can\u0027t do like\n```\ntry:\n    _res_str \u003d str(_res)\nexcept UnicodeDecodeError:\n    _res.decode_content()\n    _res_str \u003d str(_res)\n```\n\nbecause for webob to decode, it needs to have `content-encoding` in headers","commit_id":"67969c147baaca18dc436b674f73c0eb7485cc6c"}]}
