)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b3e0709aa1ea2d74964d37b4640a637ce302ff09","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8350c9f0_6c405204","updated":"2025-10-23 13:22:51.000000000","message":"I also don\u0027t find this improves readability, personally 😅","commit_id":"7e2f8703c03e7d777535d207d0fb1006691c90b7"},{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"4320fbbd4b8cb2be32f2de4c50c250932a53d1c0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0b4e7591_b116d7dd","in_reply_to":"8350c9f0_6c405204","updated":"2025-11-04 12:39:19.000000000","message":"🥲 no problem. I can abandon this patch if you prefer. I was thinking it would centralize a bit this logic. he goal is mostly to avoid repearting similar checks here and there.","commit_id":"7e2f8703c03e7d777535d207d0fb1006691c90b7"}],"oslo_messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"bf431678560db3c83c7fbbf531248d8d87764b69","unresolved":true,"context_lines":[{"line_number":1618,"context_line":"                # layers to implement retry strategies."},{"line_number":1619,"context_line":"                # https://github.com/rabbitmq/rabbitmq-server/pull/14339"},{"line_number":1620,"context_line":"                elif \"PRECONDITION_FAILED - exchange limit of\" in str(err):"},{"line_number":1621,"context_line":"                    # Warn even if an exception is raised to ensure"},{"line_number":1622,"context_line":"                    # the awarness of a possible resource limit."},{"line_number":1623,"context_line":"                    # Could be useful if underlying layers decide to"},{"line_number":1624,"context_line":"                    # implement a retry logic."},{"line_number":1625,"context_line":"                    LOG.warning("},{"line_number":1626,"context_line":"                        f\"Cannot create exchange \u0027{exchange.name}\u0027: \""},{"line_number":1627,"context_line":"                        \"cluster limit reached\")"},{"line_number":1628,"context_line":"                    LOG.warning(\"Server message: {err.reply_text}\")"},{"line_number":1629,"context_line":"                    raise exceptions.ExchangeLimitReached("},{"line_number":1630,"context_line":"                        f\"Cannot create exchange \u0027{exchange.name}\u0027: \""},{"line_number":1631,"context_line":"                        \"cluster limit reached. Consider implementing\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ac56b643_2134ec14","side":"PARENT","line":1628,"range":{"start_line":1621,"start_character":20,"end_line":1628,"end_character":67},"updated":"2025-09-11 12:10:48.000000000","message":"After thinking twice about the logging, I do not think it is really useful.","commit_id":"c2e381aa2db177b71f46a1babfeb76c2a75af042"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2855ae9c946bf713332d9e17c255e5fa61983ef3","unresolved":true,"context_lines":[{"line_number":1600,"context_line":"            try:"},{"line_number":1601,"context_line":"                exchange(self.channel).declare()"},{"line_number":1602,"context_line":"            except amqp_ex.PreconditionFailed as err:"},{"line_number":1603,"context_line":"                match str(err):"},{"line_number":1604,"context_line":"                    case PreconditionFailedEnum.INCONSISTENT_CONFIG:"},{"line_number":1605,"context_line":"                        LOG.warning(\"Force creating a non durable exchange.\")"},{"line_number":1606,"context_line":"                        exchange.durable \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"22d42cf4_651c6583","line":1603,"updated":"2025-10-23 13:21:53.000000000","message":"these aren\u0027t equivalent. Previously we were doing a substring comparison (`in`). Now we\u0027re doing an exact string match (`\u003d\u003d`).","commit_id":"7e2f8703c03e7d777535d207d0fb1006691c90b7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8dd0b212ff85f3981633731e19e9857049d70595","unresolved":true,"context_lines":[{"line_number":1600,"context_line":"            try:"},{"line_number":1601,"context_line":"                exchange(self.channel).declare()"},{"line_number":1602,"context_line":"            except amqp_ex.PreconditionFailed as err:"},{"line_number":1603,"context_line":"                match str(err):"},{"line_number":1604,"context_line":"                    case PreconditionFailedEnum.INCONSISTENT_CONFIG:"},{"line_number":1605,"context_line":"                        LOG.warning(\"Force creating a non durable exchange.\")"},{"line_number":1606,"context_line":"                        exchange.durable \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"0b554822_5f04fb00","line":1603,"in_reply_to":"22d42cf4_651c6583","updated":"2025-10-23 13:22:16.000000000","message":"```\n\u003e\u003e\u003e import enum\n\u003e\u003e\u003e class Foo(enum.Enum):\n...     X \u003d \"this is\"\n...     Y \u003d \"this is a\"\n...     \n\u003e\u003e\u003e x \u003d \"this is a test 123\"\n\u003e\u003e\u003e match x:\n...     case Foo.X:\n...         print(\"first\")\n...     case Foo.Y:\n...         print(\"second\")\n...     case _:\n...         print(\"fallthrough\")\n...         \nfallthrough\n```","commit_id":"7e2f8703c03e7d777535d207d0fb1006691c90b7"}]}
