Changelog

11.4.0 11th September 2024

11.3.1 25th July 2024

11.3.0 17th July 2024

  • [Feature] #254: Add a py.typed file for PEP 561 compliance.

11.2.0 22nd June 2024

11.1.0 30th March 2024

  • [Support] #210: Drop the restriction that meant fakeredis could not be installed on Python 3.12 as lupa now supports 3.12

11.0.1 20th March 2024

11.0.0 18th March 2024

  • [Breaking] #207: Enable more ruff linting rules. See GitHub release notes for breaking changes.

  • [Breaking] #208: Drop support for Pydantic 1.X

  • [Breaking] #208: Drop support for Python 3.10

  • [Breaking] #208: Split fakeredis optional dependency from the async-rediscache extra. You can now install with [fakeredis] to just install fakeredis (with lua support), [async-rediscache] to install just async-rediscache, or use either [all] or [async-rediscache,fakeredis] to install both. This allows users who do no rely on fakeredis to install in 3.12 environments.

  • [Feature] #205: Add pydis_core.utils.error_handling.commands.abc.AbstractCommandErrorHandler and pydis_core.utils.error_handling.commands.manager.CommandErrorManager to implement and register command error handlers independantly.

  • [Support] #204: Document the instance attributes of pydis_core.BotBase.

  • [Support] #206: Bump ruff from 0.1.15 to 0.2.2, using the new lint config namespace, and linting with the new rules.

  • [Support] #208: Bump ruff to 0.3.0 and target Python 3.11 now that 3.10 isn’t supported.

  • [Support] #208: Add support for Python 3.12. Be aware, at time of writing, our usage of fakeredis does not currently support 3.12. This is due to this lupa. Lupa is required by async-rediscache for lua script support within fakeredis. As such, fakeredis can not be installed in a Python 3.12 environment.

10.7.0 30th January 2024

  • [Feature] #194: Add the pydis_core.utils.interactions.user_has_access helper function, that returns whether the given user is in the allowed_users list, or has a role from allowed_roles.

  • [Feature] #158: Add locking utilities for controlling concurrency logic

  • [Support] #202: Bump various development dependencies and CI workflow action versions

10.6.0 30th January 2024

10.5.1 14th December 2023

10.5.0 10th December 2023

  • [Support] #197: Mark dependencies using tilde version specifiers. This is to allow user of pydis core to use newer versions of these libraries without us having to cut a new release.

10.4.0 26th October 2023

  • [Support] #196: Bump many development dependencies.

  • [Support] #196: Bump aiodns to 3.1.1.

10.3.0 19th September 2023

  • [Feature] #195: Set discord, websockets, chardet & async_rediscache loggers to warning level and asyncio to info level by default.

  • [Feature] #195: Add log_format to pydis_core.utils.logging to allow for standardised logging across all services using pydis_core.

10.2.0 28th August 2023

10.1.0 25th July 2023

10.0.0 14th July 2023

9.9.2 2nd July 2023

  • [Bug] #185: Update expiry label from 1 month to 30 days in paste service.

9.9.1 22nd June 2023

  • [Bug] #183: Push the correct changeset to pypi.

9.9.0 18th June 2023

9.8.0 13th June 2023

9.7.0 10th June 2023

  • [Feature] #176: Migrate repo to use ruff for linting.

  • [Feature] #177: Automatically handle discord.Forbidden 90001 errors in all schedules.

  • [Feature] #179: Add paste service utility to upload text to our paste service.

9.6.0 6th May 2023

  • [Feature] #175: Log when waiting for the guild to be available before loading cogs.

  • [Support] #175: Bump Discord.py to 2.2.3.

9.5.1 2nd March 2023

9.5.0 28th February 2023

9.4.1 9th February 2023

9.4.0 24th December 2022

9.3.1 23rd December 2022

9.3.0 13th December 2022

9.2.0 17th November 2022

  • [Support] #151: Add support for Python 3.11.

9.1.1 14th November 2022

  • [Bug] #162: Handle not being able to delete the interaction message on button press/timeout.

9.1.0 13th November 2022

  • [Feature] #88: Add a decorator that stops successive duplicate invocations of commands.

  • [Feature] #158: Bump Discord.py to 2.1.0.

9.0.0 5th November 2022

  • [Breaking] #157: Rename project to pydis_core to allow for publishing to pypi.

8.2.1 18th September 2022

8.2.0 18th August 2022

8.1.0 16th August 2022

8.0.0 27th July 2022

  • [Breaking] #110: Bump async-rediscache to v1.0.0-rc2.

  • [Bug] #107: Declare aiodns as a project dependency.

  • [Support] #107: Add a sample project with boilerplate and documentation explaining how to develop for bot-core.

  • [Support] #108: Bump Python version to 3.10.*.

