)]}'
{"blazar/manager/service.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"dc69ec72535e5988cc55afb73d6f8ab3551387aa","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        \"\"\""},{"line_number":179,"context_line":"        if not events:"},{"line_number":180,"context_line":"            return [], events"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        events_by_lease \u003d defaultdict(list)"},{"line_number":183,"context_line":"        events_by_type \u003d defaultdict(list)"},{"line_number":184,"context_line":"        selected_events \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_b12815e2","line":181,"updated":"2018-08-23 07:24:40.000000000","message":"We could have a short cut here something like:\n\n  all_events_type \u003d set([e[\u0027event_type\u0027] for e in events])\n  if len(all_events_type)\u003d\u003d1:\n      return events, []","commit_id":"a996653da4b6194cab606d04c7c871d46297d10b"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"4f83543413cc047049d5d19c002e59f066a15906","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        \"\"\""},{"line_number":179,"context_line":"        if not events:"},{"line_number":180,"context_line":"            return [], events"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        events_by_lease \u003d defaultdict(list)"},{"line_number":183,"context_line":"        events_by_type \u003d defaultdict(list)"},{"line_number":184,"context_line":"        selected_events \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_577c3571","line":181,"in_reply_to":"3f79a3b5_b12815e2","updated":"2020-11-09 21:54:02.000000000","message":"In the updated patchset, batches for each event type can be 0 size. If the list is empty, then the processing is skipped for that type. I think that is equivalent to what you have proposed here.","commit_id":"a996653da4b6194cab606d04c7c871d46297d10b"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"a41def351df43dbeaa1c79bc15aa707e44b51dd9","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                    if e[\u0027event_type\u0027] \u003d\u003d \u0027start_lease\u0027]) \u003e 0:"},{"line_number":196,"context_line":"                events_by_type[\u0027before_end_lease\u0027].remove(before_end_event)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if events_by_type[\u0027before_end_lease\u0027]:"},{"line_number":199,"context_line":"            selected_events \u003d events_by_type[\u0027before_end_lease\u0027]"},{"line_number":200,"context_line":"        elif events_by_type[\u0027end_lease\u0027]:"},{"line_number":201,"context_line":"            selected_events \u003d events_by_type[\u0027end_lease\u0027]"},{"line_number":202,"context_line":"        elif events_by_type[\u0027start_lease\u0027]:"},{"line_number":203,"context_line":"            selected_events \u003d events_by_type[\u0027start_lease\u0027]"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for e in selected_events:"},{"line_number":206,"context_line":"            events.remove(e)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_e2a3c19c","line":203,"range":{"start_line":198,"start_character":1,"end_line":203,"end_character":59},"updated":"2018-08-28 09:36:03.000000000","message":"The _process_events_concurrently() waits at its end. It\u0027s ok to call the method for each events_type one by one here.  It reduces the unnecessary loop in _process_evnets().","commit_id":"a996653da4b6194cab606d04c7c871d46297d10b"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"4f83543413cc047049d5d19c002e59f066a15906","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                    if e[\u0027event_type\u0027] \u003d\u003d \u0027start_lease\u0027]) \u003e 0:"},{"line_number":196,"context_line":"                events_by_type[\u0027before_end_lease\u0027].remove(before_end_event)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        if events_by_type[\u0027before_end_lease\u0027]:"},{"line_number":199,"context_line":"            selected_events \u003d events_by_type[\u0027before_end_lease\u0027]"},{"line_number":200,"context_line":"        elif events_by_type[\u0027end_lease\u0027]:"},{"line_number":201,"context_line":"            selected_events \u003d events_by_type[\u0027end_lease\u0027]"},{"line_number":202,"context_line":"        elif events_by_type[\u0027start_lease\u0027]:"},{"line_number":203,"context_line":"            selected_events \u003d events_by_type[\u0027start_lease\u0027]"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        for e in selected_events:"},{"line_number":206,"context_line":"            events.remove(e)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1f621f24_d76165d5","line":203,"range":{"start_line":198,"start_character":1,"end_line":203,"end_character":59},"in_reply_to":"3f79a3b5_e2a3c19c","updated":"2020-11-09 21:54:02.000000000","message":"I have addressed this--now this function returns a list of event batches. As you point out, it removes the need for the processing loop.","commit_id":"a996653da4b6194cab606d04c7c871d46297d10b"}]}
