)]}'
{"keystone/catalog/core.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b6f7a2139ff9b035d4c8c782b78afef2c3a86939","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    @abc.abstractmethod"},{"line_number":200,"context_line":"    def list_services(self, hints):"},{"line_number":201,"context_line":"        \"\"\"List all services."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :returns: list of service_refs or an empty list."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F9VNY%3D","line":202,"updated":"2014-04-06 22:45:23.000000000","message":"doc string. \n\nnit: hints should be optional as its an abstract method that may be implemented by an external provider - though this is unlikely and making it optional doesn\u0027t fix this. ahh python.","commit_id":"585250a8db27e0a525ebe0601948ce97cababe3f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"721ccdb1dca4adb23278b1b0af370d75fd2ea4be","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    @abc.abstractmethod"},{"line_number":200,"context_line":"    def list_services(self, hints):"},{"line_number":201,"context_line":"        \"\"\"List all services."},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        :returns: list of service_refs or an empty list."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FhQo%3D","line":202,"in_reply_to":"AAAAWH%2F9VNY%3D","updated":"2014-04-14 01:17:11.000000000","message":"Fixed the docstring. The caller of this method always passes hints, so I don\u0027t think it can be optional.","commit_id":"585250a8db27e0a525ebe0601948ce97cababe3f"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"b6f7a2139ff9b035d4c8c782b78afef2c3a86939","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @abc.abstractmethod"},{"line_number":258,"context_line":"    def list_endpoints(self, hints):"},{"line_number":259,"context_line":"        \"\"\"List all endpoints."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        :returns: list of endpoint_refs or an empty list."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F9VNU%3D","line":260,"updated":"2014-04-06 22:45:23.000000000","message":"doc","commit_id":"585250a8db27e0a525ebe0601948ce97cababe3f"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"721ccdb1dca4adb23278b1b0af370d75fd2ea4be","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @abc.abstractmethod"},{"line_number":258,"context_line":"    def list_endpoints(self, hints):"},{"line_number":259,"context_line":"        \"\"\"List all endpoints."},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        :returns: list of endpoint_refs or an empty list."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FhQk%3D","line":260,"in_reply_to":"AAAAWH%2F9VNU%3D","updated":"2014-04-14 01:17:11.000000000","message":"Done","commit_id":"585250a8db27e0a525ebe0601948ce97cababe3f"}]}
