)]}'
{"oslo_db/api.py":[{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"011bdfec2d65aa0ae793ef33c23e912748668921","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return f"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"@removals.remove"},{"line_number":76,"context_line":"def retry_on_request(f):"},{"line_number":77,"context_line":"    \"\"\"Retry a DB API call if RetryRequest exception was received."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_5ba94f8f","line":75,"updated":"2016-05-17 14:16:20.000000000","message":"this part I\u0027m less fine with because I don\u0027t think wrap_db_retry() should be implicitly applied to functions that don\u0027t actually need any retry system.","commit_id":"7057409b6458c53f2c009f3df64120f2c665a7e3"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3fa5c4c6bfca7417f26d0e75cd896a01ba61d94b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    return f"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"@removals.remove"},{"line_number":76,"context_line":"def retry_on_request(f):"},{"line_number":77,"context_line":"    \"\"\"Retry a DB API call if RetryRequest exception was received."},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_e4e340a2","line":75,"in_reply_to":"dab17558_5ba94f8f","updated":"2016-05-17 15:05:12.000000000","message":"Ok, that makes sense.","commit_id":"7057409b6458c53f2c009f3df64120f2c665a7e3"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"011bdfec2d65aa0ae793ef33c23e912748668921","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    :type exception_checker: callable"},{"line_number":109,"context_line":"    \"\"\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @removals.removed_kwarg(\"retry_on_request\","},{"line_number":112,"context_line":"                            \"Retry on request is always enabled\")"},{"line_number":113,"context_line":"    def __init__(self, retry_interval\u003d0, max_retries\u003d0,"},{"line_number":114,"context_line":"                 inc_retry_interval\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_dbefffe6","line":111,"updated":"2016-05-17 14:16:20.000000000","message":"this part I am totally fine with.  If someone is making explicit use of @wrap_db_retry(), then of course, if they throw RetryRequest, it should honor that.","commit_id":"7057409b6458c53f2c009f3df64120f2c665a7e3"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"011bdfec2d65aa0ae793ef33c23e912748668921","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        retry_on_deadlock \u003d attr.__dict__.get(\u0027enable_retry_on_deadlock\u0027,"},{"line_number":253,"context_line":"                                              False)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        return wrap_db_retry("},{"line_number":256,"context_line":"            retry_interval\u003dself.retry_interval,"},{"line_number":257,"context_line":"            max_retries\u003dself.max_retries,"},{"line_number":258,"context_line":"            inc_retry_interval\u003dself.inc_retry_interval,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_f8f2c96d","line":255,"updated":"2016-05-17 14:16:20.000000000","message":"I\u0027m not really pro-\"DBAPI object\", and I\u0027d rather deprecate the whole thing, rather than making a large behavioral change right in the middle of it, which is that the wrap_db_retry() thing invokes for every method rather than just the ones that mark that they use the RetryRequest exception internally.   wrap_db_retry() isn\u0027t free of memory/speed/behavioral concerns.","commit_id":"7057409b6458c53f2c009f3df64120f2c665a7e3"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3fa5c4c6bfca7417f26d0e75cd896a01ba61d94b","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        retry_on_deadlock \u003d attr.__dict__.get(\u0027enable_retry_on_deadlock\u0027,"},{"line_number":253,"context_line":"                                              False)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        return wrap_db_retry("},{"line_number":256,"context_line":"            retry_interval\u003dself.retry_interval,"},{"line_number":257,"context_line":"            max_retries\u003dself.max_retries,"},{"line_number":258,"context_line":"            inc_retry_interval\u003dself.inc_retry_interval,"}],"source_content_type":"text/x-python","patch_set":1,"id":"dab17558_049ac413","line":255,"in_reply_to":"dab17558_f8f2c96d","updated":"2016-05-17 15:05:12.000000000","message":"I thought about that too and was hesitant, so I\u0027ll line up with you on that.","commit_id":"7057409b6458c53f2c009f3df64120f2c665a7e3"},{"author":{"_account_id":11816,"name":"mike_mp@zzzcomputing.com","display_name":"Mike Bayer","email":"mike_mp@zzzcomputing.com","username":"zzzeek","status":"Red Hat"},"change_message_id":"6f56b2e35d7c2453211f8e7b3dc1635b8d0627f2","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                max_retry_interval\u003dself.max_retry_interval,"},{"line_number":261,"context_line":"                retry_on_disconnect\u003dretry_on_disconnect,"},{"line_number":262,"context_line":"                retry_on_deadlock\u003dretry_on_deadlock,"},{"line_number":263,"context_line":"                retry_on_request\u003dretry_on_request)(attr)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        return attr"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_cf161548","line":263,"updated":"2016-05-17 15:07:37.000000000","message":"remove \"retry_on_request\" keyword argument to wrap_db_retry() here, since it\u0027s not needed right?","commit_id":"5a0c26547f248a0e131ce7829f2520e6d659a810"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"12c0854702f25da6b5477d3af545be03a403f256","unresolved":false,"context_lines":[{"line_number":260,"context_line":"                max_retry_interval\u003dself.max_retry_interval,"},{"line_number":261,"context_line":"                retry_on_disconnect\u003dretry_on_disconnect,"},{"line_number":262,"context_line":"                retry_on_deadlock\u003dretry_on_deadlock,"},{"line_number":263,"context_line":"                retry_on_request\u003dretry_on_request)(attr)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        return attr"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_8f5b6d53","line":263,"in_reply_to":"dab17558_cf161548","updated":"2016-05-17 15:22:42.000000000","message":"right!","commit_id":"5a0c26547f248a0e131ce7829f2520e6d659a810"}]}
