)]}'
{"glanceclient/v2/images.py":[{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"a037543e8b8bf40918318bdb4bda7e3ee17d04c6","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        # the page_size as Glance\u0027s limit."},{"line_number":99,"context_line":"        filters[\u0027limit\u0027] \u003d page_size"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        sort_dir \u003d kwargs.get(\u0027sort_dir\u0027, [])"},{"line_number":102,"context_line":"        if isinstance(sort_dir, six.string_types):"},{"line_number":103,"context_line":"            sort_dir \u003d [sort_dir]"},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_075dd4e9","line":101,"updated":"2015-02-27 11:27:03.000000000","message":"This can be generalized. Something like this looks neater, imho\n\ndef _wrap(value):\n    if isinstance(value, six.string_types):\n        return [value]\n    return value\n\nsort_dir \u003d _wrap(kwargs.get(\u0027sort_dir\u0027, []))","commit_id":"93c4b39a2f519a159a7d02f56964eb7290937a21"},{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"a037543e8b8bf40918318bdb4bda7e3ee17d04c6","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"        sort_key \u003d kwargs.get(\u0027sort_key\u0027, [])"},{"line_number":122,"context_line":"        if isinstance(sort_key, six.string_types):"},{"line_number":123,"context_line":"            sort_key \u003d [sort_key]"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        if len(sort_key) !\u003d len(sort_dir) and len(sort_dir) \u003e 1:"},{"line_number":126,"context_line":"            raise exc.HTTPBadRequest(\"Sorting keys number doesn\u0027t match\""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_8768e488","line":123,"updated":"2015-02-27 11:27:03.000000000","message":"See comment above\n\nsort_key \u003d _wrap(kwargs.get(\u0027sort_key\u0027, []))","commit_id":"93c4b39a2f519a159a7d02f56964eb7290937a21"},{"author":{"_account_id":13717,"name":"Inessa Vasilevskaya","email":"ivasilevskaya@mirantis.com","username":"ivasilevskaya"},"change_message_id":"a037543e8b8bf40918318bdb4bda7e3ee17d04c6","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            url \u003d \u0027%s\u0026sort_dir\u003d%s\u0027 % (url, dir)"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"        for image in paginate(url, page_size, limit):"},{"line_number":136,"context_line":"            yield image"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def get(self, image_id):"},{"line_number":139,"context_line":"        url \u003d \u0027/v2/images/%s\u0027 % image_id"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba7be1f8_0714f4f3","line":136,"updated":"2015-02-27 11:27:03.000000000","message":"Nit: I am not a great fan of functions that don\u0027t fit on a single screen.\n\nI\u0027d move out the whole sort_dir\\sort_key logic out of the Controller.list() to avoid C901 warning.\n\nIf moved out L129-133 can be generalized as well, but that\u0027s up to you to decide if you want this change.","commit_id":"93c4b39a2f519a159a7d02f56964eb7290937a21"},{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e3fc2f3a828a8b9d32fd1bccc7ad173377c32fc6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        filters[\u0027limit\u0027] \u003d page_size"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        sort_dir \u003d kwargs.get(\u0027sort_dir\u0027, [])"},{"line_number":102,"context_line":"        if isinstance(sort_dir, six.string_types):"},{"line_number":103,"context_line":"            sort_dir \u003d [sort_dir]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        tags \u003d filters.pop(\u0027tag\u0027, [])"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_8c045e7f","line":102,"updated":"2015-03-11 20:28:11.000000000","message":"If the action is append on --sort-dir, won\u0027t this always be a list? Perhaps a one-element list, but still a list.","commit_id":"f0a30f7212b96aaba592015ae6e377d02a88003f"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"d865d0d2cd9cd723e274deb2c9cfe08fed4a3573","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        filters[\u0027limit\u0027] \u003d page_size"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        sort_dir \u003d kwargs.get(\u0027sort_dir\u0027, [])"},{"line_number":102,"context_line":"        if isinstance(sort_dir, six.string_types):"},{"line_number":103,"context_line":"            sort_dir \u003d [sort_dir]"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        tags \u003d filters.pop(\u0027tag\u0027, [])"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_c8b9c216","line":102,"in_reply_to":"9a80dd14_8c045e7f","updated":"2015-03-12 12:31:04.000000000","message":"No, it won\u0027t. I was a little bit surprised too. But it\u0027s kind of public api, that is used by other projects, like Horizon. They asked me to bring the string parameter back, because in other case Horizon will be broken.","commit_id":"f0a30f7212b96aaba592015ae6e377d02a88003f"}],"tests/v2/test_images.py":[{"author":{"_account_id":11748,"name":"Chris St. Pierre","email":"cstpierr@cisco.com","username":"stpierre"},"change_message_id":"e3fc2f3a828a8b9d32fd1bccc7ad173377c32fc6","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                                           sort_dir\u003dsort_dir))"},{"line_number":678,"context_line":"        self.assertEqual(2, len(images))"},{"line_number":679,"context_line":"        self.assertEqual(\u0027%s\u0027 % img_id1, images[1].id)"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"    def test_list_images_for_property(self):"},{"line_number":682,"context_line":"        filters \u003d {\u0027filters\u0027: dict([(\u0027os_distro\u0027, \u0027NixOS\u0027)])}"},{"line_number":683,"context_line":"        images \u003d list(self.controller.list(**filters))"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_8c2b7eea","line":680,"updated":"2015-03-11 20:28:11.000000000","message":"Add a test with multiple sort_dirs but len(sort_key) !\u003d len(sort_dir).","commit_id":"f0a30f7212b96aaba592015ae6e377d02a88003f"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"d865d0d2cd9cd723e274deb2c9cfe08fed4a3573","unresolved":false,"context_lines":[{"line_number":677,"context_line":"                                           sort_dir\u003dsort_dir))"},{"line_number":678,"context_line":"        self.assertEqual(2, len(images))"},{"line_number":679,"context_line":"        self.assertEqual(\u0027%s\u0027 % img_id1, images[1].id)"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"    def test_list_images_for_property(self):"},{"line_number":682,"context_line":"        filters \u003d {\u0027filters\u0027: dict([(\u0027os_distro\u0027, \u0027NixOS\u0027)])}"},{"line_number":683,"context_line":"        images \u003d list(self.controller.list(**filters))"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_c850e2d6","line":680,"in_reply_to":"9a80dd14_8c2b7eea","updated":"2015-03-12 12:31:04.000000000","message":"Done","commit_id":"f0a30f7212b96aaba592015ae6e377d02a88003f"}]}
