)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"31257651dab397878f7ab015aa641a40672c0bc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ba0630ff_480e0a41","updated":"2022-03-17 14:43:29.000000000","message":"recheck","commit_id":"6c292222f96192eaeaa93849da7fb2aa37245deb"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"4526e1284540cf7e6b9b6d8ab6794c87af0dd2d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ff8b0d5e_4038dc2a","updated":"2022-03-17 09:04:15.000000000","message":"recheck","commit_id":"6c292222f96192eaeaa93849da7fb2aa37245deb"}],"logscraper/logscraper.py":[{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"463983f1847562986697363ec45bf99a961f37b0","unresolved":true,"context_lines":[{"line_number":280,"context_line":"            logging.critical(\"No cache file provided. Can not continue\")"},{"line_number":281,"context_line":"            sys.exit(1)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.create_db(filepath)"},{"line_number":284,"context_line":"        self.create_table()"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        rows \u003d self.fetch_data()"}],"source_content_type":"text/x-python","patch_set":6,"id":"f4ebca8e_84bc0f41","line":283,"updated":"2022-03-16 16:27:28.000000000","message":"if I understand correctly, the db is just used for serialization to disk. What was wrong with the previous implementation?","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"9ef114448a415420fbddcad3b9d80698f45cbda6","unresolved":false,"context_lines":[{"line_number":280,"context_line":"            logging.critical(\"No cache file provided. Can not continue\")"},{"line_number":281,"context_line":"            sys.exit(1)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.create_db(filepath)"},{"line_number":284,"context_line":"        self.create_table()"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        rows \u003d self.fetch_data()"}],"source_content_type":"text/x-python","patch_set":6,"id":"43bed55d_e4cffaa1","line":283,"in_reply_to":"72b316f5_10d12a70","updated":"2022-03-17 13:16:35.000000000","message":"Ack","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"d7f8528ad975a4b7dbda113250bdc79893157489","unresolved":true,"context_lines":[{"line_number":280,"context_line":"            logging.critical(\"No cache file provided. Can not continue\")"},{"line_number":281,"context_line":"            sys.exit(1)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        self.create_db(filepath)"},{"line_number":284,"context_line":"        self.create_table()"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        rows \u003d self.fetch_data()"}],"source_content_type":"text/x-python","patch_set":6,"id":"72b316f5_10d12a70","line":283,"in_reply_to":"f4ebca8e_84bc0f41","updated":"2022-03-17 08:23:06.000000000","message":"timestamp seems to be better to keep comparing to datetime object.\nThe text file was good some time ago or for simple implementation as it was earlier. Now it would be good to ask DB for a result instead of read whole file and check.","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"463983f1847562986697363ec45bf99a961f37b0","unresolved":true,"context_lines":[{"line_number":287,"context_line":"        if rows:"},{"line_number":288,"context_line":"            for r in rows:"},{"line_number":289,"context_line":"                uid, date \u003d r"},{"line_number":290,"context_line":"                self.builds[uid] \u003d date"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def create_db(self, filepath):"},{"line_number":293,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"43481034_b20e641e","line":290,"updated":"2022-03-16 16:27:28.000000000","message":"Where is the date decoded as a datetime? It seems like it is stored as `REAL`.","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"d7f8528ad975a4b7dbda113250bdc79893157489","unresolved":true,"context_lines":[{"line_number":287,"context_line":"        if rows:"},{"line_number":288,"context_line":"            for r in rows:"},{"line_number":289,"context_line":"                uid, date \u003d r"},{"line_number":290,"context_line":"                self.builds[uid] \u003d date"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def create_db(self, filepath):"},{"line_number":293,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fd5dd597_697207b6","line":290,"in_reply_to":"43481034_b20e641e","updated":"2022-03-17 08:23:06.000000000","message":"REAL because it shows float. Maybe good will be to parse into int and change column to INTEGER?","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"9ef114448a415420fbddcad3b9d80698f45cbda6","unresolved":false,"context_lines":[{"line_number":287,"context_line":"        if rows:"},{"line_number":288,"context_line":"            for r in rows:"},{"line_number":289,"context_line":"                uid, date \u003d r"},{"line_number":290,"context_line":"                self.builds[uid] \u003d date"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def create_db(self, filepath):"},{"line_number":293,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"624416ed_a8b897ee","line":290,"in_reply_to":"fd5dd597_697207b6","updated":"2022-03-17 13:16:35.000000000","message":"Ack","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"463983f1847562986697363ec45bf99a961f37b0","unresolved":true,"context_lines":[{"line_number":324,"context_line":"            del self.builds[outdated_build]"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def save(self, filepath):"},{"line_number":327,"context_line":"        self.cursor.executemany(\u0027INSERT INTO logscraper VALUES (?,?)\u0027,"},{"line_number":328,"context_line":"                                list(self.builds.items()))"},{"line_number":329,"context_line":"        self.connection.commit()"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"2f64ae4c_f6b18737","line":327,"updated":"2022-03-16 16:27:28.000000000","message":"It seems like the old builds are never removed from the database, is that on purpose?","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"},{"author":{"_account_id":20676,"name":"daniel.pawlik","display_name":"Daniel Pawlik","email":"dpawlik@redhat.com","username":"daniel.pawlik"},"change_message_id":"d7f8528ad975a4b7dbda113250bdc79893157489","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            del self.builds[outdated_build]"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"    def save(self, filepath):"},{"line_number":327,"context_line":"        self.cursor.executemany(\u0027INSERT INTO logscraper VALUES (?,?)\u0027,"},{"line_number":328,"context_line":"                                list(self.builds.items()))"},{"line_number":329,"context_line":"        self.connection.commit()"},{"line_number":330,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"25ef7c0c_f9a2a6f2","line":327,"in_reply_to":"2f64ae4c_f6b18737","updated":"2022-03-17 08:23:06.000000000","message":"Good point!","commit_id":"68b9edb20d1d5c144b416c71761439fa422996ca"}]}
