From 63a07577776169d09b52fe04bf915aaa2d5bd3b7 Mon Sep 17 00:00:00 2001 From: Paillat Date: Fri, 7 Nov 2025 11:14:03 +0100 Subject: [PATCH 1/2] :bug: Fix paginator implementation when only passing `PageGroup` objects and `show_menu` is falsy --- discord/ext/pages/pagination.py | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/discord/ext/pages/pagination.py b/discord/ext/pages/pagination.py index 8dbf1c0f43..fbc7ca512d 100644 --- a/discord/ext/pages/pagination.py +++ b/discord/ext/pages/pagination.py @@ -418,17 +418,20 @@ def __init__( self.default_page_group: int = 0 if all(isinstance(pg, PageGroup) for pg in pages): - self.page_groups = self.pages if show_menu else None - if sum(pg.default is True for pg in self.page_groups) > 1: + if sum(pg.default is True for pg in pages) > 1: raise ValueError("Only one PageGroup can be set as the default.") - for pg in self.page_groups: + + default_pg_index = 0 + for pg in pages: if pg.default: - self.default_page_group = self.page_groups.index(pg) + default_pg_index = pages.index(pg) break + self.pages: list[Page] = self.get_page_group_content( - self.page_groups[self.default_page_group] + pages[default_pg_index] ) + self.page_groups = self.pages if show_menu else None self.page_count = max(len(self.pages) - 1, 0) self.buttons = {} self.custom_buttons: list = custom_buttons @@ -530,16 +533,20 @@ async def update( ) = (pages if pages is not None else self.pages) self.show_menu = show_menu if show_menu is not None else self.show_menu if pages is not None and all(isinstance(pg, PageGroup) for pg in pages): - self.page_groups = self.pages if self.show_menu else None - if sum(pg.default is True for pg in self.page_groups) > 1: + if sum(pg.default is True for pg in pages) > 1: raise ValueError("Only one PageGroup can be set as the default.") - for pg in self.page_groups: + + default_pg_index = 0 + for pg in pages: if pg.default: - self.default_page_group = self.page_groups.index(pg) + default_pg_index = pages.index(pg) break + self.pages: list[Page] = self.get_page_group_content( - self.page_groups[self.default_page_group] + pages[default_pg_index] ) + + self.page_groups = self.pages if show_menu else None self.page_count = max(len(self.pages) - 1, 0) self.current_page = current_page if current_page <= self.page_count else 0 # Apply config changes, if specified From 4460c28705faa03dee0ae5f8ca80a8637e0d2109 Mon Sep 17 00:00:00 2001 From: Paillat Date: Fri, 7 Nov 2025 11:16:38 +0100 Subject: [PATCH 2/2] :memo: CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 35321c2858..340f16e281 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,10 @@ These changes are available on the `master` branch, but have not yet been releas ### Fixed +- Fixed `TypeError` in paginator implementation when only passing `PageGroup` objects + and `show_menu` is falsy. + ([#2993](https://github.com/Pycord-Development/pycord/pull/2993)) + ### Deprecated ### Removed