7.5.0 23rd July 2022

  • [Feature] #101: Add a utility to clean a string or referenced message’s content.

7.4.0 17th July 2022

7.3.1 16th July 2022

7.3.0 16th July 2022

7.2.2 9th July 2022

  • [Bug] #98: Only close BotBase.stats._transport if BotBase.stats was created.

7.2.1 30th June 2022

  • [Bug] #91: Add missing await to BotBase.ping_services in some cases.

  • [Bug] #91: Pass missing self parameter to BotBase.ping_services.

  • [Bug] #91: Fix incorrect docstring for pydis_core.utils.member.handle_role_change.

  • [Bug] #96: Fix attempts to connect to BotBase.statsd_url when it is None.

7.2.0 28th June 2022

  • [Support] #93: Bump Discord.py to 0eb3d26:

    • Adds support for auto mod, of which the new auto_mod MESSAGE_TYPE is needed for our filter system.

7.1.3 30th May 2022

7.1.0 24th May 2022

  • [Feature] #78: Bump Discord.py to 4cbe8f5:

    • This fixes a bug with permission resolution when dealing with timed out members.

7.0.0 10th May 2022

  • [Breaking] #75: Discord invite regex no longer returns a URL safe result, refer to documentation for safely handling it.

  • [Bug] #75: Capture all characters up to a whitespace in the Discord Invite regex.

6.4.0 26th April 2022

  • [Feature] #72: Bump discord.py to 5a06fa5:

    • Notably, one of the commits in this bump dynamically extends the timeout of Guild.chunk() based on the number or members, so it should actually work on our guild now.

6.3.2 25th April 2022

  • [Bug] #69: Actually use statsd_url when it gets passed to BotBase.

6.3.1 21st April 2022

  • [Bug] #68: Correct version number in pyproject.toml.

6.3.0 21st April 2022

  • [Feature]: (Committed directly to main) Don’t load modules starting with _.

6.2.0 21st April 2022

  • [Feature] #66: Load each cog in it’s own task to avoid a single cog crashing entire load process.

6.1.0 20th April 2022

  • [Feature] #65: Add unqualify to the pydis_core.utils namespace for use in bots that manipulate extensions.

6.0.0 19th April 2022

  • [Breaking] #64: Bump discord.py to 987235d:

    • This reverts a change to help command behaviour that broke our custom pagination.

    • This also adds basic forum channel support to discord.py.

5.0.4 18th April 2022

  • [Feature] #63: Allow passing an api_client to BotBase.__init__ to specify the pydis_core.site_api.APIClient instance to use.

5.0.3 18th April 2022

  • [Bug] #61: Reconnect to redis session on setup if it is closed.

5.0.2 5th April 2022

  • [Bug] #56: Move the creation of the asyncio.Event, BotBase._guild_available to within the setup hook, to avoid a deprecation notice.

  • [Bug] #56: Create a dummy AsyncstatsdClient before connecting to real url, in case a connection cannot be made on init.

5.0.1 2nd April 2022

  • [Bug] #54: Move creation of BotBase’s aiohttp.AsyncResolver to the async setup hook, to avoid deprecation notice.

5.0.0 2nd April 2022

  • [Breaking] #42: Remove public extensions util.

  • [Feature] #42: Add async statsd client.

  • [Feature] #42: Add BotBase, a discord.ext.commands.Bot sub-class, which abstracts a lot of logic shared between our bots.

  • [Support] #42: Bump Discord.py to latest alpha commit.

4.0.0 14th March 2022

  • [Breaking] #39: Migrate back to Discord.py 2.0.

3.0.1 5th March 2022

  • [Bug] #37: Setup log tracing when pydis_core.utils.logging is imported so that it can be used within pydis_core functions.

3.0.0 3rd March 2022

  • [Breaking] #35: Move apply_monkey_patches() directly to pydis_core.utils namespace.

2.1.0 24th February 2022

  • [Feature] #34: Port the Site API wrapper from the bot repo.

2.0.0 22nd February 2022

  • [Breaking] #32: Migrate from discord.py 2.0a0 to disnake.

  • [Breaking] #35: Moved regex to pydis_core.utils namespace.

  • [Feature] #29: Port many common utilities from our bots:

    • caching

    • channel

    • extensions

    • loggers

    • members

    • scheduling

  • [Feature] #32: Add common monkey patches.

  • [Support] #2: Added intersphinx to docs.

1.2.0 9th January 2022

  • [Feature] #12: Code block detection regex.

1.1.0 2nd December 2021

  • [Feature] #2: Regex utility.

  • [Support] #2: Autogenerated docs.

1.0.0 17th November 2021

  • [Feature] #1: Core package, poetry, and linting CI.