)]}'
{"nova/api/openstack/common.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0555f0908beadae888d5c7a915dd7665c37c8dd6","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        url \u003d os.path.join(prefix,"},{"line_number":437,"context_line":"                           self._get_project_id(request),"},{"line_number":438,"context_line":"                           collection_name)"},{"line_number":439,"context_line":"        return \"%s?%s\" % (url, urllib.urlencode(params))"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def _get_href_link(self, request, identifier, collection_name):"},{"line_number":442,"context_line":"        \"\"\"Return an href string pointing to this object.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_5890894e","line":439,"updated":"2015-07-31 16:48:03.000000000","message":"As people work on Python 3 support now, please use Python3-compatible import: http://pythonhosted.org/six/#module-six.moves.urllib.parse","commit_id":"daefc5da5de17f8fe1b89c656be2c996c0ab325a"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"ef3e2fba1880a78cde6519a10d767f4ee0319e13","unresolved":false,"context_lines":[{"line_number":436,"context_line":"        url \u003d os.path.join(prefix,"},{"line_number":437,"context_line":"                           self._get_project_id(request),"},{"line_number":438,"context_line":"                           collection_name)"},{"line_number":439,"context_line":"        return \"%s?%s\" % (url, urllib.urlencode(params))"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def _get_href_link(self, request, identifier, collection_name):"},{"line_number":442,"context_line":"        \"\"\"Return an href string pointing to this object.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_a7c141e6","line":439,"in_reply_to":"3a50d1a3_5890894e","updated":"2015-08-03 07:48:16.000000000","message":"I will fix it.\n\nThanks Dmitry.","commit_id":"daefc5da5de17f8fe1b89c656be2c996c0ab325a"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"3f33a9bac4b3eebe77dbb1b85706561489dc518b","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"def dict_to_query_str(params):"},{"line_number":338,"context_line":"    # TODO(throughnothing): we should just use urllib.urlencode instead of this"},{"line_number":339,"context_line":"    # But currently we don\u0027t work with urlencoded url\u0027s"},{"line_number":340,"context_line":"    param_str \u003d \"\""},{"line_number":341,"context_line":"    for key, val in six.iteritems(params):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_2d0aeb26","side":"PARENT","line":338,"updated":"2015-08-03 09:39:56.000000000","message":"I wonder, how it was different...","commit_id":"31396bc1b1b891218e61eaf1d53aa2ddd104c96e"},{"author":{"_account_id":7488,"name":"Jeffrey Zhang","email":"zhang.lei.fly@gmail.com","username":"Jeffrey4l"},"change_message_id":"a65036abe981aeb9c43508abf21aa6b9dd1aff21","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"def dict_to_query_str(params):"},{"line_number":338,"context_line":"    # TODO(throughnothing): we should just use urllib.urlencode instead of this"},{"line_number":339,"context_line":"    # But currently we don\u0027t work with urlencoded url\u0027s"},{"line_number":340,"context_line":"    param_str \u003d \"\""},{"line_number":341,"context_line":"    for key, val in six.iteritems(params):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_78b74f85","side":"PARENT","line":338,"in_reply_to":"3a50d1a3_2d0aeb26","updated":"2015-08-03 10:03:11.000000000","message":"I can not tell, too... :D","commit_id":"31396bc1b1b891218e61eaf1d53aa2ddd104c96e"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1fca011e938caf76628359c0c880ee3208226cb3","unresolved":false,"context_lines":[{"line_number":335,"context_line":""},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"def dict_to_query_str(params):"},{"line_number":338,"context_line":"    # TODO(throughnothing): we should just use urllib.urlencode instead of this"},{"line_number":339,"context_line":"    # But currently we don\u0027t work with urlencoded url\u0027s"},{"line_number":340,"context_line":"    param_str \u003d \"\""},{"line_number":341,"context_line":"    for key, val in six.iteritems(params):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a4dcd0f_b90c3d3c","side":"PARENT","line":338,"in_reply_to":"3a50d1a3_78b74f85","updated":"2015-08-04 19:00:50.000000000","message":"The main difference appears to be the use of encoding, e.g., \"foo bar\" would encode to \"foo+bar\".  The dict_to_query_str() function did not perform this encoding, while urlparse.urlencode() does.  Why it would be desirable to not do such encoding, I don\u0027t know…","commit_id":"31396bc1b1b891218e61eaf1d53aa2ddd104c96e"}]}
