)]}'
{"nova/cells/utils.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"46330c7fed02e72fd4e2143a62b08901aa086121","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    if six.PY3:"},{"line_number":102,"context_line":"        items \u003d _iteritems"},{"line_number":103,"context_line":"    else:"},{"line_number":104,"context_line":"        iteritems \u003d _iteritems"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def __getattr__(self, key):"},{"line_number":107,"context_line":"        return getattr(self._obj, key)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_59216e9e","line":104,"updated":"2015-05-04 15:51:37.000000000","message":"This doesn\u0027t make sense to me.  The _CellProxy class prior to your change doesn\u0027t implement items(), but after your change, on Python 3, it does.  On the other hand, it *does* implement iteritems(), except on Python 3.  But as far as I can tell, you\u0027re not making any changes in any of the other code that uses objects of this class in order to match up.  What I think would make more sense would be to implement both items and iteritems, then transition all consumers to use the appropriate interface, perhaps through use if the six.iteritems() function…","commit_id":"f11f4c7920358c2d8f12a389a7101ebbf09dc7ef"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"58e6f22fac59eb5a8350fe10d091a45231777d8f","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    if six.PY3:"},{"line_number":102,"context_line":"        items \u003d _iteritems"},{"line_number":103,"context_line":"    else:"},{"line_number":104,"context_line":"        iteritems \u003d _iteritems"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def __getattr__(self, key):"},{"line_number":107,"context_line":"        return getattr(self._obj, key)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_19dd36e0","line":104,"in_reply_to":"3acd31a7_59216e9e","updated":"2015-05-04 16:09:29.000000000","message":"Hi,\n\nFirst of all, Nova does *not* support Python 3 right now. So it\u0027s not like this change can break the Python 3 support ;-)\n\nThis change is linked to the following change which generalizes the use of six.iteritems().\nhttps://review.openstack.org/#/c/179784/\n\nThe second change was (almost fully) automatically generated and it is huge (modify 111 files), I chose to submit two separated changes even if they are inter-dependent.","commit_id":"f11f4c7920358c2d8f12a389a7101ebbf09dc7ef"}],"nova/objects/base.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"46330c7fed02e72fd4e2143a62b08901aa086121","unresolved":false,"context_lines":[{"line_number":673,"context_line":"                yield name, getattr(self, name)"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"    if six.PY3:"},{"line_number":676,"context_line":"        items \u003d _iteritems"},{"line_number":677,"context_line":"    else:"},{"line_number":678,"context_line":"        iteritems \u003d _iteritems"},{"line_number":679,"context_line":"        items \u003d lambda self: list(self.iteritems())"}],"source_content_type":"text/x-python","patch_set":2,"id":"3acd31a7_7978aa8f","line":676,"updated":"2015-05-04 15:51:37.000000000","message":"Again, this worries me; presumably, none of the existing code calls items, but in the Python 3 case, that\u0027s the *only* method defined.","commit_id":"f11f4c7920358c2d8f12a389a7101ebbf09dc7ef"}]}
