)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12712,"name":"Gleb Stepanov","email":"gstepanov@mirantis.com","username":"stgleb"},"change_message_id":"a6a19390d29e88a507040e98396dad79b11d89b3","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Support python3 in simulator.py"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Tested with:"},{"line_number":10,"context_line":"python3 simulator.py --url rabbit://stackrabbit:flopsymopsy@localhost:5672/ notify-server"},{"line_number":11,"context_line":"python3 simulator.py --url rabbit://stackrabbit:flopsymopsy@localhost:5672/ notify-client -m 1000"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa0719c6_60b51fcc","line":9,"updated":"2016-03-21 15:48:48.000000000","message":"Such long lines look not ok according to commit message style.","commit_id":"55d82eeda5d47d4996e444e56cfc7d9853cbb8a0"}],"test-requirements.txt":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"edf8192ca89f885887840bd31c9e9204e650e13f","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# AMQP 1.0 support depends on the Qpid Proton AMQP 1.0"},{"line_number":37,"context_line":"# development libraries."},{"line_number":38,"context_line":"#pyngus\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# Bandit security code scanner"},{"line_number":41,"context_line":"bandit\u003e\u003d0.17.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"fa0719c6_1c59395b","line":38,"updated":"2016-03-21 14:13:57.000000000","message":"what\u0027s wrong with pyngus?","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be22e12eca61f1476d64f277e7e3d4f98396da9b","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"# AMQP 1.0 support depends on the Qpid Proton AMQP 1.0"},{"line_number":37,"context_line":"# development libraries."},{"line_number":38,"context_line":"#pyngus\u003e\u003d2.0.0 # Apache-2.0"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# Bandit security code scanner"},{"line_number":41,"context_line":"bandit\u003e\u003d0.17.3 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":1,"id":"fa0719c6_0a744733","line":38,"in_reply_to":"fa0719c6_1c59395b","updated":"2016-03-21 14:37:20.000000000","message":"Sorry. my bad, did not mean to. my primary dev environment is osx, pyngus does not install well.","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"}],"tools/simulator.py":[{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"edf8192ca89f885887840bd31c9e9204e650e13f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def weighted_random_choice():"},{"line_number":82,"context_line":"        r \u003d random.random() * running_total"},{"line_number":83,"context_line":"        start \u003d ranges_start[bisect.bisect_right(accumulated_distribution, r)]"},{"line_number":84,"context_line":"        return random.randrange(int(start), start + DISTRIBUTION_BUCKET_SIZE)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    return weighted_random_choice"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_9c6d4907","line":84,"updated":"2016-03-21 14:13:57.000000000","message":"i don\u0027t understand why a cast to int is needed here.","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be22e12eca61f1476d64f277e7e3d4f98396da9b","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def weighted_random_choice():"},{"line_number":82,"context_line":"        r \u003d random.random() * running_total"},{"line_number":83,"context_line":"        start \u003d ranges_start[bisect.bisect_right(accumulated_distribution, r)]"},{"line_number":84,"context_line":"        return random.randrange(int(start), start + DISTRIBUTION_BUCKET_SIZE)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    return weighted_random_choice"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_aa99db70","line":84,"in_reply_to":"fa0719c6_9c6d4907","updated":"2016-03-21 14:37:20.000000000","message":"http://paste.openstack.org/show/491276/ - see failure if i don\u0027t cast.","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"edf8192ca89f885887840bd31c9e9204e650e13f","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        count \u003d len(self.buffer)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        size \u003d 0"},{"line_number":124,"context_line":"        min_latency \u003d six.MAXSIZE"},{"line_number":125,"context_line":"        max_latency \u003d 0"},{"line_number":126,"context_line":"        sum_latencies \u003d 0"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_bcd80df1","line":124,"range":{"start_line":124,"start_character":26,"end_line":124,"end_character":33},"updated":"2016-03-21 14:13:57.000000000","message":"sys.maxsize is available on python 2.7, no need for six here","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be22e12eca61f1476d64f277e7e3d4f98396da9b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        count \u003d len(self.buffer)"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"        size \u003d 0"},{"line_number":124,"context_line":"        min_latency \u003d six.MAXSIZE"},{"line_number":125,"context_line":"        max_latency \u003d 0"},{"line_number":126,"context_line":"        sum_latencies \u003d 0"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_aab0bbde","line":124,"range":{"start_line":124,"start_character":26,"end_line":124,"end_character":33},"in_reply_to":"fa0719c6_bcd80df1","updated":"2016-03-21 14:37:20.000000000","message":"Done","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"edf8192ca89f885887840bd31c9e9204e650e13f","unresolved":false,"context_lines":[{"line_number":359,"context_line":"def generate_messages(messages_count):"},{"line_number":360,"context_line":"    # Limit the messages amount. Clients will reiterate the array again"},{"line_number":361,"context_line":"    # if an amount of messages to be sent is bigger than MESSAGES_LIMIT"},{"line_number":362,"context_line":"    lowercase \u003d \u0027abcdefghijklmnopqrstuvwxyz\u0027"},{"line_number":363,"context_line":"    if messages_count \u003e MESSAGES_LIMIT:"},{"line_number":364,"context_line":"        messages_count \u003d MESSAGES_LIMIT"},{"line_number":365,"context_line":"    LOG.info(\"Generating %d random messages\", messages_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_3c9a3d15","line":362,"updated":"2016-03-21 14:13:57.000000000","message":"you can use  string.ascii_lowercase (again, it exists in python 2.7)","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be22e12eca61f1476d64f277e7e3d4f98396da9b","unresolved":false,"context_lines":[{"line_number":359,"context_line":"def generate_messages(messages_count):"},{"line_number":360,"context_line":"    # Limit the messages amount. Clients will reiterate the array again"},{"line_number":361,"context_line":"    # if an amount of messages to be sent is bigger than MESSAGES_LIMIT"},{"line_number":362,"context_line":"    lowercase \u003d \u0027abcdefghijklmnopqrstuvwxyz\u0027"},{"line_number":363,"context_line":"    if messages_count \u003e MESSAGES_LIMIT:"},{"line_number":364,"context_line":"        messages_count \u003d MESSAGES_LIMIT"},{"line_number":365,"context_line":"    LOG.info(\"Generating %d random messages\", messages_count)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_eacab34e","line":362,"in_reply_to":"fa0719c6_3c9a3d15","updated":"2016-03-21 14:37:20.000000000","message":"Done","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"edf8192ca89f885887840bd31c9e9204e650e13f","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    p \u003d eventlet.GreenPool(size\u003dthreads)"},{"line_number":403,"context_line":"    targets \u003d itertools.cycle(targets)"},{"line_number":404,"context_line":"    for i in range(0, threads):"},{"line_number":405,"context_line":"        target \u003d six.next(targets)"},{"line_number":406,"context_line":"        LOG.debug(\"starting RPC client for target %s\", target)"},{"line_number":407,"context_line":"        client_builder \u003d functools.partial(RPCClient, i, transport, target,"},{"line_number":408,"context_line":"                                           timeout, is_cast, wait_after_msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_9cb6e988","line":405,"updated":"2016-03-21 14:13:57.000000000","message":"next(targets) works on py 2.7 \u0026 py3","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"be22e12eca61f1476d64f277e7e3d4f98396da9b","unresolved":false,"context_lines":[{"line_number":402,"context_line":"    p \u003d eventlet.GreenPool(size\u003dthreads)"},{"line_number":403,"context_line":"    targets \u003d itertools.cycle(targets)"},{"line_number":404,"context_line":"    for i in range(0, threads):"},{"line_number":405,"context_line":"        target \u003d six.next(targets)"},{"line_number":406,"context_line":"        LOG.debug(\"starting RPC client for target %s\", target)"},{"line_number":407,"context_line":"        client_builder \u003d functools.partial(RPCClient, i, transport, target,"},{"line_number":408,"context_line":"                                           timeout, is_cast, wait_after_msg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa0719c6_cac7ef43","line":405,"in_reply_to":"fa0719c6_9cb6e988","updated":"2016-03-21 14:37:20.000000000","message":"Done","commit_id":"a29844fc1acfa186a634d69126b9dfe4b987da09"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"a2da72a37183dfbcd643cc0e2921b1b20074dfbe","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    ranges \u003d collections.defaultdict(int)"},{"line_number":66,"context_line":"    for msg_length in data:"},{"line_number":67,"context_line":"        range_start \u003d ((msg_length / DISTRIBUTION_BUCKET_SIZE) *"},{"line_number":68,"context_line":"                       DISTRIBUTION_BUCKET_SIZE + 1)"},{"line_number":69,"context_line":"        ranges[range_start] +\u003d 1"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    ranges_start \u003d sorted(ranges.keys())"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_8cf34c0a","line":68,"updated":"2016-03-21 16:42:34.000000000","message":"On Python 2, this expression gives an integer because int/int gives an int. On Python 3, you get a float. I suggest to use a//b to also get an integer on Python 3.","commit_id":"55d82eeda5d47d4996e444e56cfc7d9853cbb8a0"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"87a9eeb7b4497a170efecfb4870c1e1cd436d8d5","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    ranges \u003d collections.defaultdict(int)"},{"line_number":66,"context_line":"    for msg_length in data:"},{"line_number":67,"context_line":"        range_start \u003d ((msg_length / DISTRIBUTION_BUCKET_SIZE) *"},{"line_number":68,"context_line":"                       DISTRIBUTION_BUCKET_SIZE + 1)"},{"line_number":69,"context_line":"        ranges[range_start] +\u003d 1"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    ranges_start \u003d sorted(ranges.keys())"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_677251e7","line":68,"in_reply_to":"fa0719c6_8cf34c0a","updated":"2016-03-21 17:13:13.000000000","message":"Done","commit_id":"55d82eeda5d47d4996e444e56cfc7d9853cbb8a0"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"a2da72a37183dfbcd643cc0e2921b1b20074dfbe","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def weighted_random_choice():"},{"line_number":82,"context_line":"        r \u003d random.random() * running_total"},{"line_number":83,"context_line":"        start \u003d ranges_start[bisect.bisect_right(accumulated_distribution, r)]"},{"line_number":84,"context_line":"        return random.randrange(int(start), start + DISTRIBUTION_BUCKET_SIZE)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    return weighted_random_choice"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_ec8da87c","line":84,"updated":"2016-03-21 16:42:34.000000000","message":"I don\u0027t think that casting to int *here* is correct. I suggest to fix ranges_start instead. I don\u0027t think that ranges_start is supposed to contain floating point numbers.","commit_id":"55d82eeda5d47d4996e444e56cfc7d9853cbb8a0"},{"author":{"_account_id":5638,"name":"Davanum Srinivas","email":"davanum@gmail.com","username":"dims-v"},"change_message_id":"87a9eeb7b4497a170efecfb4870c1e1cd436d8d5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    def weighted_random_choice():"},{"line_number":82,"context_line":"        r \u003d random.random() * running_total"},{"line_number":83,"context_line":"        start \u003d ranges_start[bisect.bisect_right(accumulated_distribution, r)]"},{"line_number":84,"context_line":"        return random.randrange(int(start), start + DISTRIBUTION_BUCKET_SIZE)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    return weighted_random_choice"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_a77469cf","line":84,"in_reply_to":"fa0719c6_ec8da87c","updated":"2016-03-21 17:13:13.000000000","message":"Done","commit_id":"55d82eeda5d47d4996e444e56cfc7d9853cbb8a0"}]}
