)]}'
{"oslo_config/generator.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f0b2bc090ac2f9f23d1646e3889abad5a1e8f95e","unresolved":false,"context_lines":[{"line_number":290,"context_line":"def _output_opts(f, group, namespaces):"},{"line_number":291,"context_line":"    f.format_group(group)"},{"line_number":292,"context_line":"    for (namespace, opts) in sorted(namespaces,"},{"line_number":293,"context_line":"                                    key\u003doperator.itemgetter(0)):"},{"line_number":294,"context_line":"        f.write(\u0027\\n#\\n# From %s\\n#\\n\u0027 % namespace)"},{"line_number":295,"context_line":"        for opt in opts:"},{"line_number":296,"context_line":"            f.write(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_83d026f9","line":293,"updated":"2016-02-02 15:03:12.000000000","message":"not even a nit: I had to look this up, I\u0027d have used:\n\n  lambda i: i[0]","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"8390673501008e36729389f25dfefa053ceaf164","unresolved":false,"context_lines":[{"line_number":290,"context_line":"def _output_opts(f, group, namespaces):"},{"line_number":291,"context_line":"    f.format_group(group)"},{"line_number":292,"context_line":"    for (namespace, opts) in sorted(namespaces,"},{"line_number":293,"context_line":"                                    key\u003doperator.itemgetter(0)):"},{"line_number":294,"context_line":"        f.write(\u0027\\n#\\n# From %s\\n#\\n\u0027 % namespace)"},{"line_number":295,"context_line":"        for opt in opts:"},{"line_number":296,"context_line":"            f.write(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_6d2b8d34","line":293,"in_reply_to":"7a5de9d1_83d026f9","updated":"2016-02-02 18:09:23.000000000","message":"Yep, I was just refactoring existing code that works, so I was not familiar with this.","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f0b2bc090ac2f9f23d1646e3889abad5a1e8f95e","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    # The keys of the groups dictionary could be an OptGroup. Otherwise the"},{"line_number":303,"context_line":"    # help text of an OptGroup wouldn\u0027t be part of the generated sample"},{"line_number":304,"context_line":"    # file. It could also be just a plain group name without any further"},{"line_number":305,"context_line":"    # attributes. That\u0027s the reason why we have to distinct this here."},{"line_number":306,"context_line":"    if isinstance(group, cfg.OptGroup):"},{"line_number":307,"context_line":"        group_name \u003d group.name"},{"line_number":308,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_63ff2aab","line":305,"range":{"start_line":305,"start_character":51,"end_line":305,"end_character":59},"updated":"2016-02-02 15:03:12.000000000","message":"femtonit: s/distinct this/differentiate these/, distinct isn\u0027t a verb\n\nOr \"That\u0027s why we must treat these separately.\"","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f0b2bc090ac2f9f23d1646e3889abad5a1e8f95e","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        group_name \u003d group.name"},{"line_number":308,"context_line":"    else:"},{"line_number":309,"context_line":"        group_name \u003d group"},{"line_number":310,"context_line":"    return group_name"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def _get_groups(conf_ns):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_233b729e","line":310,"updated":"2016-02-02 15:03:12.000000000","message":"nit: I\u0027d prefer:\n\n  return group.name if isinstance(group, cfg.OptGroup) else group","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"8390673501008e36729389f25dfefa053ceaf164","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        group_name \u003d group.name"},{"line_number":308,"context_line":"    else:"},{"line_number":309,"context_line":"        group_name \u003d group"},{"line_number":310,"context_line":"    return group_name"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"def _get_groups(conf_ns):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_ed945d45","line":310,"in_reply_to":"7a5de9d1_233b729e","updated":"2016-02-02 18:09:23.000000000","message":"again, just moving existing code to enable unit tests, but I can update with your pythonic approach.","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"f0b2bc090ac2f9f23d1646e3889abad5a1e8f95e","unresolved":false,"context_lines":[{"line_number":338,"context_line":"    formatter \u003d _OptFormatter(output_file\u003doutput_file,"},{"line_number":339,"context_line":"                              wrap_width\u003dconf.wrap_width)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    (groups, namespaces) \u003d _get_groups(_list_opts(conf.namespace))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    # Output the \"DEFAULT\" section as the very first section"},{"line_number":344,"context_line":"    _output_opts(formatter, \u0027DEFAULT\u0027, groups.pop(\u0027DEFAULT\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_239ff2b5","line":341,"updated":"2016-02-02 15:03:12.000000000","message":"-1: We don\u0027t need to return namespaces, although it\u0027s used on line 349 this declaration is shadowed by L347","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"8390673501008e36729389f25dfefa053ceaf164","unresolved":false,"context_lines":[{"line_number":338,"context_line":"    formatter \u003d _OptFormatter(output_file\u003doutput_file,"},{"line_number":339,"context_line":"                              wrap_width\u003dconf.wrap_width)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    (groups, namespaces) \u003d _get_groups(_list_opts(conf.namespace))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"    # Output the \"DEFAULT\" section as the very first section"},{"line_number":344,"context_line":"    _output_opts(formatter, \u0027DEFAULT\u0027, groups.pop(\u0027DEFAULT\u0027))"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a5de9d1_0d79b92f","line":341,"in_reply_to":"7a5de9d1_239ff2b5","updated":"2016-02-02 18:09:23.000000000","message":"yep!","commit_id":"f5e39f973ae88f4597566c9d06c3f081ea1215be"},{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"20c5fc2266b8ab95f6a8d8be7935ef00714683f8","unresolved":false,"context_lines":[{"line_number":315,"context_line":"                continue"},{"line_number":316,"context_line":"            namespaces \u003d groups.setdefault(group or \u0027DEFAULT\u0027, [])"},{"line_number":317,"context_line":"            namespaces.append((namespace, opts))"},{"line_number":318,"context_line":"    return (groups, namespaces)"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":""},{"line_number":321,"context_line":"def generate(conf):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5a5ae5dd_bc02223d","line":318,"updated":"2016-02-03 10:54:34.000000000","message":"Why return something we don\u0027t need? Delete line 311 and change this line to \u0027return groups\u0027. This also clarifies \u0027namespaces\u0027 as local to the inner for.","commit_id":"0ba492f4b08ecc923b6209e0803b0951e162928c"}]}
