)]}'
{"diskimage_builder/block_device/blockdevice.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                raise BlockDeviceSetupException("},{"line_number":134,"context_line":"                    \"Top level config must contain exactly one key per entry\")"},{"line_number":135,"context_line":"            logger.debug(\"Config entry [%s]\" % config_entry)"},{"line_number":136,"context_line":"            cfg_obj_name \u003d list(config_entry.keys())[0]"},{"line_number":137,"context_line":"            cfg_obj_val \u003d config_entry[cfg_obj_name]"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"            # As the first step the configured objects are created"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_44fdc86c","line":136,"updated":"2017-03-13 07:06:14.000000000","message":"This is ok.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        # If there is no partition needed, pass back directly the"},{"line_number":184,"context_line":"        # image."},{"line_number":185,"context_line":"        if \u0027root\u0027 in result:"},{"line_number":186,"context_line":"            print((\"%s\" % result[\u0027root\u0027][\u0027device\u0027]))"},{"line_number":187,"context_line":"        else:"},{"line_number":188,"context_line":"            print((\"%s\" % result[\u0027image0\u0027][\u0027device\u0027]))"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_64000c67","line":186,"updated":"2017-03-13 07:06:14.000000000","message":"One is enough here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        if \u0027root\u0027 in result:"},{"line_number":186,"context_line":"            print((\"%s\" % result[\u0027root\u0027][\u0027device\u0027]))"},{"line_number":187,"context_line":"        else:"},{"line_number":188,"context_line":"            print((\"%s\" % result[\u0027image0\u0027][\u0027device\u0027]))"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"        self.write_state(result)"},{"line_number":191,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_84fb4078","line":188,"updated":"2017-03-13 07:06:14.000000000","message":"One is enough here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # To be compatible with the current implementation, echo the"},{"line_number":223,"context_line":"        # result to stdout."},{"line_number":224,"context_line":"        print((\"%s\" % state[\u0027image0\u0027][\u0027image\u0027]))"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        return 0"},{"line_number":227,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_a4f6848c","line":224,"updated":"2017-03-13 07:06:14.000000000","message":"One is enough here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}],"diskimage_builder/block_device/level1/partitioning.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            return fd.tell()"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def insert_nodes(self, dg):"},{"line_number":151,"context_line":"        for _, part in list(self.partitions.items()):"},{"line_number":152,"context_line":"            dg.add_node(part)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _exec_sudo(self, cmd):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_2418d4d2","line":151,"updated":"2017-03-13 07:06:14.000000000","message":"No \u0027list\u0027 needed here (iterator is fine).","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        partition_devices \u003d set()"},{"line_number":212,"context_line":"        disk_size \u003d self._size_of_block_dev(image_path)"},{"line_number":213,"context_line":"        with MBR(image_path, disk_size, self.align) as part_impl:"},{"line_number":214,"context_line":"            for part_name, part_cfg in list(self.partitions.items()):"},{"line_number":215,"context_line":"                part_bootflag \u003d Partitioning.flag_boot \\"},{"line_number":216,"context_line":"                                in part_cfg.get_flags()"},{"line_number":217,"context_line":"                part_primary \u003d Partitioning.flag_primary \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_640e4c8d","line":214,"updated":"2017-03-13 07:06:14.000000000","message":"No \u0027list\u0027 needed here (iterator is fine).","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}],"diskimage_builder/block_device/tests/test_utils.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":19,"context_line":"class TestLoggingConfig(testtools.TestCase):"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def test_parse_size_spec(self):"},{"line_number":22,"context_line":"        list(map("},{"line_number":23,"context_line":"            lambda tspec: self.assertEqual("},{"line_number":24,"context_line":"                parse_abs_size_spec(tspec[0]), tspec[1]),"},{"line_number":25,"context_line":"            [[\"20TiB\", 20 * 1024**4],"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_a424c40c","line":22,"updated":"2017-03-13 07:06:14.000000000","message":"Strange suggestion; no \u0027list\u0027 needed here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}],"diskimage_builder/element_dependencies.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import argparse"},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import errno"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_047cb0ea","line":15,"updated":"2017-03-13 07:06:14.000000000","message":"Ok - this is a \u003cpy26 relict.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        # note; deliberatly left out of __init__ so that accidental"},{"line_number":83,"context_line":"        # access without init raises error"},{"line_number":84,"context_line":"        self.r_depends \u003d []"},{"line_number":85,"context_line":"        for name, element in list(all_elements.items()):"},{"line_number":86,"context_line":"            if self.name in element.depends:"},{"line_number":87,"context_line":"                self.r_depends.append(element.name)"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_448228c9","line":85,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; iterator is fine here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    # Now we have all the elements, make a call on each element to"},{"line_number":230,"context_line":"    # store it\u0027s reverse dependencies"},{"line_number":231,"context_line":"    for name, element in list(all_elements.items()):"},{"line_number":232,"context_line":"        element._make_rdeps(all_elements)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"    return all_elements"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_0463d042","line":231,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; iterator is fine here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}],"diskimage_builder/graph/digraph.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        def __as_named_list(inlist):"},{"line_number":62,"context_line":"            \"\"\"Return given list as list of names.\"\"\""},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"            return [x.get_name() for x in inlist]"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        def get_outgoing_as_named_list(self):"},{"line_number":67,"context_line":"            \"\"\"Return the names of all outgoing nodes as a list.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_e4df9cd3","line":64,"updated":"2017-03-13 07:06:14.000000000","message":"Strange suggestion; the original *should* work; no changes needed.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            self.add_node(named_node)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        # Second run: run through all nodes and create the edges."},{"line_number":86,"context_line":"        for node_name, outs in list(init_dgraph.items()):"},{"line_number":87,"context_line":"            node_from \u003d self.find(node_name)"},{"line_number":88,"context_line":"            for onode in outs:"},{"line_number":89,"context_line":"                node_to \u003d self.find(onode)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_04f1106b","line":86,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; iterator is fine here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \"\"\""},{"line_number":100,"context_line":"        assert issubclass(anode.__class__, Digraph.Node)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        for node in list(self._named_nodes.values()):"},{"line_number":103,"context_line":"            if node.get_name() \u003d\u003d anode.get_name():"},{"line_number":104,"context_line":"                raise RuntimeError(\"Node with name [%s] already \""},{"line_number":105,"context_line":"                                   \"exists\" % node.get_name())"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_44e788ab","line":102,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; iterator is fine here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        assert issubclass(anode.__class__, Digraph.Node)"},{"line_number":112,"context_line":"        assert issubclass(bnode.__class__, Digraph.Node)"},{"line_number":113,"context_line":"        assert anode.get_name() in list(self._named_nodes.keys())"},{"line_number":114,"context_line":"        assert anode \u003d\u003d self._named_nodes[anode.get_name()]"},{"line_number":115,"context_line":"        assert bnode.get_name() in list(self._named_nodes.keys())"},{"line_number":116,"context_line":"        assert bnode \u003d\u003d self._named_nodes[bnode.get_name()]"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_449ea807","line":113,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; not needed here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"        assert issubclass(bnode.__class__, Digraph.Node)"},{"line_number":113,"context_line":"        assert anode.get_name() in list(self._named_nodes.keys())"},{"line_number":114,"context_line":"        assert anode \u003d\u003d self._named_nodes[anode.get_name()]"},{"line_number":115,"context_line":"        assert bnode.get_name() in list(self._named_nodes.keys())"},{"line_number":116,"context_line":"        assert bnode \u003d\u003d self._named_nodes[bnode.get_name()]"},{"line_number":117,"context_line":"        anode.add_outgoing(bnode)"},{"line_number":118,"context_line":"        bnode.add_incoming(anode)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_64a1ec45","line":115,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; not needed here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        Note: it is not possible to change things with the help of the"},{"line_number":124,"context_line":"        result of this function."},{"line_number":125,"context_line":"        \"\"\""},{"line_number":126,"context_line":"        return iter(list(self._named_nodes.values()))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def find(self, name):"},{"line_number":129,"context_line":"        \"\"\"Get the node with the given name."}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_84050047","line":126,"updated":"2017-03-13 07:06:14.000000000","message":"This does not make sense at all...","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"},{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":140,"context_line":""},{"line_number":141,"context_line":"        # Start with an empty dictionary"},{"line_number":142,"context_line":"        rval \u003d {}"},{"line_number":143,"context_line":"        for node in list(self._named_nodes.values()):"},{"line_number":144,"context_line":"            rval[node.get_name()] \u003d node.get_outgoing_as_named_list()"},{"line_number":145,"context_line":"        return rval"},{"line_number":146,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_c4fb7845","line":143,"updated":"2017-03-13 07:06:14.000000000","message":"Remove list; iterator is fine here.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}],"diskimage_builder/paths.py":[{"author":{"_account_id":21741,"name":"Andreas Florath","email":"andreas@florath.net","username":"florath"},"change_message_id":"454f321395a9cdc6aa4330780bc856009085b7dc","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def show_path(var):"},{"line_number":35,"context_line":"    print((get_path(var)))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a30ddce_a48764b3","line":35,"updated":"2017-03-13 07:06:14.000000000","message":"One should be enough.","commit_id":"8eeea1489e4c0aeed5a2031b807c771a102148d4"}]}
