)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-05-21 20:53:47 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add junit output format"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ie4de1ea174fb9fff644285b2198d20dc5b0893e6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a016987_c6576c24","line":8,"updated":"2015-05-22 12:24:29.000000000","message":"Please add more detail in the commit message, what you\u0027ve specifically added, briefly how it works, etc.","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"db26cc52c86a89a11ce668f3cb48815375c360e8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jelle van der Waa \u003cjelle@vdwaa.nl\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-25 14:14:16 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add XML output format support, generates an xml file which contains a"},{"line_number":8,"context_line":"\u003ctestsuite\u003e element with \u003ctestcase\u003e per bandit warning which contains an"},{"line_number":9,"context_line":"\u003cerror\u003e element describing the exact warning message, severity, file and line"},{"line_number":10,"context_line":"number."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_9994ebe8","line":7,"updated":"2015-05-26 17:46:06.000000000","message":"I would suggest splitting this at the comment. You can then begin the next paragraph with \"This allows bandit to generate an xml file which ...\"","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"8a68f80c96c66568c7cdb6225eb27872ef96fdf8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jelle van der Waa \u003cjelle@vdwaa.nl\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-25 14:14:16 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add XML output format support, generates an xml file which contains a"},{"line_number":8,"context_line":"\u003ctestsuite\u003e element with \u003ctestcase\u003e per bandit warning which contains an"},{"line_number":9,"context_line":"\u003cerror\u003e element describing the exact warning message, severity, file and line"},{"line_number":10,"context_line":"number."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_3a2e29a6","line":7,"updated":"2015-05-25 17:17:26.000000000","message":"Please see:\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages\n\nYou need one title line, followed by a blank line and limit line widths.  Thanks","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"7c56243742e5fadc388add71147c1e0eed9a3ba3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jelle van der Waa \u003cjelle@vdwaa.nl\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-05-25 14:14:16 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add XML output format support, generates an xml file which contains a"},{"line_number":8,"context_line":"\u003ctestsuite\u003e element with \u003ctestcase\u003e per bandit warning which contains an"},{"line_number":9,"context_line":"\u003cerror\u003e element describing the exact warning message, severity, file and line"},{"line_number":10,"context_line":"number."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_edbfb65e","line":7,"in_reply_to":"7a016987_3a2e29a6","updated":"2015-05-25 23:41:36.000000000","message":"+1","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":8119,"name":"Eric Brown","email":"eric_wade_brown@yahoo.com","username":"ericwb"},"change_message_id":"8a68f80c96c66568c7cdb6225eb27872ef96fdf8","unresolved":false,"context_lines":[{"line_number":10,"context_line":"number."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"The XML output can be used to integrate bandit in Jenkins with either the Junit or Xunit test result report plugin."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Ie4de1ea174fb9fff644285b2198d20dc5b0893e6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_b507ca17","line":13,"updated":"2015-05-25 17:17:26.000000000","message":"Seems significant enough to do a wish-list bug or blueprint.","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"}],"bandit/bandit.py":[{"author":{"_account_id":15173,"name":"Rob Fletcher","email":"rfletch.vol@gmail.com","username":"fletcher"},"change_message_id":"08fd5fa3f7ffe320e8296bd6d5216206419ae7c5","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    parser.add_argument("},{"line_number":66,"context_line":"        \u0027-f\u0027, \u0027--format\u0027, dest\u003d\u0027output_format\u0027, action\u003d\u0027store\u0027,"},{"line_number":67,"context_line":"        default\u003d\u0027txt\u0027, help\u003d\u0027specify output format\u0027,"},{"line_number":68,"context_line":"        choices\u003d[\u0027txt\u0027, \u0027json\u0027, \u0027csv\u0027, \u0027junit\u0027]"},{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":"    parser.add_argument("},{"line_number":71,"context_line":"        \u0027-o\u0027, \u0027--output\u0027, dest\u003d\u0027output_file\u0027, action\u003d\u0027store\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_73f52aeb","line":68,"updated":"2015-05-21 19:39:52.000000000","message":"I don\u0027t think junit makes sense here. We are adding an XML output file format.\n\nWe should replace all references to junit with XML","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    parser.add_argument("},{"line_number":66,"context_line":"        \u0027-f\u0027, \u0027--format\u0027, dest\u003d\u0027output_format\u0027, action\u003d\u0027store\u0027,"},{"line_number":67,"context_line":"        default\u003d\u0027txt\u0027, help\u003d\u0027specify output format\u0027,"},{"line_number":68,"context_line":"        choices\u003d[\u0027txt\u0027, \u0027json\u0027, \u0027csv\u0027, \u0027junit\u0027]"},{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":"    parser.add_argument("},{"line_number":71,"context_line":"        \u0027-o\u0027, \u0027--output\u0027, dest\u003d\u0027output_file\u0027, action\u003d\u0027store\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_66667852","line":68,"in_reply_to":"7a016987_488838c5","updated":"2015-05-22 12:24:29.000000000","message":"+1 - presumably we are generally producing XML which happens to work for JUnit","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"580cae6e66f8dc38dd1b3b9f39dea27a24ef8faa","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    parser.add_argument("},{"line_number":66,"context_line":"        \u0027-f\u0027, \u0027--format\u0027, dest\u003d\u0027output_format\u0027, action\u003d\u0027store\u0027,"},{"line_number":67,"context_line":"        default\u003d\u0027txt\u0027, help\u003d\u0027specify output format\u0027,"},{"line_number":68,"context_line":"        choices\u003d[\u0027txt\u0027, \u0027json\u0027, \u0027csv\u0027, \u0027junit\u0027]"},{"line_number":69,"context_line":"    )"},{"line_number":70,"context_line":"    parser.add_argument("},{"line_number":71,"context_line":"        \u0027-o\u0027, \u0027--output\u0027, dest\u003d\u0027output_file\u0027, action\u003d\u0027store\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_488838c5","line":68,"in_reply_to":"7a016987_73f52aeb","updated":"2015-05-21 21:38:11.000000000","message":"I\u0027d be inclined to call it \u0027xml\u0027 and maybe note in comments / documentation that it is Junit-compatible?","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"}],"bandit/core/result_store.py":[{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"        self.count +\u003d 1"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def _report_junit(self, file_list, scores, excluded_files):"},{"line_number":95,"context_line":"        \u0027\u0027\u0027Prints/returns warnings in JUnit (XML) format"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"        :param files_list: Which files were inspected"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_0662240a","line":94,"updated":"2015-05-22 12:24:29.000000000","message":"if we\u0027re changing to \"XML\" we should change this also","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":15173,"name":"Rob Fletcher","email":"rfletch.vol@gmail.com","username":"fletcher"},"change_message_id":"08fd5fa3f7ffe320e8296bd6d5216206419ae7c5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        :return: A collection containing the JUnit (XML) data"},{"line_number":101,"context_line":"        \u0027\u0027\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        import xml.etree.cElementTree as ET"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.out_file is None:"},{"line_number":106,"context_line":"            self.out_file \u003d \u0027bandit_results.xml\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_737e4a6b","line":103,"updated":"2015-05-21 19:39:52.000000000","message":"We should be using defusedxml\u0027s cElementTree to avoid XML vulnerabilities","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        :return: A collection containing the JUnit (XML) data"},{"line_number":101,"context_line":"        \u0027\u0027\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        import xml.etree.cElementTree as ET"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.out_file is None:"},{"line_number":106,"context_line":"            self.out_file \u003d \u0027bandit_results.xml\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_46d01cc9","line":103,"in_reply_to":"7a016987_68065453","updated":"2015-05-22 12:24:29.000000000","message":"+1 - we have to be very careful about dragging in new dependencies, particularly ones that aren\u0027t in OpenStack global requirements already.  This should be safe as we aren\u0027t consuming XML.","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":15173,"name":"Rob Fletcher","email":"rfletch.vol@gmail.com","username":"fletcher"},"change_message_id":"ba1da9ec9b7cc2313764589c73e6669c42979914","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        :return: A collection containing the JUnit (XML) data"},{"line_number":101,"context_line":"        \u0027\u0027\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        import xml.etree.cElementTree as ET"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.out_file is None:"},{"line_number":106,"context_line":"            self.out_file \u003d \u0027bandit_results.xml\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_d9051c11","line":103,"in_reply_to":"7a016987_68065453","updated":"2015-05-21 23:05:34.000000000","message":"Good point about producing XML versus consuming XML. I tend to lean towards dogfooding as we have in the past [0], even though content isn\u0027t necessarily untrusted, but I think your point about non-stdlib dependency and the fact we are only producing XML make sense.\n\n[0] https://github.com/stackforge/bandit/blob/6e2e387e4fb5a91867e8c7ea46ed8c7357df253a/bandit/core/config.py#L47","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11029,"name":"Jamie Finnigan","email":"jamiefinnigan@gmail.com","username":"jamiefinnigan"},"change_message_id":"580cae6e66f8dc38dd1b3b9f39dea27a24ef8faa","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        :return: A collection containing the JUnit (XML) data"},{"line_number":101,"context_line":"        \u0027\u0027\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"        import xml.etree.cElementTree as ET"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        if self.out_file is None:"},{"line_number":106,"context_line":"            self.out_file \u003d \u0027bandit_results.xml\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_68065453","line":103,"in_reply_to":"7a016987_737e4a6b","updated":"2015-05-21 21:38:11.000000000","message":"Based on the fact that all we\u0027re doing is writing an XML file (rather than consuming XML from an untrusted source), I\u0027d prefer to use the stdlib xml module instead of adding another non-stdlib dependency.","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":112,"context_line":"                testcase \u003d ET.SubElement(root, \u0027testcase\u0027, classname\u003dfilename, name\u003dissue[\u0027test\u0027])"},{"line_number":113,"context_line":"                if self._check_severity(issue[\u0027issue_severity\u0027]):"},{"line_number":114,"context_line":"                    text \u003d \u0027Severity: %s Confidence: %s \\n%s\\nLocation %s:%s\u0027 % ("},{"line_number":115,"context_line":"                            issue[\u0027issue_severity\u0027], issue[\u0027issue_confidence\u0027], "},{"line_number":116,"context_line":"                            issue[\u0027issue_text\u0027], issue[\u0027fname\u0027], issue[\u0027lineno\u0027])"},{"line_number":117,"context_line":"                    ET.SubElement(testcase, \u0027error\u0027, type\u003dissue[\u0027issue_severity\u0027],"},{"line_number":118,"context_line":"                            message\u003dissue[\u0027issue_text\u0027]).text \u003d text"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_e6002836","line":115,"updated":"2015-05-22 12:24:29.000000000","message":"trailing linespace","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"16090d13632db2aa80bd16f5b891a69137f1d831","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                            message\u003dissue[\u0027issue_text\u0027]).text \u003d text"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":121,"context_line":"        tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":122,"context_line":"        print(\"XML output written to file: %s\" % self.out_file)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def _report_csv(self, file_list, scores, excluded_files):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_0606a451","line":121,"updated":"2015-05-22 12:24:29.000000000","message":"This probably needs a Try/Except - if nothing else to catch problems writing to the file you\u0027ve chosen.","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":15173,"name":"Rob Fletcher","email":"rfletch.vol@gmail.com","username":"fletcher"},"change_message_id":"08fd5fa3f7ffe320e8296bd6d5216206419ae7c5","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                self._report_csv(files_list, scores,"},{"line_number":339,"context_line":"                                 excluded_files\u003dexcluded_files)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if self.format \u003d\u003d \u0027junit\u0027:"},{"line_number":342,"context_line":"                self._report_junit(files_list, scores,"},{"line_number":343,"context_line":"                                 excluded_files\u003dexcluded_files)"},{"line_number":344,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_937b067b","line":341,"updated":"2015-05-21 19:39:52.000000000","message":"This if should be an elif","commit_id":"33c06848ff9f51be7ee5f7cceaa491c2a4d691fb"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"b7824f058b9fae65c610c82ac9007985be034c86","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                            message\u003dissue[\u0027issue_text\u0027]).text \u003d text"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":122,"context_line":"        tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":123,"context_line":"        print(\"XML output written to file: %s\" % self.out_file)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def _report_csv(self, file_list, scores, excluded_files):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_13cdac30","line":122,"updated":"2015-05-24 13:02:34.000000000","message":"you need a Try block here in case the output file can\u0027t be written","commit_id":"6851ce4a7230b10c46953aa68ad9c25aaa20c3f2"},{"author":{"_account_id":16195,"name":"Jelle van der Waa","email":"jelle@vdwaa.nl","username":"jelly"},"change_message_id":"e699311c066bb9f59f9d70f79cb986d42db91504","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                            message\u003dissue[\u0027issue_text\u0027]).text \u003d text"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":122,"context_line":"        tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":123,"context_line":"        print(\"XML output written to file: %s\" % self.out_file)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    def _report_csv(self, file_list, scores, excluded_files):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_0b3448f9","line":122,"in_reply_to":"7a016987_13cdac30","updated":"2015-05-26 19:40:05.000000000","message":"I\u0027ll add a Try block, but since multiple exceptions can be thrown I\u0027ll just catch them all. (They might be PermissionError, IsADirectoryError etc.)","commit_id":"6851ce4a7230b10c46953aa68ad9c25aaa20c3f2"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"db26cc52c86a89a11ce668f3cb48815375c360e8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":126,"context_line":"        except Exception:"},{"line_number":127,"context_line":"            print(\"Failed to write XML file to %s\" % self.out_file)"},{"line_number":128,"context_line":"            sys.exit(2)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_79992f1f","line":126,"updated":"2015-05-26 17:46:06.000000000","message":"+1. Also if there are multiple exceptions you\u0027re attempting to catch with the same handling, just do\n\n    except (ExceptionA, ExceptionB, ExceptionC) as e:\n\nYou can then maybe print the exception message as well so people know /why/ it failed.","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"bfb44a54b90474896e45347893206d7dabff86f8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":126,"context_line":"        except Exception:"},{"line_number":127,"context_line":"            print(\"Failed to write XML file to %s\" % self.out_file)"},{"line_number":128,"context_line":"            sys.exit(2)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_9a3e3dd9","line":126,"updated":"2015-05-25 17:14:51.000000000","message":"Please catch the specific exception, it will probably be IOException, but this should be documented for tree.write.","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":11861,"name":"Travis McPeak","email":"tmcpeak@us.ibm.com","username":"travis-mcpeak"},"change_message_id":"09cf79776cd1061b17be29bd6c40aa542aaf8d5d","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":126,"context_line":"        except Exception:"},{"line_number":127,"context_line":"            print(\"Failed to write XML file to %s\" % self.out_file)"},{"line_number":128,"context_line":"            sys.exit(2)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_348179fc","line":126,"in_reply_to":"7a016987_345739cc","updated":"2015-05-26 19:22:03.000000000","message":"Jelle - you are correct, it\u0027s not required here","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"},{"author":{"_account_id":16195,"name":"Jelle van der Waa","email":"jelle@vdwaa.nl","username":"jelly"},"change_message_id":"726f5d6a0d610b94a5ba9a042660f3879932a965","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        tree \u003d ET.ElementTree(root)"},{"line_number":124,"context_line":"        try:"},{"line_number":125,"context_line":"            tree.write(self.out_file, encoding\u003d\u0027utf-8\u0027, xml_declaration\u003dTrue)"},{"line_number":126,"context_line":"        except Exception:"},{"line_number":127,"context_line":"            print(\"Failed to write XML file to %s\" % self.out_file)"},{"line_number":128,"context_line":"            sys.exit(2)"},{"line_number":129,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_345739cc","line":126,"in_reply_to":"7a016987_9a3e3dd9","updated":"2015-05-26 19:20:40.000000000","message":"There actually is no need to catch the exception here, it\u0027s already handled on line 360.","commit_id":"57f120e5a057ef93af44b06d185470306578c3a1"}]}
