)]}'
{"swift/common/db.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0d6c67ddea4ed90f438bd635da51e768927c9dbb","unresolved":false,"context_lines":[{"line_number":428,"context_line":"                self.conn.timeout \u003d old_timeout"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    @contextmanager"},{"line_number":431,"context_line":"    def maybe_get(self, conn):"},{"line_number":432,"context_line":"        if conn:"},{"line_number":433,"context_line":"            yield conn"},{"line_number":434,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_ad6c6c36","line":431,"range":{"start_line":431,"start_character":8,"end_line":431,"end_character":17},"updated":"2018-05-23 10:34:30.000000000","message":"+1 this occurred to me as soon as I looked at the parent patch\n\nIt has always surpised me that python doesn\u0027t have support for a generalised version of this such as:\n\n    @contextmanager\n    def this_or_with_that(self, this, that):\n        if this:\n            yield this\n        else:\n            with that() as thing:\n                yield thing\n\nso we could do \n\n  with this_or_with_that(conn, self.get):\n\nnullcontext in 3.7 provides some help:\n\nhttps://docs.python.org/3.7/library/contextlib.html#contextlib.nullcontext","commit_id":"2e321d94ed59c8068595b597f8de1c8fc9a2c0a3"}],"swift/container/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"aca7ba0e16f0d4f467aef0eb4a8e058856ef7ed5","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                self._do_get_info_query(conn)"},{"line_number":893,"context_line":"            else:"},{"line_number":894,"context_line":"                with self.get() as conn:"},{"line_number":895,"context_line":"                    self._do_get_info_query(conn)"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def _get_alternate_object_stats(self):"},{"line_number":898,"context_line":"        state \u003d self.get_db_state()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_a7ba5207","line":895,"updated":"2018-05-22 21:20:37.000000000","message":"Here, too?","commit_id":"2e321d94ed59c8068595b597f8de1c8fc9a2c0a3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"92195ce262170faefc9824564c12d18ea401209f","unresolved":false,"context_lines":[{"line_number":892,"context_line":"                self._do_get_info_query(conn)"},{"line_number":893,"context_line":"            else:"},{"line_number":894,"context_line":"                with self.get() as conn:"},{"line_number":895,"context_line":"                    self._do_get_info_query(conn)"},{"line_number":896,"context_line":""},{"line_number":897,"context_line":"    def _get_alternate_object_stats(self):"},{"line_number":898,"context_line":"        state \u003d self.get_db_state()"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_c7550e52","line":895,"in_reply_to":"5f7c97a3_a7ba5207","updated":"2018-05-22 22:05:04.000000000","message":"Done","commit_id":"2e321d94ed59c8068595b597f8de1c8fc9a2c0a3"}],"test/unit/common/test_db.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"aca7ba0e16f0d4f467aef0eb4a8e058856ef7ed5","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        with broker.get() as other_conn:"},{"line_number":619,"context_line":"            self.assertEqual(broker.conn, None)"},{"line_number":620,"context_line":"            with broker.maybe_get(other_conn) as identity_conn:"},{"line_number":621,"context_line":"                self.assertEqual(other_conn, identity_conn)"},{"line_number":622,"context_line":"                self.assertEqual(broker.conn, None)"},{"line_number":623,"context_line":"            self.assertEqual(broker.conn, None)"},{"line_number":624,"context_line":"        self.assertEqual(broker.conn, conn)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_0741c60b","line":621,"range":{"start_line":621,"start_character":21,"end_line":621,"end_character":32},"updated":"2018-05-22 21:20:37.000000000","message":"Maybe even assertIs?","commit_id":"2e321d94ed59c8068595b597f8de1c8fc9a2c0a3"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"92195ce262170faefc9824564c12d18ea401209f","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        with broker.get() as other_conn:"},{"line_number":619,"context_line":"            self.assertEqual(broker.conn, None)"},{"line_number":620,"context_line":"            with broker.maybe_get(other_conn) as identity_conn:"},{"line_number":621,"context_line":"                self.assertEqual(other_conn, identity_conn)"},{"line_number":622,"context_line":"                self.assertEqual(broker.conn, None)"},{"line_number":623,"context_line":"            self.assertEqual(broker.conn, None)"},{"line_number":624,"context_line":"        self.assertEqual(broker.conn, conn)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_a7dfb2d4","line":621,"range":{"start_line":621,"start_character":21,"end_line":621,"end_character":32},"in_reply_to":"5f7c97a3_0741c60b","updated":"2018-05-22 22:05:04.000000000","message":"Done","commit_id":"2e321d94ed59c8068595b597f8de1c8fc9a2c0a3"}]}
