)]}'
{"shade/task_manager.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"003c1351dd07d909d0fea3e033b2565d6e4c5426","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    # of these result types, we use isinstance() here instead of type()."},{"line_number":34,"context_line":"    return ("},{"line_number":35,"context_line":"        isinstance(obj, list) or"},{"line_number":36,"context_line":"        isinstance(obj, types.GeneratorType))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def _is_dictlike(obj):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_7d83ce56","line":36,"updated":"2016-08-22 14:06:48.000000000","message":"GeneratorType shows up in both new _is_* methods. Doubtful that\u0027s intentional.","commit_id":"01d43b6ae7f2d9e48d48592f45d397812f4a032e"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"003c1351dd07d909d0fea3e033b2565d6e4c5426","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        isinstance(obj, types.GeneratorType))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def _is_dictlike(obj):"},{"line_number":40,"context_line":"    # NOTE(Shrews): Since the client API might decide to subclass one"},{"line_number":41,"context_line":"    # of these result types, we use isinstance() here instead of type()."},{"line_number":42,"context_line":"    return ("}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac06dbe_9d5ccaee","line":39,"updated":"2016-08-22 14:06:48.000000000","message":"Wha? How are the primitives like a dict? Weird. Maybe _is_objlike_ makes more sense?","commit_id":"01d43b6ae7f2d9e48d48592f45d397812f4a032e"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5e2ab8374baeca27f6e57dc6927267c4ac88fb9d","unresolved":false,"context_lines":[{"line_number":31,"context_line":"def _is_listlike(obj):"},{"line_number":32,"context_line":"    # NOTE(Shrews): Since the client API might decide to subclass one"},{"line_number":33,"context_line":"    # of these result types, we use isinstance() here instead of type()."},{"line_number":34,"context_line":"    return ("},{"line_number":35,"context_line":"        isinstance(obj, list) or"},{"line_number":36,"context_line":"        isinstance(obj, types.GeneratorType))"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def _is_objlike(obj):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_45809c8b","line":36,"range":{"start_line":34,"start_character":0,"end_line":36,"end_character":45},"updated":"2016-08-22 23:56:00.000000000","message":"This will need to include the various iterators as well most likely.\n\nGenerator and list is not sufficient, in py3 listiterator is parented to object (for example).\n\nThis can be expanded in a subsequent patch.","commit_id":"21cdb75d01718d8f4126ddee6da5a2752e8c4c2d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5e2ab8374baeca27f6e57dc6927267c4ac88fb9d","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            underlying client call."},{"line_number":201,"context_line":"        \"\"\""},{"line_number":202,"context_line":"        self.log.debug("},{"line_number":203,"context_line":"            \"Manager %s running task %s\" % (self.name, task.name))"},{"line_number":204,"context_line":"        start \u003d time.time()"},{"line_number":205,"context_line":"        task.run(self._client)"},{"line_number":206,"context_line":"        end \u003d time.time()"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_e8399dd8","line":203,"range":{"start_line":203,"start_character":11,"end_line":203,"end_character":66},"updated":"2016-08-22 23:56:00.000000000","message":"NIT: you can use a comma here instead of %, it\u0027s just generally cleaner to do:\n    self.log.debug(\"Manager %s running task %s\", self.name, task.name)","commit_id":"21cdb75d01718d8f4126ddee6da5a2752e8c4c2d"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"5e2ab8374baeca27f6e57dc6927267c4ac88fb9d","unresolved":false,"context_lines":[{"line_number":205,"context_line":"        task.run(self._client)"},{"line_number":206,"context_line":"        end \u003d time.time()"},{"line_number":207,"context_line":"        self.log.debug("},{"line_number":208,"context_line":"            \"Manager %s ran task %s in %ss\" % ("},{"line_number":209,"context_line":"                self.name, task.name, (end - start)))"},{"line_number":210,"context_line":"        return task.wait(raw)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ac06dbe_68548dfe","line":208,"range":{"start_line":208,"start_character":39,"end_line":208,"end_character":41},"updated":"2016-08-22 23:56:00.000000000","message":"Should this be %d?\n\nAlso same NIT as above on comma vs %","commit_id":"21cdb75d01718d8f4126ddee6da5a2752e8c4c2d"}]}
