)]}'
{"keystonemiddleware/auth_token/_request.py":[{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"89d75a50d4173a2d9b1c85b3cc44c11b093052bd","unresolved":false,"context_lines":[{"line_number":176,"context_line":"                    return bytes_or_unicode.encode(\u0027utf-8\u0027).decode(\u0027latin-1\u0027)"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"        names \u003d \u0027,\u0027.join(auth_ref.role_names)"},{"line_number":179,"context_line":"        self.headers[self._ROLES_TEMPLATE % prefix] \u003d wsgi_str(names)"},{"line_number":180,"context_line":"        self.headers[self._SYSTEM_SCOPE_HEADER] \u003d wsgi_str(_get_system_scope(auth_ref))"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        for header_tmplt, attr in self._HEADER_TEMPLATE.items():"},{"line_number":183,"context_line":"            self.headers[header_tmplt % prefix] \u003d wsgi_str(getattr(auth_ref, attr))"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    def set_user_headers(self, auth_ref):"},{"line_number":186,"context_line":"        \"\"\"Convert token object into headers."}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_ecdd5612","line":183,"range":{"start_line":179,"start_character":0,"end_line":183,"end_character":83},"updated":"2018-11-07 00:15:42.000000000","message":"Lets try with popping the header instead of setting it None.","commit_id":"7eee9fb37170ff2b53e91f79e194de65d41dd491"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"445861160b4f1c8e5d95ba90a4e13580a9b72aa7","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        system_scope_data \u003d wsgi_str(_get_system_scope(auth_ref))"},{"line_number":180,"context_line":"        roles_header_name \u003d self._ROLES_TEMPLATE % prefix"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        # NOTE(morgan): Do not set any headers to NONE, this violates the WSGI"},{"line_number":183,"context_line":"        # specification. Pop the headers off if they are not meant to be set."},{"line_number":184,"context_line":"        if names is not None:"},{"line_number":185,"context_line":"            self.headers[roles_header_name] \u003d names"},{"line_number":186,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_4cf00a67","line":183,"range":{"start_line":182,"start_character":8,"end_line":183,"end_character":77},"updated":"2018-11-07 00:31:36.000000000","message":"Bah, looks like this causes all sorts of other issues.","commit_id":"2d421762f188417a61af88080296dcd4227fe7b2"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"da67e1d6d4bc165cfc94d06c0f3998b547792280","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            if bytes_or_unicode is None:"},{"line_number":166,"context_line":"                # NOTE(morgan): Do not set any headers to NONE, this violates the WSGI"},{"line_number":167,"context_line":"                # specification. Set the values to an empty byte-string instead."},{"line_number":168,"context_line":"                return b\u0027\u0027"},{"line_number":169,"context_line":"            if six.PY2:"},{"line_number":170,"context_line":"                if isinstance(bytes_or_unicode, bytes):"},{"line_number":171,"context_line":"                    return bytes_or_unicode"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_6c8946c6","line":168,"range":{"start_line":168,"start_character":15,"end_line":168,"end_character":26},"updated":"2018-11-07 00:34:23.000000000","message":"Actually... Lets try something else.","commit_id":"2fefb2595186d8f311beb5f47235ff8c197e5076"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"68031f5b3d9c931545327311c96749ff58b6a2e4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"    def _set_auth_headers(self, auth_ref, prefix):"},{"line_number":164,"context_line":"        def wsgi_str(bytes_or_unicode):"},{"line_number":165,"context_line":"            if bytes_or_unicode is None:"},{"line_number":166,"context_line":"                # NOTE(morgan): Do not set any headers to NONE, this violates the WSGI"},{"line_number":167,"context_line":"                # specification. Set the values to an empty byte-string instead and"},{"line_number":168,"context_line":"                # process the same as if it was previously set."},{"line_number":169,"context_line":"                bytes_or_unicode \u003d b\u0027\u0027"},{"line_number":170,"context_line":"            if six.PY2:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_27fa8710","line":167,"range":{"start_line":166,"start_character":0,"end_line":167,"end_character":83},"updated":"2018-11-07 00:42:29.000000000","message":"PEP8!","commit_id":"c44ee2bb5610ce10d342fe483dc98d49f52927f5"}]}
