)]}'
{"pbr/builddoc.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"3da39ee9f469d02d3f0c7800ea1a969fb9a4f0fc","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                # Copy list while we iterate over it"},{"line_number":93,"context_line":"                for module in module_list.copy():"},{"line_number":94,"context_line":"                    if fnmatch.fnmatch(module, exclusion):"},{"line_number":95,"context_line":"                        module_list.remove(module)"},{"line_number":96,"context_line":"        module_list \u003d sorted(module_list)"},{"line_number":97,"context_line":"        autoindex_filename \u003d os.path.join(source_dir, \u0027autoindex.rst\u0027)"},{"line_number":98,"context_line":"        with open(autoindex_filename, \u0027w\u0027) as autoindex:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_715d3646","line":95,"updated":"2015-05-05 18:19:18.000000000","message":"I think this would read clearer as:\n def include(module):\n    return not any(fnmatch.fnmatch(module, pat) for pat in excluded_modules)\n module_list \u003d [mod for mod in module_list if include(mod)]\n\nIt avoids the complication of explicitly copying to avoid mutating in place by building a new list, and should perform identically for our sizes of data.","commit_id":"5d3c0a7a4262890af02fb5a4b3c6bf0259b56db6"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"868e29787bed4dec15003380f8de49e61460c11b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                # Copy list while we iterate over it"},{"line_number":93,"context_line":"                for module in module_list.copy():"},{"line_number":94,"context_line":"                    if fnmatch.fnmatch(module, exclusion):"},{"line_number":95,"context_line":"                        module_list.remove(module)"},{"line_number":96,"context_line":"        module_list \u003d sorted(module_list)"},{"line_number":97,"context_line":"        autoindex_filename \u003d os.path.join(source_dir, \u0027autoindex.rst\u0027)"},{"line_number":98,"context_line":"        with open(autoindex_filename, \u0027w\u0027) as autoindex:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aca2d91_3c7e10af","line":95,"in_reply_to":"3acd31a7_715d3646","updated":"2015-05-06 07:45:59.000000000","message":"Good idea!","commit_id":"5d3c0a7a4262890af02fb5a4b3c6bf0259b56db6"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"d96042d3e82af6c7c831175196dc6018558c6f51","unresolved":false,"context_lines":[{"line_number":91,"context_line":"            return not any(fnmatch.fnmatch(module, pat)"},{"line_number":92,"context_line":"                           for pat in excluded_modules)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        module_list \u003d sorted(mod for mod in modules.keys() if include(mod))"},{"line_number":95,"context_line":"        autoindex_filename \u003d os.path.join(source_dir, \u0027autoindex.rst\u0027)"},{"line_number":96,"context_line":"        with open(autoindex_filename, \u0027w\u0027) as autoindex:"},{"line_number":97,"context_line":"            autoindex.write(\"\"\".. toctree::"}],"source_content_type":"text/x-python","patch_set":2,"id":"5afe65bd_c7dc9ae6","line":94,"updated":"2015-06-03 01:56:31.000000000","message":"just for kicks, cause my functional hat is on:\n\n module_list \u003d sorted(filter(modules, include))\n\n:)","commit_id":"e943f760851d193cc4d808deeef59d1a5f789c03"}]}
