)]}'
{"keystoneclient/access.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c54c6c31d17f8510ceb19fd4f1fe410d2be7c757","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        return self.tenant_id"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get_identity_endpoint(self, endpoint_type):"},{"line_number":138,"context_line":"        if self.get(\u0027serviceCatalog\u0027):"},{"line_number":139,"context_line":"            identity_services \u003d [x for x in self[\u0027serviceCatalog\u0027]"},{"line_number":140,"context_line":"                                 if x[\u0027type\u0027] \u003d\u003d \u0027identity\u0027]"},{"line_number":141,"context_line":"            return tuple(endpoint[endpoint_type]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FZoY%3D","line":138,"updated":"2013-01-23 22:35:55.000000000","message":"just a suggestion, but you could replace \"if self.get(\u0027serviceCatalog\u0027):\" with \"if not self.get(\u0027serviceCatalog\u0027): return\", then you\u0027d lose some indenting.\n\nhttp://www.codinghorror.com/blog/2006/01/flattening-arrow-code.html","commit_id":"8721987b09f7e151e6249fd6d0d45efa5a9356ce"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"eda3cd0fd0471fa613a373c92cbe35f579fc9e88","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        return self.tenant_id"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _get_identity_endpoint(self, endpoint_type):"},{"line_number":138,"context_line":"        if self.get(\u0027serviceCatalog\u0027):"},{"line_number":139,"context_line":"            identity_services \u003d [x for x in self[\u0027serviceCatalog\u0027]"},{"line_number":140,"context_line":"                                 if x[\u0027type\u0027] \u003d\u003d \u0027identity\u0027]"},{"line_number":141,"context_line":"            return tuple(endpoint[endpoint_type]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FZBo%3D","line":138,"in_reply_to":"AAAAM3%2F%2FZoY%3D","updated":"2013-01-24 11:26:12.000000000","message":"Done","commit_id":"8721987b09f7e151e6249fd6d0d45efa5a9356ce"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"892986df32b13c6e306c238119482b9b01cfbf2c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            return tuple(endpoint[endpoint_type]"},{"line_number":142,"context_line":"                         for svc in identity_services"},{"line_number":143,"context_line":"                         for endpoint in svc[\u0027endpoints\u0027]"},{"line_number":144,"context_line":"                         if endpoint_type in endpoint)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @property"},{"line_number":147,"context_line":"    def auth_url(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FZwU%3D","line":144,"updated":"2013-01-23 21:42:24.000000000","message":"if endpoint.get(endpoint_type))\n\nOn the off-chance it\u0027s adminUrl\u003dnull or adminUrl\u003d\u0027\u0027, I\u0027d prefer to return None consistently.","commit_id":"8721987b09f7e151e6249fd6d0d45efa5a9356ce"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"eda3cd0fd0471fa613a373c92cbe35f579fc9e88","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            return tuple(endpoint[endpoint_type]"},{"line_number":142,"context_line":"                         for svc in identity_services"},{"line_number":143,"context_line":"                         for endpoint in svc[\u0027endpoints\u0027]"},{"line_number":144,"context_line":"                         if endpoint_type in endpoint)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @property"},{"line_number":147,"context_line":"    def auth_url(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FZBU%3D","line":144,"in_reply_to":"AAAAM3%2F%2FZo0%3D","updated":"2013-01-24 11:26:12.000000000","message":"Brant: yes, the change is intentional because it simplifies the code, and it doesn\u0027t affect any code relying on this function AFAICT.","commit_id":"8721987b09f7e151e6249fd6d0d45efa5a9356ce"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c54c6c31d17f8510ceb19fd4f1fe410d2be7c757","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            return tuple(endpoint[endpoint_type]"},{"line_number":142,"context_line":"                         for svc in identity_services"},{"line_number":143,"context_line":"                         for endpoint in svc[\u0027endpoints\u0027]"},{"line_number":144,"context_line":"                         if endpoint_type in endpoint)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    @property"},{"line_number":147,"context_line":"    def auth_url(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FZo0%3D","line":144,"in_reply_to":"AAAAM3%2F%2FZwU%3D","updated":"2013-01-23 22:35:55.000000000","message":"This looks like it changes the behavior, where it used return None it doesn\u0027t anymore (looks like it returns an empty tuple). Is this the case and was that intentional?\n\nThis long return statement is really too complicated to be obviously correct. I admit I\u0027m not smart enough to parse it quickly.","commit_id":"8721987b09f7e151e6249fd6d0d45efa5a9356ce"}]}
