Changelogs¶
This page keeps a human-readable changelog of significant changes to the project.
0.3.0 (2025-10-05)¶
Long overdue release with bug fixes and improvements.
Warning
This is the last .X. release that will support Python 3.9, 3.10, and 3.11. The next major release will only support Python 3.12 and above.
This is also the last release to support discord.py 2.2+. Future releases will only support the LATEST discord.py version available on PyPI.
Added¶
Added
BaseClassPaginator.on_page()hook for overriding page change behavior.- Added style_if_clickable parameter to
ButtonPaginatorto customize the style of buttons when they are clickable. Defaults to
discord.ButtonStyle.green.Can be set to
Noneto maintain the default button style.
- Added style_if_clickable parameter to
- Added add_in_order parameter to
SelectOptionsPaginatorto control whether options are added in the order they are defined. Defaults to
False.
- Added add_in_order parameter to
- Added set_default_on_switch parameter to
SelectOptionsPaginatorto control whether the default option is set when switching pages. Defaults to
True.
- Added set_default_on_switch parameter to
- Added set_default_on_select parameter to
SelectOptionsPaginatorto control whether the default option is set when an option is selected. Defaults to
True.
- Added set_default_on_select parameter to
Added
SelectOptionsPaginator.on_select()hook for overriding.
Removed¶
- Deprecated the default_option parameter from
SelectOptionsPaginator. Use a
PaginatorOptioninstance instead.
- Deprecated the default_option parameter from
- The
modal_paginatormodule and[modalpaginator]extra have been removed. Please use the discord-ext-modal-paginator package as an alternative.
- The
Bug Fixes¶
Fixed
BaseClassPaginator.interaction_check()incorrectly returningTruefor non-owners when .BaseClassPaginator.always_allow_bot_owner is set toTrue.Fixed issues where files and attachments would not render correctly when navigating between pages.
Fixed a bug where the paginator would not stop properly when the associated message was deleted.
Miscellaneous¶
- All paginators can now be imported directly from
discord.ext.paginators. For example:
from discord.ext.paginators import ButtonPaginator, SelectOptionsPaginator
- All paginators can now be imported directly from
Added missing parameters to
BasePaginatorKwargsand included comprehensive docstrings.The
BaseClassPaginator.current_page,BaseClassPaginator.pages, andBaseClassPaginator.per_pageattributes can now be modified after initialization.Improved the internal logic for editing and deleting messages.
- Refactored
SelectOptionsPaginatorfor enhanced reliability and reduced error potential. BaseClassPaginator.format_page()now receives the selectedPaginatorOptioninstance instead of the page’s raw contents.
- Refactored
Refactored
SelectOptionsPaginatorto be more reliable and less error-prone. -BaseClassPaginator.format_page()now gets called with thePaginatorOptionthat was selected instead of the page’s contents.Updated documentation to the latest versions.
Sphinx from 7+ < 8 to 8.2.3+ < 9
furo (theme) from 2023.9.10+ < 2024 to 2025.9.25 < 2026
sphinx-autodoc-typehints from 1.25+ < 2 to 3.2+ < 4
sphinx-toolbox from 3.5 < 4 to 4.0 < 5
Support for components v2 is in the works! Join the Discord server for updates and testing.
0.2.1 (2024-07-24)¶
Rather small release with only bug fixes.
Fixed a bug where using the buttons= kwarg in
button_paginator.ButtonPaginatorwould raise falsely raise an error.Fixed a where the labels for the First and Last buttons were not being set correctly in
button_paginator.ButtonPaginator. - The way the labels are set has been changed to be more reliable and less error-prone.Fixed a bug where the label for the
select_paginator.PaginatorOptionwas not being set correctly and would raise an internal error.Fixed an internal bug where editing a message would raise an error.
0.2.0 (2024-02-20)¶
Many Quality of Life improvements and bug fixes.
Changes per module¶
errors¶
This module has been removed. All errors are now either ValueError or TypeError.
base_paginator¶
Added
add_page_stringkwarg toBaseClassPaginatorto disable the automatic page string addition. Defaults toTrue.
Bug Fixes:
BaseClassPaginator.messageis not set toNoneoutsideBaseClassPaginator.stop_paginator().BaseClassPaginator.stop_paginator()now takes an optionalinteractionparameter to stop the paginator using the interaction’s message instead of the paginator’s message if available. Falls back to the paginator’s message otherwise.- Kwargs like
delete_afteranddisable_afterare now properly handled usingt the available methods and erorrs that are raised are ignored and logged as debug now. - The page should also be edited properly now using the available and correct methods. E.g. the pagaintor can be used in an ephemeral message now. The
edit_messagekwarg inBaseClassPaginator.send()also works properly now.
Changes:
NoPagesexception has been replaced by aValueError.BaseClassPaginator.current_page’s setter now sets it to the maximum/minimum page if it’s out of bounds.BaseClassPaginator.interaction_check()&BaseClassPaginator.format_page()now call a private method instead of directly doing the work in the method. This allows for easier overriding.BaseClassPaginatoris no longer slotted. This did nothing anyways sincediscord.ui.Viewis not slotted.
Miscellaneous:
Better docstring for
pageskwarg/attribute.More desciptive error messages like for the
checkcallable checker.Owner ids are now cached on the instance on a private attribute. If
always_allow_bot_owneris set toTrue.- Just like
discord.ext.commands.Bot.is_owner()in discord.py version 2.4, team roles are now also taken into consideration ifalways_allow_bot_owneris set toTrue. If a
dictis passed to thepageskwarg, it’s now copied to prevent any changes to the original dict from affecting the paginator.
modal_paginator¶
Miscellaneous:
Fixed a mistake in the print when the package was not installed.
modalpagintor->modalpaginator.
Overall, a lot of typing improvements like Page has been replaced with Any to allow for more flexibility.
And other unnecessary type hints have been removed.
0.1.0 (2023-12-26)¶
Initial release!