)]}'
{"glance/common/exception.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"646bdf1be097030962fb27a04b74b7d8b7751490","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class ReadonlyProperty(Forbidden):"},{"line_number":133,"context_line":"    message \u003d _(\"Attribute \\\u0027%(property)s\\\u0027 is read-only.\")"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"class ReservedProperty(Forbidden):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2FvNQ%3D","line":133,"updated":"2012-11-09 04:05:32.000000000","message":"Don\u0027t need to escape these single quotes.","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"900c1183113d15afc81663658d4a460cead45612","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"class ReadonlyProperty(Forbidden):"},{"line_number":133,"context_line":"    message \u003d _(\"Attribute \\\u0027%(property)s\\\u0027 is read-only.\")"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"class ReservedProperty(Forbidden):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8Yc%3D","line":133,"in_reply_to":"AAAALn%2F%2FvNQ%3D","updated":"2012-11-14 21:03:06.000000000","message":"Done","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"}],"glance/domain.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"646bdf1be097030962fb27a04b74b7d8b7751490","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import glance.common.utils"},{"line_number":17,"context_line":"from glance.common import exception"},{"line_number":18,"context_line":"from glance.openstack.common import timeutils"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2FvM8%3D","line":16,"updated":"2012-11-09 04:05:32.000000000","message":"import ordering","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"900c1183113d15afc81663658d4a460cead45612","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import glance.common.utils"},{"line_number":17,"context_line":"from glance.common import exception"},{"line_number":18,"context_line":"from glance.openstack.common import timeutils"},{"line_number":19,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8Yg%3D","line":16,"in_reply_to":"AAAALn%2F%2FvM8%3D","updated":"2012-11-14 21:03:06.000000000","message":"Done","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"646bdf1be097030962fb27a04b74b7d8b7751490","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class Image(object):"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def __init__(self, image_id, status, created_at, updated_at, name\u003dNone,"},{"line_number":74,"context_line":"                 visibility\u003d\u0027private\u0027, min_disk\u003d0, min_ram\u003d0, protected\u003dFalse,"},{"line_number":75,"context_line":"                 location\u003dNone, checksum\u003dNone, owner\u003dNone, disk_format\u003dNone,"},{"line_number":76,"context_line":"                 container_format\u003dNone, size\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2FvM0%3D","line":73,"updated":"2012-11-09 04:05:32.000000000","message":"How would you feel about using *args, **kwargs here and defining the kwarg defaults down below?","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"900c1183113d15afc81663658d4a460cead45612","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"class Image(object):"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    def __init__(self, image_id, status, created_at, updated_at, name\u003dNone,"},{"line_number":74,"context_line":"                 visibility\u003d\u0027private\u0027, min_disk\u003d0, min_ram\u003d0, protected\u003dFalse,"},{"line_number":75,"context_line":"                 location\u003dNone, checksum\u003dNone, owner\u003dNone, disk_format\u003dNone,"},{"line_number":76,"context_line":"                 container_format\u003dNone, size\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8Yo%3D","line":73,"in_reply_to":"AAAALn%2F%2FvM0%3D","updated":"2012-11-14 21:03:06.000000000","message":"Good! But I think I\u0027ll leave skip *args and leave the required parameters explicit in the argument list.","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"646bdf1be097030962fb27a04b74b7d8b7751490","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        self.status \u003d status"},{"line_number":81,"context_line":"        self.created_at \u003d created_at"},{"line_number":82,"context_line":"        self.updated_at \u003d updated_at"},{"line_number":83,"context_line":"        self.visibility \u003d visibility"},{"line_number":84,"context_line":"        self.min_disk \u003d min_disk"},{"line_number":85,"context_line":"        self.min_ram \u003d min_ram"},{"line_number":86,"context_line":"        self.protected \u003d protected"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALn%2F%2FvMw%3D","line":83,"updated":"2012-11-09 04:05:32.000000000","message":"Should this be self.visibility or self._visibility?","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":616,"name":"Mark Washenberger","email":"mark.washenberger@markwash.net","username":"markwash"},"change_message_id":"900c1183113d15afc81663658d4a460cead45612","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        self.status \u003d status"},{"line_number":81,"context_line":"        self.created_at \u003d created_at"},{"line_number":82,"context_line":"        self.updated_at \u003d updated_at"},{"line_number":83,"context_line":"        self.visibility \u003d visibility"},{"line_number":84,"context_line":"        self.min_disk \u003d min_disk"},{"line_number":85,"context_line":"        self.min_ram \u003d min_ram"},{"line_number":86,"context_line":"        self.protected \u003d protected"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8Yk%3D","line":83,"in_reply_to":"AAAALn%2F%2FvMw%3D","updated":"2012-11-14 21:03:06.000000000","message":"Using self.visibility \u003d ... ensures we go through the visibility.setter property function down below, so I think the way it is here is the right way to go.","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"776fdd2391d74733f60335b3d9a37317ebab2397","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        self.status \u003d status"},{"line_number":81,"context_line":"        self.created_at \u003d created_at"},{"line_number":82,"context_line":"        self.updated_at \u003d updated_at"},{"line_number":83,"context_line":"        self.visibility \u003d visibility"},{"line_number":84,"context_line":"        self.min_disk \u003d min_disk"},{"line_number":85,"context_line":"        self.min_ram \u003d min_ram"},{"line_number":86,"context_line":"        self.protected \u003d protected"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAMH%2F%2F8VI%3D","line":83,"in_reply_to":"AAAAMH%2F%2F8Yk%3D","updated":"2012-11-14 21:06:34.000000000","message":"I didn\u0027t understand when I first read through, but after talking to you offline I follow.","commit_id":"edcfab77ecf53eefe09fadca5c2ef9917ffa9563"},{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"65088658a2aeaf10278f7216b36928745701e48d","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.extra_properties \u003d kwargs.pop(\u0027extra_properties\u0027, None) or {}"},{"line_number":86,"context_line":"        self.tags \u003d kwargs.pop(\u0027tags\u0027, None) or []"},{"line_number":87,"context_line":"        if len(kwargs) \u003e 0:"},{"line_number":88,"context_line":"            message \u003d \"__init__() got unexpected keyword argument \u0027%s\u0027\""},{"line_number":89,"context_line":"            raise TypeError(message % kwargs.keys()[0])"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAMH%2F%2F8Us%3D","line":88,"updated":"2012-11-14 21:13:04.000000000","message":"Tricky","commit_id":"43ba08d8aa38a7c0cd44e3ff90b73d6c0e33a63d"}]}
