)]}'
{"swiftclient/client.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"0be2d3a63ffbffb83f410c3ca32f075704a0a35b","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\"\"\""},{"line_number":19,"context_line":"import socket"},{"line_number":20,"context_line":"import requests"},{"line_number":21,"context_line":"from requests.structures import CaseInsensitiveDict"},{"line_number":22,"context_line":"import logging"},{"line_number":23,"context_line":"import warnings"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_44ad1583","line":21,"range":{"start_line":21,"start_character":32,"end_line":21,"end_character":51},"updated":"2016-05-26 19:40:04.000000000","message":"Gah! Stupid github + tags made it look like this wasn\u0027t available until requests 2.0: https://github.com/kennethreitz/requests/commit/5172d24\n\nGod yes. Let\u0027s use this everywhere!","commit_id":"68c5010e5e64fab0c8e2865fa3757355d0a90ac2"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"46c69702e017ad9bc47af0ed8b603be38b71ea07","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    :param headers: Either a dict or an iterable of two-element tuples"},{"line_number":123,"context_line":"    :return: Safe dictionary of headers with sensitive information removed"},{"line_number":124,"context_line":"    \"\"\""},{"line_number":125,"context_line":"    if isinstance(headers, (dict, CaseInsensitiveDict)):"},{"line_number":126,"context_line":"        headers \u003d headers.items()"},{"line_number":127,"context_line":"    headers \u003d ["},{"line_number":128,"context_line":"        (parse_header_string(key), parse_header_string(val))"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_3a0f483a","line":125,"updated":"2016-05-26 20:33:50.000000000","message":"i wish i knew of a type that was in the mro of both of these... doesn\u0027t python have like an \"supports interface\" declarative somewhere in abc?","commit_id":"68c5010e5e64fab0c8e2865fa3757355d0a90ac2"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1646167854c270cb043459087d929a9a2b6bdc45","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    :param headers: Either a dict or an iterable of two-element tuples"},{"line_number":123,"context_line":"    :return: Safe dictionary of headers with sensitive information removed"},{"line_number":124,"context_line":"    \"\"\""},{"line_number":125,"context_line":"    if isinstance(headers, (dict, CaseInsensitiveDict)):"},{"line_number":126,"context_line":"        headers \u003d headers.items()"},{"line_number":127,"context_line":"    headers \u003d ["},{"line_number":128,"context_line":"        (parse_header_string(key), parse_header_string(val))"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_389e3163","line":125,"in_reply_to":"bab6814e_3a0f483a","updated":"2016-05-26 20:46:16.000000000","message":"collections.Mapping should work.","commit_id":"68c5010e5e64fab0c8e2865fa3757355d0a90ac2"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"57aa52695fc3d46df6846c601b93653b970139ad","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    :param headers: Either a dict or an iterable of two-element tuples"},{"line_number":123,"context_line":"    :return: Safe dictionary of headers with sensitive information removed"},{"line_number":124,"context_line":"    \"\"\""},{"line_number":125,"context_line":"    if isinstance(headers, (dict, CaseInsensitiveDict)):"},{"line_number":126,"context_line":"        headers \u003d headers.items()"},{"line_number":127,"context_line":"    headers \u003d ["},{"line_number":128,"context_line":"        (parse_header_string(key), parse_header_string(val))"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_62b5847c","line":125,"updated":"2016-06-01 18:53:50.000000000","message":"this should change from a tuple to collections.Mapping if that works!","commit_id":"0c7d36e482b29ea01a7db15449b4758b2152862c"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"3fc66618f6e55209c183736938dd6c919b621629","unresolved":false,"context_lines":[{"line_number":1355,"context_line":"    if name:"},{"line_number":1356,"context_line":"        path \u003d \u0027%s/%s\u0027 % (path.rstrip(\u0027/\u0027), quote(name))"},{"line_number":1357,"context_line":""},{"line_number":1358,"context_line":"    headers \u003d CaseInsensitiveDict(headers if headers else {})"},{"line_number":1359,"context_line":""},{"line_number":1360,"context_line":"    if destination:"},{"line_number":1361,"context_line":"        headers[\u0027Destination\u0027] \u003d quote(destination)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_163afe98","line":1358,"updated":"2016-06-01 18:05:12.000000000","message":"+1 for passing {} for older requests versions that wouldn\u0027t take a None arg","commit_id":"0c7d36e482b29ea01a7db15449b4758b2152862c"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"2fdbad48edf376aa1bf8940d773417f4dc8d6142","unresolved":false,"context_lines":[{"line_number":123,"context_line":"    :param headers: Either a dict or an iterable of two-element tuples"},{"line_number":124,"context_line":"    :return: Safe dictionary of headers with sensitive information removed"},{"line_number":125,"context_line":"    \"\"\""},{"line_number":126,"context_line":"    if isinstance(headers, collections.Mapping):"},{"line_number":127,"context_line":"        headers \u003d headers.items()"},{"line_number":128,"context_line":"    headers \u003d ["},{"line_number":129,"context_line":"        (parse_header_string(key), parse_header_string(val))"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_f9e91980","line":126,"updated":"2016-06-02 01:19:32.000000000","message":"NICE!","commit_id":"36ba0bc771a7daaceef4188bb9cfef6232f5a218"}],"tests/unit/test_swiftclient.py":[{"author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"change_message_id":"9b5ae3fa760feabcf14a1de0c730a0c659e40c10","unresolved":false,"context_lines":[{"line_number":1473,"context_line":"                \u0027X-Auth-Token\u0027: \u0027token\u0027,"},{"line_number":1474,"context_line":"                \u0027Destination\u0027: \u0027/container2/obj\u0027,"},{"line_number":1475,"context_line":"                \u0027Some-hdr\u0027: \u0027a\u0027,"},{"line_number":1476,"context_line":"                \u0027other-Hdr\u0027: \u0027b\u0027,"},{"line_number":1477,"context_line":"            }),"},{"line_number":1478,"context_line":"        ])"},{"line_number":1479,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a89bdaa_9e88b5e9","line":1476,"updated":"2016-09-05 07:08:42.000000000","message":"This change doesn\u0027t get failed because the header in the request is already CaseInsensitiveDict[1] and I concern this change makes someone may be confusing like \"copy_object function translates the header key from \u0027some-Hdr\u0027 to \u0027Some-hdr\u0027??? why???\"\n\nActually, that question was wrong. I noticed the asserRequests is attempting to compare the values between expected headers and headers in the real request as \"CaseInsensitive\" That makes sense this works. However, I\u0027m still feeling that may be complicated to understand.\n\nPossibly, it\u0027s better to leave old code here tentatively? And it could be in future improvements for testing the case insensitve headers in the request as Clay suggested already?\n\nRight now, I\u0027m not sure if this one could be right way, sorry, my waffling comment.\n\n1: https://github.com/openstack/python-swiftclient/blob/master/tests/unit/utils.py#L295","commit_id":"2c798d22b3f88373043479b34139903afcbd2cd8"}]}
