)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":308,"name":"Thierry Carrez","email":"thierry@openstack.org","username":"ttx"},"change_message_id":"bd0e5264a2c73070d4edaff9a9a52812c40c424c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"401e5275_770b545e","updated":"2026-03-20 14:22:37.000000000","message":"Let\u0027s land this once Gazpacho is released","commit_id":"4998cbce7e5326498ebd91a69ea052a2cd3b96ad"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"a0f0f44820cf9b96035c47101a6793e9fce3e717","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e71e493c_161acfac","updated":"2026-04-13 07:35:24.000000000","message":"Latest patchset rebased, just a note that the signing key date changed in master from 2026-04-06 to 2026-04-10 so that has been changed in data/series_status.yaml\n\nJust a heads up if that was intended as signed data vs what key was used might deviate between 2026-04-06 and 2026-04-10(?).\n\n```\ndiff --git a/data/series_status.yaml b/data/series_status.yaml\nindex 87636404d..c5f2bf419 100644\n--- a/data/series_status.yaml\n+++ b/data/series_status.yaml\n@@ -8,7 +8,7 @@\n     date: 2026-09-30\n   signing-key:\n     key: 30566c450e41d7c91e442dfb231f942f608ddeff\n-    start: 2026-04-06\n+    start: 2026-04-10\n     end: present\n - name: gazpacho\n   release-id: 2026.1\n@@ -21,7 +21,7 @@\n   signing-key:\n     key: b8e9315f48553ec5aff9ffe5e69d97da9efb5aff\n     start: 2025-10-06\n-    end: 2026-04-06\n+    end: 2026-04-10\n - name: flamingo\n   release-id: 2025.2\n   status: maintained\n ```","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"f13cd584fd00e4d38a64aa7b869ac6538efeabf1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a6790c5b_388a32af","updated":"2026-04-13 13:58:07.000000000","message":"Thanks, this will make updates easier as well as providing a better API for consumers who want to integrate with packaging automation. The new tabular formatting is really nice too!","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"df4673cf_e8aa67db","updated":"2026-04-14 16:58:29.000000000","message":"this renders [1] things nicely! Thanks Tobias! i have a couple of nits and questions. highlighting them with Code-Review-1. if those are answered i\u0027m happy to merge this o:)\n\n[1] https://af9bcd1ff9f0a3f40e4e-32bdd6c3d47a0aba5cb6656809ba5b6f.ssl.cf5.rackcdn.com/openstack/660457d9b83f440e960cb361dcf45177/docs/#cryptographic-signatures","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"53d4f5d49f010a8f46e9e7174745877cd2afd68c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"774fbaf1_89d7c2db","in_reply_to":"b10531c2_85cba8a8","updated":"2026-04-16 15:44:32.000000000","message":"Thanks, too, Tobias, for working on this! LGTM, still renders nicely [1] :) \n(adding procedural PTL-Approved+1).\n\n[1] https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_7e9/openstack/7e9e52532a89412095d0565fc57eb964/docs/#cryptographic-signatures","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b10531c2_85cba8a8","in_reply_to":"df4673cf_e8aa67db","updated":"2026-04-16 15:22:10.000000000","message":"Thanks for the review, I\u0027ve addressed them!","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"c8587873e3c03dbfc4e20ee93c23b2cdd6c55658","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bc6b9cfd_e196639c","in_reply_to":"e71e493c_161acfac","updated":"2026-04-13 14:01:46.000000000","message":"2026-04-06 was the projected date I had intended for the key to go into use, but got distracted by other fires and so 2026-04-10 is when it actually got rotated into use via the corresponding project-config change. These keys are typically generated months in advance and I try to swap them out on the Monday following release week, but sometimes it doesn\u0027t happen exactly as scheduled and we have to go back and revise the effective date on the site to reflect that.","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"0e3a25b318f4b53a7dcedbb76488fcb11869eef3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"06e0c420_3b9fb248","updated":"2026-04-17 07:12:45.000000000","message":"\u003e I\u0027m not sold on \"validity\" since the keys and their signatures are functionally valid outside these date ranges, that column actually reflects the dates for which each key was in use, but it\u0027s a minor distinction and something we can always try to clarify later.\n\nah, sorry, my bad. @fungi@yuggoth.org please push a patch for the naming and i\u0027m fast-approving it o:)","commit_id":"b6ca87fcdd48dc6e695b26a93802552f61744c10"}],"doc/source/_exts/signingkeys.py":[{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":78,"context_line":"                    fp \u003d str(m.group(1).replace(\" \", \"\")).lower()"},{"line_number":79,"context_line":"                    return fp"},{"line_number":80,"context_line":"                else:"},{"line_number":81,"context_line":"                    return SigningKeyError("},{"line_number":82,"context_line":"                        f\"Could not find key \u0027Key fingerprint\u0027 regex pattern \""},{"line_number":83,"context_line":"                        f\"in {txt_file} content\")"},{"line_number":84,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"35535d62_ec2ecf25","line":81,"range":{"start_line":81,"start_character":20,"end_line":81,"end_character":26},"updated":"2026-04-14 16:58:29.000000000","message":"raise?","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                    fp \u003d str(m.group(1).replace(\" \", \"\")).lower()"},{"line_number":79,"context_line":"                    return fp"},{"line_number":80,"context_line":"                else:"},{"line_number":81,"context_line":"                    return SigningKeyError("},{"line_number":82,"context_line":"                        f\"Could not find key \u0027Key fingerprint\u0027 regex pattern \""},{"line_number":83,"context_line":"                        f\"in {txt_file} content\")"},{"line_number":84,"context_line":"        except Exception as e:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fbc677f6_9d905bd2","line":81,"range":{"start_line":81,"start_character":20,"end_line":81,"end_character":26},"in_reply_to":"35535d62_ec2ecf25","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":82,"context_line":"                        f\"Could not find key \u0027Key fingerprint\u0027 regex pattern \""},{"line_number":83,"context_line":"                        f\"in {txt_file} content\")"},{"line_number":84,"context_line":"        except Exception as e:"},{"line_number":85,"context_line":"            return SigningKeyError("},{"line_number":86,"context_line":"                f\"Could not read fingerprint from {txt_file}: {e}\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _render_date(self, dt):"}],"source_content_type":"text/x-python","patch_set":3,"id":"0c84e06b_11249d79","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":18},"updated":"2026-04-14 16:58:29.000000000","message":"raise?","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":82,"context_line":"                        f\"Could not find key \u0027Key fingerprint\u0027 regex pattern \""},{"line_number":83,"context_line":"                        f\"in {txt_file} content\")"},{"line_number":84,"context_line":"        except Exception as e:"},{"line_number":85,"context_line":"            return SigningKeyError("},{"line_number":86,"context_line":"                f\"Could not read fingerprint from {txt_file}: {e}\")"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def _render_date(self, dt):"}],"source_content_type":"text/x-python","patch_set":3,"id":"d0a938b4_36f89c74","line":85,"range":{"start_line":85,"start_character":12,"end_line":85,"end_character":18},"in_reply_to":"0c84e06b_11249d79","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":91,"context_line":"        return str(dt)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def run(self):"},{"line_number":94,"context_line":"        LOG.info(f\"Loading signing keys fom {DATA_SERIES_STATUS}...\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        releases \u003d self._parse_data_series()"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"8b2c8a39_7abdaf69","line":94,"range":{"start_line":94,"start_character":40,"end_line":94,"end_character":43},"updated":"2026-04-14 16:58:29.000000000","message":"nit: from","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        return str(dt)"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def run(self):"},{"line_number":94,"context_line":"        LOG.info(f\"Loading signing keys fom {DATA_SERIES_STATUS}...\")"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        releases \u003d self._parse_data_series()"},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a85c460_4e121067","line":94,"range":{"start_line":94,"start_character":40,"end_line":94,"end_character":43},"in_reply_to":"8b2c8a39_7abdaf69","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"5e69f559_48596ba0","line":108,"range":{"start_line":108,"start_character":44,"end_line":108,"end_character":55},"updated":"2026-04-14 16:58:29.000000000","message":"nit: Cycle Key","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"19d8dd7d_80673b7f","line":108,"range":{"start_line":108,"start_character":27,"end_line":108,"end_character":40},"updated":"2026-04-14 16:58:29.000000000","message":"nit: Series","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6d8adac_db2b1b62","line":108,"range":{"start_line":108,"start_character":19,"end_line":108,"end_character":23},"updated":"2026-04-14 16:58:29.000000000","message":"nit: Validity","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"f7edf3dd_60fe7899","line":108,"range":{"start_line":108,"start_character":27,"end_line":108,"end_character":40},"in_reply_to":"19d8dd7d_80673b7f","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"4cf030dc_d911e505","line":108,"range":{"start_line":108,"start_character":44,"end_line":108,"end_character":55},"in_reply_to":"5e69f559_48596ba0","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        thead \u003d nodes.thead()"},{"line_number":106,"context_line":"        tgroup +\u003d thead"},{"line_number":107,"context_line":"        header_row \u003d nodes.row()"},{"line_number":108,"context_line":"        for h in [\"Date\", \"Cycle/Release\", \"Fingerprint\"]:"},{"line_number":109,"context_line":"            entry \u003d nodes.entry()"},{"line_number":110,"context_line":"            entry +\u003d nodes.paragraph(text\u003dh)"},{"line_number":111,"context_line":"            header_row +\u003d entry"}],"source_content_type":"text/x-python","patch_set":3,"id":"629ea883_6e323cd9","line":108,"range":{"start_line":108,"start_character":19,"end_line":108,"end_character":23},"in_reply_to":"e6d8adac_db2b1b62","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":148,"context_line":"            if rel.get(\u0027release-id\u0027, None) is not None:"},{"line_number":149,"context_line":"                rel_name \u003d ("},{"line_number":150,"context_line":"                    f\"{rel[\u0027release-id\u0027]}/\""},{"line_number":151,"context_line":"                    f\"{rel[\u0027name\u0027].capitalize()} Cycle key\")"},{"line_number":152,"context_line":"            else:"},{"line_number":153,"context_line":"                rel_name \u003d f\"{rel[\u0027name\u0027].capitalize()} Cycle key\""},{"line_number":154,"context_line":"            entry +\u003d nodes.paragraph(text\u003drel_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"d4ca1767_89dbee26","line":151,"range":{"start_line":151,"start_character":48,"end_line":151,"end_character":58},"updated":"2026-04-14 16:58:29.000000000","message":"nit: no need for this, let\u0027s keep only the series-id/series-name","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            if rel.get(\u0027release-id\u0027, None) is not None:"},{"line_number":149,"context_line":"                rel_name \u003d ("},{"line_number":150,"context_line":"                    f\"{rel[\u0027release-id\u0027]}/\""},{"line_number":151,"context_line":"                    f\"{rel[\u0027name\u0027].capitalize()} Cycle key\")"},{"line_number":152,"context_line":"            else:"},{"line_number":153,"context_line":"                rel_name \u003d f\"{rel[\u0027name\u0027].capitalize()} Cycle key\""},{"line_number":154,"context_line":"            entry +\u003d nodes.paragraph(text\u003drel_name)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bb3535b2_fdedd3c7","line":151,"range":{"start_line":151,"start_character":48,"end_line":151,"end_character":58},"in_reply_to":"d4ca1767_89dbee26","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"change_message_id":"feee4fc9dfa5d43c73f106bf47f760a41460525d","unresolved":true,"context_lines":[{"line_number":150,"context_line":"                    f\"{rel[\u0027release-id\u0027]}/\""},{"line_number":151,"context_line":"                    f\"{rel[\u0027name\u0027].capitalize()} Cycle key\")"},{"line_number":152,"context_line":"            else:"},{"line_number":153,"context_line":"                rel_name \u003d f\"{rel[\u0027name\u0027].capitalize()} Cycle key\""},{"line_number":154,"context_line":"            entry +\u003d nodes.paragraph(text\u003drel_name)"},{"line_number":155,"context_line":"            row +\u003d entry"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"0d1f3a66_f46ba352","line":153,"range":{"start_line":153,"start_character":55,"end_line":153,"end_character":65},"updated":"2026-04-14 16:58:29.000000000","message":"ditto","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"23942ae938fcccbd8fed6f4407e1d705bb1553f0","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                    f\"{rel[\u0027release-id\u0027]}/\""},{"line_number":151,"context_line":"                    f\"{rel[\u0027name\u0027].capitalize()} Cycle key\")"},{"line_number":152,"context_line":"            else:"},{"line_number":153,"context_line":"                rel_name \u003d f\"{rel[\u0027name\u0027].capitalize()} Cycle key\""},{"line_number":154,"context_line":"            entry +\u003d nodes.paragraph(text\u003drel_name)"},{"line_number":155,"context_line":"            row +\u003d entry"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"602a8f79_6f4cddba","line":153,"range":{"start_line":153,"start_character":55,"end_line":153,"end_character":65},"in_reply_to":"0d1f3a66_f46ba352","updated":"2026-04-16 15:22:10.000000000","message":"Done","commit_id":"bde240b1eec6e2bb04f26d5833706fab8791605c"}]}
