)]}'
{"swift/account/server.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import swift.common.db"},{"line_number":27,"context_line":"from swift.common.db import AccountBroker"},{"line_number":28,"context_line":"from swift.common.utils import get_logger, get_param, hash_path, public, \\"},{"line_number":29,"context_line":"    normalize_timestamp, split_path, storage_directory, config_true_value, \\"},{"line_number":30,"context_line":"    validate_device_partition, json, timing_stats"},{"line_number":31,"context_line":"from swift.common.constraints import ACCOUNT_LISTING_LIMIT, \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXsY%3D","line":28,"updated":"2013-01-25 03:37:08.000000000","message":"Is it worth importing split_path any more?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/common/middleware/bulk.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    HTTPCreated, HTTPBadRequest, HTTPNotFound, HTTPUnauthorized, HTTPOk, \\"},{"line_number":21,"context_line":"    HTTPPreconditionFailed, HTTPRequestEntityTooLarge, HTTPNotAcceptable, \\"},{"line_number":22,"context_line":"    wsgify"},{"line_number":23,"context_line":"from swift.common.utils import split_path, json, TRUE_VALUES"},{"line_number":24,"context_line":"from swift.common.constraints import check_utf8, MAX_FILE_SIZE"},{"line_number":25,"context_line":"from swift.common.http import HTTP_BAD_REQUEST, HTTP_UNAUTHORIZED, \\"},{"line_number":26,"context_line":"    HTTP_NOT_FOUND"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXsU%3D","line":23,"updated":"2013-01-25 03:37:08.000000000","message":"Same comment again for split_path ...","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/common/middleware/ratelimit.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"# limitations under the License."},{"line_number":14,"context_line":"import time"},{"line_number":15,"context_line":"import eventlet"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from swift.common.utils import split_path, cache_from_env, get_logger"},{"line_number":18,"context_line":"from swift.proxy.controllers.base import get_container_memcache_key"},{"line_number":19,"context_line":"from swift.common.memcached import MemcacheConnectionError"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXsA%3D","line":16,"updated":"2013-01-25 03:37:08.000000000","message":"Need split_path?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/common/middleware/recon.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import errno"},{"line_number":17,"context_line":"import os"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from swift.common.swob import Request, Response"},{"line_number":20,"context_line":"from swift.common.utils import split_path, get_logger, config_true_value"},{"line_number":21,"context_line":"from swift.common.constraints import check_mount"},{"line_number":22,"context_line":"from resource import getpagesize"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXr4%3D","line":19,"updated":"2013-01-25 03:37:08.000000000","message":"Is it worth running modules through something like pyflakes?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/common/middleware/tempauth.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        \"\"\""},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"        try:"},{"line_number":244,"context_line":"            version, account, container, obj \u003d req.split_path(1, 4, True)"},{"line_number":245,"context_line":"        except ValueError:"},{"line_number":246,"context_line":"            self.logger.increment(\u0027errors\u0027)"},{"line_number":247,"context_line":"            return HTTPNotFound(request\u003dreq)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXrc%3D","line":244,"updated":"2013-01-25 03:37:08.000000000","message":"This used to be an operation on req.path, is that still the case using the new method?\n\nI see that other calls used to use req.path_info below.","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/common/swob.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":1070,"context_line":"        def _wsgify(self, env, start_response):"},{"line_number":1071,"context_line":"            try:"},{"line_number":1072,"context_line":"                return func(self, Request(env))(env, start_response)"},{"line_number":1073,"context_line":"            except HTTPException, err_resp:"},{"line_number":1074,"context_line":"                return err_resp(env, start_response)"},{"line_number":1075,"context_line":"    else:"},{"line_number":1076,"context_line":"        @functools.wraps(func)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXrY%3D","line":1073,"updated":"2013-01-25 03:37:08.000000000","message":"Is it worth using the syntax, \"except HTTPException as err_resp:\"?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}],"swift/container/server.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"import swift.common.db"},{"line_number":29,"context_line":"from swift.common.db import ContainerBroker"},{"line_number":30,"context_line":"from swift.common.utils import get_logger, get_param, hash_path, public, \\"},{"line_number":31,"context_line":"    normalize_timestamp, storage_directory, split_path, validate_sync_to, \\"},{"line_number":32,"context_line":"    config_true_value, validate_device_partition, json, timing_stats"},{"line_number":33,"context_line":"from swift.common.constraints import CONTAINER_LISTING_LIMIT, \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXrE%3D","line":30,"updated":"2013-01-25 03:37:08.000000000","message":"Looks like we can drop split_path import ...","commit_id":"2000fa045dabe08505b946d489dce539da43f052"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def DELETE(self, req):"},{"line_number":170,"context_line":"        \"\"\"Handle HTTP DELETE request.\"\"\""},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            drive, part, account, container, obj \u003d req.split_path(4, 5, True)"},{"line_number":173,"context_line":"            validate_device_partition(drive, part)"},{"line_number":174,"context_line":"        except ValueError, err:"},{"line_number":175,"context_line":"            return HTTPBadRequest(body\u003dstr(err), content_type\u003d\u0027text/plain\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXrQ%3D","line":172,"updated":"2013-01-25 03:37:08.000000000","message":"Does the new split_path take care to do an unquote?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"cf1cc51d27a7ae79817b0e9b504e30bfe6c30396","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def DELETE(self, req):"},{"line_number":170,"context_line":"        \"\"\"Handle HTTP DELETE request.\"\"\""},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            drive, part, account, container, obj \u003d req.split_path(4, 5, True)"},{"line_number":173,"context_line":"            validate_device_partition(drive, part)"},{"line_number":174,"context_line":"        except ValueError, err:"},{"line_number":175,"context_line":"            return HTTPBadRequest(body\u003dstr(err), content_type\u003d\u0027text/plain\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FXds%3D","line":172,"updated":"2013-01-25 10:49:04.000000000","message":"Does it matter that we don\u0027t unquote now?\n\nAnd it appears to me that the new split_path is applied to PATH_INFO, where the old was applied to .path, does that pose a problem?","commit_id":"c45e435d1fb3e8f1d397ee331b9aa1947fe9b2b7"},{"author":{"_account_id":2828,"name":"Michael Barton","email":"mike@weirdlooking.com","username":"redbo"},"change_message_id":"4e42e39d984796427074f857f688fb280f5d77f0","unresolved":false,"context_lines":[{"line_number":169,"context_line":"    def DELETE(self, req):"},{"line_number":170,"context_line":"        \"\"\"Handle HTTP DELETE request.\"\"\""},{"line_number":171,"context_line":"        try:"},{"line_number":172,"context_line":"            drive, part, account, container, obj \u003d req.split_path(4, 5, True)"},{"line_number":173,"context_line":"            validate_device_partition(drive, part)"},{"line_number":174,"context_line":"        except ValueError, err:"},{"line_number":175,"context_line":"            return HTTPBadRequest(body\u003dstr(err), content_type\u003d\u0027text/plain\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FWv0%3D","line":172,"in_reply_to":"AAAAM3%2F%2FXds%3D","updated":"2013-01-25 20:02:43.000000000","message":"split_path is doing the same SCRIPT_NAME + PATH_INFO calculation as path, but not quoting it (so it doesn\u0027t need to be unquoted later).","commit_id":"c45e435d1fb3e8f1d397ee331b9aa1947fe9b2b7"}],"test/unit/common/test_swob.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"216ed7db2da0ccb21d77e0e56ff6f31ee02e37c8","unresolved":false,"context_lines":[{"line_number":455,"context_line":""},{"line_number":456,"context_line":"    def test_split_path(self):"},{"line_number":457,"context_line":"        \"\"\""},{"line_number":458,"context_line":"        Copied from swift.common.utils.split_path"},{"line_number":459,"context_line":"        \"\"\""},{"line_number":460,"context_line":"        def _test_split_path(path, minsegs\u003d1, maxsegs\u003dNone, rwl\u003dFalse):"},{"line_number":461,"context_line":"            req \u003d swift.common.swob.Request.blank(path)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXrA%3D","line":458,"updated":"2013-01-25 03:37:08.000000000","message":"Is there a way to share that code more?","commit_id":"2000fa045dabe08505b946d489dce539da43f052"}]}
