)]}'
{"bin/swift-ring-builder":[{"author":{"_account_id":2622,"name":"Samuel Merritt","email":"spam+launchpad@andcheese.org","username":"torgomatic"},"change_message_id":"84279a9acdc456c2277f41bd96a332a12e7a4776","unresolved":false,"context_lines":[{"line_number":605,"context_line":"        exit(EXIT_SUCCESS)"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    if exists(argv[1]):"},{"line_number":608,"context_line":"        builder \u003d RingBuilder.load(argv[1])"},{"line_number":609,"context_line":"    elif len(argv) \u003c 3 or argv[2] !\u003d \u0027create\u0027:"},{"line_number":610,"context_line":"        print \u0027Ring Builder file does not exist: %s\u0027 % argv[1]"},{"line_number":611,"context_line":"        exit(EXIT_ERROR)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAALH%2F%2FgA4%3D","line":608,"updated":"2012-09-05 21:47:57.000000000","message":"I\u0027d rather see this as `RingBuilder.load(open(argv[1]))`; that way the API looks like pickle.load, json.load, etc. where load() takes a readable file-like object.","commit_id":"d96ca771b31b983ba560ec03b80336293c242d0d"},{"author":{"_account_id":2696,"name":"Darrell Bishop","email":"dbishop@nvidia.com","username":"darrellb"},"change_message_id":"1ad6a80357f76501b9190a2c8a72388f1e06f623","unresolved":false,"context_lines":[{"line_number":605,"context_line":"        exit(EXIT_SUCCESS)"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"    if exists(argv[1]):"},{"line_number":608,"context_line":"        builder \u003d RingBuilder.load(argv[1])"},{"line_number":609,"context_line":"    elif len(argv) \u003c 3 or argv[2] !\u003d \u0027create\u0027:"},{"line_number":610,"context_line":"        print \u0027Ring Builder file does not exist: %s\u0027 % argv[1]"},{"line_number":611,"context_line":"        exit(EXIT_ERROR)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"AAAALH%2F%2Fftc%3D","line":608,"in_reply_to":"AAAALH%2F%2FgA4%3D","updated":"2012-09-06 05:50:24.000000000","message":"Hrm, the load() class method for RingData takes a filename and encapsulates the encoding of the file (in that case, it\u0027s gzipped and load takes care of opening it with GzipFile which might then be wrapped with BufferedReader).\n\nOf course, GzipFile can probably be instantiated with an already opened filehandle, so maybe it should change.  But I kind of like \u0027em opaque (pass it a file path and it handles the rest).\n\n*shrug*","commit_id":"d96ca771b31b983ba560ec03b80336293c242d0d"}]}
