)]}'
{"openstack/auth/identity/discoverable.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0b9410229c560d6a8768e174196a738abbfef131","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class Auth(base.BaseIdentityPlugin):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Valid options for this plugin"},{"line_number":42,"context_line":"    valid_options \u003d v3.Password.valid_options.union("},{"line_number":43,"context_line":"        v3.Token.valid_options).union("},{"line_number":44,"context_line":"            v2.Password.valid_options).union("},{"line_number":45,"context_line":"                v2.Token.valid_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_20007300","line":42,"updated":"2015-03-03 15:50:40.000000000","message":"I disagree that this is more readable. It\u0027d be nicer to have a helper function that looks vaguely like\n\n    def _union(*sets):\n        return reduce(lambda a, b: a.union(b), sets, set().)\n\nAnd then use it like so:\n\n    class Auth(base.BaseIdentityPlugin):\n\n        #: ...\n        valid_options \u003d _union(v3.Password.valid_options,\n                               v3.Token.valid_options,\n                               v2.Password.valid_options,\n                               v2.Token.valid_options)","commit_id":"98be50b9da07caa92af4916deaf13f8a5a71176a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"861a16f8d853f988985506cb29790ace0ee42ca7","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class Auth(base.BaseIdentityPlugin):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Valid options for this plugin"},{"line_number":42,"context_line":"    valid_options \u003d v3.Password.valid_options.union("},{"line_number":43,"context_line":"        v3.Token.valid_options).union("},{"line_number":44,"context_line":"            v2.Password.valid_options).union("},{"line_number":45,"context_line":"                v2.Token.valid_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_46ef40b1","line":42,"in_reply_to":"ba7be1f8_20007300","updated":"2015-03-03 16:23:10.000000000","message":"Nobody said it was more readable. It\u0027s just correct.\n\nNext patchset as a more readable but slower version then.","commit_id":"98be50b9da07caa92af4916deaf13f8a5a71176a"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"a3b098fa1320de32c851d523b2cad1d6de8de187","unresolved":false,"context_lines":[{"line_number":39,"context_line":"class Auth(base.BaseIdentityPlugin):"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    #: Valid options for this plugin"},{"line_number":42,"context_line":"    valid_options \u003d v3.Password.valid_options.union("},{"line_number":43,"context_line":"        v3.Token.valid_options).union("},{"line_number":44,"context_line":"            v2.Password.valid_options).union("},{"line_number":45,"context_line":"                v2.Token.valid_options)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_29e5bf08","line":42,"in_reply_to":"ba7be1f8_46ef40b1","updated":"2015-03-03 18:08:41.000000000","message":"\"Looks cleaner\" and \"readable\" are synonymous to me. I\u0027m also not asking us to sacrifice speed to create this. My proposed change makes it look cleaner and preserves speed of using set.union. (I\u0027m also not a core, so we should wait for Brian, Dean, or someone else to weigh in on this.)","commit_id":"98be50b9da07caa92af4916deaf13f8a5a71176a"}],"openstack/auth/identity/v2.py":[{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"0b9410229c560d6a8768e174196a738abbfef131","unresolved":false,"context_lines":[{"line_number":112,"context_line":"class Password(Auth):"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    #: Valid options for Password plugin"},{"line_number":115,"context_line":"    valid_options \u003d set(["},{"line_number":116,"context_line":"        \u0027access_info\u0027,"},{"line_number":117,"context_line":"        \u0027auth_url\u0027,"},{"line_number":118,"context_line":"        \u0027username\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_05c2a152","line":115,"updated":"2015-03-03 15:50:40.000000000","message":"This is only necessary if the sdk is going to support Python 2.6. If that isn\u0027t a goal of the project, please use the set-literal syntax.","commit_id":"98be50b9da07caa92af4916deaf13f8a5a71176a"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"861a16f8d853f988985506cb29790ace0ee42ca7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"class Password(Auth):"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    #: Valid options for Password plugin"},{"line_number":115,"context_line":"    valid_options \u003d set(["},{"line_number":116,"context_line":"        \u0027access_info\u0027,"},{"line_number":117,"context_line":"        \u0027auth_url\u0027,"},{"line_number":118,"context_line":"        \u0027username\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba7be1f8_26008c33","line":115,"in_reply_to":"ba7be1f8_05c2a152","updated":"2015-03-03 16:23:10.000000000","message":"Ok, I\u0027m not gonna argue on syntax preference, sigh.","commit_id":"98be50b9da07caa92af4916deaf13f8a5a71176a"}]}
