)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"5c74fd534e4a91e23c4c9e9b6d8b6cb12026b6e9","unresolved":false,"context_lines":[{"line_number":13,"context_line":"avoid putting code in __init__.py files so far and I didn\u0027t want to"},{"line_number":14,"context_line":"buck the trend."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"I would love to see other obj things like *_metadata and DiskFile"},{"line_number":17,"context_line":"move into swift.obj.base as well and swift.obj.server just be the"},{"line_number":18,"context_line":"WSGI server logic, but I\u0027ll leave that for the future."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FYoQ%3D","line":16,"updated":"2013-05-11 23:13:38.000000000","message":"This will likely happen as part of the LFS related DiskFile refactoring work. More to come...","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":1216,"name":"gholt","email":"z-launchpad@brim.net","username":"gholt"},"change_message_id":"f1821c0806901d8e194202b4163e611c20051df0","unresolved":false,"context_lines":[{"line_number":13,"context_line":"avoid putting code in __init__.py files so far and I didn\u0027t want to"},{"line_number":14,"context_line":"buck the trend."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"I would love to see other obj things like *_metadata and DiskFile"},{"line_number":17,"context_line":"move into swift.obj.base as well and swift.obj.server just be the"},{"line_number":18,"context_line":"WSGI server logic, but I\u0027ll leave that for the future."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FYmc%3D","line":16,"in_reply_to":"AAAAOn%2F%2FYoQ%3D","updated":"2013-05-12 01:25:05.000000000","message":"Yeah, exactly what I was thinking about when I wrote that. \"Boy, sure seems like all that stuff should go in base; oh, it probably is going to, I better not touch it for the conflicts.\" :^)","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"}],"swift/common/utils.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":1725,"context_line":"    def inner():"},{"line_number":1726,"context_line":"        try:"},{"line_number":1727,"context_line":"            return func(*args, **kwargs)"},{"line_number":1728,"context_line":"        except BaseException, err:"},{"line_number":1729,"context_line":"            return err"},{"line_number":1730,"context_line":"    resp \u003d tpool.execute(inner)"},{"line_number":1731,"context_line":"    if isinstance(resp, BaseException):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUUA%3D","line":1728,"updated":"2013-05-14 21:09:29.000000000","message":"perhaps looking towards python 3, this should be \"except BaseException as err\"?","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"}],"swift/obj/base.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    invalidate_hash(dirname(from_dir))"},{"line_number":51,"context_line":"    try:"},{"line_number":52,"context_line":"        renamer(from_dir, to_dir)"},{"line_number":53,"context_line":"    except OSError, e:"},{"line_number":54,"context_line":"        if e.errno not in (errno.EEXIST, errno.ENOTEMPTY):"},{"line_number":55,"context_line":"            raise"},{"line_number":56,"context_line":"        to_dir \u003d \"%s-%s\" % (to_dir, uuid.uuid4().hex)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUTU%3D","line":53,"updated":"2013-05-14 21:09:29.000000000","message":"as ...","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    md5 \u003d hashlib.md5()"},{"line_number":70,"context_line":"    try:"},{"line_number":71,"context_line":"        path_contents \u003d sorted(os.listdir(path))"},{"line_number":72,"context_line":"    except OSError, err:"},{"line_number":73,"context_line":"        if err.errno in (errno.ENOTDIR, errno.ENOENT):"},{"line_number":74,"context_line":"            raise PathNotDir()"},{"line_number":75,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUTk%3D","line":72,"updated":"2013-05-14 21:09:29.000000000","message":"Again, python 3 ... \"except OSError as err\"?","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        hsh_path \u003d join(path, hsh)"},{"line_number":78,"context_line":"        try:"},{"line_number":79,"context_line":"            files \u003d os.listdir(hsh_path)"},{"line_number":80,"context_line":"        except OSError, err:"},{"line_number":81,"context_line":"            if err.errno \u003d\u003d errno.ENOTDIR:"},{"line_number":82,"context_line":"                partition_path \u003d dirname(path)"},{"line_number":83,"context_line":"                objects_path \u003d dirname(partition_path)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUTg%3D","line":80,"updated":"2013-05-14 21:09:29.000000000","message":"as ...","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":117,"context_line":"            md5.update(filename)"},{"line_number":118,"context_line":"    try:"},{"line_number":119,"context_line":"        os.rmdir(path)"},{"line_number":120,"context_line":"    except OSError:"},{"line_number":121,"context_line":"        pass"},{"line_number":122,"context_line":"    return md5.hexdigest()"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUT8%3D","line":120,"updated":"2013-05-14 21:09:29.000000000","message":"Is it worth catching the specific ERRNO value that will be raised rather than any OSError?","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                hashes \u003d pickle.load(fp)"},{"line_number":140,"context_line":"            if suffix in hashes and not hashes[suffix]:"},{"line_number":141,"context_line":"                return"},{"line_number":142,"context_line":"        except Exception:"},{"line_number":143,"context_line":"            return"},{"line_number":144,"context_line":"        hashes[suffix] \u003d None"},{"line_number":145,"context_line":"        write_pickle(hashes, hashes_file, partition_dir, PICKLE_PROTOCOL)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUT0%3D","line":142,"updated":"2013-05-14 21:09:29.000000000","message":"This squelches a lot of exceptions, are we sure we want this broad of a net cast here?","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"89c090f27fecc6fed7c9935bef4b77e2b5e82609","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        with open(hashes_file, \u0027rb\u0027) as fp:"},{"line_number":175,"context_line":"            hashes \u003d pickle.load(fp)"},{"line_number":176,"context_line":"        mtime \u003d os.path.getmtime(hashes_file)"},{"line_number":177,"context_line":"    except Exception:"},{"line_number":178,"context_line":"        do_listdir \u003d True"},{"line_number":179,"context_line":"        force_rewrite \u003d True"},{"line_number":180,"context_line":"    if do_listdir:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2FUTo%3D","line":177,"updated":"2013-05-14 21:09:29.000000000","message":"Again, this is pretty broad ...","commit_id":"9fe15dd15a4ba25b2bb4d34bd48b3ef53c7d1cbf"}]}
