)]}'
{"oslo/serialization/jsonutils.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1b2cde3208a590fa32507d8a097606757cbf6bfc","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        return json.dumps(value, default\u003ddefault, namedtuple_as_object\u003dFalse,"},{"line_number":172,"context_line":"                          **kwargs)"},{"line_number":173,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_90ef33b2","line":171,"updated":"2014-08-13 17:35:47.000000000","message":"Instead of introducing a separate call, how about just adding the new argument to kwargs?\n\n  if is_simplejson:\n    kwargs[\u0027namedtuple_as_object\u0027] \u003d False\n  return json.dumps(...)\n\nThat way if we end up with other arguments being passed to dumps() we won\u0027t miss them in one of the calls.","commit_id":"fac32e865a072de47fc6de90705d97229a23d08d"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0008e17099fdac4ec1f40266c96ace9114f3b001","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        return json.dumps(value, default\u003ddefault, namedtuple_as_object\u003dFalse,"},{"line_number":172,"context_line":"                          **kwargs)"},{"line_number":173,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_a314f3ea","line":171,"in_reply_to":"baada198_90ef33b2","updated":"2014-08-13 17:51:45.000000000","message":"good idea.  done.","commit_id":"fac32e865a072de47fc6de90705d97229a23d08d"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"1b2cde3208a590fa32507d8a097606757cbf6bfc","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"def dump(obj, fp, *args, **kwargs):"},{"line_number":177,"context_line":"    if is_simplejson:"},{"line_number":178,"context_line":"        return json.dump(obj, fp, *args, namedtuple_as_object\u003dFalse, **kwargs)"},{"line_number":179,"context_line":"    return json.dump(obj, fp, *args, **kwargs)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_b0ec37be","line":178,"updated":"2014-08-13 17:35:47.000000000","message":"Same comment.","commit_id":"fac32e865a072de47fc6de90705d97229a23d08d"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"0008e17099fdac4ec1f40266c96ace9114f3b001","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"def dump(obj, fp, *args, **kwargs):"},{"line_number":177,"context_line":"    if is_simplejson:"},{"line_number":178,"context_line":"        return json.dump(obj, fp, *args, namedtuple_as_object\u003dFalse, **kwargs)"},{"line_number":179,"context_line":"    return json.dump(obj, fp, *args, **kwargs)"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_03d3df37","line":178,"in_reply_to":"baada198_b0ec37be","updated":"2014-08-13 17:51:45.000000000","message":"Done","commit_id":"fac32e865a072de47fc6de90705d97229a23d08d"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5788072dd674fa9842d3ff222bfe2abe3cec7cff","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # simplejson module if available"},{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        import simplejson as json"},{"line_number":47,"context_line":"        is_simplejson \u003d True"},{"line_number":48,"context_line":"    except ImportError:"},{"line_number":49,"context_line":"        import json"},{"line_number":50,"context_line":"else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_66d74951","line":47,"updated":"2014-08-13 18:13:14.000000000","message":"Suggestion:  Could you avoid declaring is_simplejson and substitute \"json.__name__ \u003d\u003d \u0027simplejson\u0027\" or something below to tell if we\u0027re using simplejson?","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4361d0f3540c708ce862d945f6baac3415a7f3cb","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # simplejson module if available"},{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        import simplejson as json"},{"line_number":47,"context_line":"        is_simplejson \u003d True"},{"line_number":48,"context_line":"    except ImportError:"},{"line_number":49,"context_line":"        import json"},{"line_number":50,"context_line":"else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_5c3b35eb","line":47,"in_reply_to":"7ac7a964_1cba9de1","updated":"2014-08-13 22:27:45.000000000","message":"i agree the performance difference is negligible.\n\ni don\u0027t feel json.__name__ check is considerably better than is_simplejson either, though.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3fba09fe0ef3c8fff6e6048d016c3ece3cb864ca","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # simplejson module if available"},{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        import simplejson as json"},{"line_number":47,"context_line":"        is_simplejson \u003d True"},{"line_number":48,"context_line":"    except ImportError:"},{"line_number":49,"context_line":"        import json"},{"line_number":50,"context_line":"else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_1cba9de1","line":47,"in_reply_to":"9ab29df4_51a074f4","updated":"2014-08-13 22:20:23.000000000","message":"Seriously?!  I\u0027m okay either way (I did give a +1) but we really need a better understanding of what really affects performance.  We\u0027re serializing stuff to json presumably to write it to some file descriptor.  In the case of RPC this is going across the wire and you\u0027re worried about a string comparison?","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2424a8ce285c81a527367159d6b2b73c8008f5a2","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    # simplejson module if available"},{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        import simplejson as json"},{"line_number":47,"context_line":"        is_simplejson \u003d True"},{"line_number":48,"context_line":"    except ImportError:"},{"line_number":49,"context_line":"        import json"},{"line_number":50,"context_line":"else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9ab29df4_51a074f4","line":47,"in_reply_to":"baada198_66d74951","updated":"2014-08-13 21:04:02.000000000","message":"i\u0027m not sure if it\u0027s a good idea because i suppose it more expensive.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5788072dd674fa9842d3ff222bfe2abe3cec7cff","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_06d04d51","line":171,"updated":"2014-08-13 18:13:14.000000000","message":"Maybe you could do:\n\nif json.__name__ \u003d\u003d \u0027simplejson\u0027:\n    def dumps(...):\n        return json.dumps(..., namedtuple_as_object\u003dFalse, ...)\nelse:\n    def dumps(...):\n        return json.dumps(...)","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2ba246d3a9dbd58934f7c44fb2c8647cffe7a667","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_ff5eb311","line":171,"in_reply_to":"7ac7a964_dc2e65a5","updated":"2014-08-13 22:33:00.000000000","message":"your suggested way decides which dumps to use at import-time.\nthus it makes UT need to re-import the module to switch between implementations.\nhowever, python has no good way to re-import a module.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"4361d0f3540c708ce862d945f6baac3415a7f3cb","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_9caf8d2b","line":171,"in_reply_to":"7ac7a964_fcd7a1eb","updated":"2014-08-13 22:27:45.000000000","message":"in tests/test_jsonutils.py.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"414189923c6e645bed6db7f55aab7239f53cf140","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_5f0fa7e1","line":171,"in_reply_to":"7ac7a964_ff5eb311","updated":"2014-08-13 22:39:31.000000000","message":"My bad.  My base was set to PS1 and so it wasn\u0027t showing me the change to the unit test.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"2c5664b96907cd7711f2d6a927e8617a4d269a8e","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_dc2e65a5","line":171,"in_reply_to":"9ab29df4_512b1482","updated":"2014-08-13 22:28:04.000000000","message":"I\u0027ve looked a bit and I don\u0027t understand your concern.  Could you elaborate for my edification?","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"3fba09fe0ef3c8fff6e6048d016c3ece3cb864ca","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7ac7a964_fcd7a1eb","line":171,"in_reply_to":"9ab29df4_512b1482","updated":"2014-08-13 22:20:23.000000000","message":"This brings up a good point that I failed to bring up before.  Where is the UT for this problem?  I\u0027m a little surprised that this has already been approved and there is no UT exposing the original problem.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"2424a8ce285c81a527367159d6b2b73c8008f5a2","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def dumps(value, default\u003dto_primitive, **kwargs):"},{"line_number":170,"context_line":"    if is_simplejson:"},{"line_number":171,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":172,"context_line":"    return json.dumps(value, default\u003ddefault, **kwargs)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ab29df4_512b1482","line":171,"in_reply_to":"baada198_06d04d51","updated":"2014-08-13 21:04:02.000000000","message":"i don\u0027t want to do this because it would cause difficulties on UTs.\n(the UTs patch module attributes to switch between json and simplejson)","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"5788072dd674fa9842d3ff222bfe2abe3cec7cff","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"def dump(obj, fp, *args, **kwargs):"},{"line_number":176,"context_line":"    if is_simplejson:"},{"line_number":177,"context_line":"        kwargs[\u0027namedtuple_as_object\u0027] \u003d False"},{"line_number":178,"context_line":"    return json.dump(obj, fp, *args, **kwargs)"},{"line_number":179,"context_line":""},{"line_number":180,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_8669bd8f","line":177,"updated":"2014-08-13 18:13:14.000000000","message":"Ditto.","commit_id":"c5b869462f9b1d1a56dd98cd66c7b5f4238334ae"}]}
