)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"1e769c9c23131da2d25f9d6545c8225346809191","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2) retrying has a lot of numeric arguments for specifying behaviour"},{"line_number":13,"context_line":"of decorated functions, while tenacity has a few of them, which are"},{"line_number":14,"context_line":"specialized objects, thus making the retry-decorator more flexible."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ib6ecffe5d1cf292badbb9eb6db6260f17460f343"},{"line_number":17,"context_line":"Closes-Bug: #1635399"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba5da102_d58ceb37","line":15,"updated":"2016-10-26 12:20:34.000000000","message":"Please also explain that retry_if_connection_error() was removed because it was unused and that the whole module is private (so no public API is broken).\n\nYou may also explain that your change contains some minor unrelated cleanup changes.","commit_id":"272e9ec7d3ed3b82b0447d26f2e7662f191ce638"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"a357ecb7c1f75d96e9cdf6814a1b1c699df53427","unresolved":false,"context_lines":[{"line_number":12,"context_line":"2) retrying has a lot of numeric arguments for specifying behaviour"},{"line_number":13,"context_line":"of decorated functions, while tenacity has a few of them, which are"},{"line_number":14,"context_line":"specialized objects, thus making the retry-decorator more flexible."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ib6ecffe5d1cf292badbb9eb6db6260f17460f343"},{"line_number":17,"context_line":"Closes-Bug: #1635399"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"ba5da102_be73cf4c","line":15,"in_reply_to":"ba5da102_d58ceb37","updated":"2016-10-26 19:36:42.000000000","message":"Done","commit_id":"272e9ec7d3ed3b82b0447d26f2e7662f191ce638"}],"oslo_messaging/_drivers/impl_pika.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"7794493ba0f85b02c75dab4882f0113add3d9a91","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    stop\u003d(tenacity.stop_never if retry \u003d\u003d -1 else"},{"line_number":208,"context_line":"                          tenacity.stop_after_attempt(retry)),"},{"line_number":209,"context_line":"                    retry\u003dtenacity.retry_if_exception(on_exception),"},{"line_number":210,"context_line":"                    wait\u003dtenacity.wait_fixed(self._pika_engine.rpc_retry_delay)"},{"line_number":211,"context_line":"                )"},{"line_number":212,"context_line":"            )"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_c4e072cf","line":210,"range":{"start_line":210,"start_character":50,"end_line":210,"end_character":62},"updated":"2016-10-24 17:43:08.000000000","message":"Ah, wait_fixed() expects milliseconds in retrying, but seconds in tenacity. Can you please mention it in the commit message, first the change looks like a bug.","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"4dfc980f0dd06237f282e1c38078980b2be4ec37","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                    stop\u003d(tenacity.stop_never if retry \u003d\u003d -1 else"},{"line_number":208,"context_line":"                          tenacity.stop_after_attempt(retry)),"},{"line_number":209,"context_line":"                    retry\u003dtenacity.retry_if_exception(on_exception),"},{"line_number":210,"context_line":"                    wait\u003dtenacity.wait_fixed(self._pika_engine.rpc_retry_delay)"},{"line_number":211,"context_line":"                )"},{"line_number":212,"context_line":"            )"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_dbc77010","line":210,"range":{"start_line":210,"start_character":50,"end_line":210,"end_character":62},"in_reply_to":"da6895a0_c4e072cf","updated":"2016-10-24 19:41:13.000000000","message":"Done","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"7794493ba0f85b02c75dab4882f0113add3d9a91","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            else:"},{"line_number":314,"context_line":"                return False"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        retrier \u003d ("},{"line_number":317,"context_line":"            None if retry \u003d\u003d 0 else"},{"line_number":318,"context_line":"            tenacity.retry("},{"line_number":319,"context_line":"                stop\u003d(tenacity.stop_never if retry \u003d\u003d -1 else"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_64dc0613","line":316,"range":{"start_line":316,"start_character":16,"end_line":316,"end_character":17},"updated":"2016-10-24 17:43:08.000000000","message":"Hum, I would prefer a simpler \"if\" rather than a ternary operator (expr1 if test expr2):\n\nif retry:\n  retrier \u003d ...\nelse:\n  retrier \u003d None","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"4dfc980f0dd06237f282e1c38078980b2be4ec37","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            else:"},{"line_number":314,"context_line":"                return False"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        retrier \u003d ("},{"line_number":317,"context_line":"            None if retry \u003d\u003d 0 else"},{"line_number":318,"context_line":"            tenacity.retry("},{"line_number":319,"context_line":"                stop\u003d(tenacity.stop_never if retry \u003d\u003d -1 else"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_9be6d8b2","line":316,"range":{"start_line":316,"start_character":16,"end_line":316,"end_character":17},"in_reply_to":"da6895a0_64dc0613","updated":"2016-10-24 19:41:13.000000000","message":"I tried to use the same style as the author. He liked the ternary operator :)\nDone","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"}],"oslo_messaging/_drivers/pika_driver/pika_message.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"7794493ba0f85b02c75dab4882f0113add3d9a91","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            ),"},{"line_number":212,"context_line":"            retry\u003dtenacity.retry_if_exception(on_exception),"},{"line_number":213,"context_line":"            wait\u003dtenacity.wait_fixed(self._pika_engine.rpc_reply_retry_delay)"},{"line_number":214,"context_line":"        ) if self._pika_engine.rpc_reply_retry_attempts else None"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        try:"},{"line_number":217,"context_line":"            timeout \u003d (None if self.expiration_time is None else"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_e4fe566a","line":214,"updated":"2016-10-24 17:43:08.000000000","message":"I would also prefer a simpler if to declare retrier.","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"4dfc980f0dd06237f282e1c38078980b2be4ec37","unresolved":false,"context_lines":[{"line_number":211,"context_line":"            ),"},{"line_number":212,"context_line":"            retry\u003dtenacity.retry_if_exception(on_exception),"},{"line_number":213,"context_line":"            wait\u003dtenacity.wait_fixed(self._pika_engine.rpc_reply_retry_delay)"},{"line_number":214,"context_line":"        ) if self._pika_engine.rpc_reply_retry_attempts else None"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        try:"},{"line_number":217,"context_line":"            timeout \u003d (None if self.expiration_time is None else"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_bb4abcaa","line":214,"in_reply_to":"da6895a0_e4fe566a","updated":"2016-10-24 19:41:13.000000000","message":"Done","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"}],"oslo_messaging/_drivers/zmq_driver/client/zmq_publisher_manager.py":[{"author":{"_account_id":9257,"name":"John Eckersberg","email":"jeckersb@redhat.com","username":"jeckersb"},"change_message_id":"4842e019f5221cc2023ac8071f0787ae5ab51d84","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    LOG.warning(_LW(\"Matchmaker contains no records for specified \""},{"line_number":33,"context_line":"                    \"target %(target)s. Dropping message %(msg_id)s.\"),"},{"line_number":34,"context_line":"                {\"target\": request.target,"},{"line_number":35,"context_line":"                 \"msg_id\": request.message_id})"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def target_not_found_warn(func):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_59f9edc7","line":35,"updated":"2016-10-26 20:19:01.000000000","message":"Is this hunk related to this change?  Accidental inclusion?","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"f36288bcc5e636d0c0c16b98283eebddab8cade7","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    LOG.warning(_LW(\"Matchmaker contains no records for specified \""},{"line_number":33,"context_line":"                    \"target %(target)s. Dropping message %(msg_id)s.\"),"},{"line_number":34,"context_line":"                {\"target\": request.target,"},{"line_number":35,"context_line":"                 \"msg_id\": request.message_id})"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"def target_not_found_warn(func):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_4473c4b1","line":35,"in_reply_to":"ba5da102_59f9edc7","updated":"2016-10-26 21:00:24.000000000","message":"Not related, not accidental :) \nI just suddenly noticed that % and remembered the paragraph about logging: http://docs.openstack.org/developer/hacking/#general","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"}],"oslo_messaging/_drivers/zmq_driver/matchmaker/zmq_matchmaker_redis.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"7794493ba0f85b02c75dab4882f0113add3d9a91","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027wait_timeout\u0027,"},{"line_number":64,"context_line":"               default\u003d2,"},{"line_number":65,"context_line":"               help\u003d\u0027Time in seconds to wait between connection attempts.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027check_timeout\u0027,"},{"line_number":67,"context_line":"               default\u003d20,"},{"line_number":68,"context_line":"               help\u003d\u0027Time in seconds to wait before the transaction is \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_a42b7eea","line":65,"updated":"2016-10-24 17:43:08.000000000","message":"Hum, this change breaks the backward compatibility :-( Please keep milliseconds.\n\nSame comment for the 2 other options below.","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"4dfc980f0dd06237f282e1c38078980b2be4ec37","unresolved":false,"context_lines":[{"line_number":62,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"},{"line_number":63,"context_line":"    cfg.IntOpt(\u0027wait_timeout\u0027,"},{"line_number":64,"context_line":"               default\u003d2,"},{"line_number":65,"context_line":"               help\u003d\u0027Time in seconds to wait between connection attempts.\u0027),"},{"line_number":66,"context_line":"    cfg.IntOpt(\u0027check_timeout\u0027,"},{"line_number":67,"context_line":"               default\u003d20,"},{"line_number":68,"context_line":"               help\u003d\u0027Time in seconds to wait before the transaction is \u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"da6895a0_bbc47c5f","line":65,"in_reply_to":"da6895a0_a42b7eea","updated":"2016-10-24 19:41:13.000000000","message":"Done","commit_id":"4e549626b95deb11fb78e1164572c943582ad659"},{"author":{"_account_id":9257,"name":"John Eckersberg","email":"jeckersb@redhat.com","username":"jeckersb"},"change_message_id":"4842e019f5221cc2023ac8071f0787ae5ab51d84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ba5da102_59cacd50","updated":"2016-10-26 20:19:01.000000000","message":"Flagged some stuff that appears unrelated to me, but maybe I\u0027m just missing something","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":9257,"name":"John Eckersberg","email":"jeckersb@redhat.com","username":"jeckersb"},"change_message_id":"4842e019f5221cc2023ac8071f0787ae5ab51d84","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":57,"context_line":"                deprecated_reason\u003d\"Replaced by [DEFAULT]/transport_url\","},{"line_number":58,"context_line":"                help\u003d\u0027List of Redis Sentinel hosts (fault tolerance mode), \u0027"},{"line_number":59,"context_line":"                     \u0027e.g., [host:port, host1:port ... ]\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027sentinel_group_name\u0027,"},{"line_number":61,"context_line":"               default\u003d\u0027oslo-messaging-zeromq\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_79c79145","line":59,"updated":"2016-10-26 20:19:01.000000000","message":"unrelated?","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"f36288bcc5e636d0c0c16b98283eebddab8cade7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":57,"context_line":"                deprecated_reason\u003d\"Replaced by [DEFAULT]/transport_url\","},{"line_number":58,"context_line":"                help\u003d\u0027List of Redis Sentinel hosts (fault tolerance mode), \u0027"},{"line_number":59,"context_line":"                     \u0027e.g., [host:port, host1:port ... ]\u0027),"},{"line_number":60,"context_line":"    cfg.StrOpt(\u0027sentinel_group_name\u0027,"},{"line_number":61,"context_line":"               default\u003d\u0027oslo-messaging-zeromq\u0027,"},{"line_number":62,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_e425b8ae","line":59,"in_reply_to":"ba5da102_79c79145","updated":"2016-10-26 21:00:24.000000000","message":"Yes, this change is unrelated to the main patch idea. It is just my bad habit to silently fix some detected weird places (e.g., typos, violation of style guides etc.) while inspecting the source code :) Of course, it is possible to create separate patches for such trivial changes, but I prefer to append them to bigger and more important patches.","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":9257,"name":"John Eckersberg","email":"jeckersb@redhat.com","username":"jeckersb"},"change_message_id":"4842e019f5221cc2023ac8071f0787ae5ab51d84","unresolved":false,"context_lines":[{"line_number":68,"context_line":"               help\u003d\u0027Time in ms to wait before the transaction is killed.\u0027),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027socket_timeout\u0027,"},{"line_number":70,"context_line":"               default\u003d10000,"},{"line_number":71,"context_line":"               help\u003d\u0027Timeout in ms on blocking socket operations.\u0027),"},{"line_number":72,"context_line":"]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"_PUBLISHERS_KEY \u003d \"PUBLISHERS\""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_99c46541","line":71,"updated":"2016-10-26 20:19:01.000000000","message":"unrelated?","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"f36288bcc5e636d0c0c16b98283eebddab8cade7","unresolved":false,"context_lines":[{"line_number":68,"context_line":"               help\u003d\u0027Time in ms to wait before the transaction is killed.\u0027),"},{"line_number":69,"context_line":"    cfg.IntOpt(\u0027socket_timeout\u0027,"},{"line_number":70,"context_line":"               default\u003d10000,"},{"line_number":71,"context_line":"               help\u003d\u0027Timeout in ms on blocking socket operations.\u0027),"},{"line_number":72,"context_line":"]"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"_PUBLISHERS_KEY \u003d \"PUBLISHERS\""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_a434a0de","line":71,"in_reply_to":"ba5da102_99c46541","updated":"2016-10-26 21:00:24.000000000","message":"Ditto.","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":9257,"name":"John Eckersberg","email":"jeckersb@redhat.com","username":"jeckersb"},"change_message_id":"4842e019f5221cc2023ac8071f0787ae5ab51d84","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            sentinels\u003dself._sentinel_hosts,"},{"line_number":372,"context_line":"            socket_timeout\u003dself.conf.matchmaker_redis.socket_timeout / 1000.,"},{"line_number":373,"context_line":"            password\u003dpassword"},{"line_number":374,"context_line":"        )"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        self._redis_master \u003d self._sentinel.master_for(master_group)"},{"line_number":377,"context_line":"        self._redis_slave \u003d self._sentinel.slave_for(master_group)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_d9dc1d1b","line":374,"updated":"2016-10-26 20:19:01.000000000","message":"unrelated?","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"f36288bcc5e636d0c0c16b98283eebddab8cade7","unresolved":false,"context_lines":[{"line_number":371,"context_line":"            sentinels\u003dself._sentinel_hosts,"},{"line_number":372,"context_line":"            socket_timeout\u003dself.conf.matchmaker_redis.socket_timeout / 1000.,"},{"line_number":373,"context_line":"            password\u003dpassword"},{"line_number":374,"context_line":"        )"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        self._redis_master \u003d self._sentinel.master_for(master_group)"},{"line_number":377,"context_line":"        self._redis_slave \u003d self._sentinel.slave_for(master_group)"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba5da102_0452ac13","line":374,"in_reply_to":"ba5da102_d9dc1d1b","updated":"2016-10-26 21:00:24.000000000","message":"Ditto.","commit_id":"59e95999ac0309e9b6eeb22fc0ade6e7ec6344fc"}],"requirements.txt":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"7794493ba0f85b02c75dab4882f0113add3d9a91","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# FIXME(markmc): remove this when the drivers no longer"},{"line_number":25,"context_line":"# import eventlet"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"eventlet!\u003d0.18.3,\u003e\u003d0.18.2 # MIT"},{"line_number":28,"context_line":"greenlet\u003e\u003d0.3.2 # MIT"}],"source_content_type":"text/plain","patch_set":8,"id":"da6895a0_247dae1c","side":"PARENT","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":17},"updated":"2016-10-24 17:43:08.000000000","message":"This change doesn\u0027t seem to be related to tenacity.\n\nIf you remove it, you should also remove the FIXME no? Maybe do it in a separated change.","commit_id":"42ece46a723032c1ce70e7b7413e8a6d622b43e6"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"d01b7cb0d6a012c3b602cc565f530bbaccc902bb","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# FIXME(markmc): remove this when the drivers no longer"},{"line_number":25,"context_line":"# import eventlet"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"eventlet!\u003d0.18.3,\u003e\u003d0.18.2 # MIT"},{"line_number":28,"context_line":"greenlet\u003e\u003d0.3.2 # MIT"}],"source_content_type":"text/plain","patch_set":8,"id":"ba5da102_955273dc","side":"PARENT","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":17},"in_reply_to":"da6895a0_1b59e8fe","updated":"2016-10-26 12:15:17.000000000","message":"Oops, you\u0027re right :-) It\u0027s surprising to see such cleanup changes in the middle of your other change, but it\u0027s fine for me.","commit_id":"42ece46a723032c1ce70e7b7413e8a6d622b43e6"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"4dfc980f0dd06237f282e1c38078980b2be4ec37","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"# FIXME(markmc): remove this when the drivers no longer"},{"line_number":25,"context_line":"# import eventlet"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"eventlet!\u003d0.18.3,\u003e\u003d0.18.2 # MIT"},{"line_number":28,"context_line":"greenlet\u003e\u003d0.3.2 # MIT"}],"source_content_type":"text/plain","patch_set":8,"id":"da6895a0_1b59e8fe","side":"PARENT","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":17},"in_reply_to":"da6895a0_247dae1c","updated":"2016-10-24 19:41:13.000000000","message":"I didn\u0027t remove anything, just merged 2 small lines together into a bigger one :)","commit_id":"42ece46a723032c1ce70e7b7413e8a6d622b43e6"}]}
