)]}'
{"gnocchi/carbonara.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8bc593d65ae8907a839e95d60dc97e138ad59535","unresolved":false,"context_lines":[{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        left_boundary \u003d None"},{"line_number":415,"context_line":"        if from_timestamp is None:"},{"line_number":416,"context_line":"            forward_index \u003d -1"},{"line_number":417,"context_line":"            while (points_count[\u0027value\u0027].iget(forward_index) %"},{"line_number":418,"context_line":"                   len(timeseries) \u003d\u003d 0):"},{"line_number":419,"context_line":"                forward_index -\u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_20cf8bb4","line":416,"updated":"2015-01-15 13:08:04.000000000","message":"This confused me initially ... would it be clearer as s/forward_index/backward_index/ since the indexing direction is backward from the end of the dataframe.","commit_id":"0e085cb2463bb91a0d6ec8b425b64be4d697da37"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8bc593d65ae8907a839e95d60dc97e138ad59535","unresolved":false,"context_lines":[{"line_number":420,"context_line":"            left_boundary \u003d len(points_count) + forward_index + 1"},{"line_number":421,"context_line":"            points_count \u003d points_count[left_boundary:]"},{"line_number":422,"context_line":"            if len(points_count) \u003d\u003d 0:"},{"line_number":423,"context_line":"                raise UnAggregableTimeseries(\u0027No overlap left\u0027)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if to_timestamp is not None or from_timestamp is not None:"},{"line_number":426,"context_line":"            maximum \u003d len(points_count)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_20d22b34","line":423,"updated":"2015-01-15 13:08:04.000000000","message":"Is this meant to mean \u0027No overlap left\u0027 in the sense of left versus right, or \u0027No overlap remaining\u0027?","commit_id":"0e085cb2463bb91a0d6ec8b425b64be4d697da37"}],"gnocchi/tests/test_carbonara.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"52b9ac582c1bdb3c8be7caed2404785fa4726391","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 6, 0), 4),"},{"line_number":593,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 7, 0), 10),"},{"line_number":594,"context_line":"        ])"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        dtfrom \u003d datetime.datetime(2014, 1, 1, 12, 0, 0)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        # By default we require 100% of point that overlap"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_6fc45740","line":595,"updated":"2014-12-18 16:27:25.000000000","message":"What happens if there are 2 data points?\n\nI miss why we should handle this corner case this way.","commit_id":"f44bd0b65ce97642973bfab9e1eaf51f39acbc52"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d1258c94ee6aa8759ee564102b23f1b770258b0f","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 6, 0), 4),"},{"line_number":593,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 7, 0), 10),"},{"line_number":594,"context_line":"        ])"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        dtfrom \u003d datetime.datetime(2014, 1, 1, 12, 0, 0)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        # By default we require 100% of point that overlap"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_aba0e5a5","line":595,"in_reply_to":"3a961159_3707e819","updated":"2015-01-15 11:20:35.000000000","message":"If they are not set, the to_timestamp/from_timestamp are now calculated automatically.","commit_id":"f44bd0b65ce97642973bfab9e1eaf51f39acbc52"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"103092ef2d041a430e004d98afbd21c5893d2a51","unresolved":false,"context_lines":[{"line_number":592,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 6, 0), 4),"},{"line_number":593,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 7, 0), 10),"},{"line_number":594,"context_line":"        ])"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"        dtfrom \u003d datetime.datetime(2014, 1, 1, 12, 0, 0)"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"        # By default we require 100% of point that overlap"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_3707e819","line":595,"in_reply_to":"3a961159_6fc45740","updated":"2014-12-19 10:52:24.000000000","message":"This about a \t\nEoghan Glynn question here: https://review.openstack.org/#/c/140638/5/gnocchi/carbonara.py\n\nPersonnally I\u0027 m not sure that gnocchi should handle this case.","commit_id":"f44bd0b65ce97642973bfab9e1eaf51f39acbc52"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8bc593d65ae8907a839e95d60dc97e138ad59535","unresolved":false,"context_lines":[{"line_number":570,"context_line":""},{"line_number":571,"context_line":"        # By default we require 100% of point that overlap"},{"line_number":572,"context_line":"        # but we allow that the last datapoint is missing"},{"line_number":573,"context_line":"        # of the precisest granularity"},{"line_number":574,"context_line":"        output \u003d carbonara.TimeSerieArchive.aggregated(["},{"line_number":575,"context_line":"            tsc1, tsc2])"},{"line_number":576,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_9609652d","line":573,"updated":"2015-01-15 13:08:04.000000000","message":"I don\u0027t understand the reference to the \"precisest granularity\" in this comment, as I thought the left_ and right_boundary finding logic would apply to all granularities defined for the metric?","commit_id":"0e085cb2463bb91a0d6ec8b425b64be4d697da37"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"8bc593d65ae8907a839e95d60dc97e138ad59535","unresolved":false,"context_lines":[{"line_number":578,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:03:00\u0027), 60.0, 4.0),"},{"line_number":579,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:04:00\u0027), 60.0, 2.0),"},{"line_number":580,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:05:00\u0027), 60.0, 3.0),"},{"line_number":581,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:06:00\u0027), 60.0, 4.0),"},{"line_number":582,"context_line":"        ], output)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_56861d66","line":581,"updated":"2015-01-15 13:08:04.000000000","message":"It would be interesting to extend this test to cover the case where there are \"holes\" in the overlap, e.g. datapoints in both timeseries for 12:02:00, 12:04:00, 12:05:00 \u0026 12:06:00, but not 12:03:00.","commit_id":"0e085cb2463bb91a0d6ec8b425b64be4d697da37"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"669e27db71bb71d361d0539a14e6bfb57dcefc5c","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:07:00\u0027), 60.0, 10.0),"},{"line_number":553,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:09:00\u0027), 60.0, 2.0),"},{"line_number":554,"context_line":"        ], output)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    def test_aggregated_different_archive_overlap_edge_missing1(self):"},{"line_number":557,"context_line":"        tsc1 \u003d carbonara.TimeSerieArchive.from_definitions("},{"line_number":558,"context_line":"            [(pandas.tseries.offsets.Minute(1), 10)])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_0d329c5d","line":555,"updated":"2015-01-16 14:22:04.000000000","message":"I don\u0027t see a failing case here :(","commit_id":"63cd02c9fb90f2f796136ee3b64f547c6c1d01c6"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"ac284730d8b4f472098254b620a53a7d563c30d8","unresolved":false,"context_lines":[{"line_number":552,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:07:00\u0027), 60.0, 10.0),"},{"line_number":553,"context_line":"            (pandas.Timestamp(\u00272014-01-01 12:09:00\u0027), 60.0, 2.0),"},{"line_number":554,"context_line":"        ], output)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":"    def test_aggregated_different_archive_overlap_edge_missing1(self):"},{"line_number":557,"context_line":"        tsc1 \u003d carbonara.TimeSerieArchive.from_definitions("},{"line_number":558,"context_line":"            [(pandas.tseries.offsets.Minute(1), 10)])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a930d6b_159fb853","line":555,"in_reply_to":"3a961159_0d329c5d","updated":"2015-01-27 08:55:19.000000000","message":"We have test_aggregated_different_archive_no_overlap and test_aggregated_different_archive_no_overlap2","commit_id":"63cd02c9fb90f2f796136ee3b64f547c6c1d01c6"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"669e27db71bb71d361d0539a14e6bfb57dcefc5c","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 3, 0), 4),"},{"line_number":564,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 4, 0), 2),"},{"line_number":565,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 5, 0), 3),"},{"line_number":566,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 6, 0), 4),"},{"line_number":567,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 7, 0), 10),"},{"line_number":568,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 8, 0), 2),"},{"line_number":569,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_ade988ac","line":566,"updated":"2015-01-16 14:22:04.000000000","message":"You use the same values in both cases, you could at least change them, and test another aggregation method than mean.","commit_id":"63cd02c9fb90f2f796136ee3b64f547c6c1d01c6"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"ac284730d8b4f472098254b620a53a7d563c30d8","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 3, 0), 4),"},{"line_number":564,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 4, 0), 2),"},{"line_number":565,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 5, 0), 3),"},{"line_number":566,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 6, 0), 4),"},{"line_number":567,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 7, 0), 10),"},{"line_number":568,"context_line":"            (datetime.datetime(2014, 1, 1, 12, 8, 0), 2),"},{"line_number":569,"context_line":"        ])"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a930d6b_6bf14f94","line":566,"in_reply_to":"3a961159_ade988ac","updated":"2015-01-27 08:55:19.000000000","message":"Done","commit_id":"63cd02c9fb90f2f796136ee3b64f547c6c1d01c6"}]}
