)]}'
{"glanceclient/v1/images.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"1197ea9b7a01c2785ce6b6074a1d7bf24e037332","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            # Making sure all params are str before"},{"line_number":155,"context_line":"            # trying to encode them"},{"line_number":156,"context_line":"            owner \u003d qp.get(\u0027owner\u0027)"},{"line_number":157,"context_line":"            qp.pop(\u0027owner\u0027, None)"},{"line_number":158,"context_line":"            for param, value in qp.iteritems():"},{"line_number":159,"context_line":"                if isinstance(value, basestring):"},{"line_number":160,"context_line":"                    qp[param] \u003d strutils.safe_encode(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FkJk%3D","line":157,"updated":"2013-07-16 14:34:20.000000000","message":"can save a line with \n\nowner \u003d qp.pop(\u0027owner\u0027, None)","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"40dad5a955130af0f0b7ce07dfdd49ada4c0cafc","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            # Making sure all params are str before"},{"line_number":155,"context_line":"            # trying to encode them"},{"line_number":156,"context_line":"            owner \u003d qp.get(\u0027owner\u0027)"},{"line_number":157,"context_line":"            qp.pop(\u0027owner\u0027, None)"},{"line_number":158,"context_line":"            for param, value in qp.iteritems():"},{"line_number":159,"context_line":"                if isinstance(value, basestring):"},{"line_number":160,"context_line":"                    qp[param] \u003d strutils.safe_encode(value)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fjuo%3D","line":157,"in_reply_to":"AAAAP3%2F%2FkJk%3D","updated":"2013-07-16 15:57:57.000000000","message":"Yes.","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"f4e0caece8f287453c9332a4c16287afb615273e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            url \u003d \u0027/v1/images/detail?%s\u0027 % urllib.urlencode(qp)"},{"line_number":163,"context_line":"            images \u003d self._list(url, \"images\")"},{"line_number":164,"context_line":"            for image in images:"},{"line_number":165,"context_line":"                seen +\u003d 1"},{"line_number":166,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":167,"context_line":"                # only return images that match \u0027owner\u0027."},{"line_number":168,"context_line":"                if (not ((owner is None) or"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FkVI%3D","line":165,"updated":"2013-07-16 13:51:28.000000000","message":"seen counter might need to move below filter block, otherwise limit does not work correct","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"40dad5a955130af0f0b7ce07dfdd49ada4c0cafc","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            url \u003d \u0027/v1/images/detail?%s\u0027 % urllib.urlencode(qp)"},{"line_number":163,"context_line":"            images \u003d self._list(url, \"images\")"},{"line_number":164,"context_line":"            for image in images:"},{"line_number":165,"context_line":"                seen +\u003d 1"},{"line_number":166,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":167,"context_line":"                # only return images that match \u0027owner\u0027."},{"line_number":168,"context_line":"                if (not ((owner is None) or"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FjvI%3D","line":165,"in_reply_to":"AAAAP3%2F%2FkVI%3D","updated":"2013-07-16 15:57:57.000000000","message":"Eric,\n\nYes, I think you\u0027re right -- thanks.","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"51188cff17ea62332eaf2bbc7972c9e9e0a6bf8c","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":167,"context_line":"                # only return images that match \u0027owner\u0027."},{"line_number":168,"context_line":"                if (not ((owner is None) or"},{"line_number":169,"context_line":"                    (((not hasattr(image, \u0027owner\u0027)) or image.owner is None) and"},{"line_number":170,"context_line":"                        owner \u003d\u003d \u0027\u0027) or"},{"line_number":171,"context_line":"                        (hasattr(image, \u0027owner\u0027) and image.owner \u003d\u003d owner))):"},{"line_number":172,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FkGs%3D","line":169,"updated":"2013-07-16 14:40:51.000000000","message":"It\u0027s possible there may be an error case here... if the left hand side evaluates to False the rhs will throw an AttributeError?  I haven\u0027t managed to prove this as yet - you seem to have that case covered in the tests, but worth double checking.","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"40dad5a955130af0f0b7ce07dfdd49ada4c0cafc","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":167,"context_line":"                # only return images that match \u0027owner\u0027."},{"line_number":168,"context_line":"                if (not ((owner is None) or"},{"line_number":169,"context_line":"                    (((not hasattr(image, \u0027owner\u0027)) or image.owner is None) and"},{"line_number":170,"context_line":"                        owner \u003d\u003d \u0027\u0027) or"},{"line_number":171,"context_line":"                        (hasattr(image, \u0027owner\u0027) and image.owner \u003d\u003d owner))):"},{"line_number":172,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2Fjus%3D","line":169,"in_reply_to":"AAAAP3%2F%2FkGs%3D","updated":"2013-07-16 15:57:57.000000000","message":"I think we\u0027re ok. We will only evaluate the RHS when not hasattr(image, \u0027owner\u0027) evaluates to False, ie when the attribute is present.","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"1197ea9b7a01c2785ce6b6074a1d7bf24e037332","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        for key, value in properties.items():"},{"line_number":208,"context_line":"            params[\u0027property-%s\u0027 % key] \u003d value"},{"line_number":209,"context_line":"        params.update(filters)"},{"line_number":210,"context_line":"        if kwargs.get(\u0027owner\u0027) is not None:"},{"line_number":211,"context_line":"            params[\u0027owner\u0027] \u003d kwargs[\u0027owner\u0027]"},{"line_number":212,"context_line":"            params[\u0027is_public\u0027] \u003d kwargs[\u0027is_public\u0027]"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FkJQ%3D","line":210,"updated":"2013-07-16 14:34:20.000000000","message":"Think we need to check kwargs for presence of is_public here too.  \n\nI think you have this case covered in shell.py but if list() is called directly with an kwargs[\u0027owner\u0027] but no is_public there will be a KeyError  (see comment in test_images.py)","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"ca90afec47c6a7e556aaa68bc6abda0538cf426f","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                if (not ((owner is None) or"},{"line_number":167,"context_line":"                    (((not hasattr(image, \u0027owner\u0027)) or image.owner is None) and"},{"line_number":168,"context_line":"                        owner \u003d\u003d \u0027\u0027) or"},{"line_number":169,"context_line":"                        (hasattr(image, \u0027owner\u0027) and image.owner \u003d\u003d owner))):"},{"line_number":170,"context_line":"                    continue"},{"line_number":171,"context_line":"                seen +\u003d 1"},{"line_number":172,"context_line":"                if absolute_limit is not None and seen \u003e absolute_limit:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjXc%3D","line":169,"updated":"2013-07-16 16:59:40.000000000","message":"this if check is pretty complex to read....  would this also suffice?\n\nif owner and (hasattr(image, \u0027owner\u0027) and image.owner !\u003d owner):\n   continue\n\n(just a suggestion)","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4a02d32c315111083b28d3dba7ebef58d417a237","unresolved":false,"context_lines":[{"line_number":166,"context_line":"                if (not ((owner is None) or"},{"line_number":167,"context_line":"                    (((not hasattr(image, \u0027owner\u0027)) or image.owner is None) and"},{"line_number":168,"context_line":"                        owner \u003d\u003d \u0027\u0027) or"},{"line_number":169,"context_line":"                        (hasattr(image, \u0027owner\u0027) and image.owner \u003d\u003d owner))):"},{"line_number":170,"context_line":"                    continue"},{"line_number":171,"context_line":"                seen +\u003d 1"},{"line_number":172,"context_line":"                if absolute_limit is not None and seen \u003e absolute_limit:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjFc%3D","line":169,"in_reply_to":"AAAAP3%2F%2FjXc%3D","updated":"2013-07-16 18:20:21.000000000","message":"Eric,\n\nI don\u0027t think that will pass the unit tests. We need to match an empty string against the absence of an owner to allow the user to search for images with no owner. Feel free to provide a simpler alternative, but check it against the unit tests if at all possible.\n\nThanks.","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"ca90afec47c6a7e556aaa68bc6abda0538cf426f","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        for key, value in properties.items():"},{"line_number":207,"context_line":"            params[\u0027property-%s\u0027 % key] \u003d value"},{"line_number":208,"context_line":"        params.update(filters)"},{"line_number":209,"context_line":"        if kwargs.get(\u0027owner\u0027) is not None:"},{"line_number":210,"context_line":"            params[\u0027owner\u0027] \u003d kwargs[\u0027owner\u0027]"},{"line_number":211,"context_line":"            params[\u0027is_public\u0027] \u003d None"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjZU%3D","line":209,"updated":"2013-07-16 16:59:40.000000000","message":"if no default value is present, I believe this throws an error:\nhttp://docs.python.org/2/library/stdtypes.html#dict.get\n\ncould also use:\n    if \u0027owner\u0027 in kwargs:","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4a02d32c315111083b28d3dba7ebef58d417a237","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        for key, value in properties.items():"},{"line_number":207,"context_line":"            params[\u0027property-%s\u0027 % key] \u003d value"},{"line_number":208,"context_line":"        params.update(filters)"},{"line_number":209,"context_line":"        if kwargs.get(\u0027owner\u0027) is not None:"},{"line_number":210,"context_line":"            params[\u0027owner\u0027] \u003d kwargs[\u0027owner\u0027]"},{"line_number":211,"context_line":"            params[\u0027is_public\u0027] \u003d None"},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjHU%3D","line":209,"in_reply_to":"AAAAP3%2F%2FjZU%3D","updated":"2013-07-16 18:20:21.000000000","message":"If no default is supplied to get \u0027None\u0027 will be returned, I think we are ok here:\n\n $ python\n Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) \n [GCC 4.4.5] on linux2\n Type \"help\", \"copyright\", \"credits\" or \"license\" for more information. \n \u003e\u003e\u003e kwargs \u003d {}\n \u003e\u003e\u003e print kwargs.get(\u0027owner\u0027)\n None","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"a93952fcb57ac5ee397b4f76c547afb49593de55","unresolved":false,"context_lines":[{"line_number":176,"context_line":"            url \u003d \u0027/v1/images/detail?%s\u0027 % urllib.urlencode(qp)"},{"line_number":177,"context_line":"            images \u003d self._list(url, \"images\")"},{"line_number":178,"context_line":"            for image in images:"},{"line_number":179,"context_line":"                if filter_owner(owner, image):"},{"line_number":180,"context_line":"                    continue"},{"line_number":181,"context_line":"                seen +\u003d 1"},{"line_number":182,"context_line":"                if absolute_limit is not None and seen \u003e absolute_limit:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2Fip4%3D","line":179,"updated":"2013-07-16 19:49:13.000000000","message":"Eric,\n\nI separated this out to a function -- hopefully that makes the code a little more readable.","commit_id":"eb4e4215b9dfdf8699a6cc099d7952d11e59e73a"},{"author":{"_account_id":1706,"name":"Tom Hancock","email":"tom.hancock@hp.com","username":"tom-hancock"},"change_message_id":"c4ee31d9de1c2b4d7d2ca4081d4a02416d15a31a","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                    (((not hasattr(image, \u0027owner\u0027)) or image.owner is None) and"},{"line_number":186,"context_line":"                        owner \u003d\u003d \u0027\u0027) or"},{"line_number":187,"context_line":"                        (hasattr(image, \u0027owner\u0027) and image.owner \u003d\u003d owner))):"},{"line_number":188,"context_line":"                    continue"},{"line_number":189,"context_line":"                if absolute_limit is not None and seen \u003e absolute_limit:"},{"line_number":190,"context_line":"                    return"},{"line_number":191,"context_line":"                yield image"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAP3%2F%2FfkE%3D","line":188,"updated":"2013-07-17 13:19:11.000000000","message":"I think in the last rebase this may have been inadvertantly re-inserted.\nI much prefer the filter function.","commit_id":"d09623cef5cb6059158ef6fb2b1aa87561ddf4a9"},{"author":{"_account_id":1706,"name":"Tom Hancock","email":"tom.hancock@hp.com","username":"tom-hancock"},"change_message_id":"3b8b9df4440a26db34471f27bef905747337b921","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            # shouldn\u0027t be here."},{"line_number":156,"context_line":"            #"},{"line_number":157,"context_line":"            # Making sure all params are str before"},{"line_number":158,"context_line":"            # trying to encode them"},{"line_number":159,"context_line":"            def filter_owner(owner, image):"},{"line_number":160,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":161,"context_line":"                # only return images that match \u0027owner\u0027."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAP3%2F%2FfiU%3D","line":158,"updated":"2013-07-17 13:26:59.000000000","message":"maybe move  this comment to above the safe_encode?","commit_id":"d6b5bcc90a61e09ab334ae7dc0385876934c469b"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"c5ffda7edd43cebe4b85ddb1801ef50d6af1cd86","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            # shouldn\u0027t be here."},{"line_number":156,"context_line":"            #"},{"line_number":157,"context_line":"            # Making sure all params are str before"},{"line_number":158,"context_line":"            # trying to encode them"},{"line_number":159,"context_line":"            def filter_owner(owner, image):"},{"line_number":160,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":161,"context_line":"                # only return images that match \u0027owner\u0027."}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAP3%2F%2Ffh0%3D","line":158,"in_reply_to":"AAAAP3%2F%2FfiU%3D","updated":"2013-07-17 13:29:33.000000000","message":"sure","commit_id":"d6b5bcc90a61e09ab334ae7dc0385876934c469b"},{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"91ddc01175ad59b31376add563fa116f9fbf427f","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        absolute_limit \u003d kwargs.get(\u0027limit\u0027)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        def paginate(qp, seen\u003d0):"},{"line_number":153,"context_line":"            def filter_owner(owner, image):"},{"line_number":154,"context_line":"                # If client side owner \u0027filter\u0027 is specified"},{"line_number":155,"context_line":"                # only return images that match \u0027owner\u0027."}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAQn%2F%2FmTE%3D","line":152,"updated":"2013-07-29 13:52:22.000000000","message":"it seems like this filter_owner would be easier to read if written as a generator, the more I think about it.","commit_id":"12feedb2cfe087f7126f250850f35ebb1cf3de7a"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"e33a4cb440b7a00e8bb2783c744ffde426b6578c","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        params.update(filters)"},{"line_number":219,"context_line":"        if kwargs.get(\u0027owner\u0027) is not None:"},{"line_number":220,"context_line":"            params[\u0027owner\u0027] \u003d kwargs[\u0027owner\u0027]"},{"line_number":221,"context_line":"            params[\u0027is_public\u0027] \u003d None"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        return paginate(params)"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAQn%2F%2Fj2g%3D","line":221,"updated":"2013-07-29 07:24:35.000000000","message":"Why does is_public have to be set to None?","commit_id":"12feedb2cfe087f7126f250850f35ebb1cf3de7a"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"846d05f89158e0a7e181c0492084fb194d331745","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        params.update(filters)"},{"line_number":219,"context_line":"        if kwargs.get(\u0027owner\u0027) is not None:"},{"line_number":220,"context_line":"            params[\u0027owner\u0027] \u003d kwargs[\u0027owner\u0027]"},{"line_number":221,"context_line":"            params[\u0027is_public\u0027] \u003d None"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        return paginate(params)"},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAQn%2F%2FjqU%3D","line":221,"in_reply_to":"AAAAQn%2F%2Fj2g%3D","updated":"2013-07-29 08:59:02.000000000","message":"The behaviour of the is_public query param in v1 is a bit quirky. If you are admin and want to see *all* images, not just images you own, you need to set this.","commit_id":"12feedb2cfe087f7126f250850f35ebb1cf3de7a"}],"glanceclient/v1/shell.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"8f74d66b39178b942a925e061d844bdd9b8d7d7f","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    kwargs[\u0027sort_key\u0027] \u003d args.sort_key"},{"line_number":92,"context_line":"    kwargs[\u0027sort_dir\u0027] \u003d args.sort_dir"},{"line_number":93,"context_line":"    if args.owner is not None:"},{"line_number":94,"context_line":"        kwargs[\u0027owner\u0027] \u003d args.owner"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    images \u003d gc.images.list(**kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjeA%3D","line":93,"updated":"2013-07-16 16:44:14.000000000","message":"I think we can get away without the if here","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4a02d32c315111083b28d3dba7ebef58d417a237","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    kwargs[\u0027sort_key\u0027] \u003d args.sort_key"},{"line_number":92,"context_line":"    kwargs[\u0027sort_dir\u0027] \u003d args.sort_dir"},{"line_number":93,"context_line":"    if args.owner is not None:"},{"line_number":94,"context_line":"        kwargs[\u0027owner\u0027] \u003d args.owner"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    images \u003d gc.images.list(**kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjFI%3D","line":93,"in_reply_to":"AAAAP3%2F%2FjeA%3D","updated":"2013-07-16 18:20:21.000000000","message":"Eric,\n\nIs this a re-statement of your concern w.r.t owner in images.py, or something slightly different? \n\nThanks.","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"4a02d32c315111083b28d3dba7ebef58d417a237","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    kwargs[\u0027sort_key\u0027] \u003d args.sort_key"},{"line_number":92,"context_line":"    kwargs[\u0027sort_dir\u0027] \u003d args.sort_dir"},{"line_number":93,"context_line":"    if args.owner is not None:"},{"line_number":94,"context_line":"        kwargs[\u0027owner\u0027] \u003d args.owner"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    images \u003d gc.images.list(**kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjEU%3D","line":93,"in_reply_to":"AAAAP3%2F%2FjeA%3D","updated":"2013-07-16 18:20:21.000000000","message":"Yes, thanks.","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"},{"author":{"_account_id":6650,"name":"Eric Peterson","email":"ejpetey@gmail.com","username":"ericpeterson-l"},"change_message_id":"ca90afec47c6a7e556aaa68bc6abda0538cf426f","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    kwargs[\u0027sort_key\u0027] \u003d args.sort_key"},{"line_number":92,"context_line":"    kwargs[\u0027sort_dir\u0027] \u003d args.sort_dir"},{"line_number":93,"context_line":"    if args.owner is not None:"},{"line_number":94,"context_line":"        kwargs[\u0027owner\u0027] \u003d args.owner"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    images \u003d gc.images.list(**kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAP3%2F%2FjXI%3D","line":93,"in_reply_to":"AAAAP3%2F%2FjeA%3D","updated":"2013-07-16 16:59:40.000000000","message":"there is another change needed where a default value or check should be used.... otherwise key error will occur when value is missing with code as is.","commit_id":"4480867c011feb7e566cd65582941f859a2c4077"}],"tests/v1/test_images.py":[{"author":{"_account_id":1390,"name":"Paul Bourke","email":"pauldbourke@proton.me","username":"pauldbourke"},"change_message_id":"1197ea9b7a01c2785ce6b6074a1d7bf24e037332","unresolved":false,"context_lines":[{"line_number":532,"context_line":"        self.assertEqual(len(image_list), 1)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_image_list_with_unspecified_owner(self):"},{"line_number":535,"context_line":"        images \u003d self.mgr.list(page_size\u003d5)"},{"line_number":536,"context_line":"        image_list \u003d list(images)"},{"line_number":537,"context_line":"        self.assertEqual(image_list[0].owner, \u0027A\u0027)"},{"line_number":538,"context_line":"        self.assertEqual(image_list[0].id, \u0027a\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FkIM%3D","line":535,"updated":"2013-07-16 14:34:20.000000000","message":"Adding owner\u003d\u0027A\u0027 here will show the KeyError","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"40dad5a955130af0f0b7ce07dfdd49ada4c0cafc","unresolved":false,"context_lines":[{"line_number":532,"context_line":"        self.assertEqual(len(image_list), 1)"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def test_image_list_with_unspecified_owner(self):"},{"line_number":535,"context_line":"        images \u003d self.mgr.list(page_size\u003d5)"},{"line_number":536,"context_line":"        image_list \u003d list(images)"},{"line_number":537,"context_line":"        self.assertEqual(image_list[0].owner, \u0027A\u0027)"},{"line_number":538,"context_line":"        self.assertEqual(image_list[0].id, \u0027a\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAP3%2F%2FjqY%3D","line":535,"in_reply_to":"AAAAP3%2F%2FkIM%3D","updated":"2013-07-16 15:57:57.000000000","message":"Yes. Thanks. I\u0027ll change the argument handling.","commit_id":"e490c6c9bd3b1edfac37a6938f5b3bef00760972"}]}
