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

Removed

Bug Fixes

  • Fixed BaseClassPaginator.interaction_check() incorrectly returning True for non-owners when .BaseClassPaginator.always_allow_bot_owner is set to True.

  • 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

  • Added missing parameters to BasePaginatorKwargs and included comprehensive docstrings.

  • The BaseClassPaginator.current_page, BaseClassPaginator.pages, and BaseClassPaginator.per_page attributes can now be modified after initialization.

  • Improved the internal logic for editing and deleting messages.

  • Refactored SelectOptionsPaginator for enhanced reliability and reduced error potential.
  • Refactored SelectOptionsPaginator to be more reliable and less error-prone. - BaseClassPaginator.format_page() now gets called with the PaginatorOption that 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.ButtonPaginator would 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.PaginatorOption was 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_string kwarg to BaseClassPaginator to disable the automatic page string addition. Defaults to True.

Bug Fixes:

  • BaseClassPaginator.message is not set to None outside BaseClassPaginator.stop_paginator().

  • BaseClassPaginator.stop_paginator() now takes an optional interaction parameter 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_after and disable_after are 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_message kwarg in BaseClassPaginator.send() also works properly now.

Changes:

Miscellaneous:

  • Better docstring for pages kwarg/attribute.

  • More desciptive error messages like for the check callable checker.

  • Owner ids are now cached on the instance on a private attribute. If always_allow_bot_owner is set to True.

  • Just like discord.ext.commands.Bot.is_owner() in discord.py version 2.4, team roles are now also taken into consideration if always_allow_bot_owner is set to True.
  • If a dict is passed to the pages kwarg, it’s now copied to prevent any changes to the original dict from affecting the paginator.

button_paginator

Bug Fixes:

  • The buttons= kwarg in button_paginator.ButtonPaginator now checks whether a dict is passed and if all the required keys are present and if the values are of the correct type. This is to prevent any errors from happening when the buttons are added to the paginator. The passed dict is also copied now to prevent any changes to the original dict from affecting the paginator.
  • Fixed a bug where the label of the First & Last buttons were not being set correctly.

Miscellaneous:

0.1.0 (2023-12-26)

  • Initial release!