)]}'
{"keystone/common/utils.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b5caa91f771c22b8c61d39c7811f57ad420bf7c5","unresolved":false,"context_lines":[{"line_number":475,"context_line":"_ISO8601_TIME_FORMAT_SUBSECOND \u003d \u0027%Y-%m-%dT%H:%M:%S.%f\u0027"},{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_ef8648da","line":478,"updated":"2015-06-03 06:20:38.000000000","message":"Let\u0027s add some comments here as what it said in the commit message. So it will be more clear why we not use datetime.datetime.isoformat() instead.\n\nAnd maybe also TODO annotation somewhere to indicate keystone will switch to use datetime.datetime.isoformat() step by step?","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b5223b83b437a8a3b1a959038b4cef00a0e2aae5","unresolved":false,"context_lines":[{"line_number":475,"context_line":"_ISO8601_TIME_FORMAT_SUBSECOND \u003d \u0027%Y-%m-%dT%H:%M:%S.%f\u0027"},{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_93dc91e5","line":478,"in_reply_to":"5afe65bd_ef8648da","updated":"2015-06-03 13:31:16.000000000","message":"I added comments. I don\u0027t think it\u0027s worth it to switch to isoformat.","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"b6f36a31805877467c36aa5a7bc482b54bdb344d","unresolved":false,"context_lines":[{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    if not at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_7bcfb97f","line":479,"updated":"2015-06-03 08:29:44.000000000","message":"This is totally the wrong way of doing it.","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dc416435763bb0dd3c8957d4997fb762698eb567","unresolved":false,"context_lines":[{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    if not at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_b30c2d3c","line":479,"in_reply_to":"5afe65bd_3847fa4c","updated":"2015-06-03 13:20:16.000000000","message":"There is!","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"7d463425c228c939d77f77fadcda787861fb11a8","unresolved":false,"context_lines":[{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    if not at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_3847fa4c","line":479,"in_reply_to":"5afe65bd_7bcfb97f","updated":"2015-06-03 13:05:53.000000000","message":"like, oslo timeutils\u0027 decision to deprecate code without a viable alternative?","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b5223b83b437a8a3b1a959038b4cef00a0e2aae5","unresolved":false,"context_lines":[{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    if not at:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5afe65bd_b3a2ed49","line":479,"in_reply_to":"5afe65bd_b30c2d3c","updated":"2015-06-03 13:31:16.000000000","message":"By copying the code here we can switch to the alternative in steps.","commit_id":"cbf27ed7d0adf40a2d80b4476cc6290790ff1095"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"16868d12c24a4df095aa980140862c0195edf52d","unresolved":false,"context_lines":[{"line_number":475,"context_line":"_ISO8601_TIME_FORMAT_SUBSECOND \u003d \u0027%Y-%m-%dT%H:%M:%S.%f\u0027"},{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_2e8c507e","line":478,"updated":"2015-06-03 13:42:20.000000000","message":"Do we need to add a NOTE or TODO to this method to explain why we are assuming oslo.timeutils code in Keystone? I feel like a comment would prevent someone from coming along down the road and refactoring this.","commit_id":"386054847e3434122a5070f2894908ff437d901e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"3133305b77e8d3e8ad692f0064b1e3e93ad77558","unresolved":false,"context_lines":[{"line_number":475,"context_line":"_ISO8601_TIME_FORMAT_SUBSECOND \u003d \u0027%Y-%m-%dT%H:%M:%S.%f\u0027"},{"line_number":476,"context_line":"_ISO8601_TIME_FORMAT \u003d \u0027%Y-%m-%dT%H:%M:%S\u0027"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":""},{"line_number":479,"context_line":"def isotime(at\u003dNone, subsecond\u003dFalse):"},{"line_number":480,"context_line":"    \"\"\"Stringify time in ISO 8601 format.\"\"\""},{"line_number":481,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_4eab0c1e","line":478,"in_reply_to":"5afe65bd_2e8c507e","updated":"2015-06-03 13:49:34.000000000","message":"oslo.utils.timeutils.isotime is deprecated. If someone tried to switch to using oslo.utils.timeutils.isotime 1) reviewers would say not to use deprecated function, and 2) it wouldn\u0027t pass our unit tests since the tests fail if you use deprecated function.","commit_id":"386054847e3434122a5070f2894908ff437d901e"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"709d821c8d66c4b6b1c344c235655e34722670cd","unresolved":false,"context_lines":[{"line_number":490,"context_line":"    #    the value happens to be 0. This will likely show up as random failures"},{"line_number":491,"context_line":"    #    as parsers may be written to always expect microseconds, and it will"},{"line_number":492,"context_line":"    #    parse correctly most of the time."},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"    if not at:"},{"line_number":495,"context_line":"        at \u003d timeutils.utcnow()"},{"line_number":496,"context_line":"    st \u003d at.strftime(_ISO8601_TIME_FORMAT"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_34e4a20b","line":493,"updated":"2015-06-03 14:33:04.000000000","message":"Nice comments. I think these comments will help to prevent someone refactoring these code.","commit_id":"386054847e3434122a5070f2894908ff437d901e"}]}
