)]}'
{"rally/task/processing/charts.py":[{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fd9785ef97de0ad429f13ed8ec70ce5eb9707ce0","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_c08647b8","line":158,"updated":"2015-09-07 17:02:21.000000000","message":"Here:\n\n \u003e\u003e\u003e math.floor(math.log10(0.00629423499107))\n  -3.0","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ece2e31e0d7ab341495bc780e4ecdb0818e86631","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_9f1112b2","line":158,"in_reply_to":"da20952f_00edd1ee","updated":"2015-09-10 12:41:42.000000000","message":"\u003e\u003e\u003e min(int(-math.floor(math.log10(val))), 0)","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"eaf66459463114a31b05352d9446a2824af7ee93","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_f14f1e32","line":158,"in_reply_to":"da20952f_3a72547d","updated":"2015-09-10 15:10:20.000000000","message":"Should be \u0027max\u0027 instead, my bad.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"097fdcc323aec92798442d30f3c36b28cd585973","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_3a72547d","line":158,"in_reply_to":"da20952f_9f1112b2","updated":"2015-09-10 12:58:21.000000000","message":"Looks good","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e2c3c529d79dd22355fd1c042488148616258f42","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_00edd1ee","line":158,"in_reply_to":"da20952f_c08647b8","updated":"2015-09-09 13:03:45.000000000","message":"This looks interesting but does not work as expected if valie is greater than zero:\n\n \u003e\u003e\u003e int(abs(math.floor(math.log10(2269.423499107))))\n 3     # expected 0","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"156a0e332d3762d31889053282a54138ab894772","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        #   200    30.8043010235  0.154021505117    1         0.2"},{"line_number":156,"context_line":"        #   200    1.25884699821  0.00629423499107  3         0.006"},{"line_number":157,"context_line":"        step \u003d self._duration / float(scale)"},{"line_number":158,"context_line":"        for accuracy in range(5):"},{"line_number":159,"context_line":"            if step \u003e (10 ** -accuracy):"},{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_edc79f96","line":158,"in_reply_to":"da20952f_c08647b8","updated":"2015-09-08 15:24:47.000000000","message":"this is not clear for me - why you use math.log10() here?","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fd9785ef97de0ad429f13ed8ec70ce5eb9707ce0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_204ce39c","line":163,"updated":"2015-09-07 17:02:21.000000000","message":"self._time_axis \u003d [[step*x, 0, 0] for x in range(self._duration/step)]","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ece2e31e0d7ab341495bc780e4ecdb0818e86631","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_9f5fd274","line":163,"in_reply_to":"da20952f_001631f1","updated":"2015-09-10 12:41:42.000000000","message":"Uh, and, as well, use three distinct lists, not one list with a list items.\n\nBtw, your comment looks great: here, in the place they were invented for, you don\u0027t want to use comprehensions and you use it instead of `for\u0027 cycle.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e2c3c529d79dd22355fd1c042488148616258f42","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_001631f1","line":163,"in_reply_to":"da20952f_204ce39c","updated":"2015-09-09 13:03:45.000000000","message":"This saves 2 LOC but gives decreases readability a lot, not sure that this change is worth","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"db3dd398e4d5c19029b542c602c9c4609a72b1ab","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_98048814","line":163,"in_reply_to":"da20952f_626d4331","updated":"2015-09-11 21:49:07.000000000","message":"Done","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"4db2369e84a4112ed831015be83a0c1a28ecea19","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_626d4331","line":163,"in_reply_to":"da20952f_7a0e8ce6","updated":"2015-09-11 20:59:03.000000000","message":"imho Pavel way is much cleaner.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"097fdcc323aec92798442d30f3c36b28cd585973","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                step \u003d round(step, accuracy)"},{"line_number":161,"context_line":"                break"},{"line_number":162,"context_line":"        cursor \u003d round(step, accuracy)"},{"line_number":163,"context_line":"        while cursor \u003c self._duration:"},{"line_number":164,"context_line":"            self._time_axis.append([cursor, 0, 0])"},{"line_number":165,"context_line":"            cursor +\u003d step"},{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_7a0e8ce6","line":163,"in_reply_to":"da20952f_9f5fd274","updated":"2015-09-10 12:58:21.000000000","message":"Ok","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fd9785ef97de0ad429f13ed8ec70ce5eb9707ce0","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def add_iteration(self, iteration):"},{"line_number":169,"context_line":"        for timestamp, duration in self._map_iteration_values(iteration):"},{"line_number":170,"context_line":"            ts_start \u003d timestamp - self._tstamp_start"},{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_c022c7b8","line":169,"updated":"2015-09-07 17:02:21.000000000","message":"Your _map_iteration_values only returns one value. What is the need for the cycle?","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"097fdcc323aec92798442d30f3c36b28cd585973","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def add_iteration(self, iteration):"},{"line_number":169,"context_line":"        for timestamp, duration in self._map_iteration_values(iteration):"},{"line_number":170,"context_line":"            ts_start \u003d timestamp - self._tstamp_start"},{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_da39d8a4","line":169,"in_reply_to":"da20952f_1f542252","updated":"2015-09-10 12:58:21.000000000","message":"Agreed","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"156a0e332d3762d31889053282a54138ab894772","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def add_iteration(self, iteration):"},{"line_number":169,"context_line":"        for timestamp, duration in self._map_iteration_values(iteration):"},{"line_number":170,"context_line":"            ts_start \u003d timestamp - self._tstamp_start"},{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_cd909b51","line":169,"in_reply_to":"da20952f_c022c7b8","updated":"2015-09-08 15:24:47.000000000","message":"_map_iteration_values() is a part of Chart class interface, it is intended for easier adding of custom charts in future. This method is suggested by boris-42","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ece2e31e0d7ab341495bc780e4ecdb0818e86631","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self._time_axis.append([self._duration, 0, 0])"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def add_iteration(self, iteration):"},{"line_number":169,"context_line":"        for timestamp, duration in self._map_iteration_values(iteration):"},{"line_number":170,"context_line":"            ts_start \u003d timestamp - self._tstamp_start"},{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_1f542252","line":169,"in_reply_to":"da20952f_cd909b51","updated":"2015-09-10 12:41:42.000000000","message":"This only returns exactly *one* value. No need for the cycle.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fd9785ef97de0ad429f13ed8ec70ce5eb9707ce0","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_80ffef00","line":174,"updated":"2015-09-07 17:02:21.000000000","message":"We should really use a binary search here.\n\nBy the way, it seems like the following code is not really relied on filling up all the array, so you can simply fill one value.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"eaf66459463114a31b05352d9446a2824af7ee93","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_b160c6a5","line":174,"in_reply_to":"da20952f_1ab99015","updated":"2015-09-10 15:10:20.000000000","message":"Here it comes:\nhttp://paste.openstack.org/show/455204/","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"4db2369e84a4112ed831015be83a0c1a28ecea19","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_c2e8cf7d","line":174,"in_reply_to":"da20952f_2cae752e","updated":"2015-09-11 20:59:03.000000000","message":"Alex, \n\nI dislike the tone. Pavel is spending his time to improve your code. \nHe is making even code snippet to help you understand what he means. He shouldn\u0027t do your job and write production ready code with unit and functional tests. \n\nSo please take his code sniped and finish it.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ece2e31e0d7ab341495bc780e4ecdb0818e86631","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_5fd05ac9","line":174,"in_reply_to":"da20952f_409f4950","updated":"2015-09-10 12:41:42.000000000","message":"OK, I will provide with a better solution.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"097fdcc323aec92798442d30f3c36b28cd585973","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_1ab99015","line":174,"in_reply_to":"da20952f_5fd05ac9","updated":"2015-09-10 12:58:21.000000000","message":"Great. Waiting...","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e2c3c529d79dd22355fd1c042488148616258f42","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_409f4950","line":174,"in_reply_to":"da20952f_80ffef00","updated":"2015-09-09 13:03:45.000000000","message":"Propose better solution.\n\nHowever this piece of code works fine, it is reliable","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"8a28dffbf43c63a570574c1ca81f2b7fa18aa736","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_2cae752e","line":174,"in_reply_to":"da20952f_b160c6a5","updated":"2015-09-11 11:48:44.000000000","message":"Your code look cool, however it raises error http://paste.openstack.org/show/456635/","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"db3dd398e4d5c19029b542c602c9c4609a72b1ab","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":172,"context_line":"            start_found \u003d False"},{"line_number":173,"context_line":"            end_found \u003d False"},{"line_number":174,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":175,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":176,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":177,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_783e54b9","line":174,"in_reply_to":"da20952f_c2e8cf7d","updated":"2015-09-11 21:49:07.000000000","message":"Pavel\u0027s code has been applied today","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"d4ed5d5ad13cdf7b1836b028f796d9e7fef3cea3","unresolved":false,"context_lines":[{"line_number":177,"context_line":"            ts_end \u003d ts_start + duration"},{"line_number":178,"context_line":"            start_found \u003d False"},{"line_number":179,"context_line":"            end_found \u003d False"},{"line_number":180,"context_line":"            for i, value in enumerate(self._time_axis):"},{"line_number":181,"context_line":"                if not start_found and value[0] \u003e\u003d ts_start:"},{"line_number":182,"context_line":"                    self._time_axis[i][1] +\u003d 1"},{"line_number":183,"context_line":"                    start_found \u003d True"}],"source_content_type":"text/x-python","patch_set":19,"id":"da20952f_4f609135","line":180,"updated":"2015-09-10 22:36:47.000000000","message":"I\u0027m agree that here we could use binary search. I think its needed.","commit_id":"4cc531309555fd6351e63f4d3d2155a6011336f5"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"3539c65a383e43af053be670a7ed15b6cc5fc262","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        accuracy \u003d max(-int(math.floor(math.log10(step))), 0)"},{"line_number":163,"context_line":"        step \u003d round(step, accuracy)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self._time_axis \u003d [step * x for x in range(1, int(scale))]"},{"line_number":166,"context_line":"        self._time_axis.append(self._duration)"},{"line_number":167,"context_line":"        self._started \u003d [0] * len(self._time_axis)"},{"line_number":168,"context_line":"        self._stopped \u003d [0] * len(self._time_axis)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba15a1d1_6347d74b","line":165,"updated":"2015-09-15 16:10:14.000000000","message":"range-\u003esix.range pls","commit_id":"26be7c473e1f21f1370c019298e978739f94ba78"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"7bd7e50e480f9b194d60e8ddfee1b7bb21e64e9c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        accuracy \u003d max(-int(math.floor(math.log10(step))), 0)"},{"line_number":163,"context_line":"        step \u003d round(step, accuracy)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self._time_axis \u003d [step * x for x in range(1, int(scale))]"},{"line_number":166,"context_line":"        self._time_axis.append(self._duration)"},{"line_number":167,"context_line":"        self._started \u003d [0] * len(self._time_axis)"},{"line_number":168,"context_line":"        self._stopped \u003d [0] * len(self._time_axis)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba15a1d1_6e7a42f3","line":165,"in_reply_to":"ba15a1d1_549a7664","updated":"2015-09-16 08:23:56.000000000","message":"Will done","commit_id":"26be7c473e1f21f1370c019298e978739f94ba78"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"2bc147feac0a0bcbba549eb5e4c057b39b02b9ef","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        accuracy \u003d max(-int(math.floor(math.log10(step))), 0)"},{"line_number":163,"context_line":"        step \u003d round(step, accuracy)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self._time_axis \u003d [step * x for x in range(1, int(scale))]"},{"line_number":166,"context_line":"        self._time_axis.append(self._duration)"},{"line_number":167,"context_line":"        self._started \u003d [0] * len(self._time_axis)"},{"line_number":168,"context_line":"        self._stopped \u003d [0] * len(self._time_axis)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba15a1d1_7e69acbd","line":165,"in_reply_to":"ba15a1d1_6347d74b","updated":"2015-09-15 16:19:21.000000000","message":"six is not required here since we have real list in all python versions.\n\nAlso six.range is absent :) http://paste.openstack.org/show/463200/","commit_id":"26be7c473e1f21f1370c019298e978739f94ba78"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"dc530decd6e7ad611bcb5f3d3efb76711348ae5e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        accuracy \u003d max(-int(math.floor(math.log10(step))), 0)"},{"line_number":163,"context_line":"        step \u003d round(step, accuracy)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self._time_axis \u003d [step * x for x in range(1, int(scale))]"},{"line_number":166,"context_line":"        self._time_axis.append(self._duration)"},{"line_number":167,"context_line":"        self._started \u003d [0] * len(self._time_axis)"},{"line_number":168,"context_line":"        self._stopped \u003d [0] * len(self._time_axis)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba15a1d1_fc193a7a","line":165,"in_reply_to":"ba15a1d1_7e69acbd","updated":"2015-09-15 20:56:32.000000000","message":"so six.range will work as generator which is better in this case.","commit_id":"26be7c473e1f21f1370c019298e978739f94ba78"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"dabca87522fc89b021321e22372dfe63f3562234","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        accuracy \u003d max(-int(math.floor(math.log10(step))), 0)"},{"line_number":163,"context_line":"        step \u003d round(step, accuracy)"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        self._time_axis \u003d [step * x for x in range(1, int(scale))]"},{"line_number":166,"context_line":"        self._time_axis.append(self._duration)"},{"line_number":167,"context_line":"        self._started \u003d [0] * len(self._time_axis)"},{"line_number":168,"context_line":"        self._stopped \u003d [0] * len(self._time_axis)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ba15a1d1_549a7664","line":165,"in_reply_to":"ba15a1d1_fc193a7a","updated":"2015-09-16 00:39:07.000000000","message":"it is six.moves.range","commit_id":"26be7c473e1f21f1370c019298e978739f94ba78"}],"tests/unit/task/processing/test_charts.py":[{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fd9785ef97de0ad429f13ed8ec70ce5eb9707ce0","unresolved":false,"context_lines":[{"line_number":169,"context_line":"             \"load_duration\": load_duration, \"tstamp_start\": tstamp_start},"},{"line_number":170,"context_line":"            **kwargs)"},{"line_number":171,"context_line":"        self.assertIsInstance(chart, charts.Chart)"},{"line_number":172,"context_line":"        [chart.add_iteration({\"timestamp\": t, \"duration\": d, \"error\": e})"},{"line_number":173,"context_line":"         for t, d, e in data]"},{"line_number":174,"context_line":"        self.assertEqual(expected, chart.render())"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_bb10264f","line":172,"updated":"2015-09-07 17:02:21.000000000","message":"Please use cycle here.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"0c9500f378c2e8180a512b05f8ef9f43a42d4bef","unresolved":false,"context_lines":[{"line_number":169,"context_line":"             \"load_duration\": load_duration, \"tstamp_start\": tstamp_start},"},{"line_number":170,"context_line":"            **kwargs)"},{"line_number":171,"context_line":"        self.assertIsInstance(chart, charts.Chart)"},{"line_number":172,"context_line":"        [chart.add_iteration({\"timestamp\": t, \"duration\": d, \"error\": e})"},{"line_number":173,"context_line":"         for t, d, e in data]"},{"line_number":174,"context_line":"        self.assertEqual(expected, chart.render())"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"ba15a1d1_ff0430c7","line":172,"in_reply_to":"da20952f_805d617b","updated":"2015-09-12 23:13:50.000000000","message":"Because comprehensions are for the cases when you actually gonna use the result and there is *no* saving of LOCs in exactly that case.","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e2c3c529d79dd22355fd1c042488148616258f42","unresolved":false,"context_lines":[{"line_number":169,"context_line":"             \"load_duration\": load_duration, \"tstamp_start\": tstamp_start},"},{"line_number":170,"context_line":"            **kwargs)"},{"line_number":171,"context_line":"        self.assertIsInstance(chart, charts.Chart)"},{"line_number":172,"context_line":"        [chart.add_iteration({\"timestamp\": t, \"duration\": d, \"error\": e})"},{"line_number":173,"context_line":"         for t, d, e in data]"},{"line_number":174,"context_line":"        self.assertEqual(expected, chart.render())"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"da20952f_805d617b","line":172,"in_reply_to":"da20952f_bb10264f","updated":"2015-09-09 13:03:45.000000000","message":"Why?","commit_id":"a5df6f22528d795596ef3730a01e54999605bd49"}]}
