)]}'
{"mistral/db/v2/sqlalchemy/api.py":[{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"199465162452279f5f87e5543b1eb9a27719ab2d","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    # simplest is just to insert an object with an explicitly"},{"line_number":329,"context_line":"    # set id and then check if object with such id exists in DB."},{"line_number":330,"context_line":"    # Generated id must be unique to make it work."},{"line_number":331,"context_line":"    session.execute(insert, model.to_dict())"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"# Workbook definitions."}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_8db96aec","line":331,"range":{"start_line":331,"start_character":4,"end_line":331,"end_character":44},"updated":"2016-08-09 08:46:27.000000000","message":"Could we return at least the newly created DB object (like in simple \u0027create\u0027 method)?","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"28d3e13a776071f137c681cc2b131488d824dac1","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    # simplest is just to insert an object with an explicitly"},{"line_number":329,"context_line":"    # set id and then check if object with such id exists in DB."},{"line_number":330,"context_line":"    # Generated id must be unique to make it work."},{"line_number":331,"context_line":"    session.execute(insert, model.to_dict())"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"# Workbook definitions."}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_8d17aa50","line":331,"range":{"start_line":331,"start_character":4,"end_line":331,"end_character":44},"in_reply_to":"9ad45d7e_8db96aec","updated":"2016-08-09 08:52:20.000000000","message":"No, it\u0027s impossible here. This method does not create any objects that would be associated with SQLSessions, it operates with raw data. If we create such objects manually it will be detached from the session and can\u0027t be used in a normal way, hence if we return it it can be confusing because someone may want to work with it as with a normal session-attached object.","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"}],"mistral/engine/task_handler.py":[{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"6434f455e7accb5ba0c304b35e0108b0024911d3","unresolved":false,"context_lines":[{"line_number":289,"context_line":"    :param delay: Delay."},{"line_number":290,"context_line":"    :return:"},{"line_number":291,"context_line":"    \"\"\""},{"line_number":292,"context_line":"    key \u003d \u0027th_c_t_s_a-%s\u0027 % task_ex.id"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    scheduler.schedule_call("},{"line_number":295,"context_line":"        None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_f048f189","line":292,"range":{"start_line":292,"start_character":11,"end_line":292,"end_character":21},"updated":"2016-08-08 11:54:59.000000000","message":"Why use such prefix for the key?","commit_id":"734da2f553b04a8271997333a4dae137d71b115d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"76ebcfefa25d16abc79ccc41275124b646fad0e9","unresolved":false,"context_lines":[{"line_number":289,"context_line":"    :param delay: Delay."},{"line_number":290,"context_line":"    :return:"},{"line_number":291,"context_line":"    \"\"\""},{"line_number":292,"context_line":"    key \u003d \u0027th_c_t_s_a-%s\u0027 % task_ex.id"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    scheduler.schedule_call("},{"line_number":295,"context_line":"        None,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_c9038875","line":292,"range":{"start_line":292,"start_character":11,"end_line":292,"end_character":21},"in_reply_to":"9ad45d7e_f048f189","updated":"2016-08-08 12:24:26.000000000","message":"I just sacrificed the accuracy here in favor of reduced space taken in DB to store such keys. So instead of \"task_handler_check_task_start_allowed\" I used the first letters of the corresponding words \"th_c_t_s_a\".","commit_id":"734da2f553b04a8271997333a4dae137d71b115d"},{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"199465162452279f5f87e5543b1eb9a27719ab2d","unresolved":false,"context_lines":[{"line_number":289,"context_line":"    :param delay: Delay."},{"line_number":290,"context_line":"    :return:"},{"line_number":291,"context_line":"    \"\"\""},{"line_number":292,"context_line":"    key \u003d \u0027th_c_t_s_a-%s\u0027 % task_ex.id"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    scheduler.schedule_call("},{"line_number":295,"context_line":"        None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_ad41ce0d","line":292,"range":{"start_line":292,"start_character":10,"end_line":292,"end_character":25},"updated":"2016-08-09 08:46:27.000000000","message":"Why it is not like \u0027ch_t_s_a-...\u0027 ? (Check task start allowed)","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"28d3e13a776071f137c681cc2b131488d824dac1","unresolved":false,"context_lines":[{"line_number":289,"context_line":"    :param delay: Delay."},{"line_number":290,"context_line":"    :return:"},{"line_number":291,"context_line":"    \"\"\""},{"line_number":292,"context_line":"    key \u003d \u0027th_c_t_s_a-%s\u0027 % task_ex.id"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    scheduler.schedule_call("},{"line_number":295,"context_line":"        None,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_684d0472","line":292,"range":{"start_line":292,"start_character":10,"end_line":292,"end_character":25},"in_reply_to":"9ad45d7e_ad41ce0d","updated":"2016-08-09 08:52:20.000000000","message":"I just added \u0027th\u0027 for \u0027task handler\u0027 in the beginning. Please don\u0027t be so picky about these key names, they don\u0027t matter at all, it\u0027s a purely internal thing. We can use any other value as well.","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"}],"mistral/engine/tasks.py":[{"author":{"_account_id":7700,"name":"Nikolay Mahotkin","email":"nikolay.makhotkin@gmail.com","username":"nmakhotkin"},"change_message_id":"199465162452279f5f87e5543b1eb9a27719ab2d","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            \u0027project_id\u0027: self.wf_ex.project_id"},{"line_number":205,"context_line":"        }"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        db_api.insert_or_ignore_task_execution(values)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Since \u0027insert_or_ignore\u0027 cannot return a valid count of updated"},{"line_number":210,"context_line":"        # rows the only reliable way to check if insert operation has created"},{"line_number":211,"context_line":"        # an object is try to load this object by just generated uuid."},{"line_number":212,"context_line":"        task_ex \u003d db_api.load_task_execution(values[\u0027id\u0027])"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        if not task_ex:"},{"line_number":215,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_0dc29a33","line":212,"range":{"start_line":207,"start_character":8,"end_line":212,"end_character":58},"updated":"2016-08-09 08:46:27.000000000","message":"If insert_or_ignore had returned the DB object here, there wouldn\u0027t have been one extra \u0027load\u0027 call.","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"28d3e13a776071f137c681cc2b131488d824dac1","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            \u0027project_id\u0027: self.wf_ex.project_id"},{"line_number":205,"context_line":"        }"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        db_api.insert_or_ignore_task_execution(values)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        # Since \u0027insert_or_ignore\u0027 cannot return a valid count of updated"},{"line_number":210,"context_line":"        # rows the only reliable way to check if insert operation has created"},{"line_number":211,"context_line":"        # an object is try to load this object by just generated uuid."},{"line_number":212,"context_line":"        task_ex \u003d db_api.load_task_execution(values[\u0027id\u0027])"},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"        if not task_ex:"},{"line_number":215,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"9ad45d7e_c86510e2","line":212,"range":{"start_line":207,"start_character":8,"end_line":212,"end_character":58},"in_reply_to":"9ad45d7e_0dc29a33","updated":"2016-08-09 08:52:20.000000000","message":"Yes, but that\u0027s not really possible. See my comment in this method.","commit_id":"9f236248c1aaee238e9b476f50350b17f2dbb259"}],"mistral/tests/unit/engine/test_direct_workflow_rerun.py":[{"author":{"_account_id":19206,"name":"Dawid Deja","email":"dawdej@gmail.com","username":"ddeja"},"change_message_id":"6434f455e7accb5ba0c304b35e0108b0024911d3","unresolved":false,"context_lines":[{"line_number":939,"context_line":"        self.assertEqual(states.RUNNING, wf_ex.state)"},{"line_number":940,"context_line":"        self.assertIsNone(wf_ex.state_info)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        wf_ex \u003d db_api.get_workflow_execution(wf_ex.id)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        # Join now should finally complete."},{"line_number":945,"context_line":"        self.await_task_success(task_3_ex.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_93fc1f40","line":942,"range":{"start_line":942,"start_character":7,"end_line":942,"end_character":55},"updated":"2016-08-08 11:54:59.000000000","message":"Why there is need to get the wf_ex from db? Cannot we use the object acquired in line 937?","commit_id":"734da2f553b04a8271997333a4dae137d71b115d"},{"author":{"_account_id":8731,"name":"Renat Akhmerov","email":"renat.akhmerov@gmail.com","username":"rakhmerov"},"change_message_id":"76ebcfefa25d16abc79ccc41275124b646fad0e9","unresolved":false,"context_lines":[{"line_number":939,"context_line":"        self.assertEqual(states.RUNNING, wf_ex.state)"},{"line_number":940,"context_line":"        self.assertIsNone(wf_ex.state_info)"},{"line_number":941,"context_line":""},{"line_number":942,"context_line":"        wf_ex \u003d db_api.get_workflow_execution(wf_ex.id)"},{"line_number":943,"context_line":""},{"line_number":944,"context_line":"        # Join now should finally complete."},{"line_number":945,"context_line":"        self.await_task_success(task_3_ex.id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_691d3cbd","line":942,"range":{"start_line":942,"start_character":7,"end_line":942,"end_character":55},"in_reply_to":"9ad45d7e_93fc1f40","updated":"2016-08-08 12:24:26.000000000","message":"Yes, it is redundant. I\u0027ll remove it. Thanks.","commit_id":"734da2f553b04a8271997333a4dae137d71b115d"}]}
